iptables: Установка и настройка.

Iptables — это приложение/программа, которая позволяет настраивать предоставленный ядром Linux межсетевой экран, в котором пользователь имеет возможность добавлять или удалять соответствующие его требованиям правила безопасности.

Iptables используется для IPv4, ip6tables — для IPv6.

Обычно, правила iptables настраиваются системным администратором либо аналитиком или IT менеджером.

Важно: чтобы применять правила iptables, нужны root-права.

Установка iptables

Сегодня iptables встраивается в каждое ядро Linux и на каждом известном линуксовом дистрибутиве можно найти его пребилд. В большинстве линуксовых систем iptables установлена в папку /usr/sbin/iptables. Еще ее можно найти в /sbin/iptables, но желаемое расположение остается в папке /usr/sbin.

Установка в Ubuntu или Debian:

В CentOS:

В RHEL:

 

Версии iptables

Чтобы узнать версию установленного iptables, введите эту команду в терминале:

 

Как запустить и остановить межсетевой экран iptables

Чтобы остановить iptables в OpenSUSE, введите эту команду:

Запустить его снова:

Для Ubuntu:

Для Debian & RHEL:

Для CentOS:

Вывод списка правил iptables

Чтобы узнать все активные правила в iptables, откройте терминал и введите следующую команду:

Если никаких правил не существует (они не добавлены), вы увидите подобный вывод:

 

На картинке выше вы видите, что в iptables существуют 3 цепочки, которые называются INPUT, FORWARD, OUTPUT и никакие правила для них не применяются.

Введите следующую команду чтобы узнать статус цепочек вашего межсетевого экрана iptables:

Как удалять правила в iptables

Чтобы удалить все правила из iptables, введите следующую команду:

Если вы хотите удалить только цепочку INPUT или любую другую цепочку, используйте следующие команды:

Цепочки ACCEPT или DROP

Чтобы принимать или откидывать отдельные цепочки, введите одну из следующих команд в терминале, которая соответствует вашим требованиям:

Правило выше не разрешит принимать любой трафик на этом сервере.

Чтобы вернуть его назад к ACCEPT, сделайте следующее:

Тоже самое и для других цепочек:

Замечание: По умолчанию, все цепочки iptables находятся в режиме ACCEPT.

Разрешаем порты

Если у вас на сервере запущен веб-сервер, тогда вы должны разрешить 80 порт вашему межсетевому экрану для того, чтобы сервер мог его прослушивать или отвечать на него. Сделаем это с помощью следующей команды:

В команде выше:

  • -A означает добавление нового правила в список iptables.
  • INPUT значит, что изменения касаются цепочки INPUT.
  • -P — указывает на протокол. В этом случае, на TCP.
  • —dport — порт назначения. По умолчанию любой веб-сервер запущен на 80-ом порте.

Точно также вы можете разрешить порт SSH:

По умолчанию, SSH запущен на 22 порте.

Замечание: Пример хорошей практики — не запускать SSH на порте по умолчанию. Сделайте это на другом порте! Для этого откройте файл /etc/ssh/sshd_config в своем любимом редакторе и измените 22 на любой другой свободный номер порта.

Блокирование портов

Чтобы заблокировать порт 135, вводим:

Если вы хотите заблокировать возможность подключаться по SSH с вашего сервера к другому хосту/серверу, введите следующую команду:

Делая это, никто не сможет использовать ваш сервер для старта SSH подключения. Цепочка OUPUT будет фильтровать, а DROP — сбрасывать любое исходящее TCP подключение к другим хостам.

Разрешаем IP-адреса и порты

Делаем это с помощью команды:

Правило -s 0/0 разрешает любой IP-адрес источника.

Если вы хотите разрешить определенный IP-адрес, используйте эту команду:

В примере выше, вы разрешаете только IP-адресу 12.12.12.12 подключаться к порту SSH. Остальные IP-адреса не смогут подключитьcя к 22 порту.

Если вы хотите заблокировать IP-адрес, измените ACCEPT на DROP таким образом:

Эта команда не разрешит подключаться к порту 22 устройствам с IP-адресами с 12.12.12.1 по 12.12.12.255.

Блокирование ICMP

Если вам нужно заблокировать запрос ICMP (ping) от и к вашему серверу, введите следующие команды:

Эта команда заблокирует отправку ICMP пакетов к другому хосту. Попробуйте пропинговать google.com, у вас ничего не получится!

Чтобы заблокировать входящий ping запрос, введите следующие команды в терминале:

Теперь сервер не будет отвечать на ping запросы.

Как предотвращать DDoS атаки с помощью iptables

Я уверен, что вы все знаете что такое DDoS. Чтобы не допустить этот, в последнее время очень популярный вид атаки, воспользуйтесь следующей командой:

, где

  • —limit 20/minute — максимальная средняя частота положительных результатов. После числа можно указывать единицы: /second’, /minute’, /hour’, /day’; значение по умолчанию — 3/hour. Лимит настраивайте в зависимости от своих требований.
  • —limit-burst number — ограничивает исходное число пропускаемых пакетов: это число увеличивается на единицу каждый раз когда ограничение на частоту положительных результатов не достигается. Это происходит столько раз, сколько указано в данном параметре. Значение по умолчанию — 5.

 

Блокировка сканирования порта используя iptables

Хакеры так и ждут возможности просканировать открытые порты на вашем сервере и взломать систему безопасности. Чтобы не допустить этого безобразия:

где block-scan — это название новой цепочки.

Надеюсь, что этот пост был максимально полезным для вас!

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий

Вверх