Skocz do zawartości
MajQ

Debian, Shorewall i Exim - problem z pocztą.

Rekomendowane odpowiedzi

Mam mały problem ze skonfigurowaniem shorewalla. Serwer ma jeden interfejs, standardowa konfiguracja: shorewall + dodane reguły dla portów 110,995, 25, 465, 587. Większość poczty przechodzi bez problemu ale niektóre przesyłki nie. W logach exima mam komunikat:

Connection timed out: SMTP timeout while connected to *.*.*.* after sending data block
Po wyłączeniu firewalla wysyłane są normalnie. Próbowałem podejrzeć przez tcpdump co się dzieje ale nie bardzo mi to pomogło (wynik przefiltrowany przez grepa dla nazwy zdalnego hosta), poczta nie wysłana (fw on):

 

11:22:30.438376 IP moj.adres.59390 > adres.zewnetrzny.smtp: . 2154457383:2154458831(1448) ack 3764779870 win 92 <nop,nop,timestamp 129384801 3265275034>11:22:30.438790 IP adres.zewnetrzny.smtp > moj.adres.59390: P ack 4344 win 5936811:22:30.438816 IP moj.adres.59390 > adres.zewnetrzny.smtp: . 46336:49232(2896) ack 1 win 92 <nop,nop,timestamp 129384801 3265275034>11:22:42.954410 IP moj.adres.59391 > adres.zewnetrzny.smtp: . 2242942039:2242943487(1448) ack 3505499105 win 92 <nop,nop,timestamp 129387930 3265275661>11:22:42.954806 IP adres.zewnetrzny.smtp > moj.adres.59391: P ack 20272 win 3620011:22:42.954846 IP moj.adres.59391 > adres.zewnetrzny.smtp: . 37648:40544(2896) ack 1 win 92 <nop,nop,timestamp 129387930 3265275661>11:22:42.959808 IP adres.zewnetrzny.smtp > moj.adres.59391: . ack 20272 win 53576 <nop,nop,timestamp 3265276356 129387034,nop,nop,sack 3 {865434397:865441637}{865430053:865431501}{865424261:865428605}>11:22:42.960551 IP adres.zewnetrzny.smtp > moj.adres.59391: . ack 20272 win 53576 <nop,nop,timestamp 3265276356 129387034,nop,nop,sack 3 {865434397:865443085}{865430053:865431501}{865424261:865428605}>11:23:04.458380 IP moj.adres.59391 > adres.zewnetrzny.smtp: . 20272:21720(1448) ack 1 win 92 <nop,nop,timestamp 129393306 3265275661>11:23:04.458764 IP adres.zewnetrzny.smtp > moj.adres.59391: P ack 26064 win 5068011:23:28.902405 IP moj.adres.59390 > adres.zewnetrzny.smtp: . 20272:21720(1448) ack 1 win 92 <nop,nop,timestamp 129399417 3265275034>11:23:28.902907 IP adres.zewnetrzny.smtp > moj.adres.59390: P ack 26064 win 3909611:23:28.902948 IP moj.adres.59390 > adres.zewnetrzny.smtp: . 55024:57920(2896) ack 1 win 92 <nop,nop,timestamp 129399417 3265275034>
poczta wysłana (fw off):

 

11:29:28.315877 IP adres.zewnetrzny.smtp > moj.adres.59390: F 3764779870:3764779870(0) ack 2154495031 win 49232 <nop,nop,timestamp 3265316890 129414265,nop,nop,sack 3 {1032207007:1032221487}{1032202663:1032205559}{1032199767:1032201215}>11:29:28.315896 IP moj.adres.59390 > adres.zewnetrzny.smtp: R 2154495031:2154495031(0) win 011:29:28.524996 IP adres.zewnetrzny.smtp > moj.adres.59390: F 0:0(0) ack 1 win 49232 <nop,nop,timestamp 3265316911 129414265,nop,nop,sack 3 {1032207007:1032221487}{1032202663:1032205559}{1032199767:1032201215}>11:29:28.525012 IP moj.adres.59390 > adres.zewnetrzny.smtp: R 2154495031:2154495031(0) win 011:29:28.944988 IP adres.zewnetrzny.smtp > moj.adres.59390: F 0:0(0) ack 1 win 49232 <nop,nop,timestamp 3265316953 129414265,nop,nop,sack 3 {1032207007:1032221487}{1032202663:1032205559}{1032199767:1032201215}>11:29:28.945004 IP moj.adres.59390 > adres.zewnetrzny.smtp: R 2154495031:2154495031(0) win 011:29:29.784969 IP adres.zewnetrzny.smtp > moj.adres.59390: F 0:0(0) ack 1 win 49232 <nop,nop,timestamp 3265317037 129414265,nop,nop,sack 3 {1032207007:1032221487}{1032202663:1032205559}{1032199767:1032201215}>11:29:29.784988 IP moj.adres.59390 > adres.zewnetrzny.smtp: R 2154495031:2154495031(0) win 011:29:30.995084 IP moj.adres.59989 > ip-*.*.*.*.static.crowley.pl.domain: 40468+ MX? gis.gov.pl. (28)11:29:31.002466 IP ip-*.*.*.*.static.crowley.pl.domain > moj.adres.59989: 40468 1/2/2 MX adres.zewnetrzny. 10 (133)11:29:31.002587 IP moj.adres.58618 > ip-*.*.*.*.static.crowley.pl.domain: 3525+ AAAA? adres.zewnetrzny. (33)11:29:31.010072 IP moj.adres.59496 > ip-*.*.*.*.static.crowley.pl.domain: 6417+ A? adres.zewnetrzny. (33)11:29:31.018957 IP ip-*.*.*.*.static.crowley.pl.domain > moj.adres.59496: 6417 1/2/1 A mail.gis.gov.pl (117)11:29:31.021635 IP moj.adres.36934 > adres.zewnetrzny.smtp: S 154651727:154651727(0) win 5840 <mss 1460,sackOK,timestamp 129489946 0,nop,wscale 6>11:29:31.024202 IP adres.zewnetrzny.smtp > moj.adres.36934: S 4189640227:4189640227(0) ack 154651728 win 5792 <mss 1460,sackOK,timestamp 3265317160 129489946,nop,wscale 0>11:29:31.024231 IP moj.adres.36934 > adres.zewnetrzny.smtp: . ack 1 win 92 <nop,nop,timestamp 129489947 3265317160>11:29:31.061183 IP adres.zewnetrzny.smtp > moj.adres.36934: P 1:42(41) ack 1 win 5792 <nop,nop,timestamp 3265317164 129489947>11:29:31.061216 IP moj.adres.36934 > adres.zewnetrzny.smtp: . ack 42 win 92 <nop,nop,timestamp 129489956 3265317164>
Jakby wszystkie nie wychodziły to jeszcze rozumiem ale tylko część (np. na onet)? W czym może być problem? Edytowane przez DuG1

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Gość <account_deleted>

Próbowałem podejrzeć przez tcpdump co się dzieje ale nie bardzo mi to pomogło (wynik przefiltrowany przez grepa dla nazwy zdalnego hosta)

hmm, a możesz pokazać config shorewalla? albo lepiej iptables? Czy masz włączone logowanie w iptables/regułach? - co pokazują logi? config Layer7 dla netfilter? Exima słabo znam, ale to raczej nie jego wina - chyba że reguły L7 dla exima są spitolone...

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

hmm, a możesz pokazać config shorewalla? albo lepiej iptables? Czy masz włączone logowanie w iptables/regułach? - co pokazują logi? config Layer7 dla netfilter? Exima słabo znam, ale to raczej nie jego wina - chyba że reguły L7 dla exima są spitolone...

 

Chain INPUT (policy DROP)target     prot opt source               destinationACCEPT     all  --  anywhere             anywhereeth0_in    all  --  anywhere             anywhereACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHEDReject     all  --  anywhere             anywhereLOG        all  --  anywhere             anywhere            LOG level info prefix `Shorewall:INPUT:REJECT:'reject     all  --  anywhere             anywhereChain FORWARD (policy DROP)target     prot opt source               destinationeth0_fwd   all  --  anywhere             anywhereACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHEDReject     all  --  anywhere             anywhereLOG        all  --  anywhere             anywhere            LOG level info prefix `Shorewall:FORWARD:REJECT:'reject     all  --  anywhere             anywhereChain OUTPUT (policy DROP)target     prot opt source               destinationACCEPT     all  --  anywhere             anywhereeth0_out   all  --  anywhere             anywhereACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHEDReject     all  --  anywhere             anywhereLOG        all  --  anywhere             anywhere            LOG level info prefix `Shorewall:OUTPUT:REJECT:'reject     all  --  anywhere             anywhereChain Drop (2 references)target     prot opt source               destinationreject     tcp  --  anywhere             anywhere            tcp dpt:authdropBcast  all  --  anywhere             anywhereACCEPT     icmp --  anywhere             anywhere            icmp fragmentation-neededACCEPT     icmp --  anywhere             anywhere            icmp time-exceededdropInvalid  all  --  anywhere             anywhereDROP       udp  --  anywhere             anywhere            multiport dports loc-srv,microsoft-dsDROP       udp  --  anywhere             anywhere            udp dpts:netbios-ns:netbios-ssnDROP       udp  --  anywhere             anywhere            udp spt:netbios-ns dpts:1024:65535DROP       tcp  --  anywhere             anywhere            multiport dports loc-srv,netbios-ssn,microsoft-dsDROP       udp  --  anywhere             anywhere            udp dpt:1900dropNotSyn  tcp  --  anywhere             anywhereDROP       udp  --  anywhere             anywhere            udp spt:domainChain Reject (4 references)target     prot opt source               destinationreject     tcp  --  anywhere             anywhere            tcp dpt:authdropBcast  all  --  anywhere             anywhereACCEPT     icmp --  anywhere             anywhere            icmp fragmentation-neededACCEPT     icmp --  anywhere             anywhere            icmp time-exceededdropInvalid  all  --  anywhere             anywherereject     udp  --  anywhere             anywhere            multiport dports loc-srv,microsoft-dsreject     udp  --  anywhere             anywhere            udp dpts:netbios-ns:netbios-ssnreject     udp  --  anywhere             anywhere            udp spt:netbios-ns dpts:1024:65535reject     tcp  --  anywhere             anywhere            multiport dports loc-srv,netbios-ssn,microsoft-dsDROP       udp  --  anywhere             anywhere            udp dpt:1900dropNotSyn  tcp  --  anywhere             anywhereDROP       udp  --  anywhere             anywhere            udp spt:domainChain all2all (0 references)target     prot opt source               destinationACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHEDReject     all  --  anywhere             anywhereLOG        all  --  anywhere             anywhere            LOG level info prefix `Shorewall:all2all:REJECT:'reject     all  --  anywhere             anywhereChain dropBcast (2 references)target     prot opt source               destinationDROP       all  --  anywhere             anywhere            PKTTYPE = broadcastDROP       all  --  anywhere             anywhere            PKTTYPE = multicastChain dropInvalid (2 references)target     prot opt source               destinationDROP       all  --  anywhere             anywhere            state INVALIDChain dropNotSyn (2 references)target     prot opt source               destinationDROP       tcp  --  anywhere             anywhere            tcp flags:!FIN,SYN,RST,ACK/SYNChain dynamic (2 references)target     prot opt source               destinationChain eth0_fwd (1 references)target     prot opt source               destinationdynamic    all  --  anywhere             anywhere            state INVALID,NEWsmurfs     all  --  anywhere             anywhere            state INVALID,NEWtcpflags   tcp  --  anywhere             anywhereChain eth0_in (1 references)target     prot opt source               destinationdynamic    all  --  anywhere             anywhere            state INVALID,NEWsmurfs     all  --  anywhere             anywhere            state INVALID,NEWACCEPT     udp  --  anywhere             anywhere            udp dpts:bootps:bootpctcpflags   tcp  --  anywhere             anywherenet2fw     all  --  anywhere             anywhereChain eth0_out (1 references)target     prot opt source               destinationACCEPT     udp  --  anywhere             anywhere            udp dpts:bootps:bootpcfw2net     all  --  anywhere             anywhereChain fw2net (1 references)target     prot opt source               destinationACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHEDACCEPT     icmp --  anywhere             anywhereACCEPT     udp  --  anywhere             anywhere            udp dpt:domainACCEPT     tcp  --  anywhere             anywhere            tcp dpt:domainACCEPT     tcp  --  anywhere             anywhere            tcp dpt:smtpACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ssmtpACCEPT     tcp  --  anywhere             anywhere            tcp dpt:pop3ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:pop3sACCEPT     tcp  --  anywhere             anywhere            tcp dpt:imap2ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:imapsACCEPT     tcp  --  anywhere             anywhere            tcp dpt:submissionACCEPT     all  --  anywhere             anywhereChain logdrop (0 references)target     prot opt source               destinationLOG        all  --  anywhere             anywhere            LOG level info prefix `Shorewall:logdrop:DROP:'DROP       all  --  anywhere             anywhereChain logflags (5 references)target     prot opt source               destinationLOG        all  --  anywhere             anywhere            LOG level info prefix `Shorewall:logflags:DROP:'DROP       all  --  anywhere             anywhereChain logreject (0 references)target     prot opt source               destinationLOG        all  --  anywhere             anywhere            LOG level info prefix `Shorewall:logreject:REJECT:'reject     all  --  anywhere             anywhereChain net2all (0 references)target     prot opt source               destinationACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHEDDrop       all  --  anywhere             anywhereDROP       all  --  anywhere             anywhereChain net2fw (1 references)target     prot opt source               destinationACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHEDDROP       icmp --  anywhere             anywhere            icmp echo-requestACCEPT     tcp  --  anywhere             anywhere            tcp dpt:sshACCEPT     tcp  --  anywhere             anywhere            tcp dpt:smtpACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ssmtpACCEPT     tcp  --  anywhere             anywhere            tcp dpt:pop3ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:pop3sACCEPT     tcp  --  anywhere             anywhere            tcp dpt:wwwACCEPT     tcp  --  anywhere             anywhere            tcp dpt:httpsACCEPT     tcp  --  anywhere             anywhere            tcp dpt:imap2ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:imapsACCEPT     tcp  --  anywhere             anywhere            tcp dpt:submissionACCEPT     tcp  --  192.168.0.50         anywhere            tcp dpt:muninDrop       all  --  anywhere             anywhereDROP       all  --  anywhere             anywhereChain reject (11 references)target     prot opt source               destinationDROP       all  --  anywhere             anywhere            PKTTYPE = broadcastDROP       all  --  anywhere             anywhere            PKTTYPE = multicastDROP       all  --  255.255.255.255      anywhereDROP       all  --  BASE-ADDRESS.MCAST.NET/4  anywhereDROP       igmp --  anywhere             anywhereREJECT     tcp  --  anywhere             anywhere            reject-with tcp-resetREJECT     udp  --  anywhere             anywhere            reject-with icmp-port-unreachableREJECT     icmp --  anywhere             anywhere            reject-with icmp-host-unreachableREJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibitedChain shorewall (0 references)target     prot opt source               destinationChain smurfs (2 references)target     prot opt source               destinationLOG        all  --  192.168.0.255        anywhere            LOG level info prefix `Shorewall:smurfs:DROP:'DROP       all  --  192.168.0.255        anywhereLOG        all  --  255.255.255.255      anywhere            LOG level info prefix `Shorewall:smurfs:DROP:'DROP       all  --  255.255.255.255      anywhereLOG        all  --  BASE-ADDRESS.MCAST.NET/4  anywhere            LOG level info prefix `Shorewall:smurfs:DROP:'DROP       all  --  BASE-ADDRESS.MCAST.NET/4  anywhereChain tcpflags (2 references)target     prot opt source               destinationlogflags   tcp  --  anywhere             anywhere            tcp flags:FIN,SYN,RST,PSH,ACK,URG/FIN,PSH,URGlogflags   tcp  --  anywhere             anywhere            tcp flags:FIN,SYN,RST,PSH,ACK,URG/NONElogflags   tcp  --  anywhere             anywhere            tcp flags:SYN,RST/SYN,RSTlogflags   tcp  --  anywhere             anywhere            tcp flags:FIN,SYN/FIN,SYNlogflags   tcp  --  anywhere             anywhere            tcp spt:0 flags:FIN,SYN,RST,ACK/SYN

logowanie mam wyłączone bo w sumie mi zbędne ale spróbuję włączyć i zobaczę czy coś ciekawego się pojawi. w sumie za dużo portów mam odblokowanych (pop3 i imap) ale kombinuję z tą pocztą na razie bezskutecznie.

 

edit:

włączyłem logowanie w shorewallu dla pakietów porzuconych (DROP). musze poczekać aż jakaś wiadomość nie wyjdzie to zobaczę może coś pokaże ciekawego...

 

delivering 1OOQCi-0001fF-4FR: dnslookup for *@wm.plT: remote_smtp for *@wm.plConnecting to poczta2.wm.pl [212.160.105.210]:25 ... connected  SMTP<< 220 *******************************************************************************  SMTP>> EHLO mail.pl  SMTP<< 250-thor.wm.pl Hello ip-*.static.crowley.pl [*], pleased to meet you         250-ENHANCEDSTATUSCODES         250-PIPELINING         250-8BITMIME         250-SIZE 55248520         250-DSN         250-ETRN         250-AUTH LOGIN PLAIN GSSAPI DIGEST-MD5 CRAM-MD5         250-XXXXXXXXA         250 XXXB  SMTP>> MAIL FROM:<*@mail.pl> SIZE=149730  SMTP>> RCPT TO:<*@wm.pl>  SMTP>> DATA  SMTP<< 250 2.1.0 <*@mail.pl>... Sender ok  SMTP<< 250 2.1.5 <*@wm.pl>... Recipient ok  SMTP<< 354 Enter mail, end with "." on a line by itself  SMTP>> writing message and terminating "."LOG: MAIN  SMTP timeout while connected to poczta2.wm.pl [212.160.105.210] after sending data block (8189 bytes written): Connection timed outLOG: MAIN  == *@wm.pl R=dnslookup T=remote_smtp defer (110): Connection timed out: SMTP timeout while connected to poczta2.wm.pl [212.160.105.210] after sending data block (8189 bytes written)

a firewall przepuszcza:

 

kernel: [1209127.322839] Shorewall:fw2net:ACCEPT:IN= OUT=eth0 SRC=192.168.0.50 DST=212.160.105.210 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=22574 DF PROTO=TCP SPT=57079 DPT=25 WINDOW=5840 RES=0x00 SYN URGP=0

a po wyłączeniu firewalla mam:

 

SMTP>> writing message and terminating "."  SMTP<< 250 OK  SMTP>> QUITLOG: MAIN  => *@wm.pl R=dnslookup T=remote_smtp H=poczta2.wm.pl [212.160.105.210]LOG: MAIN  Completed
Edytowane przez DuG1

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Gość <account_deleted>

a firewall przepuszcza:

 

kernel: [1209127.322839] Shorewall:fw2net:ACCEPT:IN= OUT=eth0 SRC=192.168.0.50 DST=212.160.105.210 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=22574 DF PROTO=TCP SPT=57079 DPT=25 WINDOW=5840 RES=0x00 SYN URGP=0

 

Coś dużo tego ACCEPT...

 

Timeout może wynikać np. z fragmentacji pakietów, na którą nie pozwala host po drugiej stronie, albo może po prostu trzeba spróbować ziększyć "retry/timeout limit" dla exima? ...coś też mi się nie podoba msg FW: SPT=57079 -> DPT=25 ok - a co w drugą stronę? może tu jest problem (NAT)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

zwiększanie timeout dla exima nie ma sensu bo przy wyłączonym firewallu wysyła się natychmiast a przy włączonym zatrzymuje się i tak przez pare min do timeoutu.

 

logowanie miałem włączone tylko dla pakietów wychodzących na porcie smtp więc dlatego nie ma nic zwrotnego. postaram się jutro sprawdzić.

 

a co do fragmentacji to muszę się douczyć bo ni cholery mi to teraz nie mówi :)

 

najbardziej dziwi mnie to, że dotyczy to tylko niektórych serwerów - do większości przesyłki wychodzą bezproblemowo.

 

i tak swoją drogą - do wysyłki poczty powinien wystarczyć tylko otwarty port tcp 25 + dns?

Edytowane przez DuG1

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Gość <account_deleted>

najbardziej dziwi mnie to, że dotyczy to tylko niektórych serwerów - do większości przesyłki wychodzą bezproblemowo.

 

i tak swoją drogą - do wysyłki poczty powinien wystarczyć tylko otwarty port tcp 25 + dns?

No w zasadzie tak, o ile host nie wymaga jakichś specjalnych ustawień dla połączeń szyfrowanych. Pakiety zwrotne muszą dochodzić - nie przemyślalem tego do końca - przecierz transmisja wywala się już po uwierzytelnieniu... ale oczywiście warto sprawdzić co przychodzi z zewnątrz.

Próbowałeś diagnostyki z poziomu exima? - jest tam parę opcji...

..a no i spróbowałbym innego dns - poprzedni tcpdump tutaj się różni nieco - może dns google albo providera?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

myślałem, że znalazłem rozwiązanie ale dalej lipa... co może jeszcze blokować firewall, że ta poczta nie wychodzi?

 

mam chyba to samo co tutaj: http://www.gossamer-threads.com/lists/exim/users/81043

 

EDIT:

 

zauwazyłem, że wiadomości czasem wychodzą. niestety przy włączonym firewallu wysyła baaaardzo wolno - kilkanaście/kilkadziesiąt razy wolniej niż przy wyłączonym (sprawdzałem eximem z opcją debug) i stąd te timeout'y pewnie.

Edytowane przez DuG1

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Gość <account_deleted>

Tak, problem wygląda podobnie - pytanie:

spróbowałeś wyłączyć window_scaling?

MTU:gość zredukował z 1458 do 1200? skąd te liczby to nie wiem...

Default dla MTU to 1492 lub 1500, sensowna redukcja w celach testowych jest do poziomiu znacznie poniżej 1000 (576 min)

 

Dla uzyskania pełnego obrazu sytuacji potrzebny jest pełny dump pakietów I/O po wyjściu z FW oraz po stronie klienta (przed FW). To pozwoli stwierdzić różnice jaką wprowadza FW, stopień fragmentacji, ilość retransmisji itp.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...