Bloqueja els atacs del servidor SSH (atacs de força bruta) mitjançant DenyHosts
DenyHosts és un programa de seguretat de prevenció d'intrusions basat en registres de codi obert i gratuït per a servidors SSH desenvolupat en llenguatge Python per Phil Schwartz.
Està pensat per supervisar i analitzar els registres del servidor SSH per a intents d'inici de sessió no vàlids, atacs basats en diccionaris i atacs de força bruta bloquejant les adreces IP d'origen afegint una entrada al fitxer /etc/hosts.deny al servidor i impedeix l'adreça IP. de fer qualsevol altre intent d'inici de sessió.
[ També us pot agradar: Com protegir i endurir el servidor OpenSSH ]
DenyHosts és una eina molt necessària per a tots els sistemes basats en Linux, especialment quan permetem inicis de sessió ssh sense contrasenyes als servidors Linux remots.
En aquest article, us mostrarem com instal·lar i configurar DenyHosts en distribucions Linux basades en RHEL com Fedora, CentOS, Rocky Linux i AlmaLinux.
Vegeu també :
- Com utilitzar Fail2ban per protegir el vostre servidor Linux
- Com desactivar l'inici de sessió arrel SSH per limitar l'accés SSH a Linux
- Com augmentar el temps d'espera de la connexió SSH a Linux
Com instal·lar DenyHosts a Linux
Per defecte, l'eina DenyHosts no està inclosa als sistemes Linux, l'hem d'instal·lar mitjançant l'ordre yum de tercers.
# yum install epel-release # yum install denyhosts
Configuració de DenyHosts per a adreces IP de llista blanca
Un cop instal·lats els Denyhosts, assegureu-vos de posar a la llista blanca la vostra pròpia adreça IP, de manera que mai no us bloquejarà. Per fer-ho, obriu un fitxer /etc/hosts.allow.
# vi /etc/hosts.allow
A sota de la descripció, afegiu cada adreça IP una per una en una línia separada, que mai voleu bloquejar. El format ha de ser el següent.
# # 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: 172.16.25.125 sshd: 172.16.25.126 sshd: 172.16.25.127
Configuració de DenyHosts per a alertes per correu electrònic
El fitxer de configuració principal es troba a /etc/denyhosts.conf. Aquest fitxer s'utilitza per enviar alertes per correu electrònic sobre inicis de sessió sospitosos i amfitrions restringits. Obriu aquest fitxer amb l'editor VI.
# vi /etc/denyhosts.conf
Cerqueu ADMIN_EMAIL i afegiu la vostra adreça de correu electrònic aquí per rebre alertes per correu electrònic sobre inicis de sessió sospitosos (per a més alertes de correu electrònic feu servir separades per comes). Si us plau, mireu el fitxer de configuració del meu servidor CentOS 6.3. Cada variable està ben documentada, així que configureu-la segons el vostre gust.
############ DENYHOSTS REQUIRED SETTINGS ############ SECURE_LOG = /var/log/secure HOSTS_DENY = /etc/hosts.deny BLOCK_SERVICE = sshd DENY_THRESHOLD_INVALID = 5 DENY_THRESHOLD_VALID = 10 DENY_THRESHOLD_ROOT = 1 DENY_THRESHOLD_RESTRICTED = 1 WORK_DIR = /var/lib/denyhosts SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES HOSTNAME_LOOKUP=YES LOCK_FILE = /var/lock/subsys/denyhosts ############ DENYHOSTS OPTIONAL SETTINGS ############ ADMIN_EMAIL = [email SMTP_HOST = localhost SMTP_PORT = 25 SMTP_FROM = DenyHosts <[email > SMTP_SUBJECT = DenyHosts Daily Report ############ DENYHOSTS OPTIONAL SETTINGS ############ DAEMON_LOG = /var/log/denyhosts DAEMON_SLEEP = 30s DAEMON_PURGE = 1h
Reiniciant el servei DenyHosts
Un cop hàgiu acabat amb la configuració, reinicieu el servei denyhosts per fer nous canvis. També afegim el servei denyhosts a l'inici del sistema.
# chkconfig denyhosts on # service denyhosts start
Mireu els registres de DenyHosts
Per veure els registres ssh de denyhosts de quants atacants i pirates informàtics s'intenten accedir al vostre servidor. Utilitzeu l'ordre següent per veure els registres en temps real.
# tail -f /var/log/secure
Nov 28 15:01:43 tecmint sshd[25474]: Accepted password for root from 172.16.25.125 port 4339 ssh2 Nov 28 15:01:43 tecmint sshd[25474]: pam_unix(sshd:session): session opened for user root by (uid=0) Nov 28 16:44:09 tecmint sshd[25474]: pam_unix(sshd:session): session closed for user root Nov 29 11:08:56 tecmint sshd[31669]: Accepted password for root from 172.16.25.125 port 2957 ssh2 Nov 29 11:08:56 tecmint sshd[31669]: pam_unix(sshd:session): session opened for user root by (uid=0) Nov 29 11:12:00 tecmint atd[3417]: pam_unix(atd:session): session opened for user root by (uid=0) Nov 29 11:12:00 tecmint atd[3417]: pam_unix(atd:session): session closed for user root Nov 29 11:26:42 tecmint sshd[31669]: pam_unix(sshd:session): session closed for user root Nov 29 12:54:17 tecmint sshd[7480]: Accepted password for root from 172.16.25.125 port 1787 ssh2
Elimina l'adreça IP prohibida de DenyHosts
Si alguna vegada heu bloquejat accidentalment i voleu eliminar aquesta adreça IP prohibida dels hosts denegats. Cal aturar el servei.
# /etc/init.d/denyhosts stop
Per eliminar o eliminar completament l'adreça IP prohibida. Heu d'editar els fitxers següents i eliminar l'adreça IP.
# vi /etc/hosts.deny # vi /var/lib/denyhosts/hosts # vi /var/lib/denyhosts/hosts-restricted # vi /var/lib/denyhosts/hosts-root # vi /var/lib/denyhosts/hosts-valid # vi /var/lib/denyhosts/users-hosts
Després d'eliminar l'adreça IP prohibida, reinicieu el servei.
# /etc/init.d/denyhosts start
L'adreça IP ofensiva s'ha afegit a tots els fitxers del directori /var/lib/denyhosts, de manera que és molt difícil determinar quins fitxers contenen l'adreça IP ofensiva. Una de les millors maneres d'esbrinar l'adreça IP mitjançant l'ordre grep. Per exemple, per esbrinar l'adreça IP 172.16.25.125, feu.
cd /var/lib/denyhosts grep 172.16.25.125 *
Llista blanca d'adreces IP permanentment a DenyHosts
Si teniu una llista d'adreces IP estàtiques que voleu incloure a la llista blanca permanentment. Obriu el fitxer /var/lib/denyhosts/allowed-hosts. Qualsevol adreça IP inclosa en aquest fitxer no es prohibirà per defecte (considereu-ho com una llista de temps).
# vi /var/lib/denyhosts/allowed-hosts
I afegiu cada adreça IP en una línia separada. Desa i tanca el fitxer.
# We mustn't block localhost 127.0.0.1 172.16.25.125 172.16.25.126 172.16.25.127