Krótka historia pewnej konfiguracji.

2006-08-05 przez Tomasz Nowakowski | Kategoria: Bezpieczeństwo IT

Pewnego pięknego dnia (a może był pochmurny) postanowiłem, że skończę całkowicie zabawę w kotka i myszkę z głupio-mądrymi administratorami serwerów, którzy nie mają świadomości tego, że czasem warto zerknąć do dokumentów RFC.

Sprawa była prosta - wymagać (zgodnie z dokumentem RFC 2821), aby serwer rozpoczynający rozmowę z naszym MX'em wpisał poprawne HELO/EHLO, czyli rozwiązywalny w DNS fqdn. W postfix'ie bardzo przyjemnie i elegancko można zadecydować jakie restrykcje, i w którym momencie dialogu SMTP, będziemy stosowali. Do tego konkretnego przypadku nadają się następujące dyrektywy:

  • reject_invalid_helo_hostname - (odzrzuca nieprawidłowo sformułowany hostname)
  • reject_non_fqdn_helo_hostname - (odrzuca hostname nie stanowiący fqdn)
  • reject_unknown_helo_hostname - (odrzuca hostname, który nie posiada rekordu A lub MX w DNS)

Uwaga:
Dla wersji Postfix'a < 2.3 dyrektywy nie posiadają członu "helo", czyli reject_invalid_helo_hostname => reject_invalid_hostname.

W zależności od tego jak bardzo chcemy, żeby nasz serwer był rfc-compliant, to włączamy odpowiednie regułki. W praktyce trzeba mieć się na baczności, bo duża część serwerów dużych firm (nawet banków) niestety ma serwery przedstawiające się czymś zupełnie niedorzecznym. Gdy mocno zależy nam na dostarczaniu poczty, a mniej na stosunku ham/spam, to lepiej nie stosować powyższych regułek, ew. ustawić reject_code na 4xx i często analizować logi, wpisując do jakiejś whitelisty, wszystkie legalne, rfc-ignorant serwery. W wersjii minimalnej, spokojnie można pozostawić reject_invalid_helo_hostname, to spowoduje, że część robaków/wirusów, nie dotrze do naszego skanera, a zostanie odrzucone już przy HELO/EHLO. Jeśli mamy zamiar analizować logi w celu ustalenia, kto i do kogo chciał wysłać wiadomość, a został odrzucony na poziomie HELO/EHLO, ważne jest, żeby dyrektywy te umieścic w sekcji smtpd_recipient_restrictions, a nie w smtpd_helo_restrictions, ponieważ w tym drugim przypadku, odrzucimy hosta nie pozwalając mu podać adresów nadawcy i odbiorcy. Utrudni to nam tylko weryfikację serwera, ale przy dużym obciążeniu serwera, możemy w ten sposób pozbyć się mailbomberów i innych tego typu ataków.

Jako dodatkowe upiększenie naszej konfiguracji, warto dodać regułki sprawdzające, czy w HELO/EHLO nie dostajemy (dla zmyłki) np. localhost.localdomain albo naszej fqdn. Byłoby to bynajmniej nie eleganckie, żebyśmy się dali oszukać i wpuścili przesyłkę z takim nagłówkiem. Aby osiągnąć ten cel używamy do tego dyrektywy check_helo_access najlepiej w sekcji smtpd_recipient_restrictions (znów cenne logi do czytania wieczorami się nam zapełnią), dyrektywę tą warto umieścić powyżej tych sprawdzających poprawność składni HELO/EHLO, aby oszczędzić trochę mocy przetwarzania.


 

Menu

Kategorie

Czy wiesz że

strona spełniająca standardy W3C poprawnie wyświetlana jest nie tylko na komputerach PC, ale także na urządzeniach przenośnych.

Tagi na tej stronie

administratorami całkowicie dnia głupio historia konfiguracji kotka krótka mają myszkę mądrymi pewnego pewnej pięknego pochmurny postanowiłem serwerów skończę zabawę świadomości

Kanały RSS

Time: 0.4874 | Mem: 2.31MB