GNU/Linux >> Linux Esercitazione >  >> Debian

Aumenta la tua sicurezza IPv4 con Fail2Ban e Tinyhoneypot su Debian Jessie

È 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à è una macro che sostituisce l'indirizzo IPv4. Crea un filtro per esso:

[email protetta]:~# cat /etc/fail2ban/filter.d/thpot.local 
[Definizione]

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.


Debian
  1. Velocizza Apache con mod_pagespeed e Memcached su Debian 8

  2. Come proteggere il tuo server con badIPs.com e segnalare gli IP con Fail2ban su Debian

  3. Configurazione della replica Master-Master con MySQL su Debian 8 (Jessie)

  4. Sicurezza Linux:proteggi i tuoi sistemi con fail2ban

  5. Come migliorare la sicurezza di Debian VPS utilizzando DenyHosts e Logwatch

Tutorial del server Debian 8 Jessie LAMP con Apache 2, PHP 5 e MariaDB (anziché MySQL)

Come installare e configurare vsftpd con TLS su Debian 8 (Jessie)

Come crittografare i tuoi dati con EncFS su Debian 8 (Jessie)

Come installare TYPO3 7 con Nginx e MariaDB su Debian 8 (Jessie)

Chroot di Apache 2.4 con mod_unixd su Debian 8 (Jessie)

Installa e configura Fail2ban su Debian 11