Spamhaus DROP és EDROP listák alapján iptables tiltás
A Spamhaus project segít, könnyen feldolgozható és elérhető formában tartani az Internet nem használatos IP cím tartományainak a listáját. A DROP és EDROP listák a “Don’t Route Or Peer”, valamint EDROP néven a kiterjesztett listát biztosítja. Ezek olyan hálózatok, melyek elvileg nincsenek használatba, így úgynevezett “eltérített”, profi spam műveletekhez bérlet, illetve a számítógépes bűnözéshez használt (malware, trójai letöltők, botnet vezérlők) hálózatok felsorolása.
Ezáltal a Spamhaus lista felhasználható apache DDos támadás csökkentésére, vírusok, trójai támadások korlátozásához.
A Spamhaus DROP listák frissítése
A listák frissítése nem számít gyakorinak, feltételezhetjük, hogy napi a frissítés. Így semmiképp nem célszerű napi egynél többször letölteni, mert a project szerverének a tűzfala gyorsan letilthat.
Célszerűen napi egyszeri, hajnalban való letöltéssel lehet frissíteni az általunk használt védelmet. Így a felsorolást, ami gyakorlatilag egy text fájl, könnyen felhasználhatjuk az iptables alapú tűzfalunk tiltási szabályaihoz, amiről ez a bejegyzés is készült.
Hogyan készítsük el az iptables szabályokat
A letöltött listában található IP cím vagy IP cím tartomány formátuma pontosan megfelel az iptables-ben használatos hálózati formátumnak, például:
14.129.0.0/16 ; SBL192262 14.192.48.0/21 ; SBL131019
Ezt egy egyszerű szkripttel fel tudjuk dolgozni, pl. bash shellben:
for $IPS in `cat /tmp/drop.txt | egrep -v '^;' | awk '{ print $1}' `; do
iptables -A INPUT -p 0 -s $IPS -j DROP;
done
Hogyan automatizálhatjuk ezt a iptables alapú IP cím szűrést?
Kész megoldási is vannak ennek a hozzáférés szabályozásnak, az egyik a teljesen alap linux megoldáson: a crontab-ból futtatott shell szkripttel történik. A Spamhaus.sh névre hallgat a projekt.
A github-ról letölthető szkript elején ellenőrizhetjük, beállíthatjuk az iptables parancs útvonalát, beállíthatjuk, hová tárolja el a szkript a letöltött IP cím tartományokat tartalmazó Spamhaus DROP listát, és a választott Chain elnevezését.
A szkript letölti a listát, kitörli a Chain alapján a korábbi szabályokat, ha nem létezik a Chain, akkor létrehozza, majd a lista alapján egy ciklussal betölti az iptables tűzfalunkba a szabályokat.
A szkriptet a crontab-ból meghívhatjuk és például naponta egyszer hajnalban frissíthetjük az aktuális állapottal.
Arra mindenképp figyeljük, hogy csak addig használjuk a módszert, amíg biztosítani tudjuk, hogy rendben lefut és frissül, különben később használatba vett hálózatok kitiltva maradhatnak.
No Comments.