Primena Fail2Ban zaštite u Shibboleth IdP okruženju¶
Fail2Ban¶
Fail2Ban je sigurnosni alat koji automatski analizira log fajlove i blokira IP adrese koje pokazuju zlonamerno ponašanje, poput ponovljenih neuspešnih pokušaja prijavljivanja ili brute‑force napada.
Fail2Ban i Shibboleth Identity Provider¶
Fail2Ban se može integrisati sa Shibboleth IdP‑om radi dodatnog unapređenja bezbednosti autentifikacionog servisa. U okviru svih IdP‑ova iAMRES Federacije, Fail2Ban je posebno podešen da analizira relevantne log fajlove Shibboleth IdP‑a. Na osnovu tih podataka, sistem automatski detektuje i blokira sumnjive ili zlonamerne pokušaje prijavljivanja, kao što su ponovljene neuspešne autentifikacije ili brute‑force napadi. Na ovaj način obezbeđuje se viši nivo zaštite IdP servisa, smanjuje rizik od neovlašćenog pristupa i doprinosi stabilnom, pouzdanom i bezbednom radu sistema.
Instalacija fail2ban alata¶
U ovom uputstvu biće prikazana instalacija i konfiguracija za Debian/Ubuntu Linux distribucije.
Konfiguracija fail2ban alata¶
Kreiranje fail2ban filtera¶
Filter omogućava Fail2Ban alatu da analizira log fajl i prepozna IP adrese sa neuspešnim pokušajima logovanja. Neuspešni pokušaji mogu se pojaviti u INFO, ERROR i WARN formi loga, zbog čega su kreirana pravila za sva tri slučaja.
Preuzimanje fail2ban filtera na sledeću putanju /etc/fail2ban/filter.d/shibboleth-idp.conf:
wget https://docs.amres.ac.rs/download/fail2ban/filter.conf -O /etc/fail2ban/filter.d/shibboleth-idp.conf
Kreiranje jail fajla - Struktura 1¶
Ova opcija podrazumeva da postoji aktivan firewall (u ovom slučaju iptables). U okviru jail foldera definišu se pravila za praćenje logova i način na koji se IP adrese blokiraju.Kreira se lokalni fajl (.local) kako bi izmene bile sačuvane prilikom ažuriranja Fail2Ban paketa. Putanja za kreiranje fail2ban konfiguracije /etc/fail2ban/jail.d/shibboleth-idp.local:
Primer shibboleth-idp.local konfiguracionog fajla:[shibboleth-idp] # Naziv modula
enabled = true
filter = shibboleth-idp # Filter koji se koristi
logpath = /opt/shibboleth-idp/logs/idp-process.log # Log fajl koji se prati
backend = polling # Metoda praćenja log fajla
maxretry = 5 # Broj dozvoljenih neuspešnih pokušaja
findtime = 300 # Vremenski interval (u sekundama) u kojem Fail2Ban broji neuspešne pokušaje prijave
bantime = 120 # Trajanje zabrane u sekundama; IP će ostati blokiran ovoliko vremena nakon prekoračenja maxretry.
ignoreip = 127.0.0.1/8 # IP adrese koje se nikad ne blokiraju
action = iptables-allports[name=ShibbolethIdP] # Akcija koju Fail2ban izvršava prilikom blokiranja IP adrese
Kreiranje jail fajla - Struktura 2¶
Ova opcija podrazumeva da ne postoji aktivan firewall. Kreira se Fail2Ban pravilo za blokadu saobraćaja bez korišćenja firewall-a, primenom iproute blackhole mehanizma. Konfiguracija akcije definiše se u fajlu iproute-blackhole.conf, na putanji /etc/fail2ban/action.d/iproute-blackhole.conf:
Primer iproute-blackhole.conf action fajla:
[Definition]
actionstart =
actionstop =
actioncheck =
actionban = ip route add blackhole <ip> # Komanda koja blokira IP dodavanjem blackhole rute
actionunban = ip route del blackhole <ip> # Komanda koja uklanja blokadu brisanjem blackhole rute
Konfiguracioni fajl /etc/fail2ban/jail.d/defaults-debian.conf u Fail2Ban-u treba izmeniti, jer koristi firewall, koji na sistemu nije dostupan.
Enabled parametar postaviti na false kao u sledećem primeru:U okviru jail foldera definišu se pravila za praćenje logova i način na koji se IP adrese blokiraju. Kreira se lokalni fajl (.local) kako bi izmene bile sačuvane prilikom ažuriranja Fail2Ban paketa. Putanja za kreiranje fail2ban konfiguracije /etc/fail2ban/jail.d/shibboleth-idp.local:
Primer shibboleth-idp.local konfiguracionog fajla:[shibboleth-idp] # Naziv modula
enabled = true
filter = shibboleth-idp # Filter koji se koristi
logpath = /opt/shibboleth-idp/logs/idp-process.log # Log fajl koji se prati
backend = polling # Metoda praćenja log fajla
maxretry = 5 # Broj dozvoljenih neuspešnih pokušaja
findtime = 300 # Vremenski interval (u sekundama) u kojem Fail2Ban broji neuspešne pokušaje prijave
bantime = 120 # Trajanje zabrane u sekundama; IP će ostati blokiran ovoliko vremena nakon prekoračenja maxretry.
ignoreip = 127.0.0.1/8 # IP adrese koje se nikad ne blokiraju
action = iproute-blackhole # Akcija koju Fail2ban izvršava prilikom blokiranja IP adrese
Restart i provera Fail2Ban konfiguracije¶
Restartovati Fail2Ban proces:
Provera statusa svih jail fajlova:
Provera statusa fail2ban shibboleth-idp konfiguracije:Ukoliko želimo da uklonimo zabranu za određenu IP adresu:
Istorija blokiranih IP adresa: