GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come installare e configurare Denyhost in Centos 7 Linux

DenyHosts è un software open source sviluppato in linguaggio Python da Phil Schwartz. È progettato principalmente per monitorare e analizzare i registri del server SSH per tentativi di accesso non validi, attacchi basati su dizionario e attacchi di forza bruta bloccando gli indirizzi IP di origine aggiungendolo al file /etc/hosts.deny sul server e prevenendo così il l'indirizzo IP dall'effettuare ulteriori tentativi di accesso.

Grazie alla sua semplicità e alla possibilità di configurare manualmente le regole, è ampiamente utilizzato come alternativa a Fail2ban che è un po' più complicato da usare e configurare.

In questo tutorial, ti mostrerò come installare e configurare DenyHosts sul tuo server CentOS 7.

Leggi anche:Come utilizzare Fail2ban/Client su CentOS 7

Prerequisiti

Prima di procedere con l'installazione dobbiamo assicurarci che il nostro sistema soddisfi tutti i requisiti software per la compilazione e l'installazione dell'applicazione. E inoltre dovrebbe essere configurato con un indirizzo IP statico. Il software DenyHosts dipende da "ipaddr" Modulo Python. Nel primo passaggio, aggiorna i repository di sistema e i pacchetti software, incluso il modulo Python, eseguendo i comandi seguenti.

#yum update
#yum install python-ipaddr -y

1. Installazione di DenyHosts dal repository Epel

Dobbiamo installare questo pacchetto utilizzando il repository Epel, utilizzare il seguente comando per installarlo.

#yum install epel-release
#yum install denyhosts -y

Configurazione di Denyhosts

Una volta installati Denyhosts, devi aggiungere il tuo IP all'elenco IP consentiti per assicurarti che il tuo indirizzo IP sia inserito nella whitelist, così non sarai mai bloccato.

# cat /etc/hosts.allow
#
# hosts.allow This file contains access rules which are used to
# allow or deny connections to network services that
# either use the tcp_wrappers library or that have been
# started through a tcp_wrappers-enabled xinetd.
#
# See 'man 5 hosts_options' and 'man 5 hosts_access'
# for information on rule syntax.
# See 'man tcpd' for information on tcp_wrappers
#
sshd: 37.217.142.41
sshd: 37.217.142.42
sshd: 37.217.142.43
sshd: 37.217.142.44

Successivamente, è necessario inserire nella blacklist tutti gli indirizzi IP richiesti che si desidera bloccare. Possiamo confermare che anche il nostro indirizzo IP non è nella lista nera.

# cat /etc/hosts.deny
#
# hosts.deny This file contains access rules which are used to
# deny connections to network services that either use
# the tcp_wrappers library or that have been
# started through a tcp_wrappers-enabled xinetd.
#
# The rules in this file can also be set up in
# /etc/hosts.allow with a 'deny' option instead.
#
# See 'man 5 hosts_options' and 'man 5 hosts_access'
# for information on rule syntax.
# See 'man tcpd' for information on tcp_wrappers
#
sshd: 78.189.206.37
sshd: 121.14.27.58
sshd: 1.246.228.161
sshd: 103.89.89.47
sshd: 116.29.148.2
# DenyHosts: Tue Jan 9 10:16:15 2018 | sshd: 222.186.174.81
sshd: 222.186.174.81
# DenyHosts: Tue Jan 9 10:40:46 2018 | sshd: 217.61.20.181
sshd: 217.61.20.181
# DenyHosts: Tue Jan 9 13:15:53 2018 | sshd: 112.86.117.182
sshd: 112.86.117.182

Abilitazione del servizio DenyHosts

Una volta configurato come richiesto, possiamo abilitare e avviare il nostro servizio DenyHosts con i comandi seguenti:

# systemctl enable denyhosts
# systemctl start denyhosts

# systemctl status denyhosts
● denyhosts.service - SYSV: Activates/Deactivates the
Loaded: loaded (/etc/rc.d/init.d/denyhosts; bad; vendor preset: disabled)
Active: active (running) since Wed 2018-01-10 06:47:54 UTC; 3h 57min ago
Docs: man:systemd-sysv-generator(8)
Process: 30660 ExecStart=/etc/rc.d/init.d/denyhosts start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/denyhosts.service
└─30665 python /usr/bin/denyhosts.py --daemon --config=/etc/denyhosts.conf

Jan 10 06:47:54 li226-12.members.linode.com systemd[1]: Starting SYSV: Activates/Deactivates the...
Jan 10 06:47:54 li226-12.members.linode.com denyhosts[30660]: starting DenyHosts: /usr/bin/env python /usr/bin/denyhosts.py --daemon --config=/etc/denyhosts.conf
Jan 10 06:47:54 li226-12.members.linode.com systemd[1]: Started SYSV: Activates/Deactivates the.

Configurazione degli avvisi e-mail in DenyHosts

Possiamo impostare avvisi e-mail su accessi sospetti e host con restrizioni apportando modifiche in un file di configurazione DenyHosts. Puoi aggiungere il tuo indirizzo email alla variabile ADMIN_EMAIL nel file di configurazione /etc/denyhosts.conf per ricevere avvisi via e-mail su accessi sospetti. Puoi aggiungere un numero qualsiasi di indirizzi e-mail alla variabile, assicurati solo di separarla usando le virgole. Qui ho aggiunto il mio indirizzo email [email protected] per avvisarmi di eventuali attacchi.

È necessario riavviare il servizio DenyHosts dopo aver apportato modifiche ai file di configurazione.

Rimozione degli IP vietati

Puoi monitorare i log ssh di denyhosts per vedere quanti attaccanti e hacker stanno tentando di accedere al tuo server. È possibile utilizzare il comando seguente per visualizzare i registri in tempo reale.

# tail -f /var/log/secure
Jan 10 10:56:43 li226-12 sshd[2096]: refused connect from 222.186.43.6 (222.186.43.6)
Jan 10 10:57:08 li226-12 sshd[2102]: refused connect from 222.186.43.6 (222.186.43.6)
Jan 10 10:57:43 li226-12 sshd[2113]: refused connect from 222.186.43.6 (222.186.43.6)
Jan 10 10:59:17 li226-12 sshd[2133]: refused connect from 222.186.43.6 (222.186.43.6)

È evidente che il nostro server sta tentando di rifiutare la connessione dall'IP 222.186.43.6 da questi log. Vediamo i passaggi per rimuovere questo IP dalla blacklist.

Dobbiamo controllare questa voce IP nel file /etc/hosts.deny e tutti quei file di negazione personalizzati creati con denyhosts. Possiamo rimuovere la voce IP da tutti loro come di seguito:

# nano /etc/hosts.deny
# nano /var/lib/denyhosts/hosts
# nano /var/lib/denyhosts/hosts-restricted
# nano /var/lib/denyhosts/hosts-root
# nano /var/lib/denyhosts/hosts-valid
# nano /var/lib/denyhosts/users-hosts

Potrei notare questa voce nel mio file hosts.deny.

# DenyHosts: Wed Jan 10 03:40:07 2018 | sshd: 222.186.43.6
sshd: 222.186.43.6

Ho rimosso questa voce e riavviato il servizio denyhosts per confermarne il funzionamento!

2. Installazione da Github Repo e Source Distribution

Possiamo scaricare il repository Github o scaricare l'ultima distribuzione di sorgenti DenyHosts e compilarla da questi pacchetti sorgente. Vediamo come installo denyhosts dal repository Github.

#yum install git
# git clone https://github.com/denyhosts/denyhosts
Cloning into 'denyhosts'...
remote: Counting objects: 1353, done.
remote: Total 1353 (delta 0), reused 0 (delta 0), pack-reused 1353
Receiving objects: 100% (1353/1353), 263.93 KiB | 0 bytes/s, done.
Resolving deltas: 100% (899/899), done.

Dopo aver scaricato i file da Github, dobbiamo installarlo. Puoi installarlo emettendo questo comando dalla cartella denyhosts come di seguito:

#cd denyhosts
#python setup.py install

Questo installerà i moduli DenyHosts nella directory dei pacchetti del sito di Python.

Allo stesso modo, da una distribuzione di origine puoi scaricare Denyhosts più recenti e installarlo come spiegato sopra. Il resto dei passaggi di configurazione è lo stesso in entrambi i casi.

Configurazione di Denyhosts

Dopo l'installazione, puoi copiare il file di configurazione di esempio denyhosts.conf creato nella cartella di installazione che contiene la maggior parte delle possibili impostazioni nella cartella /etc folder . Il file di configurazione contiene varie impostazioni insieme alla loro descrizione che dovrebbero aiutarti a configurare rapidamente DenyHosts. Dopo aver modificato il file di configurazione, salvalo.

# cp -rp denyhosts.conf /etc/

Successivamente, dobbiamo copiare l'esempio daemon-control.dist script in quanto tale per daemon-control e modifica la sezione consigliata in base alla posizione del file di configurazione.

#cp daemon-control-dist daemon-control
#chmod 700 daemon-control

Ora possiamo modificare il file di controllo del demone. Dovresti solo modificare questa sezione vicino alla parte superiore come di seguito. Ho modificato questa sezione come i miei percorsi di configurazione.

############################################################################################

############################################################################################
#### Modificali per adattarli alla tua configurazione ####
############################################################################################

DENYHOSTS_BIN ="/usr/bin/denyhosts.py"
DENYHOSTS_LOCK ="/var/run/denyhosts.pid"
DENYHOSTS_CFG ="/etc/denyhosts.conf"

PYTHON_BIN ="/usr/bin/env python"

#######################################################################################

Queste impostazioni predefinite dovrebbero essere ragionevoli per molti sistemi. Ma ti consiglio di personalizzare queste impostazioni per adattarle al tuo sistema particolare. Dopo aver modificato i file di configurazione e di controllo del demone, assicurati di limitare l'esecuzione dello script di controllo del demone a root.

Avvio manuale di DenyHosts

Dopo aver configurato Denyhosts per l'esecuzione come demone con il nostro script di controllo del demone, puoi avviarlo manualmente da lì semplicemente eseguendo questo comando dalla cartella di installazione.

# ./daemon-control start
starting DenyHosts: /usr/bin/env python /usr/bin/denyhosts.py --daemon --config=/etc/denyhosts.conf

Puoi fare riferimento al registro del demone (/var/log/denyhosts) per garantire che DenyHosts funzioni correttamente. È possibile fare riferimento a questo collegamento alle domande frequenti per eventuali problemi e domande relative a questo software.

Inoltre, puoi avviare DenyHosts manualmente per eseguirlo dalla riga di comando usando Python proprio in questo modo menzionando i parametri comuni come la posizione del file binario e il file di configurazione.

# python /usr/bin/denyhosts.py --config /etc/denyhosts.conf --daemon
# ps aux | grep denyhosts
root 25650 0.0 1.0 216116 10740 ? S 09:44 0:00 python /usr/bin/denyhosts.py --config /etc/denyhosts.conf --daemon
root 25656 0.0 0.2 112668 2200 pts/0 S+ 09:44 0:00 grep --color=auto denyhosts

Il comando precedente avvia DenyHosts e lo esegue in background.

Avvio automatico di Denyhosts

Possiamo impostare cronjobs per avviare Denyhosts automaticamente all'avvio. Oppure possiamo creare un collegamento simbolico da /etc/init.d come di seguito:

# cd /etc/init.d
# ln -s /root/denyhosts/daemon-control denyhosts
# ll | grep denyhosts
lrwxrwxrwx 1 root root 30 Jan 10 04:48 denyhosts -> /root/denyhosts/daemon-control

Ora possiamo gestire questo servizio dal normale systemctl comando.

# systemctl enable denyhosts
denyhosts.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig denyhosts on

# systemctl start denyhosts
# systemctl status denyhosts
● denyhosts.service - SYSV: Activates/Deactivates the
Loaded: loaded (/etc/rc.d/init.d/denyhosts; bad; vendor preset: disabled)
Active: active (exited) since Thu 2018-01-11 09:57:53 UTC; 2s ago
Docs: man:systemd-sysv-generator(8)
Process: 25876 ExecStart=/etc/rc.d/init.d/denyhosts start (code=exited, status=0/SUCCESS)

Conclusione

In questo articolo, ho discusso di come installare e configurare DenyHosts sul nostro server CentOS 7. Questo strumento può essere facilmente configurato e supporta anche notifiche e-mail, SMTP e syslog. Questa applicazione è un'ottima soluzione per difendere gli attacchi del server SSH come attacchi basati su dizionario e attacchi di forza bruta. Spero che questo articolo ti sia utile. Pubblica i tuoi preziosi commenti e suggerimenti su questo.


Cent OS
  1. Come installare e configurare Nginx su CentOS 7

  2. Come installare e configurare R sul sistema Linux RHEL 8 / CentOS 8

  3. Come installare e configurare la finestra mobile in Rocky Linux/Centos 8

  4. Come installare e configurare Ansible su Rocky Linux/CentOS 8

  5. Come installare e configurare Mono su Rocky Linux 8 e CentOS 8

Come installare e configurare Nagios 4.0.7 su CentOS 7

Come installare e configurare ISPConfig CP su CentOS 7

Come installare e configurare ownCloud su CentOS 7

Come installare e configurare Samba su CentOS 8

Come installare e configurare Fail2ban su CentOS 8

Come installare DenyHost su CentOS 6