2007 06 Weryfikacja nadawcy–dylematy administratora [Bezpieczenstwo]


bezpieczeństwo
Weryfikacja nadawcy
Weryfikacja nadawcy
 dylematy administratora
Janusz Bielec
Wszędobylski spam wymusza na administratorach poszukiwanie różnych metod zabezpieczania
serwerów pocztowych przed zalewem niechcianych wiadomości. Nie ma jedynie słusznych metod
 niektóre metody sprawdzają się znakomicie w pewnych warunkach, w innych zaś ich skuteczność
jest zdecydowanie mniejsza.
edną z metod możliwych do zastosowania np. w Post- system on freeBSD
fiksie jest weryfikacja nadawcy. Pomysł jest zdrowo- ehlo poczta.lsdialog.pl
rozsądkowy i ma swoje proste odniesienie do rzeczy- 250-pryncyp.mol.uj.edu.pl
J
wistości zupełnie niezwiązanej ze światem kompute- 250-PIPELINING
rów. Są ludzie, którzy nie znoszą anonimowych listów. Ta- 250-SIZE 8000000
kowe listy bez czytania wyrzucają do kosza i nie cierpią przy 250-VRFY
tym żadnych moralnych katuszy. Tak samo bez obciążeń wy- 250-ETRN
rzucają listy podpisane  życzliwy etc. Człowiek taki nie da 250-AUTH PLAIN LOGIN
się też łatwo oszukać, gdy ktoś chce się podszyć pod jego zna- 250 8BITMIME
jomych  rozpoznaje bowiem styl, charakter pisma, ogólnie mail from: jjb@lsdialog.pl
rzecz ujmując, potrafi w jakiś sposób zweryfikować nadaw- 250 Ok
cę listu. Oczywiście ta weryfikacja nie jest może profesjonalna, rcpt to: jjb@mol.uj.edu.pl
ale jednakowoż istnieje, a to w wielu przypadkach wystarczy. 250 Ok
Weryfikacja nadawcy w Postfiksie
Na czym polega weryfikacja nadawcy w Postfiksie? Przyj- O autorze
rzyjmy się typowej wymianie informacji w sesji SMTP.
Janusz Bielec jest trenerem w Compendium Centrum
Możemy to zobaczyć, łącząc się programem telnet z por-
Edukacyjnym oraz pracownikiem Uczelnianego Ośrodka
tem 25 serwera:
Komputerowo-Sieciowego Uniwersytetu Jagiellońskiego.
Posiada stronę domową o adresie: http://awe.mol.uj.
telnet pryncyp.mol.uj.edu.pl 25
edu.pl/~jjb
220 pryncyp.mol.uj.edu.pl ESMTP over Postfix
38 czerwiec 2007
linux@software.com.pl
bezpieczeństwo
Weryfikacja nadawcy
data potwierdzenie, że to akurat on wysłał tę powinien być szybki. Postfix może współ-
354 End data with . przesyłkę, ale możemy przynajmniej spraw- pracować z wieloma bazami danych, żeby
Teraz podawany jest tekst wiadomości. dzić, czy taki użytkownik istnieje. się dowiedzieć, jakie mamy możliwości. Wy-
Ok: queued as D3E05104FCD W Postfiksie do takich zadań służy pro- starczy wydać polecenie:
gram verify. Uruchomiony jako demon w mo-
Nieparzyste numery dotyczą klienta, parzy- mencie, kiedy serwer odbierze określony po- postconf -m
ste to odpowiedzi serwera. W praktyce klien- leceniem mail from: adres nadawcy, łączy się btree
tem będzie najczęściej inny MTA i takich sy- z serwerem nadawcy jako klient chcący prze- cidr
tuacji dotyczą dalsze rozważania. słać na adres nadawcy przesyłkę. Oczywiście environ
Konfigurując MTA, przyjmuje się zwy- nie wysyła żadnej przesyłki, nawet pustej, hash
kle, że każdy może do nas napisać. Podob- chce tylko potwierdzić, że nadawca istnieje mysql
nie jak każdy może do nas wysłać list pocz- i można do niego wysłać w tym momencie nis
tą. Z tego powodu w typowej konfiguracji przesyłkę. W zależności od zachowania serwe- proxy
agent transportu nie poświęca dużo uwagi ra nadawcy Postfix podejmuje decyzje okreś- regexp
danym przekazanym w wierszu 5. po pole- lone w konfiguracji, którą omówimy dokład- sdbm
ceniu mail from:, skoro w następnym swoim nie nieco dalej. static
kroku (wiersz 7.) klient deklaruje, że chce Zasadniczo demon verify mógłby za każ- tcp
przekazać przesyłkę do lokalnego użytkow- dym razem sprawdzać istnienie nadawcy unix
nika rcpt to: jjb@mol.uj.edu.pl. Teraz po pole- i jego gotowość do przyjęcia przesyłki, ale
ceniu data treść informacji powinna dotrzeć to zabiera trochę czasu, innymi słowy  nie Widzimy tu, że w tym przypadku można się
do odbiorcy. W wielu przypadkach będzie byłoby to zbyt wydajne rozwiązanie. W ta- oprzeć np. na bazie typu hash, btree czy mysql.
to spam, który może zostać wychwycony kim razie może lepiej byłoby zbierać takie Załóżmy, że wykorzystamy bazę typu hash,
przez analizę treści, ale taka dokładna ana- zweryfikowane informacje i przechowywać chociaż przy mocno obciążonych systemach
liza pożera zasoby serwera. je przez pewien czas. Do tego jest potrzeb- wydajniejsza będzie baza btree albo mysql.
W tej sytuacji możemy pokusić się o spraw- na jakaś baza danych, która te informacje bę- Teraz przejdzmy do konfiguracji Post-
dzenie, czy nadawca listu mógł wysłać prze- dzie przechowywać. Zasadniczo jest to bar- fiksa. Wszelkie zmiany będą wprowadzane
syłkę z konkretnego serwera. Nie będzie to dzo prosta tabela, ale dostęp do informacji w pliku main.cf  zwykle znajduje się on w /etc/
R E K L A M A
www.lpmagazine.org 39
bezpieczeństwo
Weryfikacja nadawcy
postfix. Powinien się tu znalezć wpis określa- helo=jący rodzaj i położenie pliku z bazą zweryfi- internet.fr>
kowanych nadawców, np. dla bazy hash bę- dig -t mx nauka.pl
dzie to wpis tego rodzaju: albo:
informuje mnie, dokąd wyśle zapytanie mój
address_verify_map = pryncyp postfix/smtpd[7141]: serwer przy próbie weryfikacji nadawcy:
hash:/var/log/mail/verify NOQUEUE: reject: RCPT from
unknown[189.141.1.18]: 450 Ten wpis nie ustanawia jeszcze żadnej restry- t@graphinity.com>: Sender address IN MX 10 mx.nauka.pl.
kcji, ustala jedynie, gdzie należy wpisywać rejected: undeliverable address:
informację o zweryfikowanych nadawcach host mx1.cribellum.net[198.173. Teraz łączę się telnetem z portem 25. serwera
i gdzie jej potem szukać. 211.125] said: 550 unknown user mx.nauka.pl:
Narzućmy teraz na nadawcę obowiązek (in reply to
weryfikacji: RCPT TO command); from=inity.com> to= Trying 195.149.231.91...
smtpd_sender_restrictions = proto=ESMTP helo= Connected to mx.nauka.pl
reject_unverified_sender (195.149.231.91).
Jeżeli adres nadawcy jest niedoręczalny (un- Escape character is '^]'.
Teraz nadawca, który nie będzie gotów przy- deliverable), Postfix odrzuca informację. Ale 220 smtp.h.win.pl ESMTP
jąć od nas przesyłki, zostanie odrzucony. Po- początkowo warto śledzić, kiedy system helo pryncyp.mol.uj.edu.pl
winniśmy zadeklarować, jak go traktować, podjąłby taką decyzję, nie odrzucając jednak 250 smtp.h.win.pl
tzn. jakim kodem odpowiedzieć. 450 w po- informacji. W tym celu należy posłużyć się mail from: jjb@mol.uj.edu.pl
niższym przypadku oznacza błąd o charak- poleceniem warn_if_reject. System zapisze w 250 ok
terze nietrwałym: dzienniku, że informacja zostałaby odrzuco- rcpt to: mailing@nauka.pl
na, ale przyjmie ją do dalszej analizy: 511 sorry, no mailbox here by that
unverified_sender_reject_code = 450 name / skrzynka pocztowa odbiorcy
smtpd_sender_restrictions = nie istnieje (#5.1.1  vuser)
Jeżeli będziemy pewni poprawności dzia- warn_if_reject reject_
łania naszego systemu, możemy ten numer unverified_sender Zapytajmy teraz bazę verify:
zmienić na 550. Ale do tego momentu warto
przeglądać dzienniki Postfiksa (np. /var/log/ A oto wpis w dzienniku: postmap -q mailing@nauka.pl hash:
maillog), obserwując jego zachowanie w kon- /var/log/mail/verify
kretnych przypadkach. Będziemy mieli wpi- pryncyp postfix/smtpd[7540]: NOQUEUE: 2:0:1168402483:host mx.nauka.pl
sy podobne temu: reject_warning: RCPT from expredir4 [195.149.231.91] said: 511 sorry,
.cites.uiuc.edu[128.174.5.187]: 450 no mailbox here by that name /
pryncyp postfix/smtp[7116]: : Sender address skrzynka pocztowa odbiorcy nie
D1FFE104EB8: to=t>, orig_to=, Address verification in progress; to RCPT TO command)
relay=gateway-s.comcast.net[63.240.76 from=
.26], delay=12, status=undeliverable to= To jest niestety częsty przypadek  jak sobie
(host gateway-s.comcast.net[63.240.7 proto=ESMTP helo=6.26] said: 551 not our customer (in uiuc.edu> formacji z tej domeny bez weryfikacji nadaw-
reply to RCPT TO command)) cy, ale problem jest dosyć popularny. Wiele
Po upewnieniu się, że wszystko działa popraw- list dyskusyjnych, systemów wysyłających in-
lub: nie, możemy wpis warn_if_reject wyrzucić. formacje np. o rezerwacjach biletów wpisuje
w nazwie nadawcy coś, co ma znaczenie dla ba-
pryncyp postfix/smtpd[7132]: NOQUEUE: Typowe problemy zy rezerwacji, ale nie jest weryfikowalnym kon-
reject: RCPT from i07v-212-194- Zapisuję się do grupy językowej, aby otrzy- tem. W dodatku na ogół nie są przesyłane żad-
92-142.d4.club-internet.fr[212.19 mywać codzienną dawkę ćwiczeń, a tu infor- ne dodatkowe informacje, że jest to konto typu
4.92.142]: 450 internet.fr>: Sender address rejected: wiadomości i widzę wpis:
undeliverable address: host mx.club- Podsumowanie
internet.fr[194.158.120.25] said: 550 Message-Id: Moim zdaniem jest to konfiguracja utrudniają-
5.1.1 : <200703260507.l2Q57eii013232@nauka.pl> ca kontrolowanie spamu. Swego czasu przyję-
Recipient address rejected: User From: "Nauka.pl" te było, że pewne nazwy w adresach należy
unknown in local recipient table łączyć z listami mailowymi, ale teraz wydaje
(in reply to RCPT TO command); mi się to mało sensowną zasadą. Po prostu
from= to To znaczy, że wysyła to użytkownik mailing z należałoby stworzyć choćby alias dla adre-
= proto=ESMTP domeny nauka.pl. su nadawcy.
40 czerwiec 2007


Wyszukiwarka