Zabbix i monitorowanie ruchu na porcie

Niedawno na kanale IRCowym #zabbix padło pytanie, jak monitorować ruch na porcie. Po upewnieniu się, że chodzi o port protokołu, a nie o interfejs w switchu (co jest zresztą chyba bardziej popularnym znaczeniem, szczególnie w kontekście monitoringu), padły propozycje.

Moja ulubiona ostatnimi czasy metoda, czyli czytanie danych o ruchu z flowów. Poważnie, sflow i nfdump rządzą, a wrapper do Zabbiksa, który łyka parametry i używa nfdump jest trywialny do napisania, lekki i działa znakomicie, a wyciąganie dowolnych danych o ruchu jest bardzo wygodne. No ale do tego trzeba mieć zboczenie sieciowe i/lub sprzęt obsługujący flowy, ew. uruchomić zrzucanie flowów na maszynie z Linuksem, co może być zbędnym jej obciążeniem i ogólnie strzelaniem z armaty do muchy.

Prostszym rozwiązaniem jest odczyt danych bezpośrednio z iptables. Przypuśćmy, że chcemy monitorować w Zabbiksie, ile ruchu trafia do serwera na porcie 80, a ile na 443. W tym celu tworzymy reguły, które będą dopuszczały, a jednocześnie zliczały ruch na danym porcie:

iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Zakładam, że trafią w odpowiednie miejsce w łańcuchu tak, że ruch będzie przez nie przechodził. Do wyświetlania wartości posłuży iptables -L -n -v. Jak widać, w pierwszej kolumnie jest ilość pakietów, w kolejnej ilość bajtów. W /etc/zabbix/zabbix_agentd.conf dodajemy linię:

UserParameter=traffic.incoming.dstport[*], iptables -L -n -v | grep "dpt:$1" | \
sed 's/K/000/;s/M/000000/;s/G/00000000/' | awk '{print $$2}'

Kolejno: grep po parametrze wywołanym z Zabbiksa, w tym przypadku za parametr posłuży numer portu (czyli czytamy dwie wartości: traffic.incoming.dstport[80] oraz traffic.incoming.dstport[443]), zamiana (zgrubna, bo kilo to 1000, nie 1024) K, M i G na cyfry i wyłuskanie w awk drugiej kolumny, czyli ilości bajtów. Widoczny podwojony $ – bez tego zabbix_agent potraktuje $2 jako drugi parametr przekazany z serwera.

I to by było tyle w temacie. Oczywiście można w prosty sposób rozbudować. Gdyby były jakieś błędy/uwagi/sugestie to walcie śmiało – pisałem na sucho, ja tego typu dane biorę z flowów…

Blokada portu 25 w Netii.

Netia dołączyła do grona największych[1] (wcześniej, jako pierwsza zrobiła to TPSA, potem – z większych operatorów – port 25 zablokował Dialog) i zablokowała port 25 dla użytkowników. Znowu późno się późno się zorientowałem, bo po blisko miesiącu i pewnie nie napisałbym o tym, gdyby nie to, że jest to zrobione… źle.

Netia wprowadziła blokadę w najgorszy sposób dla użytkownika, tj. bez możliwości usunięcia blokady przez użytkownika. Nie da się jej usunąć ani samodzielnie, w sposób automatyczny (tak można to zrobić w przypadku Neostrady), czy w sposób zupełnie ręczny (telefon na infolinię), jak w Dialogu.

Poza tym, blokowanie portu 25 miało duży sens parę lat temu. TPSA była 3,5 roku temu pionierem, była to reakcja na realny problem spamu (Polska była w światowej czołówce wysyłających spam) i były realne efekty. Taki okres w IT to niemal epoka. Obecnie (niestety) coraz więcej spamu jest rozsyłanych w inny sposób, w szczególności przez soft kradnący hasła do skrzynek pocztowych. Ale lepiej późno, niż wcale.

Po drugie, blokada dotyczy tylko IP przydzielanych dynamicznie. Spam z łącz biznesowych będzie płynął dalej (a zmiana typu łącza na biznesowe to – zdaniem rzecznika – prosta sprawa[2]). Gwoli ścisłości, z tego co pamiętam, to samo zrobiła TPSA, bo – wbrew temu co pisze rzecznik Netii – blokada dotyczyła tylko Neostrady, ale już nie Internet DSL.

Po trzecie, brak możliwości zdjęcia blokady przez użytkownika. Co prawda opinia UKE w tej sprawie była pozytywna (czyli, że wolno tak zrobić – kiedyś wysłałem pytanie; nie oznacza to, że użytkownik nie ma możliwości rozwiązania umowy – tu już powinien wypowiadać się IMO UOKiK lub sąd), ale nie dawanie wyboru użytkownikom, jest słabe (choć prostsze technicznie). Szczególnie, że technicznie jest taka możliwość. W połączeniu z argumentacją usługi z dynamicznym IP nie są stworzone po to, żeby na nich stawiać serwery pocztowe[3] jest żenujące[4]. Uważam, że TPSA podeszła do tematu o dwie klasy lepiej.

[1] Przepraszam, ale ten zwrot mi się bardzo ostatnio spodobał, choć tu akurat bez podtekstu jest. Informacja o blokadzie portu 25 na blogu Netii.

[2] Komentarz nr 18:

12.02.2013, 10:39
@maniek552 Nie ma z taką zmianą żadnego problemu. Przechodzi się na ofertę biznesową nadpisując dane w systemie i sprawa załatwiona. Ceny są praktycznie takie same.
[3] Komentarz nr 29:
@maniek552 Z tym, że TP i Dialog wycięli wszystkim (również stałym IP) a my blokujemy tylko dynamicznym. Jest różnica i to duża. Usługi z dynamicznym IP nie są stworzone po to, żeby na nich stawiać serwery pocztowe.
[4] Stawianie serwerów nie jest podstawowym przeznaczeniem takich łącz – tu zgoda. Ale idąc tym tokiem rozumowania za moment okaże się, że można zablokować możliwość jakichkolwiek połączeń przychodzących na dynamicznych łączach (nawiasem, Orange tak robi z mobilnym internetem), albo w ogóle dopuścić tylko WWW i pocztę (w końcu SSH to „biznesowe” zastosowanie, c’nie? jeszcze NTP by się przydało i DNS, żeby w miarę sensownie działało). A tymczasem coraz częściej w domach pojawiają się „serwery”. Czy to gier, czy WWW. Często są one uruchamiane w taki sposób, że użytkownik nawet nie wie, że są, on po prostu udostępnia muzykę czy zdjęcia…

Blokada portu 25 w Dialogu.

„Trochę” przespałem, a tymczasem Dialog poszedł w ślady TPSA, jeśli chodzi o blokowanie spamu wychodzącego z sieci.

Jak Dialog podaje w informacji prasowej, od dnia 18 maja rozpoczęli blokadę portu 25, służącego do wysłki pocztyspamu. Z tego co wiem, informacje do abonentów zostały wysłane w kwietniu, więc widać, że powoli firmy przestają podchodzić do tego działania superostrożnie i zaczynają po prostu wychodzić z założenia, że „informujemy i wyłączamy”. Nie ma co ukrywać, TPSA zrobiła dużo dobrego swoją odważną (ale też przemyślaną i bardzo starannie zaplanowaną) akcją.

Jeśli chodzi o większych polskich darmowych dostawców usług pocztowych, to i WP i Onet pozwalają na korzystanie z szyfrownia przy logowaniu do poczty, więc niezależnie od dostawcy warto zmienić ustawienia progrmu pocztowego tak, aby korzystać z szyfrowania. Nowy Thunderbird AKA Icedove nawet przy podaniu adresu email z WP lub Onetu sam sugeruje ustawienia z włączonym szyfrowaniem.

Ci, którzy nie mogą korzystać z szyfrownia, powinni zmienić sposób wysyłki poczty (TPSA postarała się bardziej niż Dialog z ilością instrukcji, dlatego linkuję do nich).

Jeśli chodzi o sposób usunięcia blokady, to – w przeciwieństwie do TPSA – użytkownik nie może sam odblokować portu 25, ale także w Dialogu taka możliwość istnieje. Aby odblokować port 25 w Dialogu należy skontaktować się z Dialogiem np. za pośrednictwem infolinii.