GNU/Linux >> Linux Esercitazione >  >> Linux

Come proteggere il servizio SSH con Port Knocking

Se desideri consentire agli utenti di accedere a servizi specifici sul tuo server senza aprire un firewall, puoi utilizzare il port knocking. Il port knocking è un metodo che ti consente di proteggere il tuo servizio da utenti non autorizzati. Il port knocking consente le connessioni in entrata quando viene ricevuta una sequenza corretta di tentativi di connessione.

In questo post, metteremo in sicurezza la porta SSH 22 aperta con port knocking. Questa porta verrà aperta solo quando qualcuno richiede le porte 7000, 8000, 9000 in sequenza.

Prerequisiti

  • Un server Ubuntu 20.04 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 Ubuntu 20.04 come sistema operativo con almeno 2GB 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 tuo server Ubuntu 20.04, esegui il comando seguente per aggiornare il tuo sistema di base con gli ultimi pacchetti disponibili.

apt-get update -y

Fase 2 – Installa e configura Knockd

apt-get install knockd -y

Una volta installato il pacchetto, modifica il file di configurazione predefinito di port knocking:

nano /etc/knockd.conf

Trova la sequenza predefinita mostrata di seguito:

        sequence    = 7000,8000,9000
        sequence    = 9000,8000,7000

E sostituiscili con la seguente sequenza:

        sequence    = 7777,8888,9999
        sequence    = 9999,8888,7777

Inoltre, trova la seguente riga:

        command     = /sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT

E sostituiscilo con la seguente riga:

        command     = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT

Salva e chiudi il file quando hai finito.

Nel file di configurazione sopra, la sequenza 7777, 8888, 9999 viene utilizzata per aprire la porta 22 per un sistema client e la sequenza 9999, 8888, 7777 viene utilizzata per chiudere la porta 22 per un sistema client.

Quindi, modifica /etc/default/knockd file di configurazione:

nano /etc/default/knockd

Modifica le seguenti righe:

# Start the Knockd service
START_KNOCKD=1

# Name of your network interface
KNOCKD_OPTS="-i eth0"

Salva e chiudi il file al termine, quindi riavvia il servizio Knockd e abilitalo all'avvio al riavvio del sistema:

systemctl restart knockd
systemctl enable knockd

Successivamente, verifica lo stato del servizio Knockd con il comando seguente:

systemctl status knockd

Esempio di output:

● knockd.service - Port-Knock Daemon
     Loaded: loaded (/lib/systemd/system/knockd.service; disabled; vendor preset: enabled)
     Active: active (running) since Sun 2021-08-15 13:26:31 UTC; 5s ago
       Docs: man:knockd(1)
   Main PID: 6555 (knockd)
      Tasks: 1 (limit: 2353)
     Memory: 296.0K
     CGroup: /system.slice/knockd.service
             └─6555 /usr/sbin/knockd -i eth0

Aug 15 13:26:31 ubuntu2004 systemd[1]: Started Port-Knock Daemon.
Aug 15 13:26:31 ubuntu2004 knockd[6555]: starting up, listening on eth0

Fase 3 – Installa e configura Iptables

Knockd usa la regola Iptables per aprire e chiudere la porta SSH, quindi dovrai installare il pacchetto Iptables sul tuo server.

Esegui il comando seguente per installare il pacchetto Iptables:

apt-get install iptables iptables-persistent -y

Una volta installato il pacchetto, crea una regola Iptables per bloccare la porta SSH 22 per tutti gli utenti:

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j REJECT

Quindi, salva la regola di Iptables e ricaricala con il seguente comando:

netfilter-persistent save
netfilter-persistent reload

A questo punto, il port knocking è configurato per OpenSSH nel tuo server.

Passaggio 4:verifica della connessione OpenSSH dal sistema client

Quindi, vai al sistema client e controlla se la porta OpenSSH 22 è bloccata o meno.

Puoi verificarlo usando il comando NMAP:

nmap your-server-ip

Dovresti vedere che la porta 22 è filtrata sul server.

Nmap scan report for your-server-ip
Host is up (0.38s latency).
Not shown: 998 closed ports
PORT   STATE    SERVICE
21/tcp open     ftp
22/tcp filtered ssh
Nmap done: 1 IP address (1 host up) scanned in 277.58 seconds

Ora, prova a connetterti al tuo server usando SSH dalla macchina client:

ssh [email protected]

Dovresti vedere il messaggio di connessione rifiutata:

ssh: connect to host your-server-ip port 22: Connection refused

Passaggio 5:configurare Knockd on Client per connettere il server SSH

Ora dovrai installare il client Knock sul sistema client per connetterti al server SSH.

Innanzitutto, esegui il comando seguente per installare il pacchetto client di Knockd:

apt-get install knockd -y

Ora usa la seguente sequenza di colpi per aprire la porta SSH 22 sul server.

knock -v your-server-ip 7777 8888 9999

Quando il tuo server riceve una sequenza corretta che hai definito nel file di configurazione di Knockd, aprirà la porta SSH 22 per la tua macchina client e sarai in grado di connetterti al server SSH.

ssh [email protected]

Dopo aver completato l'attività sul server SSH remoto, puoi utilizzare la seguente sequenza dal computer client per chiudere nuovamente la porta SSH.

knock -v your-server-ip 9999 8888 7777

Conclusione

Nella guida sopra, hai imparato come proteggere un server SSH con il port knocking. Puoi usare lo stesso metodo per proteggere altre porte su un server Linux. Provalo sull'hosting VPS di Atlantic.Net!


Linux
  1. Come installare il servizio SSH (shell sicuro) su Kali Linux

  2. SSH per il porting diverso da 22:come farlo (con esempi)

  3. Come abilitare il servizio SSH in Ubuntu 22.04 LTS

  4. Come modificare la porta SSH in Linux

  5. Come configurare il tunneling SSH

Come gestire in remoto il server Ubuntu con SSH

Come installare il server SSH in Ubuntu 20.04

Come utilizzare Port Knocking per proteggere il servizio SSH in Linux

Come eseguire l'SSH sul server tramite Linux

Come bloccare il tuo server CentOS con IPtables

Come proteggere SSH con Fail2Ban