Утилита IPTABLES

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

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

Чтобы обновить или установить IPTABLES, необходимо загрузить пакет iptables с помощью пакетного менеджера, например apt-get:

sudo apt-get install iptables

Основные конфигурационные файлы:

/etc/init.d/iptables – скрипт инициализации для запуска, остановки, перезапуск и сохранения наборов правил;
/etc/sysconfig/iptables – файл, в который сохраняются правила;
/sbin/iptables – бинарный файл, в котором находится утилита.

В структуре iptables существует 4 таблицы:

  • Filter – таблица по умолчанию;
  • NAT – предназначена для преобразования сетевых адресов;
  • Mangle – предназначена для внесения специализированных изменений в пакеты;
  • Raw – предназначена для конфигурационных исключений.

Таблица Filter

Filter – это таблица по умолчанию для iptables. Если пользователь не определяет собственную таблицу, то будет использоваться эта таблица правил. Таблица Filter использует три разные цепочки: INPUT, FORWARD и OUTPUT.

INPUT – цепочка, которая используется для управления входящими соединениями. Например, если пользователь пытается подключиться по ssh к серверу, iptables попытается сопоставить IP-адрес и порт с правилом в цепочке input.

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

OUTPUT – цепочка, предназначенная для обработки исходящих соединений. Например, если пользователь попытается выполнить команду ping до определенного хоста, то iptables проверит output-цепочку, чтобы разрешить или отклонить попытку подключения.

Таблица NAT

NAT – предназначена для преобразования сетевых адресов. Таблица NAT имеет следующие встроенные цепочки: PREROUTING, POSTROUTING, OUTPUT.

PREROUTING – изменяет пакеты перед маршрутизацией. Перенаправление предназначено для пакетов поступающих в систему (например в локальную или частную сеть). Цепочка позволяет определить действительный IP-адрес назначения пакетов. Используется для DNAT (NAT назначения). DNAT изменяет целевой адрес пакета.

POSTROUTING – изменяет пакеты после маршрутизации. Перенаправление предназначено для пакетов покидающих систему. Цепочка подменяет исходный адрес пакетов. Это используется для SNAT (источник NAT). SNAT изменяет исходный адрес пакета.

OUTPUT – изменяет пакеты после маршрутизации. Перенаправление предназначено для локальных пакетов. Цепочка изменяет целевой адрес пакетов.

Правила IPTABLES

  • ACCEPT – Входящий пакет обрабатывается;
  • DROP – Входящий пакет отбрасывается, при сканировании порт фильтруется;
  • QUEUE – Пакет передается в пользовательское пространство;
  • RETURN – Прекращается выполнение набора правил в текущей цепочке для этого пакета, элемент управления возвращается вызывающей цепочке;
  • REJECT – Входящий пакет отправляется на адрес источника с информацией, что сервиса не существует;
  • DENY – Входящий пакет отбрасывается, ответ не отправляется;
  • NEW – Установка нового соединения, первый пакет, который видно;
  • RELATED – Соединение, связанное с другим, имеющим статус ESTABLISHED;
  • ESTABLISHED – Установленное сетевое соединение.

Команды для просмотра

Просмотр текущей конфигурации:

sudo iptables --list

Просмотр правила конкретной таблицы:

sudo iptables -t <имя_таблицы> --list

Чтобы вывести правила с нумерацией используется дополнительный ключ –line-numbers:

sudo iptables -L --line-numbers

Блокировка ip-адресов

В данном примере мы блокируем все входящие пакеты с определенного IP:

sudo iptables -t filter -A INPUT -s 192.168.0.112 -j REJECT

# Описание:
t - указывает, в какую таблицу будет входить правило;
A - указывает на добавление (Append) правила в цепочку INPUT;
s - указывает источник;
j - указывает iptables на отклонение трафика с помощью цели REJECT.

Блокировка диапазона IP-адресов:

sudo iptables -A INPUT -s 192.168.0.112/24 -j REJECT

Если необходимо заблокировать исходящий трафик на конкретный ip, используется цепочка OUTPUT и флаг -d для указания ip-адреса назначения:

sudo iptables -A OUTPUT -d 192.168.0.112 -j DROP

Протоколы, интерфейсы

Чтобы заблокировать весь входящий TCP-трафик, нужно с помощью ключа -p указать протокол следующим образом:

sudo iptables -A INPUT -p tcp -j DROP

Чтобы открыть порт, например 80, для подключения по http, используется команда:

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

Для разрешения всех входящих соединений с адаптера, например с eth0, используйте следующее правило:

sudo iptables -A INPUT -i eth0 -j ACCEPT

Вставка и замена правил

Команда вставляет блокировку указанного ip-адреса на первое место:

sudo iptables -I INPUT 1 -s 192.168.0.112 -j ACCEPT

Для замены правила стоящем на определенном месте, необходимо использовать ключ -R. Следующая команда заменит правило стоящее на 1 месте:

sudo iptables -R INPUT 1 -s 192.168.0.112 -j ACCEPT

Удаление правил

Команда для удаление существующего правила:

sudo iptables -D INPUT -s 192.168.0.112/24 -j REJECT

Ключ -D (Drop) означает удаление правила из цепочки.

Также можно удалять правила по номерам строк. Например, удалим третье правило из цепочки INPUT:

sudo iptables -D INPUT 3

Также возможно удалить все правила цепочки – с помощью опции F:

sudo iptables -F INPUT
 
Поделиться в facebook
Facebook
Поделиться в twitter
Twitter
Поделиться в vk
VK
Поделиться в google
Google+
Поделиться в email
Email

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

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

Группа в VK

Помощь проекту

Обнаружили опечатку?

Сообщите нам об этом, выделите текст с ошибкой и нажмите Ctrl+Enter, будем очень признательны!

Свежие статьи

Похожие статьи

Искусство форензики

Искусство форензики

Форензика (компьютерная криминалистика, расследование киберпреступлений) — прикладная наука о раскрытии преступлений, связанных с компьютерной информацией, об исследовании цифровых доказательств, методах поиска, получения и закрепления таких

 
Установка системы мониторинга Zabbix

Установка системы мониторинга Zabbix

Zabbix — это универсальный инструмент мониторинга, способный отслеживать динамику работы серверов и сетевого оборудования, быстро реагировать на внештатные ситуации и предупреждать возможные проблемы с нагрузкой.

 

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

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