LINUX.ORG.RU
ФорумAdmin

iptables

 ,


1

2

Доброе время суток.

Такая проблема: Есть шлюз на Ubuntu12 srv в нём 2 сетёвки одна в инет (88.88.88.88), другая в локалку. В локалке есть почтовый-сервер 192.168.0.6

надо вывести почтовые порты наружу, пишу так:
iptables -A PREROUTING -t nat -d 88.88.88.88 -p tcp --dport 25 -j DNAT --to 192.168.0.6:25

После этого пытаюсь подключиться по telnet внутри сети
Microsoft Telnet> open 89.189.183.67 25 Подключение к 89.189.183.67...Не удалось открыть подключение к этому узлу, на по рт 25: Сбой подключения



Последнее исправление: cetjs2 (всего исправлений: 1)

и да, в правиле нету -p TCP, как у Вас применилось --dport?
вообще, должно выглядеть так:

/sbin/iptables -t nat -A PREROUTING -p TCP -d внешний_ип --dport 25 -j DNAT --to-destination 192.168.0.6:25
и если дефолтовая политика для цепочки FORWARD таблицы filter - DROP, то добавьте нужное правило, например:
/sbin/iptables -t filter -A FORWARD $state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -t filter -A FORWARD -p TCP $state DNAT -d 192.168.0.6 --dport 25 -j ACCEPT

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

собственно как доставить? Я в linuxe новичёк

twotwant
() автор топика

После этого пытаюсь подключиться по telnet внутри сети

Не могу понять, ладно вэб, а тут почта. Для чего может понадобиться подключаться к серверу в локалке по внешнему адресу? Чем 192.168.0.6 не устраивает?

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

Спасибо. вы меня выручили ) Да прибудут ваши ноги в сухости.

twotwant
() автор топика
Ответ на: комментарий от lvi

Хочется своё мыло. Веб сервер который одновременно и шлюз перегружен. Поэтому поднял собрал из старья (пользователей не много пара дюжин емайлов) почтовый сервер.

twotwant
() автор топика
Ответ на: комментарий от Nao

Команды прошли успешно. Но изнутри сети пробиться по ip не получается. (С снаружи не знаю... нет другого канала под рукой)

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

Хочется своё мыло

Вопрос в другом. Зачем из локалки обращаться к серверу по внешнему адресу? В почтовых клиентах пишем 192.168.0.6 и простого DNAT достаточно. Если чисто проверить как нат заворачивает из вне, то проверять надо не из локалки.

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

потому что пользователям сложно объяснишь что почту из дома надо по одному адресу. А из офиса по другому.

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

что почту из дома надо

Еще и из дома надо. А получать?, открывать всем imap, pop3 или еще что. Может лучше веб-морду.

lvi ★★★★
()
Ответ на: комментарий от edigaryev
# Generated by iptables-save v1.4.4 on Fri Mar  1 17:00:22 2013
*filter
:INPUT ACCEPT [1:58]
:FORWARD ACCEPT [25:4272]
:OUTPUT ACCEPT [113201:10456911]
:fail2ban-ssh - [0:0]
-A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh 
-A INPUT -i lo -j ACCEPT 
-A INPUT -s 127.0.0.0/8 ! -i lo -j DROP 
-A INPUT -m state --state INVALID -j DROP 
-A INPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP 
-A INPUT -p udp -m udp --dport 138 -j DROP 
-A INPUT -p udp -m udp --dport 113 -j REJECT --reject-with icmp-port-unreachable 
-A INPUT -p udp -m udp --sport 67 --dport 68 -j ACCEPT 
-A INPUT -p udp -j RETURN 
-A INPUT -p icmp -f -j DROP 
-A INPUT -i eth0 -p icmp -m icmp --icmp-type 4 -j ACCEPT 
-A INPUT -i eth0 -p icmp -m icmp --icmp-type 0 -j ACCEPT 
-A INPUT -i eth0 -p icmp -m icmp --icmp-type 12 -j ACCEPT 
-A INPUT -i eth0 -p tcp -m tcp -m multiport --dports 783 -j DROP 
-A INPUT -i eth0 -p tcp -m tcp -m multiport --dports 3306 -j DROP 
-A INPUT -i eth0 -p tcp -m tcp -m multiport --dports 3310 -j DROP 
-A INPUT -i eth0 -p tcp -m tcp -m multiport --dports 10000 -j DROP 
-A INPUT -i eth0 -p udp -m udp --sport 53 --dport 1024:65535 -j ACCEPT 
-A INPUT -i eth0 -p tcp -m tcp --dport 1024:65535 -j ACCEPT 
-A INPUT -i eth0 -p tcp -m tcp --sport 113 --dport 1024:65535 ! --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT 
-A INPUT -i eth0 -p tcp -m tcp --dport 113 -j DROP 
-A INPUT -s 192.168.0.10/32 -i eth1 -p tcp -m tcp --sport 1024:65535 --dport 21 ! --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT 
-A INPUT -s 192.168.0.10/32 -i eth1 -p tcp -m tcp --sport 21 --dport 1024:65535 ! --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT 
-A INPUT -i eth1 -p tcp -m tcp --dport 1024:65535 ! --tcp-flags FIN,SYN,RST,ACK SYN -m multiport --sports 20,21 -j ACCEPT 
-A INPUT -i eth1 -p tcp -m tcp --sport 1024:65535 ! --tcp-flags FIN,SYN,RST,ACK SYN -m multiport --dports 20,21 -j ACCEPT 
-A INPUT -i eth0 -p tcp -m tcp --dport 1024:65535 ! --tcp-flags FIN,SYN,RST,ACK SYN -m multiport --sports 20,21 -j ACCEPT 
-A INPUT -i eth0 -p tcp -m tcp --sport 1024:65535 ! --tcp-flags FIN,SYN,RST,ACK SYN -m multiport --dports 20,21 -j ACCEPT 
-A INPUT -s 192.168.0.10/32 -i eth1 -p tcp -m tcp --sport 1024:65535 --dport 22 ! --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT 
-A INPUT -s 192.168.0.10/32 -i eth1 -p tcp -m tcp --sport 22 --dport 1024:65535 ! --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT 
-A INPUT -s 37.193.64.34/32 -i eth0 -p tcp -m tcp --sport 1024:65535 --dport 22 ! --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT 
-A INPUT -s 37.193.64.34/32 -i eth0 -p tcp -m tcp --sport 22 --dport 1024:65535 ! --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT 
-A INPUT -i eth0 -p tcp -m tcp --sport 25 --dport 1024:65535 ! --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT 
-A INPUT -i eth0 -p tcp -m tcp --dport 1024:65535 ! --tcp-flags FIN,SYN,RST,ACK SYN -m multiport --sports 80,443 -j ACCEPT 
-A INPUT -i eth0 -p tcp -m tcp --sport 1024:65535 ! --tcp-flags FIN,SYN,RST,ACK SYN -m multiport --dports 80,443 -j ACCEPT 
-A INPUT -i eth1 -p tcp -m tcp --dport 1024:65535 ! --tcp-flags FIN,SYN,RST,ACK SYN -m multiport --sports 80,443 -j ACCEPT 
-A INPUT -i eth1 -p tcp -m tcp --sport 1024:65535 ! --tcp-flags FIN,SYN,RST,ACK SYN -m multiport --dports 80,443 -j ACCEPT 
-A INPUT -i eth0 -p tcp -m tcp --sport 110 --dport 1024:65535 ! --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT 
-A INPUT -i eth0 -p tcp -m tcp --sport 143 --dport 1024:65535 ! --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT 
-A INPUT -i eth0 -p tcp -m tcp --sport 20 --dport 1024:65535 -j ACCEPT 
-A INPUT -i eth0 -p tcp -m tcp --sport 1024:65535 --dport 1024:65535 ! --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT 
-A INPUT -i eth0 -p tcp -m tcp --sport 23 --dport 1024:65535 ! --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT 
-A INPUT -i eth0 -p tcp -m tcp --sport 79 --dport 1024:65535 ! --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT 
-A INPUT -i eth0 -p tcp -m tcp --sport 43 --dport 1024:65535 ! --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT 
-A INPUT -i eth0 -p tcp -m tcp --sport 70 --dport 1024:65535 ! --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT 
-A INPUT -i eth0 -p tcp -m tcp --sport 210 --dport 1024:65535 ! --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT 
-A FORWARD -m state --state INVALID -j DROP 
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A FORWARD -d 192.168.0.0/24 -i eth0 -o eth1 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT 
-A FORWARD -s 192.168.0.0/24 -i eth1 -o eth0 -j ACCEPT 
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT 
-A OUTPUT -o lo -j ACCEPT 
-A OUTPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP 
-A OUTPUT -p udp -j ACCEPT 
-A OUTPUT -p icmp -f -j DROP 
-A OUTPUT -o eth0 -p icmp -m icmp --icmp-type 4 -j ACCEPT 
-A OUTPUT -o eth0 -p icmp -m icmp --icmp-type 8 -j ACCEPT 
-A OUTPUT -o eth0 -p icmp -m icmp --icmp-type 12 -j ACCEPT 
-A OUTPUT -o eth0 -p udp -m udp --sport 1024:65535 --dport 53 -j ACCEPT 
-A OUTPUT -o eth0 -p tcp -m tcp --sport 1024:65535 --dport 53 -j ACCEPT 
-A OUTPUT -o eth0 -p tcp -m tcp --sport 1024:65535 --dport 113 -j ACCEPT 
-A OUTPUT -o eth1 -p tcp -m tcp --sport 21 --dport 1024:65535 -j ACCEPT 
-A OUTPUT -o eth1 -p tcp -m tcp --sport 1024:65535 --dport 21 -j ACCEPT 
-A OUTPUT -o eth1 -p tcp -m tcp --sport 1024:65535 -m multiport --dports 20,21 -j ACCEPT 
-A OUTPUT -o eth1 -p tcp -m tcp --dport 1024:65535 -m multiport --sports 20,21 -j ACCEPT 
-A OUTPUT -o eth0 -p tcp -m tcp --sport 1024:65535 -m multiport --dports 20,21 -j ACCEPT 
-A OUTPUT -o eth0 -p tcp -m tcp --dport 1024:65535 -m multiport --sports 20,21 -j ACCEPT 
-A OUTPUT -o eth1 -p tcp -m tcp --sport 22 --dport 1024:65535 -j ACCEPT 
-A OUTPUT -o eth1 -p tcp -m tcp --sport 1024:65535 --dport 22 -j ACCEPT 
-A OUTPUT -o eth0 -p tcp -m tcp --sport 22 --dport 1024:65535 -j ACCEPT 
-A OUTPUT -o eth0 -p tcp -m tcp --sport 1024:65535 --dport 22 -j ACCEPT 
-A OUTPUT -o eth0 -p tcp -m tcp --sport 1024:65535 --dport 25 -j ACCEPT 
-A OUTPUT -o eth0 -p tcp -m tcp --sport 1024:65535 -m multiport --dports 80,443 -j ACCEPT 
-A OUTPUT -o eth0 -p tcp -m tcp --dport 1024:65535 -m multiport --sports 80,443 -j ACCEPT 
-A OUTPUT -o eth1 -p tcp -m tcp --sport 1024:65535 -m multiport --dports 80,443 -j ACCEPT 
-A OUTPUT -o eth1 -p tcp -m tcp --dport 1024:65535 -m multiport --sports 80,443 -j ACCEPT 
-A OUTPUT -o eth0 -p tcp -m tcp --sport 1024:65535 --dport 110 -j ACCEPT 
-A OUTPUT -o eth0 -p tcp -m tcp --sport 1024:65535 --dport 143 -j ACCEPT 
-A OUTPUT -o eth0 -p tcp -m tcp --sport 1024:65535 --dport 20 ! --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT 
-A OUTPUT -o eth0 -p tcp -m tcp --sport 1024:65535 --dport 1024:65535 -j ACCEPT 
-A OUTPUT -o eth0 -p tcp -m tcp --sport 1024:65535 --dport 23 -j ACCEPT 
-A OUTPUT -o eth0 -p tcp -m tcp --sport 1024:65535 --dport 79 -j ACCEPT 
-A OUTPUT -o eth0 -p tcp -m tcp --sport 1024:65535 --dport 43 -j ACCEPT 
-A OUTPUT -o eth0 -p tcp -m tcp --sport 1024:65535 --dport 70 -j ACCEPT 
-A OUTPUT -o eth0 -p tcp -m tcp --sport 1024:65535 --dport 210 -j ACCEPT 
-A OUTPUT -o eth0 -p udp -m udp --sport 32769:65535 --dport 33434:33523 -j ACCEPT 
-A fail2ban-ssh -j RETURN 
COMMIT
# Completed on Fri Mar  1 17:00:22 2013
# Generated by iptables-save v1.4.4 on Fri Mar  1 17:00:22 2013
*nat
:PREROUTING ACCEPT [865344:57753834]
:OUTPUT ACCEPT [5998:390878]
:POSTROUTING ACCEPT [5905:382202]
-A PREROUTING -d 89.189.183.67/32 -p tcp -m tcp --dport 25 -j DNAT --to-destination 192.168.0.6:25 
-A POSTROUTING -o eth0 -j MASQUERADE 
COMMIT
# Completed on Fri Mar  1 17:00:22 2013
twotwant
() автор топика
Ответ на: комментарий от twotwant

Правила писал наркоман, либо компьютерная программа.

Смотри tcpdump'ом на шлюзе приходят ли вообще пакеты из внешки на 25 порт твоего шлюза.

edigaryev ★★★★★
()

разобрались?

# telnet 89.189.183.67 25
Trying 89.189.183.67...
Connected to 89.189.183.67.
Escape character is '^]'.
220 nskestate.ru ESMTP Postfix (Ubuntu)

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

Да спасибо за всё. вроде начал разбираться. P.S. Правила действительно писал наркоман, в планах всё переписать когда разберусь с iptables

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