Настройка iptables в CentOS 7

Во всех операционных системах, основанных на базе ядра Linux, имеется встроенный межсетевой экран, осуществляющий контроль и фильтрацию входящего и исходящего трафика, исходя из заданных пользователем или платформой правил. В дистрибутиве CentOS 7 по умолчанию такую функцию выполняет утилита iptables, взаимодействуя со встроенным брандмауэром netfilter. Иногда системному администратору или менеджеру сети приходится настраивать работу этого компонента, прописывая соответствующие правила. В рамках сегодняшней статьи мы бы хотели поговорить об основах конфигурации iptables в упомянутой выше ОС.

Настраиваем iptables в CentOS 7

Сам инструмент доступен к работе сразу же после завершения инсталляции CentOS 7, но дополнительно потребуется установить некоторые сервисы, о чем мы и поговорим далее. В рассматриваемой платформе имеется еще один встроенный инструмент, выполняющий функцию фаервола под названием FirewallD. Для избежания конфликтов при дальнейшей работе рекомендуем отключить этот компонент. Развернутые инструкции по этой теме читайте в другом нашем материале по следующей ссылке.

Подробнее: Отключение firewallD в CentOS 7

Как известно, в системе могут применяться протоколы IPv4 и IPv6. Сегодня мы остановимся на примере IPv4, но если вы хотите осуществлять конфигурацию для другого протокола, потребуется вместо команды iptables в консоли использовать ip6tables.

Установка сервисов iptables

Первоочередно следует добавить в систему дополнительные компоненты рассматриваемой сегодня утилиты. Они помогут в настройке правил и других параметров. Загрузка осуществляется из официального хранилища, поэтому не отнимет много времени.

  1. Все дальнейшие действия будут производиться в классической консоли, поэтому запустите ее любым удобным методом.
  2. Запуск терминала для настройки утилиты iptables в CentOS 7

  3. За установку сервисов отвечает команда sudo yum install iptables-services. Введите ее и нажмите на клавишу Enter.
  4. Установка сервисов для работы утилиты iptables в CentOS 7

  5. Подтвердите учетную запись суперпользователя, указав пароль от нее. Обратите внимание, что при запросах sudo вводимые символы в строке никогда не отображаются.
  6. Ввод пароля для установки сервисов iptables в CentOS 7 через терминал

  7. Будет предложено добавить в систему один пакет, подтвердите это действие, выбрав вариант y.
  8. Подтверждение добавления новых пакетов сервисов iptables в CentOS 7

  9. По завершении инсталляции проверьте текущую версию инструмента: sudo iptables --version.
  10. Проверка версии утилиты iptables в CentOS 7 через терминал

  11. Результат появится в новой строке.
  12. Отображение текущей версии утилиты iptables в CentOS 7 через терминал

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

Остановка и запуск сервисов iptables

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

  1. Введите sudo service iptables stop и нажмите на клавишу Enter, чтобы остановить сервисы.
  2. Остановка сервисов утилиты iptables в CentOS 7 через терминал

  3. Для подтверждения этой процедуры укажите пароль суперпользователя.
  4. Ввод пароля для остановки сервисов утилиты iptables в CentOS 7

  5. При успешном выполнении процесса отобразится новая строка, свидетельствующая о внесении изменений в конфигурационный файл.
  6. Уведомление об остановке сервисов утилиты iptables в CentOS 7

  7. Запуск сервисов производится практически так же, только строка обретает вид sudo service iptables start.
  8. Запустить сервисы утилиты iptables в CentOS 7 в терминале

Подобная перезагрузка, запуск или остановка утилиты доступна в любой момент, не забудьте только вернуть обратное значение, когда это будет востребовано.

Просмотр и удаление правил

Как уже было сказано ранее, управление межсетевым экраном производится путем ручного или автоматического добавления правил. Например, некоторые дополнительные приложения могут обращаться к инструменту, изменяя определенные политики. Однако большинство подобных действий все же делается вручную. Просмотр списка всех текущих правил доступен через команду sudo iptables -L.

Отобразить список всех текущих правил утилиты iptables в CentOS 7

В отобразившемся результате будет информация по трем цепочкам: «INPUT», «OUTPUT» и «FORWARD» — входящий, исходящий и пересылаемый трафик соответственно.

Вид списка всех правил утилиты iptables в CentOS 7

Определить статус всех цепочек можно, введя sudo iptables -S.

Отображение списка цепей утилиты iptables в CentOS 7

Если увиденные правила вас не устраивают, они достаточно просто удаляются. Весь список очищается так: sudo iptables -F. После активации правила будут стерты абсолютно для всех трех цепей.

Очистить список всех правил утилиты iptables в CentOS 7

Когда необходимо затронуть только политики из какой-то одной цепи, к строке добавляется дополнительный аргумент:

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

Очистить список правил для определенной цепи iptables в CentOS 7

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

Прием и сбрасывание трафика в цепях

Каждая цепь настраивается отдельно для приема или блокирования трафика. Выставив определенное значение, можно добиться того, что, например, весь входящий трафик будет блокироваться. Для этого команда должна быть sudo iptables --policy INPUT DROP, где INPUT — название цепи, а DROP — значение сброса.

Сброс входящих запросов в утилите iptables в CentOS 7

Точно такие же параметры задаются и для других цепей, например, sudo iptables --policy OUTPUT DROP. Если же необходимо выставить значение на прием трафика, тогда DROP изменяется на ACCEPT и получается sudo iptables --policy INPUT ACCEPT.

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

Как известно, все сетевые приложения и процессы работают через определенный порт. Путем блокировки или разрешения определенных адресов можно контролировать доступ всех сетевых целей. Давайте разберем проброс порта на примере 80. В «Терминале» будет достаточно ввести команду sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT, где — добавление нового правила, INPUT — указание цепи, -P — определение протокола, в этом случае TCP, а --dport — порт назначения.

Правило для открытия порта 80 в утилите iptables в CentOS 7

Точно такая же команда относится и к порту 22, который используется сервисом SSH: sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT.

Правило для открытия порта 22 в утилите iptables в CentOS 7

Для блокирования указанного порта применяется строка точно такого же вида, только в конце ACCEPT изменяется на DROP. В итоге получается, например, sudo iptables -A INPUT -p tcp --dport 2450 -j DROP.

Правило для запрета порта в утилите iptables в CentOS 7

Все эти правила заносятся в конфигурационный файл и вы можете просмотреть их в любой момент. Напоминаем, осуществляется это через sudo iptables -L. Если вместе с портом необходимо разрешить еще и сетевой IP-адрес, строка немного видоизменяется — после TPC добавляется -s и сам адрес. sudo iptables -A INPUT -p tcp -s 12.12.12.12/32 --dport 22 -j ACCEPT, где 12.12.12.12/32 — необходимый IP-адрес.

Правило для принятия IP-адреса и порта в iptables в CentOS 7

Блокирование происходит по тому же принципу, меняя в конце значение ACCEPT на DROP. Тогда получается, например, sudo iptables -A INPUT -p tcp -s 12.12.12.0/24 --dport 22 -j DROP.

Правило для блокировки IP-адреса и порта в iptables в CentOS 7

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

ICMP (Internet Control Message Protocol) — протокол, который входит в состав TCP/IP и задействован для передачи сообщений об ошибках и экстренных ситуациях при работе с трафиком. Например, когда запрашиваемый сервер недоступен, именно этот инструмент выполняет сервисные функции. Утилита iptables позволяет заблокировать его через брандмауэр, а сделать это можно командой sudo iptables -A OUTPUT -p icmp --icmp-type 8 -j DROP. Она произведет блокировку запросов от вашего и к вашему серверу.

Первое правило для блокировки пропинговки iptables в CentOS 7

Входящие запросы блокируются немного иначе. Тогда нужно ввести sudo iptables -I INPUT -p icmp --icmp-type 8 -j DROP. После активации данных правил сервер не будет отвечать на ping-запросы.

Второе правило для блокировки пропинговки в iptables в CentOS 7

Предотвращение несанкционированных действий на сервере

Иногда серверы подвергаются DDoS атакам или другим несанкционированным действиям со стороны злоумышленников. Правильная настройка межсетевого экрана позволит обезопасить себя от подобного рода взломов. Для начала мы рекомендуем задать такие правила:

  1. Пропишите в консоли iptables -A INPUT -p tcp --dport 80 -m limit --limit 20/minute --limit-burst 100 -j ACCEPT, где --limit 20/minute — ограничение на частоту положительных результатов. Единицу измерения вы можете указывать самостоятельно, например, /second, /minute, /hour, /day. --limit-burst number — ограничение на число пропускаемых пакетов. Все значения выставляются индивидуально по предпочтениям администратора.
  2. Правило для безопасности от DDoS в iptables в CentOS 7

  3. Далее можно запретить сканирование открытых портов, чтобы убрать одну из возможных причин взлома. Введите первую команду sudo iptables -N block-scan.
  4. Первое правило для запрета сканирования портов iptables в CentOS 7

  5. Затем укажите sudo iptables -A block-scan -p tcp —tcp-flags SYN,ACK,FIN,RST -m limit —limit 1/s -j RETURN.
  6. Второе правило для запрета сканирования портов iptables в CentOS 7

  7. Последняя третья команда имеет вид: sudo iptables -A block-scan -j DROP. Выражение block-scan в данных случаях — название используемой цепи.
  8. Третье правило для блокирования сканирования портов iptables в CentOS 7

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

Помогла ли Вам статья?
Да Нет

Рекомендуем:

Задайте вопрос или оставьте мнение
Получить ответ на Email
Уведомить о

1 Ответ
По рейтингу
Новые Старые
Межтекстовые Отзывы
Посмотреть все комментарии
Аноним
23 октября 2023 21:05

Спасибо! Очень хорошая статья. Всё просто и понятно объяснено