Suggerimenti per proteggere il tuo server Linux da attacchi esterni

Immagino le persone che guidano Server Linux loro sanno e sanno NegaHOSTS y Fail2ban. Per quelli che non lo conoscono lo farò spiegare un po 'di questi due applicazioni.

John Fredy Perez è uno dei Vincitori del nostro concorso settimanale: «Condividi ciò che sai su Linux«. Congratulazioni! In ansia per partecipare e dare il tuo contributo alla comunità, come ha fatto Giovanni?

Installeremo e configureremo queste due applicazioni per evitare successivi mal di testa. Prima di tutto spiegheremo cosa sono queste due applicazioni e qual è la loro funzione:

Fail2Ban

È un analizzatore di log che cerca i tentativi di registrazione falliti e blocca gli IP da cui provengono questi tentativi. È distribuito con licenza GNU e normalmente funziona su tutti i sistemi che si interfacciano con un sistema di controllo degli attacchi o un firewall locale.

Fail2Ban ha un'ottima configurazione e può anche creare regole per i programmi
propri o di terzi.

NegaHOSTS

È uno strumento di sicurezza scritto in python che monitora i log del server di accesso per prevenire attacchi di forza bruta su un server virtuale. Il programma funziona escludendo gli indirizzi IP che superano un certo numero di tentativi di connessione falliti.

Queste applicazioni Linux - DenyHosts e Fail2ban - possono essere utilizzate separatamente o insieme. Nel mio caso, li ho entrambi che lavorano insieme.

L'installazione e la configurazione di ciascuna di esse dipende dalla distribuzione utilizzata. Questo post è orientato verso CentOS 6.3, sebbene le differenze tra le altre distribuzioni non siano molto marcate.

Allora mettiti al lavoro.

Installazione e configurazione di Fail2Ban

Questa applicazione genera regole dinamiche nel firewall Linux stesso ed è responsabile della creazione di regole live in IpTables.

Installazione

Per l'installazione a:

yum installa fail2ban 

Se il pacchetto non viene visualizzato, dobbiamo aggiungere il repository necessario:

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

Con questo dovresti iniziare a installare l'applicazione insieme alle sue dipendenze.

Ora dobbiamo configurare Fail2Ban per analizzare i log che vogliamo e bloccare
IP, invio di notifiche via e-mail. Per questo dobbiamo modificare il file jail.conf che troviamo in / etc / fail2ban

cd / etc / fail2ban
nanojail.conf

In questo file dovrebbe essere fatto quanto segue:

  • Modifica è il valore bantime, questo valore determina il tempo in secondi in cui l'IP dell'aggressore verrà bloccato, per impostazione predefinita il valore è di 600 secondi.
  • Trova il valore maxretry che sarà il numero di volte in cui un IP può avere un'autenticazione non riuscita prima di essere bloccato.
  • Aggiungi i nostri ip nel parametro ignoreip. Qui l'applicazione ignorerà i nostri IP autenticati in quel parametro.
[PREDEFINITO]
# "ignoreip" può essere un indirizzo IP, una maschera CIDR o un host DNS. Fail2ban non lo farà
# bandisce un host che corrisponde a un indirizzo in questo elenco. Possono essere diversi indirizzi
# definito utilizzando il separatore di spazio.
ignoraip = 127.0.0.1

# "bantime" è il numero di secondi in cui un host viene bannato.
tempo di ban = 600

# Un host è bannato se ha generato "maxretry" durante l'ultimo "findtime"
# secondi.
tempo di ricerca = 600

# "maxretry" è il numero di errori prima che un host venga bannato.
massimo tentativo = 3

Un esempio di come può apparire è il seguente:

ignoraip = 127.0.0.1 190.25.242.75 192.168.1.0/24
tempo di ban = 800
massimo tentativo = 2

Configurare Fail2Ban e SSH

Per cercare tentativi di accesso SSH falliti, modifichiamo il file finché non appare come segue:

[ssh-iptables] 
abilitato = vero
filtro = sshd
action = iptables [name = SSH, port = 22, protocol = tcp] sendmail-whois [name = SSH, dest=FredySnake@outlook.com, sender = fail2ban @ localhost] logpath = / var / log / secure # Questo è il log che analizzerà fail2ban
maxretry = 3 # qualsiasi IP con tre o più tentativi falliti verrà bloccato.
bantime = 86400 # Tempo di divieto di 24 ore espresso in secondi

Non dimenticare che se modifichi la porta su cui SSH è in ascolto, devi modificare anche il parametro della porta.

Questa applicazione non funziona solo per l'accesso non autorizzato a SSH, ma anche per apache, per leggere i log di Asterisk, ecc.

Installazione e configurazione di DenyHOSTS

Il suo funzionamento si basa sull'utilizzo del file /etc/hosts.deny, cioè sul blocco degli indirizzi degli host "attaccanti", creando un elenco di host negati.

L'installazione dai repository può essere ottenuta con il seguente comando:

yum installa denyhosts 

Il file di configurazione si trova in /etc/denyhosts.conf

Prima di continuare, poiché come esseri umani possiamo commettere errori e fare il tipico "Layer 8" quando accediamo a uno qualsiasi dei servizi e ci blocchiamo. Per evitare ciò, modifichiamo il file /etc/hosts.allow e aggiungiamo gli IP delle macchine da cui non vogliamo essere limitati a causa di un errore di accesso.

Modifica il file denyhosts.conf

Per non andare troppo in profondità nelle impostazioni, in questo file andremo solo a modificare e decommentare alcuni parametri. Questi sono:

SYNC_SERVER = http://xmlrpc.denyhosts.net:9911
SYNC_INTERVAL = 1 ora
SYNC_UPLOAD = sì
SYNC_DOWNLOAD = sì
SYNC_DOWNLOAD_THREShold = 3
SYNC_DOWNLOAD_RESILIENCY = 5 ore

Pertanto, lasceremo una configurazione praticamente predefinita, ma con grande sicurezza contro gli attacchi SSH.

nano /etc/hosts.allow

Esempio:

sshd:127.0.0.1 
sshd:192.168.1.10
sshd: 192.168.0. *

Dopodiché, riavviamo il servizio:

/etc/init.d/denyhosts si riavvia

Con questo stiamo dando il permesso a un IP, un intervallo di IP e ovviamente alla nostra interfaccia di loopback. Qualcosa che non ho provato - quindi non so se funziona - è aggiungere DNS a questo file; ovvero con servizi come DynDNS. Se lo faccio, ti dirò come è andata.

Con alcune opzioni e regolazioni faremo anche in modo che dopo il periodo di tempo che indichiamo nella configurazione di DenyHOSTS, gli indirizzi memorizzati vengano puliti e aggiornati con altri elenchi fatti da altri -se lo indichiamo- dando il permesso di accesso il server di DenyHOSTS.

Per eliminare periodicamente gli indirizzi memorizzati, come configurato, il daemon deve essere eseguito con il parametro –purge:

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

Oltre a questo, dobbiamo includerlo all'inizio del sistema:

chkconfig denyhosts su

Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.