Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Iptables ne radi - ponekad i ponešto!

[es] :: Linux/UNIX serveri i servisi :: Iptables ne radi - ponekad i ponešto!

Strane: 1 2

[ Pregleda: 5819 | Odgovora: 21 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

pisac

Član broj: 13046
Poruke: 4578



+3341 Profil

icon Re: Iptables ne radi - ponekad i ponešto!18.11.2014. u 22:27 - pre 114 meseci
Ovo manje više radi, ali nije rešilo sve probleme. Ping se i dlje ponaša kao što sam ranije naveo:
Citat:
Takođe me zbunjuje da između prvog i drugog kompjutera ne radi ping na početku, sve dok ne ostavim pingovanje preko minut ili nešto tome slično, a onda proradi. I prvi i drugi kompjuter šalju ping kako treba (sa natovanom adresom) ali onaj koji odgovara na ping ne koristi natovanje već šalje sa javne adrese (tako rade sve dok ne prođe neko vreme upornog pingovanja, i onda odjednom prorade). A pri tome sa trećim serverom sve radi uvek (sa istim pravilima).


Znači, server1 pinguje server2 sa lokalne adrese (kako treba) a server2 odgovara sa javne sve do nekog trenutka kada mu nešto cakne i nastavi da odgovra sa lokalne. Samo po sebi to ne bi bilo mnogo značajno, ali ipak ima i neke posledice: ssh se slično ponaša, treba "probiti" vezu da bi proradilo.

Sve sam gledao, i conntrack tabelu, i detaljne NAT logove, i nema apsolutno ničega što se menja u tom trenutku prelaska. Baš ništa. Napravio sam specijalno firewall/nat sa logovanjem svake i najmanje sitnice, i najčudnije u svemu tome je što se nat tabela uopšte ne aktivira tokom odgovaranja na ping, ni u prvom ni u drugom slučaju. Niti se brojači uvećavaju.

Evo dva uzastopna pinga u trenutku kada je promenjena adresa sa javne na privatnu (pingovi su bili na 0.2 sekunde, zato su u istoj sekundi):

Nov 18 18:13:29 hetis kernel: [PRE/mangle-FALL] IN=ppp72 OUT= MAC= SRC=$PRVI_SERVER_JAVNI_IP DST=$DRUGI_SERVER_JAVNI_IP LEN=136 TOS=0x00 PREC=0x00 TTL=54 ID=0 DF PROTO=ESP SPI=0x72cc81d
Nov 18 18:13:29 hetis kernel: [IN/mangle-FALL] IN=ppp72 OUT= MAC= SRC=$PRVI_SERVER_JAVNI_IP DST=$DRUGI_SERVER_JAVNI_IP LEN=136 TOS=0x00 PREC=0x00 TTL=54 ID=0 DF PROTO=ESP SPI=0x72cc81d
Nov 18 18:13:29 hetis kernel: [IN/filter 50/ACCEPT] IN=ppp72 OUT= MAC= SRC=$PRVI_SERVER_JAVNI_IP DST=$DRUGI_SERVER_JAVNI_IP LEN=136 TOS=0x00 PREC=0x00 TTL=54 ID=0 DF PROTO=ESP SPI=0x72cc81d
Nov 18 18:13:29 hetis kernel: [PRE/raw NOTRACK] IN=ppp72 OUT= MAC= SRC=10.0.1.1 DST=10.0.2.1 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=ICMP TYPE=8 CODE=0 ID=41043 SEQ=190
Nov 18 18:13:29 hetis kernel: [PRE/mangle ipsec/ACCEPT] IN=ppp72 OUT= MAC= SRC=10.0.1.1 DST=10.0.2.1 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=ICMP TYPE=8 CODE=0 ID=41043 SEQ=190
Nov 18 18:13:29 hetis kernel: [IN/mangle ipsec/ACCEPT] IN=ppp72 OUT= MAC= SRC=10.0.1.1 DST=10.0.2.1 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=ICMP TYPE=8 CODE=0 ID=41043 SEQ=190
Nov 18 18:13:29 hetis kernel: [IN/filter ipsec/ACCEPT] IN=ppp72 OUT= MAC= SRC=10.0.1.1 DST=10.0.2.1 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=ICMP TYPE=8 CODE=0 ID=41043 SEQ=190
Nov 18 18:13:29 hetis kernel: [OUT/mangle ipsec/ACCEPT] IN= OUT=ppp72 SRC=$DRUGI_SERVER_JAVNI_IP DST=10.0.1.1 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=28611 PROTO=ICMP TYPE=0 CODE=0 ID=41043 SEQ=190
Nov 18 18:13:29 hetis kernel: [OUT/filter ipsec/ACCEPT] IN= OUT=ppp72 SRC=$DRUGI_SERVER_JAVNI_IP DST=10.0.1.1 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=28611 PROTO=ICMP TYPE=0 CODE=0 ID=41043 SEQ=190
Nov 18 18:13:29 hetis kernel: [POST/mangle ipsec/ACCEPT] IN= OUT=ppp72 SRC=$DRUGI_SERVER_JAVNI_IP DST=10.0.1.1 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=28611 PROTO=ICMP TYPE=0 CODE=0 ID=41043 SEQ=190
Nov 18 18:13:29 hetis kernel: [OUT/mangle-FALL] IN= OUT=ppp72 SRC=$DRUGI_SERVER_JAVNI_IP DST=$PRVI_SERVER_JAVNI_IP LEN=136 TOS=0x00 PREC=0x00 TTL=64 ID=28612 PROTO=ESP SPI=0x8bec27d
Nov 18 18:13:29 hetis kernel: [OUT/filter-FALL] IN= OUT=ppp72 SRC=$DRUGI_SERVER_JAVNI_IP DST=$PRVI_SERVER_JAVNI_IP LEN=136 TOS=0x00 PREC=0x00 TTL=64 ID=28612 PROTO=ESP SPI=0x8bec27d
Nov 18 18:13:29 hetis kernel: [POST/mangle-FALL] IN= OUT=ppp72 SRC=$DRUGI_SERVER_JAVNI_IP DST=$PRVI_SERVER_JAVNI_IP LEN=136 TOS=0x00 PREC=0x00 TTL=64 ID=28612 PROTO=ESP SPI=0x8bec27d

Nov 18 18:13:29 hetis kernel: [PRE/mangle-FALL] IN=ppp72 OUT= MAC= SRC=$PRVI_SERVER_JAVNI_IP DST=$DRUGI_SERVER_JAVNI_IP LEN=136 TOS=0x00 PREC=0x00 TTL=54 ID=68 DF PROTO=ESP SPI=0x72cc81d
Nov 18 18:13:29 hetis kernel: [IN/mangle-FALL] IN=ppp72 OUT= MAC= SRC=$PRVI_SERVER_JAVNI_IP DST=$DRUGI_SERVER_JAVNI_IP LEN=136 TOS=0x00 PREC=0x00 TTL=54 ID=68 DF PROTO=ESP SPI=0x72cc81d
Nov 18 18:13:29 hetis kernel: [IN/filter 50/ACCEPT] IN=ppp72 OUT= MAC= SRC=$PRVI_SERVER_JAVNI_IP DST=$DRUGI_SERVER_JAVNI_IP LEN=136 TOS=0x00 PREC=0x00 TTL=54 ID=68 DF PROTO=ESP SPI=0x72cc81d
Nov 18 18:13:29 hetis kernel: [PRE/raw NOTRACK] IN=ppp72 OUT= MAC= SRC=10.0.1.1 DST=10.0.2.1 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=ICMP TYPE=8 CODE=0 ID=41043 SEQ=191
Nov 18 18:13:29 hetis kernel: [PRE/mangle ipsec/ACCEPT] IN=ppp72 OUT= MAC= SRC=10.0.1.1 DST=10.0.2.1 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=ICMP TYPE=8 CODE=0 ID=41043 SEQ=191
Nov 18 18:13:29 hetis kernel: [IN/mangle ipsec/ACCEPT] IN=ppp72 OUT= MAC= SRC=10.0.1.1 DST=10.0.2.1 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=ICMP TYPE=8 CODE=0 ID=41043 SEQ=191
Nov 18 18:13:29 hetis kernel: [IN/filter ipsec/ACCEPT] IN=ppp72 OUT= MAC= SRC=10.0.1.1 DST=10.0.2.1 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=ICMP TYPE=8 CODE=0 ID=41043 SEQ=191
Nov 18 18:13:29 hetis kernel: [OUT/mangle ipsec/ACCEPT] IN= OUT=ppp72 SRC=10.0.2.1 DST=10.0.1.1 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=13399 PROTO=ICMP TYPE=0 CODE=0 ID=41043 SEQ=191
Nov 18 18:13:29 hetis kernel: [OUT/filter ipsec/ACCEPT] IN= OUT=ppp72 SRC=10.0.2.1 DST=10.0.1.1 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=13399 PROTO=ICMP TYPE=0 CODE=0 ID=41043 SEQ=191
Nov 18 18:13:29 hetis kernel: [POST/mangle ipsec/ACCEPT] IN= OUT=ppp72 SRC=10.0.2.1 DST=10.0.1.1 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=13399 PROTO=ICMP TYPE=0 CODE=0 ID=41043 SEQ=191
Nov 18 18:13:29 hetis kernel: [OUT/mangle-FALL] IN= OUT=ppp72 SRC=$DRUGI_SERVER_JAVNI_IP DST=$PRVI_SERVER_JAVNI_IP LEN=136 TOS=0x00 PREC=0x00 TTL=64 ID=28613 PROTO=ESP SPI=0x8bec27d
Nov 18 18:13:29 hetis kernel: [OUT/filter-FALL] IN= OUT=ppp72 SRC=$DRUGI_SERVER_JAVNI_IP DST=$PRVI_SERVER_JAVNI_IP LEN=136 TOS=0x00 PREC=0x00 TTL=64 ID=28613 PROTO=ESP SPI=0x8bec27d
Nov 18 18:13:29 hetis kernel: [POST/mangle-FALL] IN= OUT=ppp72 SRC=$DRUGI_SERVER_JAVNI_IP DST=$PRVI_SERVER_JAVNI_IP LEN=136 TOS=0x00 PREC=0x00 TTL=64 ID=28613 PROTO=ESP SPI=0x8bec27d


[Ovu poruku je menjao pisac dana 19.11.2014. u 13:01 GMT+1]
 
Odgovor na temu

pisac

Član broj: 13046
Poruke: 4578



+3341 Profil

icon Re: Iptables ne radi - ponekad i ponešto!19.11.2014. u 11:28 - pre 114 meseci
Da objasnim log:

- IPSEC/ESP prvo ulazi i prolazi kroz firewall do 50/ACCEPT, a onda ga sistem dešifruje i ponovo šalje na početak (glup način koji koristi kernel 2.6+, mnogo bi bilo bolje da radi sa posebnim ipsec interfejsom kao na 2.4). To su prva tri zapisa u pasusu.
- Prvo pravilo koje dešifrovani ping hvata na ulazu je lanac PREROUTING tabela raw, NOTRACK.
- Posle toga slede pravila koja jednostavno propuštaju ipsec označene pakete, da se na njih ne bi primenilo neko od pravila koja važe za ostali saobraćaj sa spoljneg ppp interfejsa (jedna od osobina koje me nerviraju na kernelu 2.6+, da je ponašanje kao na 2.4 gde ipsec paketi dolaze sa posebnog interfejsa, za time ne bi bilo potrebe)
- Posle izlaza preko spoljnog interfejsa (lanac POSTROUTING tabela mangle) ping paketi koji su upućeni na mrežu zaštićenu ipsecom se opet vraćaju u sistem radi šifrovanja, i ponovo propuštaju ka izlazu (opet taj glup sistem na 2.6+ kernelima). To su zadnja tri zapisa u pasusu.

Vidi se da se nat tablela nigde ne dotiče, ni na ulazu ni na izlazu.

U drugom pasusu je sledeći ping koji je počeo da odgovara sa lokalne adrese a ne javne. Vidi se da je apsolutno sve isto, da se takođe ne dotiče nikakvo nat pravilo. Tako da ne vidim ni uzrok ni rešenje za ovakvo ponašanje.

Čini mi se da je glavni uzrok ovakvog uvrnutog ponašanja taj što se paketi vrte u petlji dešifrovanja i šifrovanja kroz iste iptables lance i isti interfejs. Ako ne nađem uzrok/rešenje, mislim da ću morati da batalim ovaj 2.6 ipsec i da probam da nabudžim ono rešenje sa 2.4 kernela, ili da eventualno nešto smislim sa tun/tap interfejsima što bi ih šifrovalo pomoću ipseca. Time što bih dobio poseban interfejs za ipsec saobraćaj bih verovatno rešio sve navedene probleme zbog kojih gubim ovde nedelje.
 
Odgovor na temu

[es] :: Linux/UNIX serveri i servisi :: Iptables ne radi - ponekad i ponešto!

Strane: 1 2

[ Pregleda: 5819 | Odgovora: 21 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.