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. |
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