IpTables : Chains
Ниже приведен вариант простейшей настройки iptables .
Рассматривается вариант ppp-соединения .
## добавим модули коннекта (если они не встроены в ядро).
# insmod ip_conntrack
# insmod ip_conntrack_ftp
## создаем правило блокировки .
# iptables -N block
# iptables -A block -m state --state ESTABLISHED,RELATED -j ACCEPT
# iptables -A block -m state --state NEW -i ! ppp0 -j ACCEPT
# iptables -A block -j DROP
## используем это правило из INPUT и FORWARD .
# iptables -A INPUT -j block
# iptables -A FORWARD -j block
Как пакеты проходят через фильтр ?
_____
Входящие / \ Выходящие
-->[Routing ]--->|FORWARD|------->
[Decision] \_____/ ^
| |
v ____
___ / \
/ \ |OUTPUT|
|INPUT| \____/
\___/ ^
| |
----> Local Process ----
Работает вышеописанная схема следующим образом :
есть 3 цепочки : input , forward , output , назовем их chain .
Когда пакет приходит в одну из трех этих блоков , решается его судьба ,
после чего пакет либо дропается , либо движется дальше .
Chain состоит из правил - rules.
Первым делом проверяется поле в заголовке пришедшего пакета , которое называется destination.
Если оно не соответствует нашему ip , то пакет либо дропается , либо форвардится ,
если у вас имеется другой сетевой интерфейс , для которого возможно он предназначен .
Исходящие пакеты , сгенерированные на вашей машине , отправляются наружу немедленно ,
поскольку правило output не прописано вообще .
|
|