Iptables: установка и настройка

Iptables: установка и настройка

Security

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

Эта программа используется для IPv4, ip6tables — для IPv6.

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

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

Установка межсетевого экрана

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

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

 sudo apt-get install iptables 

В CentOS:

 sudo yum install iptables-services 

В RHEL:

 sudo yum install iptables 

Версии межсетевого экрана

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

 sudo iptables --version 

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

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

 sudo /sbin/rcSuSEfirewall2 stop 

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

 sudo /sbin/rcSuSEfirewall2 start 

Для Ubuntu:

sudo service ufw stop
sudo service ufw start 

Для Debian & RHEL:

sudo /etc/init.d/iptables stop
sudo /etc/init.d/iptables start 

Для CentOS:

sudo service iptables stop
sudo service iptables start 

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

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

 sudo iptables -L 

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

Screenshot iptables

 

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

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

 sudo iptables -S 

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

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

 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 

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

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

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

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

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

  • -A означает добавление нового правила в список.
  • 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 на любой другой свободный номер порта. 

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

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

 sudo iptables -A INPUT -p tcp --dport 135 -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 12.12.12.12/32 --dport 22  -j ACCEPT 

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

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

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

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

Блокирование 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 атаки

Я уверена, что вы все знаете что такое 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.

Блокировка сканирования порта

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

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

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

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

 

Спасибо за уделенное время на прочтение статьи!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасности,  полный курс по кибербезопасностикурсы DevNet (программируемые сети) от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco и Linux с трудоустройством!

Спешите подать заявку! Осталось пару мест. Группы стартуют 22 июля, а следующая 19 августа, 23 сентября, 21 октября, 25 ноября, 16 декабря, 20 января, 24 февраля.
Что Вы получите?
  • Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
  • Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
  • Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
  • Если хотите индивидуальный график — обсудим и осуществим.
  • Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
А еще поможем Вам:
  • отредактировать резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco CCNA Routing & Switching и Linux LPI, подайте заявку или получите бесплатную консультацию.
Security

Больше похожих постов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Самое читаемое
Меню