Jeg antar menneskene som kjører Linux-servere vet og vet om Nekt VERTER y Fail2ban. For de som ikke kjenner ham, vil jeg forklare litt om disse to programmer. |
Vi installerer og konfigurerer disse to applikasjonene for å unngå ytterligere hodepine. Først og fremst vil vi forklare hva disse to applikasjonene er og hvilken funksjon de har:
Feil2Ban
Det er en logganalysator som ser etter mislykkede registreringsforsøk og blokkerer IP-ene som disse forsøkene kommer fra. Den distribueres under GNU-lisensen og fungerer vanligvis på alle systemer som grensesnitt med et angrepskontrollsystem eller en lokal brannmur.
Fail2Ban har en flott konfigurasjon og kan også lage regler for programmer
egne eller tredjeparter.
Nekt VERTER
Det er et sikkerhetsverktøy skrevet i python som overvåker tilgangsserverloggene for å forhindre brute force-angrep på en virtuell server. Programmet fungerer ved å forby IP-adresser som overstiger et visst antall mislykkede tilkoblingsforsøk.
Disse Linux-applikasjonene - DenyHosts og Fail2ban - kan brukes hver for seg eller sammen. I mitt tilfelle har jeg dem begge sammen.
Installasjonen og konfigurasjonen av hver og en avhenger av distribusjonen du bruker. Dette innlegget er orientert mot CentOS 6.3, selv om forskjellene mellom de andre distroene ikke er veldig markerte.
Vel, kom deg på jobb.
Fail2Ban Installasjon og konfigurasjon
Dette programmet genererer dynamiske regler i selve Linux-brannmuren, og er ansvarlig for å lage live regler i IpTables.
Installasjon
For installasjonen a:
yum installer fail2ban
Hvis pakken ikke vises, må vi legge til nødvendig lager:
rpm -Uvh http://mirror.metrocast.net/fedora/epel/6/i386/epel-release-6-7.noarch.rpm
Med dette bør du begynne å installere applikasjonen sammen med dens avhengigheter.
Nå må vi konfigurere Fail2Ban for å analysere loggene vi ønsker og blokkere
IP-er, sender varsler via e-post. For dette må vi endre jail.conf-filen som vi finner i / etc / fail2ban
cd / etc / fail2ban
nano fengsel.konf
Følgende skal gjøres i denne filen:
- Endring er utløpsverdien, denne verdien bestemmer tiden i sekunder som angriperens IP vil bli blokkert, som standard kommer verdien på 600 sekunder.
- Finn maxretry-verdien som vil være antall ganger en IP kan få en mislykket godkjenning før den blir blokkert.
- Legg til ip-ene våre i ignoriparameteren. Her vil applikasjonen ignorere våre autentiserte IP-er i den parameteren.
[MISLIGHOLDE]
# "ignorip" kan være en IP-adresse, en CIDR-maske eller en DNS-vert. Fail2ban vil ikke
# forby en vert som samsvarer med en adresse i denne listen. Flere adresser kan være
# definert ved hjelp av mellomrom.
ignorip = 127.0.0.1
# "bantime" er antall sekunder som en vert er utestengt.
bantime = 600
# En vert er utestengt hvis den har generert "maxretry" i løpet av den siste "findtime"
# sekunder.
finnetid = 600
# "maxretry" er antall feil før en vert blir utestengt.
maxretry = 3
Et eksempel på hvordan det kan se ut er som følger:
ignorip = 127.0.0.1 190.25.242.75 192.168.1.0/24
bantime = 800
maxretry = 2
Konfigurer Fail2Ban og SSH
For å se etter mislykkede SSH-påloggingsforsøk, endrer vi filen til den ser ut slik:
[ssh-iptables]
aktivert = sann
filter = sshd
action = iptables [name = SSH, port = 22, protocol = tcp] sendmail-whois [name = SSH, dest=FredySnake@outlook.com, sender = fail2ban @ localhost] logpath = / var / log / secure # Dette er logg som vil analysere fail2ban
maxretry = 3 # IP som har tre eller flere mislykkede forsøk blir blokkert.
bantime = 86400 # 24 timers forbudstid uttrykt i sekunder
Ikke glem at hvis du endrer porten der SSH lytter, må du også endre portparameteren.
Denne applikasjonen fungerer ikke bare for uautorisert tilgang i SSH, men også for apache, for å lese Asterisk-loggene, etc.
Installasjon og konfigurering av DenyHOSTS
Driften er basert på bruken av /etc/hosts.deny-filen, det vil si på å blokkere adressene til de "angripende" vertene, og opprette en liste over nektet verter.
Installasjonen fra depotene kan fås med følgende kommando:
yum installere denyhosts
Konfigurasjonsfilen ligger i /etc/denyhosts.conf
Før vi fortsetter, siden vi som mennesker kan gjøre feil og gjøre det typiske "Layer 8" når vi får tilgang til noen av tjenestene og blokkerer oss selv. For å unngå det redigerer vi filen /etc/hosts.allow og legger til IP-ene til maskinene som vi ikke vil være begrenset fra på grunn av tilgangsfeil.
Endre filen denyhosts.conf
For ikke å gå så langt i innstillingene, i denne filen skal vi bare redigere og fjerne kommentarer fra noen parametere. Disse er:
SYNC_SERVER = http://xmlrpc.denyhosts.net:9911
SYNC_INTERVAL = 1t
SYNC_UPLOAD = ja
SYNC_DOWNLOAD = ja
SYNC_DOWNLOAD_THRESHOLD = 3
SYNC_DOWNLOAD_RESILIENCY = 5t
Dermed vil vi forlate en konfigurasjon praktisk talt som standard, men med stor sikkerhet mot SSH-angrep.
nano /etc/hosts.allow
Eksempel:
sshd:127.0.0.1
sshd:192.168.1.10
sshd: 192.168.0. *
Etter dette starter vi tjenesten på nytt:
/etc/init.d/denyhosts starter på nytt
Med dette gir vi tillatelse til en IP, et IP-område og selvfølgelig til vårt loopback-grensesnitt. Noe som jeg ikke har prøvd - derfor vet jeg ikke om det fungerer - er å legge til DNS-er i denne filen; altså med tjenester som DynDNS. Hvis jeg gjør det, vil jeg fortelle deg hvordan det gikk.
Med visse alternativer og justeringer vil vi også sørge for at etter den tidsperioden vi angir i DenyHOSTS-konfigurasjonen, blir de lagrede adressene renset, og de blir oppdatert med andre lister laget av andre - hvis vi indikerer det - gir tillatelse til å få tilgang til serveren til DenyHOSTS.
For å rense de lagrede adressene fra tid til annen, som konfigurert, må demonen kjøres med –purge-parameteren:
/etc/init.d/denyhosts start - purge
I tillegg til dette, må vi inkludere det i starten av systemet:
chkconfig nekter verter på