Awk i Exim – przydatny skrypt statystyczny

Od jakiegoś czasu używam nowej wersji Exima, który ma zaimplementowane mechanizmy ochronne. Jest greylistowanie korzystające z bazy MySQL i odrzucanie nadawców, którzy są na listach RBL i takich, którzy się usiłują przedstawiać jako mój własny serwer. Aby wiedzieć co się dzieje wykorzystałem niewielki skrypt.
Pomysł takiego skryptu przedstawił Marcin Krzywonos na zjeździe Freesco w lipcu 2008. Skrypt analizuje plik /var/logexim/rejectlog.

Sam skrypt po przeróbkach wygląda następująco:
# skrypt do analizy logu exima
# napisany przez MKK, modyfikacja WT

/^.*Dropped.*$/ {
Dropped++
}
/^.*Unknown.*$/ {
Unknown++
}
/^.*listed.*$/ {
listed++
}

/^.*temporarily.*$/ {
temporarily++

pos = match($0, „H=”)
if (pos > 0) {
str = substr($0, pos, length($0))
printf(„Greylistowany adres: %s „, substr(str, 4, match(str, „F=”) – 4));
}
}

END {
printf(„Greylistowane: %d „, temporarily);
printf(„Odrzucone (RCPT): %d „, Unknown);
printf(„W tym na (RBL): %d „, listed);
printf(„Odrzucone (EHLO): %d „, Dropped);
}

Skrypt wyświetla następujące dane:
Adresy i IP greylistowanych hostów, może to czasem się przydać w celu dodania problematycznych serwerów do białej listy.
Liczbę greylistowanych wywołań.
Liczbę odrzuconych nadawców,
w tym z powodu obecności nadawcy na listach RBL (pozostałe odrzucone głownie ze względu na nieistniejącego odbiorcę).
Liczbę odrzuconych nadawców przedstawiających się jako mój serwer.
Wynik wywołania skryptu w postaci awk -f /sciezka/skrypt /var/log/exim/rejectlog wygląda tak (wywołanie skryptu można dołączyć do crona):

Greylistowany adres: 89-18-165-3.dsl.telesp.net.br [189.18.165.3]
Greylistowany adres: ads151.neoplus.adsl.tpnet.pl [83.4.96.151]
Greylistowany adres: ay0-omc2-s5.bay0.hotmail.com [65.54.246.141]
Greylistowany adres: ay0-omc2-s5.bay0.hotmail.com [65.54.246.141]
Greylistowany adres: ay0-omc2-s5.bay0.hotmail.com [65.54.246.141]
Greylistowany adres: ay0-omc2-s5.bay0.hotmail.com [65.54.246.141]
Greylistowany adres: ay0-omc2-s5.bay0.hotmail.com [65.54.246.141]
Greylistowany adres: ay0-omc2-s5.bay0.hotmail.com [65.54.246.141]
Greylistowany adres: 9-109-25-79.dynamic.mts-nn.ru (winxpsp2corp) [89.109.25.79]
Greylistowany adres: 9-109-25-79.dynamic.mts-nn.ru (winxpsp2corp) [89.109.25.79]
Greylistowany adres: 9-109-25-79.dynamic.mts-nn.ru (winxpsp2corp) [89.109.25.79]
Greylistowany adres: 9-109-25-79.dynamic.mts-nn.ru (winxpsp2corp) [89.109.25.79]
Greylistowany adres: 9-109-25-79.dynamic.mts-nn.ru (winxpsp2corp) [89.109.25.79]
Greylistowany adres: blp215.neoplus.adsl.tpnet.pl (dom-togxg4sfx79) [83.7.209.215]
Greylistowany adres: blp215.neoplus.adsl.tpnet.pl (dom-togxg4sfx79) [83.7.209.215]
Greylistowany adres: blp215.neoplus.adsl.tpnet.pl (dom-togxg4sfx79) [83.7.209.215]
Greylistowany adres: blp215.neoplus.adsl.tpnet.pl (dom-togxg4sfx79) [83.7.209.215]
Greylistowany adres: blp215.neoplus.adsl.tpnet.pl (dom-togxg4sfx79) [83.7.209.215]
Greylistowany adres: eek175.neoplus.adsl.tpnet.pl (viatori-3f5c340) [79.186.114.175]
Greylistowane: 22
Odrzucone (RCPT): 534
W tym na (DNSBL): 55
Odrzucone (EHLO): 43

Dzięki temu wiem, że w ciągu ostatniej doby 22 nadawców było greylistowanych, a większość tak czy inaczej odrzuconych, jeśli do tego dodam podobny skrypt z analizy mainlog i dowiem się, że dostarczonych zostało 7 maili, to mam względnie krótki i pełny wgląd w działanie serwera SMTP i jednocześnie wiem, jaka jest skuteczność wbudowanych w exima zabezpieczeń. Ponieważ wśród dostarczonych maili był tylko jeden list, który w zasadzie można było by zakwalifikować jako spam reklamowy, to wygląda to całkiem nieźle. Jeśli taki stan się utrzyma przez najbliższe tygodnie, to moge uznać, że dodatkowe zabezpieczenie antyspamowe nie jest mi potrzebne.
Przy okazji stwierdziłem, że na niektórych zarządzanych przeze mnie serwerach pojawia się spora ilość prób spamerskich polegających na wysyłaniu maila do nieistniejącego użytkownika, podobnie jak to się dzieje przy atakach botów na ssh. Dodawane są kolejne loginy i ich rozmaite wariacje w nadziej, że któryś kolejny będzie pasował. Na takich spamerów dobrym sposobem jest włączenie ochrony portu 25 przez fail2ban.

autor: W. Trąmpczyński (Maciek)


Dodaj komentarz