LINUX.ORG.RU
решено ФорумAdmin

И снова.... iptables


0

1

Уважаемые, не обессудьте!

Сервер, 2 сетевушки, ubuntu, squid, apache (експерименты).

Поднял прокси-сервер на squid. Но никак не могу понять КАК разрешить пользователям из локалки получать почту(и др.) по портам: 25, 110, 465, 995. Понял, что нужно разрешить форвардинг в iptables, но как?

Честно читал маны, хелпы, и пр. Уже неделю бьюсь над этим вопросом. Не понимаю принципа настройки iptables.

Помогите. На Вас последняя надежда! + желательно, чтобы настройки сбрасывались после перезагрузки, и применялись скриптом (например /etc/rc.local).

kir_as_goodисправлений: 2> разрешить форвардинг в iptables

не в iptables а в ядре # sysctl -w net.ipv4.ip_forward=1

sdio ★★★★★ ()
Ответ на: комментарий от sdio

> 1 Разрешить прохождение пакетов через FORWARD

2 В POSTROUTING добавить SNAT или MASQUERADE

Как?

Внешний и внутренний IP статичные. Внешний белый.

kir_as_good ()
Ответ на: комментарий от kir_as_good

Где-то так

iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp -i eth0 -o eth1 --dports 25,110,465,995 -j ACCEPT

iptables -t nat -A POSTROUTING -o eth1 --dports 25,110,465,995 -j SNAT $EXTERNAL_IP

sdio ★★★★★ ()
Ответ на: комментарий от tx

Ещё «iptables -A FORWARD -d внутренний IP -j ACCEPT» надо

tx ()

Пусть eth0 это интерфейс в локальную сеть, eth1 во внешнюю, тогда

iptables -P FORWARD DROP
iptables -A FORWARD -j ACCEPT -m state --ctstate RELATED,ESTABLISHED
iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 25 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 110 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 465 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 995 -j ACCEPT

Все правила, FORWARD под вашу задачу настроены.

P.S.: а вообще, настройте лучше свой локальный почтовый сервер. Это даст кучу преимуществ, особенно хорошо они проявятся, когда будете бороться с зараженными всякой дрянью машинками в вашей локалке.

Nastishka ★★★★★ ()
Ответ на: комментарий от kir_as_good

> > iptables -A FORWARD -j ACCEPT -m state --ctstate RELATED,ESTABLISHED

iptables v1.4.4: unknown option `--ctstate' Try `iptables -h' or 'iptables --help' for more information.

Укажите -m conntrack вместо -m state

Nastishka ★★★★★ ()
Ответ на: комментарий от Nastishka

> Пусть eth0 это интерфейс в локальную сеть, eth1 во внешнюю, тогда

Т.к. интерфейс, который подключается через pppoeconf eth0 применил так:

iptables -P FORWARD DROP

iptables -A FORWARD -j ACCEPT -m conntrack --ctstate RELATED,ESTABLISHED

iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 25 -j ACCEPT

iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 110 -j ACCEPT

iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 465 -j ACCEPT

iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 995 -j ACCEPT

но от клиента:

kir@adminko:~$ nc smtp.mail.ru 110

nc: getaddrinfo: Name or service not known

kir_as_good ()
Ответ на: комментарий от fjfalcon

> Открыл порт днс

Кто же так DNS открывает? Во-первых, DNS в большинстве случаев работает по UDP, а во-вторых, правильней будет не открывать DNS через iptables, а запустить на сервере bind в режиме кэширования или dnsmasq :-)

Nastishka ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.