È un esercizio di cinque minuti per aumentare la sicurezza su una macchina con indirizzo IPv4. Lo scopo della configurazione descritta in questo tutorial è bloccare gli scanner di porte e gli apriporta dannosi per un periodo di tempo. Questo esercizio è stato provato e applicato solo su Debian Jessie. Durante l'esercizio, ogni comando viene eseguito come root. È il tuo affare come ottenere l'accesso come root.
O su -, sudo, accesso alla console, ecc...
Istruzioni per principianti pigri:quando rappresento il prompt di bash, copia e incolla la parte in grassetto del testo sulla tua.
Gli ingredienti
- Il software fail2ban è in grado di gestire dinamicamente le regole del firewall per bloccare i malintenzionati.
- Il tinyhoneypot è in grado di ascoltare su una porta TCP/IP e di registrare i dettagli degli apri.
- Il servizio xinetd avvia tinyhoneypot e gestisce le sue porte di ascolto.
Installa gli ingredienti: ( Copia e incolla la parte in grassetto del testo )
[email protetta]:~# apt-get install tinyhoneypot fail2ban xinetd
Impostazioni
Per fare in modo che SSH sia in ascolto su una porta diversa, sostituisci il tuo file di configurazione ssh con una porta ssh alternativa:
[email protetta]:~# sed -i.orig 's/Port 22/Port 2201/m' /etc/ssh/sshd_config
La configurazione originale di /etc/ssh/sshd_config viene salvata come /etc/ssh/sshd_config.orig
Quando riavvii il servizio SSH, ora sarà in ascolto sulla porta 2201 (non su 22).
[email protetta]:~# riavvio del servizio ssh
[email protetta]:~# netstat -lptn | grep ssh
tcp 0 0 0.0.0.0:2201 0.0.0.0:* ASCOLTA 4313/sshd
tcp6 0 0 :::2201 :::* ASCOLTA 4313/sshd
Fin qui tutto bene..
Configura Xinetd per avviare tinyhoneypot e ascoltare sulla porta 22 di TCP:
[email protetta]:~# cp -v /usr/share/doc/tinyhoneypot/examples/xinetd.d/thp-pasv /etc/xinetd.d/
Modifica il tuo /etc/xinetd.d/thp-pasv in questo modo:
[email protetta]:~# cat /etc/xinetd.d/thp-pasv
# default:on# descrizione:thp-ftpd chiama il generico thpsvcs con param "ftp",# risultando in un'emulazione ftpd.service thp-pasv{ type =NON ELENCO socket_type =stream protocol =tcp port =22 wait =no utente =thpot server =/usr/sbin/thpot server_args =nullresp nice =10 disable =nessuna istanza =1 per_source =1}
(RE) Avvia xinetd con le nuove impostazioni e assicurati che sia in ascolto sulla porta 22.
[email protetta]:~# riavvio del servizio xinetd
[email protetta]:~# netstat -lptn | grep xinetd
tcp 0 0 0.0.0.0:22 0.0.0.0:* ASCOLTA 4567/xinetd
Assicurati che funzioni
Apri una connessione ssh da un altro computer.
[email protetta]:~$ ssh 192.168.88.212
Dopo un po' non dovrebbe succedere nulla, interrompilo con [Ctrl + C]
E controlla le voci di registro sulla tua macchina di prova:
[email protetta]:~# cat /var/log/thpot/captures
29 feb 13:02:10 SID=56D4334221165.nullresp PID=4837 SRC=192.168.88.242 SPT=47187 ET=00:00:11 BYTES=39
Nel caso in cui tutto sia andato bene, dovrebbe esserci una voce nel registro di acquisizione.
Permettiamo al tuo Fail2Ban di collaborare con TinyHoneyPot
[email protetta]:~# cd /etc/fail2ban/
[email protetta]:/etc/fail2ban# cp -v jail.conf jail.local
Non modificare mai il tuo jail.conf!! Creane una copia come jail.local e apporta SOLO le modifiche al file .local!
Trova la sezione [ssh] nel tuo jail.local e modificala a seconda della [Porta 2201] di /etc/ssh/sshd_config
[ssh]enabled =trueport =2201filter =sshdlogpath =/var/log/auth.logmaxretry =6
Crea e entra nella sezione JAIL di jail.local:
Ciò consentirà a Fail2Ban di leggere il file di registro di tinyhoneypot e di ottenere l'indirizzo IPv4 da esso per negare. Consiglio di posizionarlo dopo la sezione [ssh]. Si tratta della 137a riga.
[thp-ssh]enabled =trueport =allfilter =thpotlogpath =/var/log/thpot/capturesbanaction =iptables-allportsmaxretry =1findtime =1800bantime =99999
Fail2ban dovrebbe avere un filtro per sapere cosa negare. Là
[email protetta]:~# cat /etc/fail2ban/filter.d/thpot.local
failregex =SRC=
ignoreregex =
È stato fatto!
Solo un breve test....
[email protetta]:~# riavvio fail2ban del servizio
Dovresti vedere qualcosa di simile alla fine di /var/log/fail2ban.log
29-02-2016 13:54:06,915 fail2ban.jail [6102]:INFO Creazione di una nuova prigione 'thp-ssh'29-02-2016 13:54:06,915 fail2ban.jail [6102]:INFO Jail 'thp -ssh' utilizza pyinotify2016-02-29 13:54:06,920 fail2ban.jail [6102]:INFO Avviato il backend 'pyinotify' 2016-02-29 13:54:06,922 fail2ban.filter [6102]:INFO File di registro aggiunto =/var/ log/thpot/captures2016-02-29 13:54:06,923 fail2ban.filter [6102]:INFO Imposta maxRetry =12016-02-29 13:54:06,925 fail2ban.filter [6102]:INFO Imposta findtime =18002016-02- 29 13:54:06,926 fail2ban.actions[6102]:INFO Imposta banTime =999992016-02-29 13:54:06,934 fail2ban.jail [6102]:INFO Jail 'ssh' iniziato29-02-2016 13:54:06,940 fail2ban .jail [6102]:INFO Jail 'thp-ssh' avviato
Puoi vedere i tuoi valori personalizzati da jail.local e perfezionarli se necessario.
findtime =1800bantime =99999
Dai un'occhiata alle tue attuali regole di iptables:
[email protetta]:~# iptables-save
# Generato da iptables-save v1.4.21 lunedì 29 febbraio 14:05:17 2016*filtro:ACCETTA INGRESSO [2:64]:ACCETTA IN AVANTI [0:0]:ACCETTA USCITA [0:0]:fail2ban -ssh - [0:0]:fail2ban-thp-ssh - [0:0]-A INPUT -p tcp -j fail2ban-thp-ssh-A INPUT -p tcp -m multiporta --dports 2201 -j fail2ban- ssh-A fail2ban-ssh -j RETURN-A fail2ban-thp-ssh -j RETURNCOMMIT# Completato lunedì 29 febbraio 14:05:17 2016
Controlliamo la regola di rifiuto da un'altra macchina:
[email protetta]:~# ssh 192.168.88.212
^C
[email protetta]:~# ssh 192.168.88.212
ssh:connessione all'host 192.168.88.212 porta 22:connessione rifiutata
La prima azione non farà nulla. L'attaccante probabilmente lo interromperà dopo un po'. La seconda azione verrà rifiutata.
Le tue regole di iptables dovrebbero ora assomigliare a questa:
[email protetta]:~# iptables-save
# Generato da iptables-save v1.4.21 lunedì 29 febbraio 14:10:53 2016*filter:ACCETTA INGRESSO [4:542]:ACCETTA IN AVANTI [0:0]:ACCETTA USCITA [1:88]:fail2ban -ssh - [0:0]:fail2ban-thp-ssh - [0:0]-A INPUT -p tcp -j fail2ban-thp-ssh-A INPUT -p tcp -m multiporta --dports 2201 -j fail2ban- ssh-A fail2ban-ssh -j RETURN-A fail2ban-thp-ssh -s 192.168.88.242/32 -j REJECT --reject-with icmp-port-unreachable-A fail2ban-thp-ssh -j RETURNCOMMIT# Completato il lunedì 29 febbraio 14:10:53 2016
Il risultato è:il PC dell'attaccante viene RIFIUTATO su ciascuna porta.
Il Postscript
Al momento della stesura di questo HowTo, né Fail2Ban né tinyhoneypot erano in grado di gestire IPv6 Se ritieni che questo Howto sia utile, condividilo! Fallo sapere ai tuoi amici.