Доброго времени суток!
Злыми силами было поставлено задание поднять интернет-шлюз на Debian. До определенного момента проблем не возникало. Система, сетевые карты и Сквид работают так как нужно. Осталось малое - настроить порты для почты и бухгалтерских программ.
Как я изначально настраивал iptables:
Показать
# Помещаем скрипт в /etc/init.d/
# Делаем файл исполнимым: chmod +x /etc/init.d/netfilter
# Прописываем в файл стандартный заголовок для shell-скриптов: #!/bin/bash
# Добавляем скрипт в автозагрузку: update-rc.d netfilter defaults
Базовый конфиг:
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -F -t nat
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i to -j ACCEPT
iptables -A INPUT -s 192.168.0.0/24 -i eth1 -j ACCEPT
Здесь все должно работать, т.к. если прописать DROP всех типов пакетов, то интернет перестает раздаваться.
Сайты и мануалы, которые я читал на эту тему:
Показать
http://www.itcomp.org.ua/os/linux/debian-proxy-3/
http://linux-bsd.in.ua/iptables-for-newbies/122-kak-v-iptables-probrosit-port.html
http://sites.google.com/site/debianschool/2-servers/pocta-pop-smtp
http://www.linux.by/wiki/index.php/Debian_Firewall
http://www.opennet.ru/docs/RUS/iptables/
etc.
Варианты открытия портов почты, которые я пробовал:
Показать
#1
#iptables -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
#iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to-source 195.2.89.146
#2
#iptables -A FORWARD -o eth0 -m state --state NEW -p tcp --dport 25 -j ACCEPT
#iptables -A INPUT -p tcp --dport 25 -m state --state NEW -j ACCEPT
#iptables -A FORWARD -o eth0 -m state --state NEW -p tcp --dport 110 -j ACCEPT
#iptables -A INPUT -p tcp --dport 110 -m state --state NEW -j ACCEPT
# 3
#iptables -A PREROUTING -i eth1 -p tcp --sport 8110 --dport 110 -j ACCEPT
#iptables -A INPUT -i eth0 -p tcp --sport 110 --dport 8110 -j ACCEPT
#iptables -A OUTPUT -o eth0 -p tcp --sport 8110 --dport 110 -j ACCEPT
#iptables -A PREROUTING -i eth1 -p tcp --sport 8025 --dport 25 -j ACCEPT
#iptables -A INPUT -i eth0 -p tcp --sport 25 --dport 8025 -j ACCEPT
#iptables -A OUTPUT -o eth0 -p tcp --sport 8025 --dport 25 -j ACCEPT
# 4
#iptables -A FORWARD -i eth1 -o eth0 -p tcp -m multiport --destination-port 25,110 -j ACCEPT
#iptables -A FORWARD -i eth0 -o eth1 -p tcp -m multiport --source-port 25,110 -j ACCEPT
#iptables -A INPUT -i eth1 -p tcp --dport 110 -j ACCEPT
#iptables -A OUTPUT -o eth1 -p tcp --sport 110 -j ACCEPT
#iptables -A INPUT -i eth1 -p tcp --dport 25 -j ACCEPT
#iptables -A OUTPUT -o eth1 -p tcp --sport 25 -j ACCEPT
#iptables -A INPUT -i eth0 -p tcp --dport 110 -j ACCEPT
#iptables -A OUTPUT -o eth0 -p tcp --sport 110 -j ACCEPT
#iptables -A INPUT -i eth0 -p tcp --dport 25 -j ACCEPT
#iptables -A OUTPUT -o eth0 -p tcp --sport 25 -j ACCEPT
# 5
#LOCALNET=192.168.0.0/32
#iptables -A FORWARD -p tcp -s $LOCALNET -d smtp.mail.ru --dport 25 -j ACCEPT
#iptables -A FORWARD -p tcp -s smtp.mail.ru -d $LOCALNET --sport 25 -j ACCEPT
#iptables -A FORWARD -p tcp -s $LOCALNET -d pop.mail.ru --dport 110 -j ACCEPT
#iptables -A FORWARD -p tcp -s pop.mail.ru -d $LOCALNET --sport 110 -j ACCEPT
#iptables -t nat -A POSTROUTING -p tcp -s $LOCALNET --dport 110 -j MASQUERADE
#iptables -t nat -A POSTROUTING -p tcp -s $LOCALNET --dport 25 -j MASQUERADE
#6
#iptables -t nat -A PREROUTING -d 192.168.0.1 -p tcp -m tcp --dport 8110 -j DNAT --to-destination 94.100.177.6:110
#iptables -A FORWARD -d 94.100.177.6 -j ACCEPT
#iptables -A FORWARD -s 94.100.177.6 -j ACCEPT
#iptables -t nat -A POSTROUTING -d 94.100.177.6 -j SNAT --to-source 192.168.0.1
#iptables -t nat -A PREROUTING -d 192.168.0.1 -p tcp -m tcp --dport 8025 -j DNAT --to-destination 94.100.177.1:25
#iptables -A FORWARD -d 94.100.177.1 -j ACCEPT
#iptables -A FORWARD -s 94.100.177.1 -j ACCEPT
#iptables -t nat -A POSTROUTING -d 94.100.177.1 -j SNAT --to-source 192.168.0.1
#iptables -t nat -A PREROUTING -p tcp -d 195.2.89.146 -dport 8110 -j DNAT -to-destination 192.168.0.101:8110
#iptables -t nat -A POSTROUTING -p tcp -dst 192.168.0.101 -dport 8110 -j SNAT -to-source 195.2.89.146
#7
#iptables -A INPUT -i eth0 -p tcp ! --syn --source-port 110 --destination-port 8110 -j ACCEPT
#iptables -A OUTPUT -o eth0 -p tcp --source-port 110 --destination-port 80 -j ACCEPT
#iptables -A INPUT -i eth0 -p tcp ! --syn --source-port 25 --destination-port 8025 -j ACCEPT
#iptables -A OUTPUT -o eth0 -p tcp --source-port 25 --destination-port 80 -j ACCEPT
#8
#iptables -A FORWARD -p tcp --dport 110 -i eth1 -j ACCEPT
#iptables -A FORWARD -p tcp --dport 25 -i eth1 -j ACCEPT
#iptables -A FORWARD -p tcp --sport 110 -i eth0 -j ACCEPT
#iptables -A FORWARD -p tcp --sport 25 -i eth0 -j ACCEPT
#9
#iptables -A PREROUTING -t nat -p tcp -i eth1 --dport 110 -j DNAT --to-source 195.2.89.146:110
#iptables -A PREROUTING -t nat -p tcp -i eth1 --dport 25 -j DNAT --to-source 195.2.89.146:25
# 10
#iptables -A INPUT -i eth0 -p tcp --dport 25 -j ACCEPT
#iptables -A OUTPUT -i eth0 -p tcp --dport 110 -j ACCEPT
# 11
#iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 110 -j DNAT --to-destination 192.168.0.101:110
#iptables -t nat -A PREROUTING -i eth0 -p udp --dport 110 -j DNAT --to-destination 192.168.0.101:110
Для применения параметров я делал рестарт Нетфильтра и рестарт сети (.../netfilter restart; .../networking restart )
Соответственно в почтовых клиентах пробовался как вариант с прямым доступом к почтовому серверу, так и вариант с прописыванием в клиент айпи прокси сервера, в зависимости от типа правила.
С виндовым сервером почта с тех же клиентских машин идельно работала после обычного портмаппинг правила в Usergate.
Я сделал какую-то очень детскую или глупую ошибку? Не могут же все эти правила быть неверными, часть из них взята с этого же форума.
ps. система - Debian Lenny, ядро 2.6.26, версия iptables - 1.4.2, графического интерфейса нет, только консоль.