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