1 (30.03.2010 08:53:38 отредактировано )

Имеется  сервер SLES-10, на котором в  route прописан маршрут:
10.0.0.0        10.10.1.7      255.0.0.0       UG    0      0        0 eth2
Задача- со своего компа 10.120.1.1 нужен доступ к 10.8.0.213, про 10.8.0.120 знает маршрутизатор 10.10.1.7
В /etc/sysconfig/Sefirewall2 в строке добавил FW_FORWARD=" ... 10.120.0.0/16,10.0.0./8" , чтобы FW пропускал ВСЕ пакеты.

С 10.120.1.1  делаем traceroute 10.8.0.213 все ОК:
Mar 29 16:22:52 fire kernel: SuSEFW-FWDint-ACC-FORW IN=eth2 OUT=eth2 SRC=10.120.1.1 DST=10.8.0.213 LEN=92 TOS=0x00 PREC=0x00 TTL=4 ID=6480 PROTO=ICMP TYPE=8 CODE=0 ID=512 SEQ=32769
Делаем ping 10.8.0.213 -все ОК:
Mar 29 16:18:28 fire kernel: SuSEFW-FWDint-ACC-FORW IN=eth2 OUT=eth2 SRC=10.120.1.1 DST=10.8.0.213 LEN=84 TOS=0x00 PREC=0x00 TTL=63 ID=0 DF PROTO=ICMP TYPE=8 CODE=0 ID=31552 SEQ=1

а из под Lotus Notes - проблема:
Mar 29 16:24:35 fire kernel: SuSEFW-FWDint-DROP-DEFLT-INV IN=eth2 OUT=eth2 SRC=10.120.1.1  DST=10.8.0.213 LEN=40 TOS=0x00 PREC=0x00 TTL=127 ID=7017 DF PROTO=TCP SPT=2214 DPT=1352 WINDOW=64512 RES=0x00 ACK FIN URGP=0

Т.е. правило FW_FORWARD=" ... 10.120.0.0/16,10.0.0./8" , согласно которому на 10.0.0.0 должен быть полный доступ по всем протоколам и всем портам, дает доступ только на ICMP протокол, а на TCP - сразу дропает!
В чем ошибка?

подправляю, FW_FORWARD=" ... 10.120.0.0/16,10.0.0.0/8",  конечно прописано



Не пойму где ошибка:
прописал на своем компе в качестве DNS сервера сервер СЛЕС с firewall (на нем поднят bind) - сразу все пошло!
Mar 30 09:34:42 fire kernel: SuSEFW-FWDint-ACC-FORW IN=eth2 OUT=eth2 SRC=10.130.1.179 DST=10.8.0.213 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=11694 DF PROTO=TCP SPT=2392 DPT=1352 WINDOW=64512 RES=0x00 SYN URGP=0 OPT (020405B401010402)

а после перегрузки сервака СЛЕС 10 опять дропает:

Mar 30 09:35:27 fire kernel: SuSEFW-FWDint-DROP-DEFLT-INV IN=eth2 OUT=eth2 SRC=10.130.1.179 DST=10.8.0.213 LEN=234 TOS=0x00 PREC=0x00 TTL=127 ID=11700 DF PROTO=TCP SPT=2392 DPT=1352 WINDOW=64512 RES=0x00 ACK PSH URGP=0
Mar 30 09:35:35 fire kernel: SuSEFW-FWDint-ACC-FORW IN=eth2 OUT=eth2 SRC=10.130.1.179 DST=10.10.10.11 LEN=92 TOS=0x00 PREC=0x00 TTL=1 ID=11704 PROTO=ICMP TYPE=8 CODE=0 ID=512 SEQ=33794

2 (30.03.2010 09:09:26 отредактировано Loky)

покажите файл настроек фаервола. помимо разрешения форварда надо бы ещё разрешить на внутреннем интерфейсе доступ по tcp-порту 1352.
судя по сообщениям фаервол не находит ни одного правила соответствующего данному типа пакета и дропает по дефолту.

Linux можно любить, можно НЕ любить, но совершенно точно его уже нельзя игнорировать.

3 (02.04.2010 10:02:47 отредактировано )

/sbin/SuSEfirewall2 version 3.3
FW_DEV_EXT="eth0"
FW_DEV_INT="eth2"
FW_DEV_DMZ="eth1"
FW_ROUTE="yes"
FW_MASQUERADE="yes"
FW_MASQ_DEV="$FW_DEV_EXT"
FW_MASQ_NETS="10.130.1.179"
FW_PROTECT_FROM_INT="yes"
FW_SERVICES_EXT_TCP="25 53 143 110 80 domain"
FW_SERVICES_EXT_UDP="53"
FW_SERVICES_INT_TCP="25 53 80 110 143 1352 domain"
FW_SERVICES_INT_UDP="53 domain"
FW_SERVICES_DROP_EXT=""
FW_SERVICES_ACCEPT_EXT=""
FW_ALLOW_INCOMING_HIGHPORTS_TCP="yes"
FW_ALLOW_INCOMING_HIGHPORTS_UDP="yes"
FW_FORWARD="... 10.130.0.0/16,10.0.0.0/8"
FW_ALLOW_CLASS_ROUTING="no"

Дальше еще интереснее!
в FW_MASQ_NETS добавил свой комп на линуксе ,FW_MASQ_NETS="10.130.1.179 10.130.1.125", с него все идет прекрасно:
>telnet 10.8.0.213 1352
Trying 10.8.0.213...
Connected to 10.8.0.213.
Escape character is '^]'.

результат tcpdump -i eth2 -ln host 10.8.0.213 and port 1352 для линуксовой машины таков:
09:13:39.971020 IP 10.130.1.125.60212 > 10.8.0.213.1352: S 3145367150:3145367150(0) win 5840 <mss 1460,sackOK,timestamp 297592790 0,nop,wscale 7>
09:13:39.971091 IP 10.130.1.125.60212 > 10.8.0.213.1352: S 3145367150:3145367150(0) win 5840 <mss 1460,sackOK,timestamp 297592790 0,nop,wscale 7>
09:13:39.982696 IP 10.130.1.125.60212 > 10.8.0.213.1352: . ack 4183327454 win 46 <nop,nop,timestamp 297592793 0>
09:13:43.543007 IP 10.130.1.125.60212 > 10.8.0.213.1352: . ack 1 win 46 <nop,nop,timestamp 297593683 0,nop,nop,sack 1 {0:1}>

С аналогичной виндозной машины результат tcpdump в ответ на telnet 10.8.0.213 1352 таков:
09:15:13.526913 IP 10.130.1.179.1072 > 10.8.0.213.1352: S 897550903:897550903(0) win 64512 <mss 1460,nop,nop,sackOK>
09:15:13.526973 IP 10.130.1.179.1072 > 10.8.0.213.1352: S 897550903:897550903(0) win 64512 <mss 1460,nop,nop,sackOK>
09:15:13.538753 IP 10.130.1.179.1072 > 10.8.0.213.1352: . ack 3781367464 win 64512

с linux  telnet 10.8.0.213 1352 -  tcpdump -i eth2 -ln host 10.8.0.213:
09:21:02.462992 IP 10.130.1.125.37720 > 10.8.0.213.1352: S 1513513487:1513513487(0) win 5840 <mss 1460,sackOK,timestamp 297703418 0,nop,wscale 7>
09:21:02.463059 IP 10.130.1.125.37720 > 10.8.0.213.1352: S 1513513487:1513513487(0) win 5840 <mss 1460,sackOK,timestamp 297703418 0,nop,wscale 7>
09:21:02.474629 IP 10.130.1.125.37720 > 10.8.0.213.1352: . ack 1372549872 win 46 <nop,nop,timestamp 297703421 0>
09:21:06.105465 IP 10.130.1.125.37720 > 10.8.0.213.1352: . ack 1 win 46 <nop,nop,timestamp 297704328 0,nop,nop,sack 1 {0:1}>

с win xp  telnet 10.8.0.213 1352- tcpdump -i eth2 -ln host 10.8.0.213:
09:22:12.197104 IP 10.130.1.179.1074 > 10.8.0.213.1352: S 2077483152:2077483152(0) win 64512 <mss 1460,nop,nop,sackOK>
09:22:12.197156 IP 10.130.1.179.1074 > 10.8.0.213.1352: S 2077483152:2077483152(0) win 64512 <mss 1460,nop,nop,sackOK>
09:22:12.208940 IP 10.130.1.179.1074 > 10.8.0.213.1352: . ack 1112842368 win 64512

Результат отличается, ощущение такое что для винозных машин чего не хватает чтобы получить подтверждение пакетов, дошедших до цели чтоли?
Факт, что с линукса все проходит прекрасно, а с винды - затыкается! Встречался кто-нибудь такое?



с линукса web-сервер открывается успешно, tcpdump -i eth2 -ln host 10.8.0.144:
11:21:09.995397 IP 10.130.1.125.60369 > 10.8.0.144.80: S 2511673120:2511673120(0) win 5840 <mss 1460,sackOK,timestamp 342707120 0,nop,wscale 7>
11:21:09.995434 IP 10.130.1.125.60369 > 10.8.0.144.80: S 2511673120:2511673120(0) win 5840 <mss 1460,sackOK,timestamp 342707120 0,nop,wscale 7>
11:21:10.007359 IP 10.130.1.125.60369 > 10.8.0.144.80: . ack 3878629485 win 46 <nop,nop,timestamp 342707123 971853418>
11:21:10.007524 IP 10.130.1.125.60369 > 10.8.0.144.80: P 0:384(384) ack 1 win 46 <nop,nop,timestamp 342707123 971853418>
11:21:10.219033 IP 10.130.1.125.60369 > 10.8.0.144.80: P 0:384(384) ack 1 win 46 <nop,nop,timestamp 342707177 971853418>
11:21:10.643027 IP 10.130.1.125.60369 > 10.8.0.144.80: P 0:384(384) ack 1 win 46 <nop,nop,timestamp 342707283 971853418>

С виндозной машиной -проблема , tcpdump -i eth2 -ln host 10.8.0.144:
11:59:18.383871 IP 10.130.1.179.1452 > 10.8.0.144.80: S 1934015471:1934015471(0) win 64512 <mss 1460,nop,nop,sackOK>
11:59:18.383909 IP 10.130.1.179.1452 > 10.8.0.144.80: S 1934015471:1934015471(0) win 64512 <mss 1460,nop,nop,sackOK>
11:59:18.395394 IP 10.130.1.179.1452 > 10.8.0.144.80: . ack 1991293189 win 64512
11:59:18.400557 IP 10.130.1.179.1452 > 10.8.0.144.80: P 0:406(406) ack 1 win 64512
11:59:21.381748 IP 10.130.1.179.1452 > 10.8.0.144.80: P 0:406(406) ack 1 win 64512
11:59:27.413031 IP 10.130.1.179.1452 > 10.8.0.144.80: P 0:406(406) ack 1 win 64512

отличие в nop,nop,timestamp, кто может расшифровать , что именно нужно на фаерволле  открыть , настроить? мыслей нет никаких, все настройки уже перепробовал, с виндовых машин пакеты не проходят через SuSEfirewall!

4

уберите вообще эту опцию FW_FORWARD

Linux можно любить, можно НЕ любить, но совершенно точно его уже нельзя игнорировать.