Tips for å beskytte Linux-serveren din mot eksterne angrep

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.

John Fredy Perez er en av vinnere fra den ukentlige konkurransen vår: «Del det du vet om Linux«. Gratulerer! Nervøs for delta og gi ditt bidrag til samfunnet, som John gjorde?

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å

Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.