Работа с iptables в Linux

0 Comments
linux-logo

Сегодня в статье поговорим о защите вашей операционной системы Linux при помощи встроенной утилиты iptables

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

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

sudo iptables -L 

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

Screenshot iptables

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

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

sudo iptables -S 

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

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

sudo iptables -F 

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

sudo iptables -F INPUT
sudo iptables -F OUTPUT
sudo iptables -F FORWARD 

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

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

iptables --policy INPUT DROP  

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

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

iptables --policy INPUT ACCEPT 

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

iptables --policy OUTPUT DROP
iptables --policy FORWARD DROP 

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

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

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

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT 

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

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

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

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT 

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

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

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

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

sudo iptables -A INPUT -p tcp --dport 1080 -j DROP 

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

sudo iptables -A OUTPUT -p tcp --dport 22 -j DROP 

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

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

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

sudo iptables -A INPUT -p tcp -s 0/0 --dport 22  -j ACCEPT 

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

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

sudo iptables -A INPUT -p tcp -s 10.10.10.10/32 --dport 22  -j ACCEPT 

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

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

sudo iptables -A INPUT -p tcp -s 10.10.10.0/24 --dport 22  -j DROP  

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

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

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

sudo iptables -A OUTPUT -p icmp --icmp-type 8 -j DROP 

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

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

sudo iptables -I INPUT -p icmp --icmp-type 8 -j DROP 

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

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

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

iptables -A INPUT -p tcp --dport 80 -m limit --limit 20/minute --limit-burst 100 -j ACCEPT 

, где

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

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

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

sudo iptables -N block-scan
sudo iptables -A block-scan -p tcp —tcp-flags SYN,ACK,FIN,RST -m limit —limit 1/s -j RETURN
sudo iptables -A block-scan -j DROP 

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

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

Если есть вопросы, то пишем в комментариях.

Также можете вступить в Телеграм канал, ВКонтакте или подписаться на Twitter. Ссылки в шапке страницы.
Заранее всем спасибо!!!

RSS

Добавление RSS-ленты на главную страницу этого сайта не поддерживается, так как это может привести к зацикливанию, замедляющему работу вашего сайта. Попробуйте использовать другой блок, например блок Последние записи, для отображения записей сайта.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Скрытые возможности IPTables
Скрытые возможности IPTables

С помощью этого мощного набора расширений для iptables вы сможете строить свои правила основываясь на анализе содержимого пакетов, диапазона портов Читать

Проброс портов (port forwarding) в Linux используя iptables
linux-logo

В этой статье поговорим о том, как можно перенаправить трафик с IP адреса (белого) на другой IP адрес (серый) использую Читать

Защита сайтов на WordPress с помощью Fail2Ban
fail2ban-logo

Ваши сайты на WordPress пытаются ломать? Мой VDS находится под мониторингом Zabbix’а. Вчера я стал активно получать на почту сообщения Читать

Как в fail2ban удалить заблокированный ip-адрес
fail2ban-logo

Как в fail2ban удалить заблокированный ip-адрес с установленной операционной системой Linux

5 1 голос
Рейтинг статьи

Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 комментариев
Inline Feedbacks
Просмотреть все комментарии

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: