Wstęp

Firewall Shorewall to potężne narzędzie do zarządzania bezpieczeństwem sieciowym, a plik konfiguracyjny „blrules” (Blacklist Rules) pozwala na efektywne kontrolowanie dostępu do Twojej sieci poprzez tworzenie reguł opartych na czarnej liście IP. W pliku „blrules” możesz zdefiniować, które adresy IP lub zakresy adresów IP będą zablokowane, co pomaga chronić Twoją sieć przed nieautoryzowanym dostępem i atakami.

Przykładowe zasady w pliku „blrules” mogą wyglądać tak:

  1. Zablokuj dostęp do wszystkich adresów IP znajdujących się na czarnej liście:
   BLACKLIST      net:all             all
  1. Możesz również zablokować dostęp tylko dla konkretnych zakresów IP, na przykład, blokując dostęp dla adresów z zakresu 192.168.1.0/24:
   BLACKLIST      net:192.168.1.0/24  all
  1. Jeśli chcesz zablokować dostęp tylko dla konkretnego adresu IP, zapisz to w ten sposób:
   BLACKLIST      net:192.168.1.100  all
  1. Jeśli chcesz zablokować dostęp do określonego portu (np. portu 80 dla HTTP), użyj poniższego zapisu:
   BLACKLIST      net:all             tcp     80

Upewnij się, że Twoje reguły w pliku „blrules” są zgodne z Twoimi potrzebami i polityką bezpieczeństwa. Po zaktualizowaniu pliku konfiguracyjnego „blrules” w Shorewall, pamiętaj o ponownym uruchomieniu Shorewall, aby zmiany zostały uwzględnione w działaniu firewalla.

Pobieranie i używanie listy IP przestępców

W moim rozwiązaniu zastosowałem taki algorytm:

  1. Pobierz z abuseipdb czarną listę listę IP
  2. Utwórz plik „czarnej” listy IP dla shorewall 5
  3. Przeładuj shorewall

Ad. 1 – POBIERANIE LISTY

Tworzę plik /etc/cron.weekly/getBlacklist (raz na tydzień wykonuje, chmod +x). W pliku /etc/cron.weekly/getBlacklist mam:

#!/bin/bash

# get latest black list from abuseIPDB
API_KEY=<tu klucz API z abuseIPDB>
curl -G https://api.abuseipdb.com/api/v2/blacklist?ipVersion=4  -d confidenceMinimum=75   -H "Key: $API_KEY"   -H "Accept: text/plain" |sort > /tmp/blacklist 

Ponieważ nie ma IP v6 dodałem do url API ipVersion=4

W pliku /tmp/blacklist mamy posortowane IP:

...
98.144.109.171
98.155.1.99
98.235.105.236
98.30.124.194
98.96.193.10
98.96.193.11
98.96.193.2
98.96.193.4
98.96.193.6
99.151.199.172
99.224.91.112
...

Ad 2. Tworze z pobranego powyżej pliku dostosowaną do shorewalla 5 czarną listę IP, plik /usr/local/bin/blacklist:

#!/bin/bash
DATA=`date +%Y-%m-%d`

echo "### abuseipdb.com ###" > /tmp/blrules

while read line; 
do
    echo "DROP	net:$line	all	#$DATA" >> /tmp/blrules;
done < /tmp/blacklist

Ad 3.

Teraz wystarczy przekopiować plik i zrestartować Firewall:

cp /tmp/blrules /etc/shorewall/blrules 

shorewall restart

To wszytko! Idziemy na kawkę 🙂

Koentowanie nie jest możliwe

Kategorie
Kalendarz
kwiecień 2024
P W Ś C P S N
1234567
891011121314
15161718192021
22232425262728
2930