1 (05.03.2013 10:49:02 отредактировано dirsex)

Здравствуйте.

Что имеем:

Сервер (Шлюз)
  eth0 - ИНТЕРНЕТ - x.x.x.x;
  eth1 - локалка - 192.168.50.1;

Почтовый сервак - 192.168.50.3;

Суть сети такая, всего 5 ПК имеют доступ к интернету:
    192.168.50.3,
    192.168.50.194,
    192.168.50.198,
    192.168.50.171,
    192.168.50.157.
один из которых SmartTV телек, для него работает udproxy для iptv ниже в правилах будет видно, что к чему.

Остальные несколько компов при заходе на любой сайт пользуются услугами так называемого локального сайта.

Впрочем все это не очень важно, так для пояснения моей убогой таблицы iptables.

IPTABLES

+ открыть спойлер

root@server:/opt# iptables-save
# Generated by iptables-save v1.4.4 on Tue Mar  5 13:07:26 2013
*nat
:PREROUTING ACCEPT [1608:186610]
:POSTROUTING ACCEPT [1107:70078]
:OUTPUT ACCEPT [991:62938]
-A PREROUTING -p tcp -m tcp --dport 995 -j DNAT --to-destination 192.168.50.3:995
-A PREROUTING -p tcp -m tcp --dport 993 -j DNAT --to-destination 192.168.50.3:993
-A PREROUTING -p tcp -m tcp --dport 587 -j DNAT --to-destination 192.168.50.3:587
-A PREROUTING -p tcp -m tcp --dport 143 -j DNAT --to-destination 192.168.50.3:143
-A PREROUTING -p tcp -m tcp --dport 110 -j DNAT --to-destination 192.168.50.3:110
-A PREROUTING -p tcp -m tcp --dport 443 -j DNAT --to-destination 192.168.50.3:443
-A PREROUTING -p tcp -m tcp --dport 25 -j DNAT --to-destination 192.168.50.3:25
-A PREROUTING -s 192.168.50.177/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.50.1:81
-A PREROUTING -s 192.168.50.200/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.50.1:81
-A PREROUTING -s 192.168.50.195/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.50.1:81
-A PREROUTING -s 192.168.50.219/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.50.1:81
-A PREROUTING -s 192.168.50.161/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.50.1:81
-A PREROUTING -s 192.168.50.195/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.50.1:81
-A PREROUTING -s 192.168.50.188/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.50.1:81
-A PREROUTING -s 192.168.50.152/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.50.1:81
-A PREROUTING -s 192.168.50.183/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.50.1:81
-A PREROUTING -s 192.168.50.177/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.50.1:81
-A POSTROUTING -s 192.168.50.3/32 -o eth0 -j MASQUERADE
-A POSTROUTING -s 192.168.50.194/32 -o eth0 -j MASQUERADE
-A POSTROUTING -s 192.168.50.198/32 -o eth0 -j MASQUERADE
-A POSTROUTING -s 192.168.50.171/32 -o eth0 -j MASQUERADE
-A POSTROUTING -s 192.168.50.157/32 -o eth0 -j MASQUERADE
COMMIT
# Completed on Tue Mar  5 13:07:26 2013
# Generated by iptables-save v1.4.4 on Tue Mar  5 13:07:26 2013
*filter
:INPUT ACCEPT [2415:799277]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [23927:10209445]
-A INPUT -i lo -j ACCEPT
-A INPUT -d 224.0.0.0/4 -i eth0 -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --dport 1234 -j ACCEPT
-A FORWARD -d 192.168.50.3/32 -p tcp -m tcp --dport 995 -j ACCEPT
-A FORWARD -d 192.168.50.3/32 -p tcp -m tcp --dport 993 -j ACCEPT
-A FORWARD -d 192.168.50.3/32 -p tcp -m tcp --dport 587 -j ACCEPT
-A FORWARD -d 192.168.50.3/32 -p tcp -m tcp --dport 143 -j ACCEPT
-A FORWARD -d 192.168.50.3/32 -p tcp -m tcp --dport 110 -j ACCEPT
-A FORWARD -d 192.168.50.3/32 -p tcp -m tcp --dport 443 -j ACCEPT
-A FORWARD -d 192.168.50.3/32 -p tcp -m tcp --dport 25 -j ACCEPT
-A FORWARD -i eth1 -o eth0 -j ACCEPT
-A FORWARD -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o eth1 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -s 192.168.50.3/32 -o eth0 -j ACCEPT
-A FORWARD -s 192.168.50.194/32 -o eth0 -j ACCEPT
-A FORWARD -s 192.168.50.198/32 -o eth0 -j ACCEPT
-A FORWARD -s 192.168.50.171/32 -o eth0 -j ACCEPT
-A FORWARD -s 192.168.50.157/32 -o eth0 -j ACCEPT
COMMIT
# Completed on Tue Mar  5 13:07:26 2013

Все работает нормально, кроме....

Суть проблемы

Значит ситуация такая, при таких правилах на почтовый сервак (192.168.50.3) письма приходят нормально, но не отправляются. С настройками там все ровно т.к. при выполнении с почтового сервака команду telnet 94.100.176.20 25, соединение отваливается по тайм-ауту. Если такуюже команду выполнить со шлюза, то соединение проходит нормально.

Убираю из вышеприведенных правил строки:

-A PREROUTING -p tcp -m tcp --dport 25 -j DNAT --to-destination 192.168.50.3:25
-A FORWARD -d 192.168.50.3/32 -p tcp -m tcp --dport 25 -j ACCEPT

Теперь 25 порт естественно закрыт и не пробрасывается, с почтового сервера теперь команда telnet на почтовик mail.ru проходит успешно и не отваливается по тайму, НО т.к. порт закрыт входящие письма не резолвятся.


Пожалуйста помогите решить мне эту делему с пробросом этого долбанного 25 порта, сутки не спал, гугл уже страниц 100 облистал, те варианты которые там были не заработали.

2 (05.03.2013 10:10:35 отредактировано kisil)

Тоисть ваш почтовик виден с наружы и он принимает письма, но не может их переслать если есть ети правила

dirsex пишет:

-A PREROUTING -p tcp -m tcp --dport 25 -j DNAT --to-destination 192.168.50.3:25
-A FORWARD -d 192.168.50.3/32 -p tcp -m tcp --dport 25 -j ACCEPT

Верно?
Покажыте таблицу маршрутизацыи на шлюзе и на почтовике.

Trouble  in WINDOWS reboot, trouble in UNIX be root.

3

А форвард пакетов включён на шлюзе

echo 1 > /proc/sys/net/ipv4/ip_forward

И попробуйте ничего не меняя добавить такое правило

-A FORWARD -s 192.168.50.3/32 -o eth0 -j ACCEPT
Trouble  in WINDOWS reboot, trouble in UNIX be root.

4

Спасибо за ответ, думал уже никто не поможет.

Форвардинг конечно включен) Все остальное то по правилам работает, проблема тока в этом порте.

kisil пишет:

И попробуйте ничего не меняя добавить такое правило

-A FORWARD -s 192.168.50.3/32 -o eth0 -j ACCEPT

Дык у меня там есть это правило.


Вот вывод шлюза

root@server:/opt# netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.50.0    0.0.0.0         255.255.255.0   U         0 0          0 eth1
5.100.78.0      0.0.0.0         255.255.254.0   U         0 0          0 eth0
0.0.0.0         5.100.78.1      0.0.0.0         UG        0 0          0 eth0

вывод почтовика

[root@mail ~]# netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.50.0    0.0.0.0         255.255.255.0   U         0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0
0.0.0.0         192.168.50.1    0.0.0.0         UG        0 0          0 eth0

5

dirsex пишет:

Дык у меня там есть это правило.

Точно есть не досмотрел.

Trouble  in WINDOWS reboot, trouble in UNIX be root.

6

kisil пишет:

Тоисть ваш почтовик виден с наружы и он принимает письма, но не может их переслать если есть ети правила

да именно так! Стоит убрать правила письма начнут отправляться НО он не будет их принимать!

7

Ну а сам почтовик может пинговать например какието адреса в интернете. Например

ping ukr.net

что говорит?

Trouble  in WINDOWS reboot, trouble in UNIX be root.

8 (05.03.2013 10:24:38 отредактировано dirsex)

да конечно, доступ к интернету у него есть. Я весь софт из репозитория ставил.

[root@mail ~]# ping ukr.net -c4
PING ukr.net (195.214.195.105) 56(84) bytes of data.
64 bytes from 195.214.195.105: icmp_seq=1 ttl=48 time=177 ms
64 bytes from 195.214.195.105: icmp_seq=2 ttl=48 time=178 ms
64 bytes from 195.214.195.105: icmp_seq=3 ttl=48 time=178 ms
64 bytes from 195.214.195.105: icmp_seq=4 ttl=48 time=178 ms

--- ukr.net ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3182ms
rtt min/avg/max/mdev = 177.944/178.157/178.252/0.531 ms

9 (05.03.2013 10:45:27 отредактировано kisil)

Кажысь проблема может быть в этом правиле

-A PREROUTING -p tcp -m tcp --dport 25 -j DNAT --to-destination 192.168.50.3:25

Это мои мысли и они такие.
Что когда почтовик пробует конект в интернет но порт 25 он сперва идёт на шлюз и  порт 25 и пробует узнать как ему попасть, например, на ukr.net:25, но шлюз видит конек по 25 порту и принимает решение о маршрутизацыи, а оно такое что нужно пакет послать на DNAT --to-destination 192.168.50.3:25, тоисть шлюз возвращает пакет назад. В цепочке PREROUTING принимаетса решение о маршрутизацыи ещё до того как пакет попадёт в цепочку filter и fоrward. Поетому мне кажытса нужно в ето правило добавить значение интерфейса с которого ждать соединение с наружы, тоисть -i eth0.

-A PREROUTING -p tcp -m tcp -i eth0 --dport 25 -j DNAT --to-destination 192.168.50.3:25

Попробуйте, я не знаю пройдёт ли такое правило, потому что сам такого не делал.

Trouble  in WINDOWS reboot, trouble in UNIX be root.

10

ay

Спасибо большое добрый человек! Буду исправлять свои правила, все заработало как часики!

тема на 100% решена! =)))

11

Ну и хорошо. Пусть работает.

Trouble  in WINDOWS reboot, trouble in UNIX be root.