Утилита iptables предоставляет широкий набор возможностей по управлению межсетевым экраном. Сегодня разберём один из базовых вопросов — как разрешить или заблокировать определённый IP-адрес через iptables.
Если вы только начинаете работать с утилитой iptables, рекомендую ознакомиться с теорией. Данная статья подразумевает, что читатель уже знаком с синтаксисом утилиты.
Блокируем IP-адреса через iptables
Представим, что нам необходимо заблокировать компьютер (или другое устройство) с IP-адресом 192.168.3.7. В этом случае нам надо выполнить следующую команду:
iptables -A INPUT -s 192.168.3.7 -j DROP
Блокируем всю подсеть 192.168.3.0/24:
iptables -A INPUT -s 192.168.3.0/24 -j DROP
Заблокировать все IP-адреса, кроме 192.168.3.4:
iptables -A INPUT -s 192.168.3.4 -j ACCEPT
iptables -P INPUT DROP
Примеры выше касались входящего трафика. Для исходящего и транзитного трафиков всё аналогично.
Блокируем исходящий трафик узла с IP-адресом 192.168.3.7:
iptables -A OUTPUT -s 192.168.3.7 -j DROP
Блокируем транзитный трафик для всех, кроме 192.168.3.3:
iptables -A FORWARD -s 192.168.3.3 -j ACCEPT
iptables -P FORWARD DROP
Разрешаем IP-адреса через iptables
С разрешением IP-адресов всё очень похоже.
Разрешаем входящий трафик с устройства с IP-адресом 192.168.3.5:
iptables -A INPUT -s 192.168.3.5 -j ACCEPT
Разрешаем всю подсеть 192.168.3.0/24:
iptables -A INPUT -s 192.168.3.0/24 -j ACCEPT
Разрешаем весь входящий трафик, кроме трафика с узла с IP-адресом 192.168.3.2:
iptables -A INPUT -s 192.168.3.2 -j DROP
iptables -P INPUT ACCEPT
Аналогично и для исходящего и транзитного трафиков.
Разрешаем исходящий трафик узла с IP-адресом 192.168.3.7:
iptables -A OUTPUT -s 192.168.3.7 -j ACCEPT
Разрешаем транзитный трафик для всех, кроме 192.168.3.9:
iptables -A FORWARD -s 192.168.3.9 -j DROP
iptables -P FORWARD ACCEPT
Как видите, разрешить или заблокировать трафик с определённых устройств или даже подсетей через iptables не представляет особой сложности. Конечно, IP-адрес это далеко не единственный критерий, на который способны опираться правила межсетевых экранов (брандмауэров). Трафик можно фильтровать по портам и протоколам, чему будут посвящены следующие заметки про iptables.
Статьи по теме: