Slik beskytter du SSH med fail2ban på CentOS

Innholdsfortegnelse

Servere eksisterer ikke isolert, og de fleste er installert og tilpasset med bare den mest grunnleggende SSH -konfigurasjonen som kan være sårbar for brute force -angrep.
Fail2ban -verktøyet gir en måte å automatisk beskytte serveren mot mistenkte angrep og ondsinnet programvare.
Programmet fungerer ved å skanne loggfilene og hjelper til med å reagere på handlinger som gjentatte mislykkede tilkoblingsforsøk.
Vi starter med å installere fail2ban
Siden fail2ban ikke er tilgjengelig i CentOS, må vi starte med å laste ned depotet:
rpm- Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

Deretter installerer vi fail2ban fra kommandolinjen med følgende kommando
yum installer fail2ban

Vi kopierer konfigurasjonsfilen
Standard fail2ban -konfigurasjonsfil er plasseringen i /etc/fail2ban/jail.conf. Konfigurasjonsarbeid bør imidlertid ikke utføres på den filen, og en lokal kopi av den bør i stedet lages for sikkerhetskopiering.
cp / etc / fail2ban / jail.conf / etc / fail2ban / jail.local

Når filen er kopiert, kan vi gjøre alle endringene i den nye jail.local -filen. Mange av de mulige tjenestene som kan trenge beskyttelse er i denne filen allerede forhåndskonfigurert. Hver og en er i sin egen seksjon, konfigurert og slått av.
Sett standard til Jail.Local
Åpne den nye fail2ban -konfigurasjonsfilen:
 vi / etc / fail2ban / jail.local 

Den første delen av standardinnstillingene dekker de grunnleggende reglene som fail2ban vil følge. Hvis du vil konfigurere mer personlig beskyttelse for din virtuelle private server, kan du tilpasse detaljene i hver seksjon.
Du kan se standarddelen noen detaljer som følgende.
 [DEFAULT] # "Ignorering" kan være en IP -adresse, en CIDR -maske eller en DNS -vert. Fail2ban vil ikke # Forby en streng som samsvarer med en adresse i denne listen. Flere adresser kan #define med mellomromsseparator. ignorip = 127.0.0.1 # "Bantime" er antall sekunder som en vert er utestengt fra å få tilgang til eller utestengt. bantime = 3600 # Tiden i sekunder som en vert vil bli blokkert hvis det gjør et maksimalt antall mislykkede søk findtime = 600 # "Maxretry" er antall feil som er tillatt før det blir utestengt. maxretry = 3 

Skriv inn IP -adressen din på ignipip personlig linje. Du kan skille hver adresse med et mellomrom. IgnoreIP vil hviteliste visse IP -adresser og sørge for at de ikke blir utelatt fra din VPS. Å inkludere adressen din vil sikre at du ikke ved et uhell utestenger deg fra din egen virtuelle private server.
Det neste trinnet er å bestemme en forbudstid, antall sekunder som en vert blir blokkert fra serveren hvis de bryter noen av reglene. Dette er spesielt nyttig når det gjelder roboter, som når tilgang er forbudt, bare vil gå videre til neste mål. Standard er 10 minutter, du kan heve dette til en time hvis du vil.
Maxretry er antallet feilaktige tilgangsforsøk en vert kan ha før tilgangsforsøkene er utestengt i løpet av banntiden.
Findtime refererer til hvor lang tid en vert må angi standardverdien er 10 minutter, noe som betyr at hvis det blir gjort et forsøk på å få tilgang til en vert til en server og den mislykkes, må du logge inn mer enn maksbeløpet 3 ganger i de angitte 10 minuttene, blir IP -adressen din blokkert og du får ikke tilgang.
Konfigurer ssh - iptables -delen i Jail.Local
SSH -detaljdelen er bare litt lenger ned i innstillingene, og den er allerede installert og aktivert. Selv om du ikke bør kreve noen endringer i denne delen, kan du finne detaljer om hver linje nedenfor.
 [ssh - iptables] enabled = true filter = sshd action = iptables [name = SSH, port = ssh, protocol = tcp] sendmail -whois [name = SSH, dest = root, [email protected]] logpath = / var / log / secure maxretry = 5

Aktivert refererer ganske enkelt til det faktum at SSH -beskyttelse er slått på. Du kan slå den av med ordet usant.
Filter, som du bruker som standard for sshd, refererer til konfigurasjonsfilen som inneholder reglene som fail2banuser bruker for å finne treff. Navnet er en forkortet versjon av filtypen. For eksempel refererer sshd til /etc/fail2ban/filter.d/sshd.conf
Handling, beskriver trinnene som fail2ban vil ta for å utestenge en matchende IP -adresse. I likhet med filteroppføringen refererer hver handling til en fil i action.d -katalogen. Standardforbudet, iptable, finnes i /etc/fail2ban/action.d/iptables.conf
I iptables kan du tilpasse fail2ban ytterligere. For eksempel, hvis du bruker en ikke-standard port, kan du endre portnummeret innenfor parentesene til høyden, slik at siktlinjen blir den samme familien:
for eksempel . iptables [navn = SSH, port = 30000, protokoll = tcp]
Du kan også endre protokollen fra TCP til UDP på ​​denne linjen, avhengig av hvilken du vil at fail2ban skal overvåke.
Hvis du har en e -postserver konfigurert på din virtuelle private server, kan fail2ban sende deg en e -post når en IP -adresse er utestengt. Ved omgåelse refererer sendmail-whois til handlingene i / etc / fail2ban / action.d / sendmail-whois.conf.
loggbane refererer til plasseringen av loggen som fail2ban vil spore.
Den maksimale forsøkslinjen i SSH -delen har samme definisjon som standardalternativet. Men hvis en tjeneste er aktivert og du vil ha spesifikke verdier for hver av dem, kan du angi det nye maksimale forsøksbeløpet for SSH her.
Start fail2ban på nytt
Etter å ha gjort noen endringer i fail2ban -konfigurasjonen, må du alltid sørge for å starte fail2ban på nytt:
sudo restart fail2ban service

Du kan se reglene som fail2ban setter i kraft inne i IP -tabellen:
iptables- L
Likte og hjalp du denne opplæringen?Du kan belønne forfatteren ved å trykke på denne knappen for å gi ham et positivt poeng
wave wave wave wave wave