IPS eller Intrusion Prevention System er en teknologi, der bruges i netværkssikkerhed til at undersøge netværkstrafik og forhindre forskellige angreb ved at opdage ondsindede input. Bortset fra bare at opdage ondsindede input, som Intrusion Detection System gør, forhindrer det også netværket i ondsindede angreb. Det kan forhindre, at netværket brute-force, DoS (Denial of Service), DDoS (Distribueret Denial of Service), Exploits, orme, vira og andre almindelige angreb. IPS er placeret lige bag firewallen, og de kan sende alarmer, slippe ondsindede pakker og blokere for stødende IP-adresser. I denne vejledning bruger vi Fail2ban, som er en indtrængningsforebyggelsessoftwarepakke, til at tilføje et sikkerhedslag mod forskellige brute force-angreb.
Sådan fungerer Fail2ban
Fail2ban læser logfilerne (f.eks.g. / var / log / apache / error_log) og får de fornærmende IP'er, der forsøger for mange mislykkede adgangskoder eller søger udnyttelser. Dybest set opdaterer Fail2ban firewallregler for at blokere forskellige IP'er på serveren. Fail2ban leverer også filtre, som vi kan bruge til en bestemt tjeneste (f.eks.g., apache, ssh osv.).
Installation af Fail2ban
Fail2ban kommer ikke forudinstalleret på Ubuntu, så inden vi bruger det, er vi nødt til at installere det.
[e-mail-beskyttet]: ~ $ sudo apt-get update -y[e-mail-beskyttet]: ~ $ sudo apt-get install fail2ban
Efter installation af Fail2ban skal du starte og aktivere Fail2ban-tjenesten ved hjælp af kommandolinjen.
[e-mail-beskyttet]: ~ $ sudo systemctl start fail2ban[e-mail-beskyttet]: ~ $ sudo systemctl aktiver fail2ban
Kontroller nu status for fail2ban-tjenesten for at bekræfte, om den startede eller ej.
Konfiguration af Fail2ban til SSH
Vi kan konfigurere Fail2ban ved at ændre / etc / fail2ban / fængsel.conf-fil. Inden du ændrer den, skal du tage en sikkerhedskopi af denne fil.
[e-mail-beskyttet]: ~ $ sudo cp / etc / fail2ban / fængsel.conf / etc / fail2ban / fængsel.lokal
Nu konfigurerer vi Fail2ban for at forhindre sshd-service fra ondsindede input. Åbn / etc / fail2ban / fængsel.lokal fil i din foretrukne editor.
[e-mail-beskyttet]: ~ $ sudo nano / etc / fail2ban / fængsel.lokalGå til [Standard] sektion og indtast konfigurationsparametre under [Standard] sektion.
[STANDARD]ignorere = 127.0.0.1/8 192.168.18.10/32
bantime = 300
maxretry = 2
findtime = 600
ignorere er listen over cidr-maske, ip-adresse eller DNS-vært adskilt af et mellemrumstegn. Føj dine betroede IP'er til denne liste, og disse IP'er bliver hvidlistet og vil ikke blive blokeret af fail2ban, selvom de udfører et brutalt angreb på serveren.
bantime er det tidspunkt, hvor en IP bliver blokeret efter at have foretaget et bestemt antal mislykkede forsøg på serveren.
maxretry er antallet af maksimalt mislykkede forsøg, hvorefter en IP blokeres af fail2ban i et bestemt tidsrum.
findtime er den tid, hvor en vært gør det maxretry mislykkede forsøg, vil det blive blokeret.
Efter konfiguration af ovenstående parametre konfigurerer vi nu den tjeneste, som ovenstående regler skal anvendes på. Som standard har Fail2ban foruddefinerede filtre til forskellige tjenester, så vi behøver ikke at indtaste nogen specifikke poster for tjenester. Vi aktiverer eller deaktiverer kun forskellige tjenester i konfigurationsfilen. Åbn / etc / fail2ban / fængsel.lokal fil i din foretrukne editor.
[e-mail-beskyttet]: ~ $ sudo nano / etc / fail2ban / fængsel.lokalFind [sshd] i filen og indtast følgende parametre i sektionen.
[sshd]aktiver = sand
port = ssh
filter = sshd
logsti = / var / log / godkendelse.log
maxretry = 3
aktiveret definerer, om denne tjeneste er beskyttet af fail2ban eller ej. Hvis aktiveret er sandt, beskyttes tjenesten. ellers beskyttes det ikke.
Havn definerer serviceport.
filter refererer til konfigurationsfilen fail2ban vil bruge. Som standard bruger den / etc / fail2ban / filter.d / sshd.conf-fil til ssh-tjeneste.
logsti definerer stien til logfiler, fail2ban overvåger for at beskytte tjenesten mod forskellige angreb. For ssh-service kan godkendelseslogfiler findes på / var / log / auth.log, så fail2ban overvåger denne logfil og opdaterer firewallen ved at opdage mislykkede loginforsøg.
maxretry definerer antallet af mislykkede loginforsøg, før det blokeres af fail2ban.
Efter anvendelse af ovenstående konfiguration til fail2ban, genstart tjenesten for at gemme ændringer.
[e-mail-beskyttet]: ~ $ sudo systemctl genstart fail2ban.service[e-mail-beskyttet]: ~ $ sudo systemctl status fail2ban.service
Test af Fail2ban
Vi har konfigureret fail2ban til at beskytte vores system mod brute force angreb på ssh service. Nu laver vi mislykkede loginforsøg på vores system fra et andet system for at kontrollere, om fail2ban fungerer eller ej. Efter at have lavet nogle mislykkede loginforsøg nu, vil vi kontrollere fail2ban-logfiler.
[e-mail-beskyttet]: ~ $ cat / var / log / fail2ban.log
Vi kan se, at IP'en efter mislykkede loginforsøg er blevet blokeret af fail2ban.
Vi kan få en liste over alle de tjenester, som fail2ban er aktiveret til ved hjælp af følgende kommando.
[e-mail beskyttet]: ~ $ sudo fail2ban-klient status
Ovenstående figur viser, at vi kun har aktiveret fail2ban for sshd-service. Vi kan få yderligere oplysninger om sshd-tjenesten ved at angive servicenavnet i ovenstående kommando.
Fail2ban fjerner automatisk den forbudte IP-adresse efter bantime, men vi kan til enhver tid afvise enhver IP ved hjælp af kommandolinjen. Dette vil give mere kontrol over fail2ban. Brug følgende kommando til at ophæve IP-adressen.
[e-mail beskyttet]: ~ $ sudo fail2ban-klient sæt sshd unbanip 192.168.43.35
Hvis du forsøger at fjerne en IP-adresse, der ikke er blokeret af fail2ban, fortæller den dig bare, at IP'en ikke er blokeret.
[e-mail-beskyttet]: ~ $ sudo fail2ban-klient sæt sshd unbanip 192.168.43.35
Konklusion
For en systemadministrator eller en sikkerhedsingeniør er det en stor udfordring at opretholde sikkerheden på serverne. Hvis din server er beskyttet af adgangskoden, ikke af et offentligt og privat nøglepar, er din server mere sårbar over for brutale kraftangribere. De kan komme ind i dit system ved at anvende forskellige adgangskodekombinationer. Fail2ban er et værktøj, der kan begrænse angribere fra at starte forskellige slags angreb, herunder brute force-angreb og DDoS-angreb på din server. I denne vejledning diskuterede vi, hvordan vi kunne bruge Fail2ban til at beskytte vores server mod forskellige angreb. Vi kan også bruge Fail2ban til at beskytte andre tjenester såsom apache, nginx osv.