Tips för att skydda din Linux-server från externa attacker

Jag antar att de som kör linux-servrar veta och veta om DenyHOSTS y Fail2ban. För de som inte vet så ska jag förklara lite om dessa två tillämpningar.

John Fredy Perez är en av de vinnare i vår veckotävling: «Dela vad du vet om Linux«. Grattis! Ängslig för delta och göra ditt bidrag till samhället, som John gjorde?

Vi kommer att installera och konfigurera dessa två applikationer för att undvika ytterligare huvudvärk. Först och främst kommer vi att förklara vad dessa två applikationer är och vad deras funktion är:

Fail2Ban

Det är en logganalysator som letar efter misslyckade registreringsförsök och blockerar IP:erna där dessa försök kommer ifrån. Den distribueras under GNU-licensen och fungerar vanligtvis på alla system som har ett gränssnitt mot ett attackkontrollsystem eller lokal brandvägg.

Fail2Ban har en fantastisk konfiguration och kan även skapa regler för program
egen eller tredje part.

DenyHOSTS

Det är ett säkerhetsverktyg skrivet i python som övervakar serveråtkomstloggar för att förhindra brute force-attacker på en virtuell server. Programmet fungerar genom att förbjuda IP-adresser som överstiger ett visst antal misslyckade anslutningsförsök.

Dessa Linux-applikationer -DenyHosts och Fail2ban- kan användas separat eller tillsammans. I mitt fall har jag båda att arbeta tillsammans.

Installationen och konfigurationen av var och en av dem beror på vilken distribution du använder. Det här inlägget är orienterat mot CentOS 6.3, även om skillnaderna mellan de andra distroerna inte är särskilt markanta.

Nåväl, låt oss börja jobba.

Fail2Ban installation och konfiguration

Denna applikation genererar dynamiska regler i själva Linux-brandväggen och är ansvarig för att skapa live-regler i IpTables.

installation

För installation, bara en:

yum installera fail2ban 

Om paketet inte visas måste vi lägga till det nödvändiga arkivet:

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

Med detta bör du börja installera programmet tillsammans med dess beroenden.

Nu måste vi konfigurera Fail2Ban så att den analyserar loggarna som vi vill ha och blockerar
IP-adresser, skicka meddelanden via e-post. För att göra detta måste vi modifiera filen jail.conf som vi hittar i /etc/fail2ban

cd /etc/fail2ban
nanojail.conf

I den här filen måste du göra följande:

  • Modify är bantime-värdet, detta värde bestämmer tiden i sekunder som angriparens IP kommer att blockeras, som standard är värdet 600 sekunder.
  • Hitta maxretry-värdet som kommer att vara antalet gånger en IP kan ha en misslyckad autentisering innan den blockeras.
  • Lägg till våra IP-adresser i parametern ignoreip. Här kommer applikationen att ignorera vår autentiserade IP i nämnda parameter.
[STANDARD]
# "ignoreip" kan vara en IP-adress, en CIDR-mask eller en DNS-värd. Fail2ban kommer inte att göra det
# förbjuda en värd som matchar en adress i den här listan. Flera adresser kan vara
# definieras med blankstegsavgränsare.
ignoreip = 127.0.0.1

# "bantime" är antalet sekunder som en värd är förbjuden.
bantime = 600

# En värd är förbjuden om den har genererat "maxretry" under den senaste "findtime"
# sekunder.
fyndtid = 600

# "maxretry" är antalet misslyckanden innan en värd förbjuds.
maxretry = 3

Ett exempel på hur det kan se ut är följande:

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

Konfigurera Fail2Ban och SSH

För att söka efter misslyckade inloggningsförsök av SSH ändrar vi filen tills den ser ut så här:

[ssh-iptables] 
aktiverad = sant
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 # Detta är log som fail2ban kommer att analysera
maxretry = 3 # alla IP-adresser som har tre eller fler misslyckade försök kommer att blockeras.
bantime = 86400 # 24 timmars bantid uttryckt i sekunder

Glöm inte att om du ändrar porten där SSH lyssnar måste du också ändra portparametern.

Denna applikation fungerar inte bara för obehörig åtkomst i SSH, utan också för apache, för att läsa Asterisk-loggar, etc.

Installera och konfigurera DenyHOSTS

Dess funktion är baserad på användningen av filen /etc/hosts.deny, det vill säga att blockera adresserna till de "attackerande" värdarna, skapa en lista över nekade värdar.

Installationen från arkiven kan erhållas med följande kommando:

yum installera denyhosts 

Konfigurationsfilen finns på /etc/denyhosts.conf

Innan vi fortsätter, eftersom vi som människor kan ha fel och göra det typiska "Layer 8" när vi kommer åt någon av tjänsterna och blockerar oss själva. För att undvika det redigerar vi filen /etc/hosts.allow och lägger till IP-adresserna för de maskiner från vilka vi inte vill att begränsningar ska läggas på oss i händelse av ett åtkomstfel.

Ändra filen denyhosts.conf

För att inte gå så djupt in i konfigurationerna kommer vi i den här filen bara att redigera och avkommentera vissa parametrar. Dessa är:

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

Således kommer vi att lämna en konfiguration praktiskt taget som standard, men med stor säkerhet mot attacker från SSH.

nano /etc/hosts.allow

Exempelvis:

sshd:127.0.0.1 
sshd:192.168.1.10
sshd: 192.168.0.*

Efter detta startar vi om tjänsten:

/etc/init.d/denyhosts startas om

Med detta ger vi tillstånd till en ip, ett IP-område och naturligtvis till vårt loopback-gränssnitt. Något jag inte har provat -så jag vet inte om det fungerar- är att lägga till DNS:er till den här filen; det vill säga med tjänster som DynDNS. Om jag gör det ska jag berätta hur det gick.

Med vissa alternativ och justeringar kommer vi också att se till att efter den tidsperiod som vi anger i DenyHOSTS-konfigurationen, de lagrade adresserna rensas och de uppdateras med andra listor som gjorts av andra - om vi anger det - ger tillstånd att få åtkomst värdservern denyHOSTS.

För att de lagrade adresserna ska kunna rensas från tid till annan, som konfigurerad, måste demonen köras med parametern –purge:

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

Utöver detta måste vi inkludera det i början av systemet:

chkconfig denyhosts på

Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.