Tips om uw Linux-server te beschermen tegen aanvallen van buitenaf

Ik denk de mensen die rijden Linux-servers weten en weten WeigerenHOSTS y Fail2ban. Voor degenen die hem niet kennen, zal ik dat doen leg uit een beetje over deze twee toepassingen.

John Fredy Perez is een van de winnaars van onze wekelijkse wedstrijd: «Deel wat je weet over Linux«. Gefeliciteerd! Angstig over participar en uw bijdrage leveren aan de gemeenschap, net als John?

We zullen deze twee applicaties installeren en configureren om latere hoofdpijn te voorkomen. Allereerst zullen we uitleggen wat deze twee applicaties zijn en wat hun functie is:

Fail2Ban

Het is een logboekanalysator die zoekt naar mislukte registratiepogingen en blokkeert de IP's waar deze pogingen vandaan komen. Het wordt gedistribueerd onder de GNU-licentie en werkt doorgaans op alle systemen die een interface hebben met een aanvalscontrolesysteem of een lokale firewall.

Fail2Ban heeft een geweldige configuratie en kan ook regels voor programma's maken
eigen of derde partijen.

WeigerenHOSTS

Het is een in Python geschreven beveiligingstool die de logboeken van de toegangsserver bewaakt om brute force-aanvallen op een virtuele server te voorkomen. Het programma werkt door IP-adressen te verbieden die een bepaald aantal mislukte verbindingspogingen overschrijden.

Deze Linux-applicaties - DenyHosts en Fail2ban - kunnen afzonderlijk of samen worden gebruikt. In mijn geval laat ik ze allebei samenwerken.

De installatie en configuratie van elk hangt af van de distributie die u gebruikt. Dit bericht is gericht op CentOS 6.3, hoewel de verschillen tussen de andere distributies niet erg duidelijk zijn.

Welnu, ga aan het werk.

Fail2Ban Installatie en configuratie

Deze applicatie genereert dynamische regels in de Linux firewall zelf, en is verantwoordelijk voor het creëren van live regels in IpTables.

Installatie

Voor de installatie a:

yum installeer fail2ban 

Als het pakket niet verschijnt, moeten we de nodige repository toevoegen:

rpm -Uvh http://mirror.metrocast.net/fedora/epel/6/i386/epel-release-6-7.noarch.rpm

Hiermee zou u moeten beginnen met het installeren van de applicatie samen met zijn afhankelijkheden.

Nu moeten we Fail2Ban configureren om de logboeken die we willen en blokkeren te analyseren
IP's, het versturen van notificaties via e-mail. Hiervoor moeten we het jail.conf-bestand aanpassen dat we vinden in / etc / fail2ban

cd / etc / fail2ban
nanojail.conf

In dit bestand moet het volgende worden gedaan:

  • Wijzigen is de bantime-waarde, deze waarde bepaalt de tijd in seconden dat het IP-adres van de aanvaller wordt geblokkeerd, standaard komt de waarde in 600 seconden.
  • Zoek de maxretry-waarde die het aantal keren is dat een IP-authenticatie mislukt kan zijn voordat deze wordt geblokkeerd.
  • Voeg onze ip's toe in de parameter ignoreip. Hier negeert de applicatie onze geverifieerde IP-adressen in die parameter.
[STANDAARD]
# "ignoreip" kan een IP-adres, een CIDR-masker of een DNS-host zijn. Fail2ban zal dat niet doen
# ban een host uit die overeenkomt met een adres in deze lijst. Er kunnen meerdere adressen zijn
# gedefinieerd met spatiescheidingsteken.
negeerip = 127.0.0.1

# "bantime" is het aantal seconden dat een host is verbannen.
bantime = 600

# Een host is verbannen als deze "maxretry" heeft gegenereerd tijdens de laatste "vindtijd"
# seconden.
findtime = 600

# "maxretry" is het aantal fouten voordat een host wordt verbannen.
maxretry = 3

Een voorbeeld van hoe het eruit kan zien is als volgt:

negeerip = 127.0.0.1 190.25.242.75 192.168.1.0/24
bantime = 800
maxretry = 2

Configureer Fail2Ban en SSH

Om te zoeken naar mislukte SSH-inlogpogingen, wijzigen we het bestand totdat het er als volgt uitziet:

[ssh-iptabellen] 
ingeschakeld = waar
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 # Dit is de log dat fail2ban zal parseren
maxretry = 3 # elk IP-adres dat drie of meer mislukte pogingen heeft, wordt geblokkeerd.
bantime = 86400 # 24 uur bantijd uitgedrukt in seconden

Vergeet niet dat als u de poort wijzigt waarop SSH luistert, u ook de poortparameter moet wijzigen.

Deze applicatie werkt niet alleen voor ongeautoriseerde toegang tot SSH, maar ook voor apache, om Asterisk-logs te lezen, enz.

Installatie en configuratie van DenyHOSTS

De werking ervan is gebaseerd op het gebruik van het bestand /etc/hosts.deny, dat wil zeggen op het blokkeren van de adressen van de "aanvallende" hosts, waardoor een lijst met geweigerde hosts wordt aangemaakt.

De installatie vanuit de repositories kan worden verkregen met het volgende commando:

yum installeer denyhosts 

Het configuratiebestand bevindt zich in /etc/denyhosts.conf

Voordat we verder gaan, omdat we als mensen fouten kunnen maken en de typische "Laag 8" kunnen doen wanneer we toegang krijgen tot een van de services en onszelf blokkeren. Om dat te vermijden, bewerken we het bestand /etc/hosts.allow en voegen we de IP's toe van de machines waarvan we niet willen worden beperkt vanwege een toegangsfout.

Wijzig het denyhosts.conf-bestand

Om niet zo ver te gaan in de instellingen, gaan we in dit bestand alleen enkele parameters bewerken en verwijderen. Dit zijn:

SYNC_SERVER = http://xmlrpc.denyhosts.net:9911
SYNC_INTERVAL = 1 uur
SYNC_UPLOAD = ja
SYNC_DOWNLOAD = ja
SYNC_DOWNLOAD_THRESHOLD = 3
SYNC_DOWNLOAD_RESILIENCY = 5 uur

We laten dus een configuratie praktisch standaard staan, maar met een goede beveiliging tegen SSH-aanvallen.

nano /etc/hosts.allow

voorbeeld:

SSD: 127.0.0.1 
SSD: 192.168.1.10
sshd: 192.168.0. *

Hierna herstarten we de service:

/etc/init.d/denyhosts herstart

Hiermee geven we toestemming aan een IP, een IP range en natuurlijk aan onze loopback interface. Iets dat ik niet heb geprobeerd - daarom weet ik niet of het werkt - is het toevoegen van DNS's aan dit bestand; dat wil zeggen, met services zoals DynDNS. Als ik dat doe, zal ik je vertellen hoe het ging.

Bij bepaalde opties en aanpassingen zullen we er ook voor zorgen dat na de tijdsperiode die we aangeven in de DenyHOSTS-configuratie, de opgeslagen adressen worden opgeschoond, en worden bijgewerkt met andere lijsten die door anderen zijn gemaakt -als we dit aangeven- die toestemming geven voor toegang de server van DenyHOSTS.

Om de opgeslagen adressen van tijd tot tijd op te schonen, zoals geconfigureerd, moet de daemon worden gedraaid met de parameter –purge:

/etc/init.d/denyhosts start --purge

Daarnaast moeten we het aan het begin van het systeem opnemen:

chkconfig denyhosts aan

Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.