среда, 2 октября 2024 г.

iptables: как управлять правилами фильтрации трафика

 Команда iptables — это основной инструмент для настройки фильтрации сетевого трафика в Linux. 


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


Основные параметры iptables


⏺-A (Append) — добавляет правило в конец цепочки.


iptables -A INPUT -s 192.168.1.1 -j DROP


Пример: блокировка трафика от IP-адреса 192.168.1.1 на вход.


⏺-I (Insert) — вставляет правило в определенное место в цепочке.


iptables -I INPUT 1 -s 10.0.0.1 -j ACCEPT


Пример: разрешение трафика от IP-адреса 10.0.0.1, вставив правило на первую позицию в цепочке.


⏺-D (Delete) — удаляет правило.


iptables -D INPUT 2


Пример: удаление второго правила в цепочке INPUT.


⏺-L (List) — выводит список всех правил в таблице.


iptables -L


Пример: отображение всех активных правил.


⏺-F (Flush) — очищает все правила в цепочке.


iptables -F INPUT


Пример: очистка цепочки INPUT.


Цепочки и политики


• INPUT — отвечает за входящий трафик.

• OUTPUT — управляет исходящим трафиком.

• FORWARD — отвечает за пересылаемый трафик.

Пример для политики по умолчанию, которая блокирует весь входящий трафик:


iptables -P INPUT DROP


Действия (targets)


1️⃣ACCEPT — разрешает пакет.


iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT


Пример: разрешение пакетов из подсети 192.168.0.0/24.


2️⃣DROP — блокирует пакет.


iptables -A FORWARD -d 10.0.0.0/8 -j DROP


Пример: блокировка пересылаемого трафика для сети 10.0.0.0/8.


3️⃣REJECT — блокирует пакет с уведомлением отправителю.


iptables -A INPUT -p tcp --dport 22 -j REJECT