GNU/Linux >> Linux Esercitazione >  >> Linux

Come proteggere Apache e SSH con Fail2Ban su CentOS 8

Se sei un amministratore di sistema, proteggere il tuo server da diversi tipi di attacchi è una parte essenziale del tuo lavoro; Il firewall Fail2Ban può aiutarti a raggiungere questo obiettivo. Fail2Ban è un sistema di prevenzione delle intrusioni scritto nel linguaggio Python utilizzato per bloccare gli IP dannosi che tentano di violare la sicurezza del sistema. Funziona eseguendo la scansione di vari file di registro e bloccando gli IP che tentano di effettuare frequenti tentativi di accesso per un periodo di ban specificato. Consente inoltre di monitorare la forza e la frequenza degli attacchi. Per la sua semplicità, è considerato il software preferito per proteggere il tuo server da attacchi DOS, DDOS e di forza bruta.

In questo tutorial, ti mostreremo come proteggere un server SSH e Apache con Fail2Ban su CentOS 8.

Prerequisiti

  • Un nuovo VPS CentOS 8 sulla piattaforma Atlantic.net Cloud.
  • Una password di root configurata sul tuo server.

Fase 1:crea un server cloud Atlantic.Net

Per prima cosa, accedi al tuo server Atlantic.Net Cloud. Crea un nuovo server, scegliendo CentOS 8 come sistema operativo con almeno 1 GB di RAM. Collegati al tuo Cloud Server tramite SSH e accedi utilizzando le credenziali evidenziate in alto nella pagina.

Dopo aver effettuato l'accesso al server CentOS 8, esegui il comando seguente per aggiornare il sistema di base con gli ultimi pacchetti disponibili.

dnf update -y

Fase 2 – Installa Fail2Ban

Puoi installarlo con il seguente comando:

dnf install epel-release -y

Dopo aver installato il repository EPEL, puoi installare Fail2Ban con il seguente comando:

dnf install fail2ban -y

Una volta installato, avvia il servizio Fail2Ban e abilitalo all'avvio dopo il riavvio del sistema:

systemctl start fail2ban
systemctl enable fail2ban

Fase 3 – Proteggi SSH con Fail2Ban

In questa sezione impareremo come proteggere il server SSH con Fail2Ban.

Configura Fail2Ban per SSH

Puoi creare un file jail.local per SSH con il seguente comando:

nano /etc/fail2ban/jail.local

Aggiungi le seguenti righe:

[DEFAULT]
ignoreip = your-server-ip
bantime = 300
findtime = 300
maxretry = 3
banaction = iptables-multiport
backend = systemd

[sshd]
enabled = true

Salva e chiudi il file quando hai finito. Quindi, riavvia il servizio Fail2Ban per applicare le modifiche:

systemctl restart fail2ban

Ora puoi controllare lo stato di SSH jail con il seguente comando:

fail2ban-client status

Dovresti vedere che è abilitata una jail SSH:

Status
|- Number of jail:        1
`- Jail list:        sshd

Di seguito viene mostrata una breve spiegazione di ciascun parametro:

  • ignora :Usato per definire gli indirizzi IP che vuoi ignorare.
  • bantime :Usato per definire un numero di secondi per cui l'indirizzo IP sarà bannato.
  • trova il tempo :Utilizzato per definire la quantità di tempo tra i tentativi di accesso prima che l'IP venga bannato.
  • riprova massima :Utilizzato per definire il numero di tentativi da effettuare prima che l'indirizzo IP venga bannato.
  • banazione :Azione vietata.
  • abilitato :questa opzione abilita la protezione per il servizio SSH.

Testa SSH contro gli attacchi alle password

A questo punto Fail2Ban è installato e configurato. È ora di verificare se funziona o meno.

Per farlo, vai sulla macchina remota e prova a inviare SSH all'indirizzo IP del server:

ssh [email protected]

Ti verrà chiesto di fornire la password di root. Digita la password sbagliata ancora e ancora. Una volta raggiunto il limite di tentativi di accesso, il tuo indirizzo IP verrà bloccato.

Puoi verificare il tuo indirizzo IP bloccato con il seguente comando:

fail2ban-client status sshd

Dovresti vedere il tuo IP bloccato nel seguente output:

Status for the jail: sshd
|- Filter
|  |- Currently failed:   7
|  |- Total failed:          39
|  `- Journal matches:  _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
   |- Currently banned: 1
   |- Total banned:        2
   `- Banned IP list:     190.8.80.42

Puoi anche controllare il registro SSH per gli accessi non riusciti:

tail -5 /var/log/secure | grep 'Failed password'

Dovresti vedere il seguente output:

Mar  1 03:55:03 centos8 sshd[11196]: Failed password for invalid user bpadmin from 190.8.80.42 port 55738 ssh2

Puoi anche bloccare e sbloccare manualmente un indirizzo IP specifico.

Ad esempio, per sbloccare l'IP 190.8.80.42, eseguire il comando seguente:

fail2ban-client set sshd unbanip 190.8.80.42

Per bloccare l'IP 190.8.80.42, eseguire il seguente comando:

fail2ban-client set sshd banip 190.8.80.42

Fase 4 – Proteggi Apache con Fail2Ban

Puoi anche proteggere il server web Apache da diversi tipi di attacchi. Dovrai configurare il file jail.local per Apache come mostrato di seguito:

nano /etc/fail2ban/jail.local

Aggiungi le seguenti righe alla fine del file:

[apache-auth]
enabled = true
port    = http,https
logpath = %(apache_error_log)s

[apache-badbots]
enabled = true
port    = http,https
logpath = %(apache_access_log)s
bantime = 48h
maxretry = 1

[apache-noscript]
enabled = true
port    = http,https
logpath = %(apache_error_log)s

Salva e chiudi il file quando hai finito. Quindi, riavvia il servizio Fail2Ban per implementare le modifiche:

systemctl restart fail2ban

Ora puoi verificare lo stato di tutte le jail con il seguente comando:

fail2ban-client status

Dovresti vedere il seguente output:

Status
|- Number of jail:        5
`- Jail list:        apache-auth, apache-badbots, apache-noscript, sshd

Di seguito è mostrata una breve spiegazione di ogni jail:

  • Autenticazione Apache :Questa jail viene utilizzata per proteggere Apache da tentativi di accesso falliti.
  • apache-badbot :questa jail viene utilizzata per bandire gli host il cui agente identifica i robot spammer che eseguono la scansione del Web alla ricerca di indirizzi e-mail.
  • apache-noscript :Utilizzato per bloccare l'IP che sta cercando di eseguire gli script sul sito Web.

Conclusione

Nel tutorial sopra, abbiamo imparato come proteggere il server SSH e Apache con Fail2Ban. È un sistema di prevenzione delle intrusioni molto utile che aggiunge ulteriore sicurezza al tuo sistema Linux. Ora puoi configurare Fail2Ban in base alle tue esigenze di sicurezza specifiche. Inizia oggi stesso con Fail2Ban con l'hosting VPS di Atlantic.Net!


Linux
  1. Come utilizzare Fail2ban per proteggere SSH su CentOS 7

  2. Come installare Apache Hive con Hadoop su CentOS, Ubuntu e LinuxMint

  3. Come installare e configurare Fail2ban su CentOS 8?

  4. Come installare Apache 2.4.2 da Source su CentOS 6.2 con SSL

  5. Come indagare su una perdita di memoria con Apache e PHP?

Come installare Apache con Virtual Host su CentOS 8

Come installare e configurare GlusterFS su CentOS 7/CentOS 8

Come installare Drupal su CentOS 7 con Apache

Come installare WordPress su CentOS 7.1 con Apache

Come installare e configurare Memcached con Apache e PHP

Come proteggere SSH con Fail2Ban