URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID10
Нить номер: 4157
[ Назад ]

Исходное сообщение
"Двойной переброс портов"

Отправлено TheObserver , 03-Мрт-09 00:04 
Уважаемые админы, требуется ваша помощь!
Ситуация такова - есть пограничный фарволл и есть еще внутрений фаер. Внутренняя сетевая второго фаера свободно смотрит в сеть где находится тестовый веб сервер(он слушает порт 8000).Собственно вот что я делаю :
first firewall config:
eth0=212.47.87.210
eth1=192.168.1.1
second firewall config:
eth0=192.168.1.2
eth1=192.168.10.1
test web server config:
eth0=192.168.44.4

first firewall iptables:
iptables -t nat -A PREROUTING -d 212.47.87.210 -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.2:8000
iptables -t filter -A FORWARD -p tcp -i eth0 -d 192.168.1.2 --dport 8000 -j ACCEPT    

second firewall iptables:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8000 -j DNAT --to-destination 192.168.44.4:8000
iptables -t filter -A FORWARD -p tcp -i eth0 -d 192.168.44.4 --dport 8000 -j ACCEPT    

Примечание - таким же нехитрым способом открыл туда ssh и все работает а вот веб не хочет. Кстати пробовал через мобилу по вапу, так страница сц*ко открывается!!!
  Очень прошу указать где зарыты грабли, а то шеф к понедельнику три шкуры сдерет с меня :(


Содержание

Сообщения в этом обсуждении
"Двойной переброс портов"
Отправлено angra , 03-Мрт-09 00:17 
Ну если с мобилы открывается, то NAT работает, а вот неверный размер MTU и запрет на фрагментацию вполне могли привести к проблеме для больших пакетов.
из man iptables:
TCPMSS
       This  target allows to alter the MSS value of TCP SYN packets, to control the maximum size for that connection (usually limiting it to your out-
       going interface's MTU minus 40 for IPv4 or 60 for IPv6, respectively).  Of course, it can only be used in conjunction with -p tcp.  It  is  only
       valid in the mangle table.
       This target is used to overcome criminally braindead ISPs or servers which block "ICMP Fragmentation Needed" or "ICMPv6 Packet Too Big" packets.
       The symptoms of this problem are that everything works fine from your Linux firewall/router, but machines behind it  can  never  exchange  large
       packets:
        1) Web browsers connect, then hang with no data received.
        2) Small mail works fine, but large emails hang.
        3) ssh works fine, but scp hangs after initial handshaking.
       Workaround: activate this option and add a rule to your firewall configuration like:
        iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN \
                    -j TCPMSS --clamp-mss-to-pmtu

       --set-mss value
              Explicitly set MSS option to specified value.

       --clamp-mss-to-pmtu
              Automatically clamp MSS value to (path_MTU - 40 for IPv4; -60 for IPv6).

       These options are mutually exclusive.


"Двойной переброс портов"
Отправлено TheObserver , 03-Мрт-09 11:04 
Хм, это идея. Спасибо за подсказку, непременно попробую. Только чуть не понимаю как все же основной веб работает будучи за первым фаером. Ну да ладно, время все разъяснит.


"Двойной переброс портов"
Отправлено TheObserver , 03-Мрт-09 21:41 
>Хм, это идея. Спасибо за подсказку, непременно попробую. Только чуть не понимаю
>как все же основной веб работает будучи за первым фаером. Ну
>да ладно, время все разъяснит.

Попробовал. Добавил так же правило и для цепочки postrouting в manglе но к сожалению не сработало.



"Двойной переброс портов"
Отправлено angra , 04-Мрт-09 03:45 
Добавлять на обоих шлюзах, в FORWARD.
Альтернативно посмотрите не запрещены ли указанные типы ICMP пакетов.

"Двойной переброс портов"
Отправлено TheObserver , 05-Мрт-09 12:45 
Я добавлял на обоих шлюзах. Итог тот же. Отслеживал tcpdump-ом обращение ко 2-му шлюзу по 8000 порту так получил следущее:

orange 3g modem

[root@home ~]# tcpdump dst port 8000
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
16:35:24.143082 IP host-94-243-68-161.hspa.orange.md.bpcp-trap > 192.168.44.4.oa-system: S 1997004792:1997004792(0) win 65535 <mss 1460,nop,wscale 2,nop,nop,sackOK>

16:35:27.081547 IP host-94-243-68-161.hspa.orange.md.bpcp-trap > 192.168.44.4.oa-system: S 1997004792:1997004792(0) win 65535 <mss 1460,nop,wscale 2,nop,nop,sackOK>

16:35:33.101456 IP host-94-243-68-161.hspa.orange.md.bpcp-trap > 192.168.44.4.oa-system: S 1997004792:1997004792(0) win 65535 <mss 1460,nop,wscale 2,nop,nop,sackOK>

opera mini wap

16:45:57.115223 IP p09-12.opera-mini.net.51760 > 192.168.44.4.oa-system: . ack 53056 win 747 <nop,nop,timestamp 1520214658 1050254970,nop,nop,sack 1 {54504:54909}>

16:45:57.118050 IP p09-12.opera-mini.net.51760 > 192.168.44.4.oa-system: . ack 54909 win 732 <nop,nop,timestamp 1520214659 1050254974>

16:45:57.230054 IP p09-12.opera-mini.net.51772 > 192.168.44.4.oa-system: P 1715:2603(888) ack 15033 win 295 <nop,nop,timestamp 1520214685 1050253952>

16:45:57.298827 IP p09-12.opera-mini.net.51772 > 192.168.44.4.oa-system: . ack 16481 win 318 <nop,nop,timestamp 1520214704 1050255158>

16:45:57.303024 IP p09-12.opera-mini.net.51772 > 192.168.44.4.oa-system: . ack 17929 win 340 <nop,nop,timestamp 1520214704 1050255158>

16:45:57.306474 IP p09-12.opera-mini.net.51772 > 192.168.44.4.oa-system: . ack 19377 win 363 <nop,nop,timestamp 1520214705 1050255158>

16:45:57.366557 IP p09-12.opera-mini.net.51772 > 192.168.44.4.oa-system: . ack 20825 win 385 <nop,nop,timestamp 1520214721 1050255226>

16:45:59.211027 IP p09-12.opera-mini.net.52052 > 192.168.44.4.oa-system: . ack 3846938072 win 46 <nop,nop,timestamp 1520215182 1050257078>

16:45:59.222649 IP p09-12.opera-mini.net.52053 > 192.168.44.4.oa-system: S 2324897080:2324897080(0) win 5840 <mss 1460,sackOK,timestamp 1520215185 0,nop,wscale 7>

16:45:59.267863 IP p09-12.opera-mini.net.51754 > 192.168.44.4.oa-system: P 5214:6077(863) ack 31826 win
566 <nop,nop,timestamp 1520215195 1050257031>

16:45:59.268700 IP p09-12.opera-mini.net.51755 > 192.168.44.4.oa-system: P 5195:6057(862) ack 81419 win
757 <nop,nop,timestamp 1520215195 1050257010>

16:45:59.272213 IP p09-12.opera-mini.net.51759 > 192.168.44.4.oa-system: P 1723:2587(864) ack 3387 win 91 <nop,nop,timestamp 1520215195 1050257011>

16:45:59.282490 IP p09-12.opera-mini.net.52053 > 192.168.44.4.oa-system: . ack 3846090348 win 46 <nop,nop,timestamp 1520215200 1050257150>

moldtelecom adsl

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
09:00:53.824756 IP host-static-92-115-49-79.moldtelecom.md.sddp > 192.168.44.4.oa-system: S 2327245485:2327245485(0) win 65535 <mss 1460,nop,nop,sackOK>

09:00:56.853384 IP host-static-92-115-49-79.moldtelecom.md.sddp > 192.168.44.4.oa-system: S 2327245485:2327245485(0) win 65535 <mss 1460,nop,nop,sackOK>

09:01:02.868413 IP host-static-92-115-49-79.moldtelecom.md.sddp > 192.168.44.4.oa-system: S 2327245485:2327245485(0) win 65535 <mss 1460,nop,nop,sackOK>

09:01:15.199089 IP host-static-92-115-49-79.moldtelecom.md.qsm-proxy > 192.168.44.4.oa-system: S 705637948:705637948(0) win 65535 <mss 1460,nop,nop,sackOK>

09:01:18.842563 IP host-static-92-115-49-79.moldtelecom.md.qsm-gui > 192.168.44.4.oa-system: S 3211773044:3211773044(0) win 65535 <mss 1460,nop,nop,sackOK>

09:01:21.679572 IP host-static-92-115-49-79.moldtelecom.md.qsm-gui > 192.168.44.4.oa-system: S 3211773044:3211773044(0) win 65535 <mss 1460,nop,nop,sackOK>

09:01:27.715911 IP host-static-92-115-49-79.moldtelecom.md.qsm-gui > 192.168.44.4.oa-system: S 3211773044:3211773044(0) win 65535 <mss 1460,nop,nop,sackOK>

first gateway: elinks ttp://192.168.1.2:8000 - работает, страницу вижу

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
10:34:00.971064 IP 192.168.1.1.41392 > 192.168.44.4.oa-system: S 2269613086:2269613086(0) win 5840 <mss 1460,sackOK,timestamp 491624907 0,nop,wscale 5>
10:34:00.973230 IP 192.168.1.1.41392 > 192.168.44.4.oa-system: . ack 3708596283 win 183 <nop,nop,timestamp 491624909 1114340136>

10:34:00.973460 IP 192.168.1.1.41392 > 192.168.44.4.oa-system: P 0:179(179) ack 1 win 183 <nop,nop,timestamp 491624909 1114340136>

10:34:00.974902 IP 192.168.1.1.41392 > 192.168.44.4.oa-system: . ack 224 win 216 <nop,nop,timestamp 491624910 1114340139>

10:34:00.977084 IP 192.168.1.1.41392 > 192.168.44.4.oa-system: P 179:451(272) ack 224 win 216 <nop,nop,timestamp 491624913 1114340139>

10:34:00.978962 IP 192.168.1.1.41392 > 192.168.44.4.oa-system: . ack 1357 win 307 <nop,nop,timestamp 491624914 1114340142>

10:34:00.980167 IP 192.168.1.1.41392 > 192.168.44.4.oa-system: P 451:736(285) ack 1357 win 307 <nop,nop,timestamp 491624916 1114340142>
10:34:00.981763 IP 192.168.1.1.41392 > 192.168.44.4.oa-system: . ack 4253 win 488

<nop,nop,timestamp 491624917 1114340145>
10:34:00.982031 IP 192.168.1.1.41392 > 192.168.44.4.oa-system: . ack 7149 win 669

<nop,nop,timestamp 491624917 1114340145>
10:34:00.982724 IP 192.168.1.1.41392 > 192.168.44.4.oa-system: . ack 10045 win 850

<nop,nop,timestamp 491624918 1114340146>
10:34:00.982981 IP 192.168.1.1.41392 > 192.168.44.4.oa-system: . ack 12941 win 1031 <nop,nop,timestamp 491624918 1114340146>

10:34:00.983206 IP 192.168.1.1.41392 > 192.168.44.4.oa-system: . ack 15462 win 1212 <nop,nop,timestamp 491624919 1114340147>

10:34:20.989418 IP 192.168.1.1.41392 > 192.168.44.4.oa-system: F 736:736(0) ack 15463 win 1212 <nop,nop,timestamp 491644444 1114360148>

В проблемных случаех с 3g и adsl фигурирует mss 1460, наверно тут как раз и грабли но я ведь приспособил шлюзы к pmtu, потому и не могу взять в толк что же происходит.



"Двойной переброс портов"
Отправлено TheObserver , 10-Мрт-09 18:51 
Проверил через dial-up - страница видна и работает как надо. Пробовал разные значения --set-mss но без продвижений для тех клиентов что ходят через adsl. Если кто-то сталкивался с подобными проблемами пожалуйста отзовитесь.

"Двойной переброс портов"
Отправлено Sliver , 02-Фев-10 16:10 
>first firewall iptables:
>iptables -t nat -A PREROUTING -d 212.47.87.210 -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.2:8000
>iptables -t filter -A FORWARD -p tcp -i eth0 -d 192.168.1.2 --dport 8000 -j ACCEPT
>
>second firewall iptables:
>iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8000 -j DNAT --to-destination 192.168.44.4:8000
>iptables -t filter -A FORWARD -p tcp -i eth0 -d 192.168.44.4 --dport 8000 -j ACCEPT

ИМХО, не хватало таких правил:

first firewall iptables:
iptables -t nat -A POSTROUTING -p tcp --dst 192.168.1.2 --dport 80 -j SNAT --to-source 212.47.87.210

second firewall iptables:
iptables -t nat -A POSTROUTING -p tcp --dst 192.168.44.4 --dport 8000 -j SNAT --to-source 192.168.1.2