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 — это название новой цепочки.

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

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

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

Do NOT follow this link or you will be banned from the site!