Всем доброго времени суток! Всю свою осознанную жизнь просидел на FreeBSD и его IPFW. Но теперь встала задача настроить IPTABLES покурив немного манов, что-то я понял и сделал нижеследующее. Прошу Вас покидать в меня камни и на пальцах объяснить если я в чем-то не прав.
#!/bin/sh
# Задаю перменные.
IF_EXT="eth0"
IF_INT="eth1"
IPT="/sbin/iptables"
# Сбрасываю все что было до этого
$IPT -F
$IPT -X
$IPT -t nat -F
$IPT -t nat -X
$IPT -t mangle -F
$IPT -t mangle -X
# Задаю политики по умолчанию. Закрываю все и везде.
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
# Петля
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
# Разрешаю внуренней сети гулять
$IPT -A INPUT -i $IF_INT -j ACCEPT
$IPT -A OUTPUT -o $IF_INT -j ACCEPT
# Разрешаю все что было установлено нами
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# разрешаю пересылку пакетов от локали в мир
$IPT -A FORWARD -i $IF_INT -o $IF_EXT -j ACCEPT
# разрешаем тычить ДНС
$IPT -A OUTPUT -p udp -m udp --dport 53 -j ACCEPT
$IPT -A FORWARD -p udp -m udp --dport 53 -j ACCEPT
# Пинг-понг
$IPT -A OUTPUT -p ICMP --icmp-type 8 -j ACCEPT
# Разрешаю серверу наружу
$IPT -A OUTPUT -o $IF_EXT -j ACCEPT
# Надеваем маски
$IPT -t nat -A POSTROUTING -o $IF_EXT -j MASQUERADE
Сходя из этого я думаю я должен получить следущее:
Из мира меня не видно, никак и никогда. Все пользователи локалки могут гулять в сеть и от туда принимать все. Сервер может обновляться. Собственно это и надо, более сложный уровень я осилю позже. Вопрос еще такой. Дефолтные политики нужно задавать вначале или прописывать в конце? Я об:
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
В IPFW все просто, все что вверху доминирует над тем что внизу, то есть если сверху разрешили, то пофиг что внизу. Я так понимаю что тут тоже самое? И мне нужно сдвинуть блок дефолтных запретов после маскарадинга?
Спасибо всем!