LINUX.ORG.RU
ФорумAdmin

Не открываются сайтики при работающем nat'e


0

1

Все отлично работало. Но потом я решил настроить на шлюзе Exim4. И в ходе настройки заметил, что сайтики перестали открываться.

Дефолтроут верен:

ert-HP-ProBook-4515s ~ # route
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.13.0    *               255.255.255.0   U     0      0        0 wlan0
default         192.168.13.1    0.0.0.0         UG    0      0        0 wlan0

Пинги ходят:

ert-HP-ProBook-4515s ~ # ping ya.ru
PING ya.ru (93.158.134.203) 56(84) bytes of data.
64 bytes from www.yandex.ru (93.158.134.203): icmp_req=1 ttl=55 time=33.0 ms
64 bytes from www.yandex.ru (93.158.134.203): icmp_req=2 ttl=55 time=33.1 ms
^C
--- ya.ru ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms

192.168.13.1 — это LAN шлюза. При этом с сервера elinks и w3m все открывают. Шлюз получает интернет по pptp. Длина mtu установлена 1416. В iptables все разрешил.

Какие именно действия при настройке exim привели к тому, что все похерилось, я не понимаю. Взываю к телепатам.

жара, лето, отпуск

//телепаты.

val-amart ★★★★★
()

iptables -t mangle -A FORWARD -p tcp -m tcp --tcp-flags RST,SYN SYN -j TCPMSS --clamp-mss-to-pmtu
есть?
и вообще
iptables -L -v -n
iptables -L -v -n -t nat
где?

hizel ★★★★★
()

сам по себе exim точно ничего с сетью не мог сделать :). Комп ребутал, пыль с него сдувал? :).

true_admin ★★★★★
()
Ответ на: комментарий от hizel
root@svo-server:~# iptables -L -v -n 
Chain INPUT (policy ACCEPT 929 packets, 72052 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 7345 packets, 3359K bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 837 packets, 65959 bytes)
 pkts bytes target     prot opt in     out     source               destination         
root@svo-server:~# iptables -L -v -n -t nat
Chain PREROUTING (policy ACCEPT 2850 packets, 252K bytes)
 pkts bytes target     prot opt in     out     source               destination         
    1    60 DNAT       tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80 to:192.168.13.10 
   85  4692 DNAT       tcp  --  eth1   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80 to:192.168.13.10 

Chain POSTROUTING (policy ACCEPT 86 packets, 4752 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 1393  146K MASQUERADE  all  --  *      eth0    0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT 11 packets, 1125 bytes)
 pkts bytes target     prot opt in     out     source               destination

iptables -t mangle -A FORWARD -p tcp -m tcp --tcp-flags RST,SYN SYN -j TCPMSS --clamp-mss-to-pmtu добавил только что. Но ранее ведь работало несколько месяцев и без него.

Я правил /etc/hosts , но потом все вернул как было. Exim ставил по этому туториалу — http://library.linode.com/email/exim/send-only-mta-ubuntu-10.04-lucid

Комп ребутал, пыль сдувал, молился Богу электричества.

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

Та да. Iptables поднимается скриптом:

#!/bin/bash

 #################################################################
 # Dannyj skript osnovan na drevnem manuale s sajta gentoo.ru.   #
 # Za vsyo vremya ne dal ni odnoj osechki, esli konechno ya ego horosho#
 # skopiroval! ;) Udachi vsem!                                    #
 #################################################################

 #Obnulyaem vse pravila v iptables
 iptables -F
 iptables -t nat -F
 #Ustanovim politiki po umolchaniyu dlya trafika, ne sootvetstvuyushchego ni odnomu iz pravil
 iptables -P INPUT ACCEPT
 iptables -P OUTPUT ACCEPT
 iptables -P FORWARD ACCEPT
 #Dlya naglyadnosti
 export LAN=eth1
 export WAN=eth0
 
 
 
 #Sozdadim pravila d
 iptables -t nat -A POSTROUTING -o ${WAN} -j MASQUERADE
 iptables -t nat -A PREROUTING -p tcp --dport 80 -i ${WAN} -j DNAT --to 192.168.13.10
iptables -t nat -A PREROUTING -p tcp --dport 80 -i ${LAN} -j DNAT --to 192.168.13.10
iptables -t mangle -A FORWARD -p tcp -m tcp --tcp-flags RST,SYN SYN -j TCPMSS --clamp-mss-to-pmtu
#Soobshchaem yadru, chto ip-forvarding razreshen
 echo 1 > /proc/sys/net/ipv4/ip_forward
 for f in /proc/sys/net/ipv4/conf/*/rp_filter ; do echo 1 > $f ; done
 #Sohranyaem pravila, chtob ne zapuskat' bol'she e'tot skript i dobalyaem iptables v avtozagruzku
 echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
 echo "net.ipv4.conf.default.rp_filter = 1" >> /etc/sysctl.conf
 #Zakommentirujte, esli u vas staticheskij adres u provajdera
 echo "net.ipv4.ip_dynaddr = 1" >> /etc/sysctl.conf
 /etc/init.d/networking restart

И еще я только что обнаружил, что у меня открывается gmail. То есть https работает.

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

>85 4692 DNAT tcp  — eth1 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 to:192.168.13.10

вот это правило ИМХО какое-то неправильное. попробуй, как уже порекомендовали выше очистить PREROUTING

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

вот это правило ИМХО какое-то неправильное. попробуй, как уже порекомендовали выше очистить PREROUTING

Завтра попробую убрать. Правило редиректит веб-приложение на IIS с 192.168.13.10 на обе eth шлюза. Ранее работало и с ним. А почему оно неправильное?

Что-то непонятно. У тебя дефолт роут в лан ведёт? Он же должен в наружнюю сетку идти. Покажи ifconfig.

Да, в LAN. Завтра попробую. Спасибо.

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

А почему оно неправильное?

ммм, оно правильное, но как у тебя одна сеть на двух интерфейсах оказалась без бриджа и всяких arp-proxy?

В общем, нарисуй сеть, а то ничего не понятно.

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

>iptables -t nat -A PREROUTING -p tcp --dport 80 -i ${LAN} -j DNAT --to 192.168.13.10

В чём магия этого правила?

Mr_Alone ★★★★★
()

попробуй удалить правила проброса портов, может ты там накосячил (хотя сомнительно, но всё-равно попробуй выкинуть всё из iptables и протетить только с теми правилами, которые только для NAT нужны).

наиболее вероятно, что у тебя PMTU Black Hole. тогда попробуй:
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 576
echo 1 >/proc/sys/net/ipv4/ip_no_pmtu_disc

ktulhu666 ☆☆☆
()
Ответ на: комментарий от Anatolik
 iptables -t nat -A PREROUTING -p tcp --dport 80 -i ${WAN} -j DNAT --to 192.168.13.10
iptables -t nat -A PREROUTING -p tcp --dport 80 -i ${LAN} -j DNAT --to 192.168.13.10

Как ты с этими правилами на шлюзе собираешься открывать «сайтики», у тебя там прокси чтоли? Убери накуй.

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

Как ты с этими правилами на шлюзе собираешься открывать «сайтики», у тебя там прокси чтоли? Убери накуй.

Господа, вы оказались правы. Убрал и заработало.

В чём магия этого правила?

Дело в том, что без этого правила веб-приложение с локального хоста 192.168.13.10 не доступно через шлюз. А мне нужно, чтобы его видели извне. Как бы мне корректно пробросить его? Попробовал вот так:

iptables -t nat -A PREROUTING -p tcp --dport 80 -i ${WAN} -j DNAT --to 192.168.13.10:80
Но nmap 80-го порта внешнего ip шлюза говорит, что он закрыт.

В общем, нарисуй сеть, а то ничего не понятно.

А чем?

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

Покажи ifconfig.

root@svo-server:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 90:e6:ba:b8:ee:b4  
          inet addr:xx.xx.xx.xx  Bcast:xx.xx.xx.xx  Mask:255.255.255.128
          inet6 addr: fe80::92e6:baff:feb8:eeb4/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:62779 errors:0 dropped:0 overruns:0 frame:0
          TX packets:70782 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:7720052 (7.7 MB)  TX bytes:69733770 (69.7 MB)
          Interrupt:26 Base address:0x8000 

eth1      Link encap:Ethernet  HWaddr 00:22:b0:e2:c5:fe  
          inet addr:192.168.13.1  Bcast:192.168.13.255  Mask:255.255.255.0
          inet6 addr: fe80::222:b0ff:fee2:c5fe/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:68119 errors:0 dropped:0 overruns:0 frame:0
          TX packets:45230 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:69521992 (69.5 MB)  TX bytes:6260430 (6.2 MB)
          Interrupt:23 Base address:0x4c00 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:5116 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5116 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:264450 (264.4 KB)  TX bytes:264450 (264.4 KB)

ppp0      Link encap:Point-to-Point Protocol  
          inet addr:172.16.50.153  P-t-P:172.16.49.254  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1416  Metric:1
          RX packets:4 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
          RX bytes:64 (64.0 B)  TX bytes:97 (97.0 B)
Anatolik ★★
() автор топика
Ответ на: комментарий от true_admin

укажи в DNAT правиле не только порт но и хост.

iptables -t nat -A PREROUTING -p tcp --dport 80 -i xx.xx.xx.xx -j DNAT --to 192.168.13.10:80

Так? Не помогло.

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

Да не в <WAN>, а в ppp0

iptables -t nat -A PREROUTING -p tcp --dport 80 -i ppp0 -j DNAT --to 192.168.13.10:80

Типичная ошибка новичков.

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