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

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

Рубрики:

Firewall, Linux, Security

Метки:

, ,

Утилита iptables представляет собой стандартный интерфейс, позволяющий настраивать межсетевой экран, который входит во все ядра Linux (с версии 2.4). Стоит отметить, что iptables предоставляет возможность добавлять или удалять различные правила безопасности, соответствующие его настройкам.

Интересно, что для IPv4 используется утилита iptables, тогда как для IPv6 — утилита ip6tables.

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

Содержание:

  1. Установка утилиты iptables
  2. Как узнать версию iptables
  3. Как запустить и остановить межсетевой экран
  4. Работа с правилами утилиты iptables
    1. Вывод списка правил
    2. Как удалять правила
    3. Как сохранять правила
    4. Как восстанавливать правила
    5. Как добавлять правила
    6. Автоматическое сохранение правил
  5. Разрешения и блокировки в утилите iptables
    1. Работа с цепочками ACCEPT или DROP
    2. Разрешение портов
    3. Блокировка портов
    4. Разрешение IP-адресов и портов
    5. Блокировка ICMP
    6. Как предотвращать DDoS-атаки
    7. Блокировка сканирования порта
  6. Выводы

Установка утилиты iptables

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

Теперь рассмотрим команды для установки iptables в различные дистрибутивы Linux.

В Ubuntu или Debian:

 

В CentOS:

 

В RHEL:

Как узнать версию iptables

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

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

Теперь давайте рассмотрим команды для запуска и остановки межсетевого экрана в различных дистрибутивах Linux.

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

 

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

 

Далее приведем аналогичные пары команд для других дистрибутивов.

Для Ubuntu:

 

Для Debian & RHEL:

 

Для CentOS:

Работа с правилами утилиты iptables

В рамках использования iptables, пользователь может удалять правила, сохранять их, добавлять, восстанавливать. Для каждого из этих действий существуют довольно простые команды.

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

У iptables правило имеет три составляющих: условие, действие и счетчик. Если пакет соответствует условию, то тогда к нему применяется действие, следовательно, он учитывается счетчиком. Если же конкретного условия нет, то автоматически применяется условие «все пакеты». Если нет действия, то правило будет работать в виде счетчика.

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

 

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

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

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

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

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

 

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

 

Если Вам нужно удалить конкретное правило из iptables, то сперва следует посмотреть, какие правила уже активны, при помощи команды:

 

Пример вывода:

 

Теперь можно удалить конкретное правило с помощью команды:

Как сохранять правила

Если Вам нужно сохранить правило, воспользуйтесь командой:

Как восстанавливать правила

Если Вам нужно восстановить правила, то примените команду:

 

Важно: при этом использующиеся правила удалятся.

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

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

Автоматическое сохранение правил

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

Разрешения и блокировки в утилите iptables

Теперь поговорим о различных возможностях утилиты iptables в блокировке и разрешениях.

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

Выше мы уже говорили о том, что цепочка является упорядоченной последовательностью правил. Для того, чтобы принимать или откидывать отдельные цепочки существует ряд определенных команд для терминала.

Если Вы хотите запретить принимать любой трафик на этом сервере, введите команду:

 

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

 

Аналогичные команды подойдут и для работы с цепочками OUTPUT и FORWARD:

 

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

Если Вам нужно разрешить уже установленные соединения, введите команду:

Разрешение портов

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

 

Где:

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

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

 

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

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

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

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

 

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

 

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

Разрешение IP-адресов и портов

Чтобы разрешить 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-атаки

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

 

Где:

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

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

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

 

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

Выводы

Надеюсь, что этот пост был максимально полезным для Вас! Теперь Вы больше знаете о том, как работать с многофункциональной утилитой iptables и настраивать с ее помощью межсетевой экран.

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

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

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

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

Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!

Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
  • Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
  • Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проведем вечерние онлайн-лекции на нашей платформе.
  • Согласуем с вами удобное время для практик.
  • Если хотите индивидуальный график — обсудим и реализуем.
  • Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
  • Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
  • отредактировать или создать с нуля резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.

Рубрики:

Firewall, Linux, Security

Метки:

, ,

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

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

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

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

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

Поиск по сайту
Лучшее
Популярное
Рубрики
Меню