Typefully

Czarna lista internetowych agresorów - jak ją wdrożyć?

Avatar

Share

 • 

A month ago

 • 

View on X

Boty, które próbują włamać się na serwery to dla mnie codzienność, bo w końcu prowadzę hosting serwerów VPS 🤷‍♂️ Używam prostej metody, aby odsiać pewien promil internetowych agresorów 🧵 ↓
Środowisko Mikrusa (mikr.us) to ponad 10 tysięcy serwerów VPS. Nie ma szans, aby admini platformy zabezpieczyli każdego z użytkowników, tym bardziej że każdy z nich ma prawa roota i może konfigurować serwer, jak zechce. Chcemy jednak blokować intruzów.
Pierwsza linia obrony to klasyka, czyli wycięcie Rosji, Chin i Indii na portach TCP związanych z usługą SSH. To obniżyło liczbę udanych włamań o jakieś 80-90%. Ale przecież nie tylko z tych krajów przychodzą ataki, a całego świata przecież nie wytniemy — choć można próbować ;)
Korzystam z dwóch czarnych list z adresami IP dokonującymi ataków. Pobieram je z poniższych platform. ↳ AbuseIPDB - darmowa/komercyjna baza abuserów ↳ SniffCat - publicznie dostępna baza abuserów Każdy z serwisów oferuje API. Przy pierwszym korzystam z planu darmowego.
Konto FREE na AbuseIPDB umożliwia pobranie bazy danych abuserów tylko 10x na dzień, a mając kilkadziesiąt serwerów, ten limit jest za mały. Sniffcat ma jeszcze gorzej - limit 6x/dzień. Rozwiązanie? Jeden, centralny serwer pobiera listę i wrzuca ją do wspólnego repozytorium.
Każdy z serwisów zwraca około 10 tysięcy topowych adresów IP abuserów do zablokowania. To łącznie daje 20k IPv4. Nie ma sensu tworzyć 20 tysięcy regułek firewalla - wystarczy jedna. Tutaj z pomocą przychodzi "ipset".
W dużym uproszczeniu procedura karmienia ipseta i blokowanie ruchu w iptables wyglądają następująco: ipset create blocklist hash:ip cat lista.txt | xargs -n1 -I {} ipset add blocklist {} iptables -A INPUT -m set --match-set blocklist src -j DROP
Oczywiście prawdziwy skrypt zawiera sprawdzanie, czy set istnieje, czyszczenie go ze starych wpisów, weryfikację istnienia reguły w iptables (aby jej nie dublować), a do tego używam łańcucha FORWARD, a nie INPUT, bo to serwery VPS wpięte do bridge.
Licznik użycia tej reguły na serwerach pokazuje od 200 tysięcy do 2 milionów zdropowanych pakietów ze złośliwych źródeł rocznie. Czy to dużo? Moim zdaniem tak, a biorąc pod uwagę, że koszty wdrożenia tego zabezpieczenia są niemal zerowe, warto je dorzucić do serwera.
Oczywiście, zamiast odcinać 100% ruchu z podanych adresów IP, można odciąć jedynie ruch skierowany na konkretne usługi — np. SSH, czy porty serwera webowego. To nie jest 'silver bullet' - to tylko kolejny, mały kamyczek do koszyka z zabezpieczeniami serwerów ;)
Avatar

Jakub Mrugalski 🔥

@uwteam

🤖 Piszę o technologii, AI, automatyzacji, cybersecurity i biznesie. 🛠 Dzielę się użytecznymi narzędziami i case-study 🤔 #DigitalEUAmbassador 🛑 Nie czytam DM