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:
- Zablokuj dostęp do wszystkich adresów IP znajdujących się na czarnej liście:
BLACKLIST net:all all
- 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
- Jeśli chcesz zablokować dostęp tylko dla konkretnego adresu IP, zapisz to w ten sposób:
BLACKLIST net:192.168.1.100 all
- 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:
- Pobierz z abuseipdb czarną listę listę IP
- Utwórz plik „czarnej” listy IP dla shorewall 5
- 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