GNU/Linux >> Linux Esercitazione >  >> Debian

Come installare e abilitare il server SSH su Debian 10

Questo tutorial si concentra sull'impostazione e la configurazione di un server SSH su un server minimo Debian 10

SSH , per Secure Shell , è un protocollo di rete utilizzato per eseguire accessi remoti a macchine distanti all'interno di una rete locale o su Internet. Le architetture SSH in genere includono un server SSH utilizzato dai client SSH per connettersi alla macchina remota.

In qualità di amministratore di sistema, è molto probabile che utilizzi SSH quotidianamente per connetterti a macchine remote attraverso la tua rete.

Di conseguenza, quando nuovi host vengono inseriti nella tua infrastruttura, potresti dover configurarli per installarli e abilitare SSH su di essi.

In questo tutorial, vedremo come installare e abilitare SSH, tramite OpenSSH , su una distribuzione Debian 10.

Prerequisiti

Per installare un server SSH su Debian 10, dovrai disporre dei privilegi sudo sul tuo host.

Per verificare se hai i privilegi sudo o meno, esegui il seguente comando

$ sudo -l

Se vedi le seguenti voci sul tuo terminale, significa che hai privilegi elevati

Per impostazione predefinita, l'utilità ssh dovrebbe essere installata sul tuo host, anche su configurazioni minime.

Per verificare la versione della tua utility SSH, puoi eseguire il seguente comando

$ ssh -V

Come puoi vedere, sto eseguendo OpenSSH v7.9 con OpenSSL v1.1.1.

Nota che ciò non significa che i server SSH siano installati sul mio host, significa solo che potrei collegarmi a macchine remote come client usando l'utilità SSH.

Significa anche che sul mio host saranno disponibili utilità specifiche relative al protocollo SSH (come scp ad esempio) o relative ai server FTP (come sftp).

Installazione del server OpenSSH su Debian 10

Prima di tutto, assicurati che i tuoi pacchetti siano aggiornati eseguendo un comando di aggiornamento

$ sudo apt-get update

Per installare un server SSH su Debian 10, esegui il seguente comando

$ sudo apt-get install openssh-server

Il comando dovrebbe eseguire un processo di installazione completo e dovrebbe configurare tutti i file necessari per il tuo server SSH.

Se l'installazione ha avuto successo, ora dovresti avere un servizio sshd installato sul tuo host.

Per controllare il servizio appena installato, esegui il seguente comando

$ sudo systemctl status sshd

Per impostazione predefinita, il tuo server SSH verrà eseguito sulla porta 22.

Questa è la porta predefinita assegnata per le comunicazioni SSH. Puoi verificare se questo è il caso sul tuo host eseguendo il seguente comando netstat

$ netstat -tulpn | grep 22

Grande! Il tuo server SSH è ora attivo e funzionante sul tuo host Debian 10.

Abilitazione del traffico SSH sulle impostazioni del firewall

Se stai usando UFW come firewall predefinito sul tuo sistema Debian 10, è probabile che tu debba consentire le connessioni SSH sul tuo host.

Per abilitare le connessioni SSH sul tuo host, esegui il seguente comando

$ sudo ufw allow ssh

Abilita il server SSH all'avvio del sistema

Come probabilmente hai visto, il tuo server SSH è ora in esecuzione come servizio sul tuo host.

È anche molto probabile che venga richiesto di avviarsi all'avvio.

Per verificare se il tuo servizio è abilitato o meno, puoi eseguire il seguente comando

$ sudo systemctl list-unit-files | grep enabled | grep ssh

Se non vengono visualizzati risultati sul tuo terminale, abilita il servizio ed esegui nuovamente il comando

$ sudo systemctl enable ssh

Configurazione del tuo server SSH su Debian

Prima di consentire l'accesso agli utenti tramite SSH, è importante disporre di una serie di impostazioni sicure per evitare di essere attaccati, soprattutto se il tuo server è in esecuzione come VPS online.

Come abbiamo già visto in passato, gli attacchi SSH sono piuttosto comuni ma possono essere evitati se modifichiamo le impostazioni predefinite disponibili.

Per impostazione predefinita, i file di configurazione SSH si trovano in /etc/ssh/

In questa directory troverai molti file di configurazione diversi, ma i più importanti sono :

  • ssh_config :definisce le regole SSH per i client. Significa che definisce le regole che vengono applicate ogni volta che usi SSH per connetterti a un host remoto o per trasferire file tra host;
  • sshd_config :definisce le regole SSH per il tuo server SSH. Viene utilizzato ad esempio per definire la porta SSH raggiungibile o per impedire a utenti specifici di comunicare con il proprio server.

Ovviamente modificheremo la parte a livello di server della nostra configurazione SSH poiché siamo interessati a configurare e proteggere il nostro server OpenSSH.

Modifica della porta predefinita SSH

Il primo passo verso l'esecuzione di un server SSH sicuro è modificare l'impostazione predefinita assegnata dal server OpenSSH.

Modifica il tuo file di configurazione sshd_config e cerca la riga seguente.

#Port 22

Assicurati di cambiare la tua porta con una che non sia riservata ad altri protocolli. In questo caso sceglierò 2222.

Quando ti connetti al tuo host, se non è in esecuzione sulla porta predefinita, specificherai tu stesso la porta SSH.

Per ulteriori informazioni, fare riferimento alla sezione "Connessione al server SSH".

Disabilitazione dell'accesso root sul tuo server SSH

Per impostazione predefinita, l'accesso root è disponibile sul tuo server SSH.

Ovviamente non dovrebbe essere così in quanto sarebbe un completo disastro se gli hacker dovessero accedere come root sul tuo server.

Se per caso hai disabilitato l'account di root nella tua installazione di Debian 10, puoi comunque configurare il tuo server SSH per rifiutare l'accesso come root, nel caso in cui tu scelga di riattivare il tuo login come root un giorno.

Per disabilitare l'accesso come root sul tuo server SSH, modifica la riga seguente

#PermitRootLogin

PermitRootLogin no

Configurazione dell'autenticazione SSH basata su chiave

In SSH, ci sono due modi per connettersi al tuo host:usando l'autenticazione della password (cosa stiamo facendo qui) o disponendo di un set di chiavi SSH.

Se sei curioso dell'autenticazione SSH basata su chiave su Debian 10, qui è disponibile un tutorial sull'argomento.

Riavvio del server SSH per applicare le modifiche

Per applicare le modifiche, riavvia il servizio SSH e assicurati che sia stato riavviato correttamente

$ sudo systemctl restart sshd
$ sudo systemctl status sshd

Inoltre, se modifichi la porta predefinita, assicurati che le modifiche siano state applicate correttamente eseguendo un semplice comando netstat

$ netstat -tulpn | grep 2222

Connessione al tuo server SSH

Per connetterti al tuo server SSH, utilizzerai il comando ssh con la seguente sintassi

$ ssh -p <port> <username>@<ip_address>

Se ti stai connettendo su una rete LAN, assicurati di ottenere l'indirizzo IP locale della tua macchina con il seguente comando

$ sudo ifconfig

Ad esempio, per connettermi alla mia istanza situata in 127.0.0.1, eseguirei il seguente comando

$ ssh -p 2222 <user>@127.0.0.1

Ti verrà chiesto di fornire la tua password e di certificare che l'autenticità del server è corretta.

Uscire dal server SSH

Per uscire dal tuo server SSH su Debian 10, puoi premere Ctrl + D o digitare "logout" e la tua connessione verrà interrotta.

Disabilitare il tuo server SSH

Per disabilitare il tuo server SSH su Debian 10, esegui il seguente comando

$ sudo systemctl stop sshd
$ sudo systemctl status sshd

Da lì, il tuo server SSH non sarà più accessibile.

Risoluzione dei problemi

In alcuni casi, potresti incontrare molti messaggi di errore quando provi a configurare un server SSH su Debian 10.

Ecco l'elenco degli errori comuni che potresti ricevere durante l'installazione.

Debian:connessione SSH rifiutata

Di solito ricevi questo errore perché il tuo firewall non è configurato correttamente su Debian.

Per risolvere "Connessione SSH rifiutata" devi ricontrollare le impostazioni del firewall UFW.

Per impostazione predefinita, Debian utilizza UFW come firewall predefinito, quindi potresti voler controllare le regole del firewall e vedere se SSH è consentito correttamente.

$ sudo ufw status

Status: active
 
To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere

Se stai usando iptables, puoi anche controllare le tue attuali regole IP con il comando iptables.

$ sudo iptables -L -n

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ssh

Se la regola non è impostata per SSH, puoi impostarla eseguendo nuovamente il comando iptables.

$ sudo iptables -I INPUT -p tcp -m tcp --dport 22 -j ACCEPT

Debian:accesso SSH negato

A volte, potrebbe esserti negato l'accesso al tuo server SSH con questo messaggio di errore "Accesso SSH negato" su Debian.

Per risolvere questo problema, dipende dal metodo di autenticazione in uso.

Accesso con password SSH negato

Se stai utilizzando il metodo della password, ricontrolla la tua password e assicurati di averla inserita correttamente.

Inoltre, è possibile configurare i server SSH per consentire solo un sottoinsieme specifico di utenti:in tal caso, assicurati di appartenere a tale elenco.

Infine, se vuoi accedere come root, assicurati di aver modificato l'opzione "PermitRootLogin" nel tuo file "sshd_config".

#PermitRootLogin

PermitRootLogin yes

Accesso alla chiave SSH negato

Se utilizzi chiavi SSH per l'autenticazione SSH, potrebbe essere necessario ricontrollare che la chiave si trovi correttamente nel file "authorized_keys".

Se non sei sicuro di come farlo, segui la nostra guida sull'autenticazione della chiave SSH su Debian 10.

Debian:Impossibile individuare il pacchetto openssh-server

Per questo, devi assicurarti di aver impostato correttamente i tuoi repository APT.

Aggiungi la seguente voce al tuo file sources.list e aggiorna i tuoi pacchetti.

$ sudo nano /etc/apt/sources.list

deb http://ftp.us.debian.org/debian wheezy main

$ sudo apt-get update

Conclusione

In questo tutorial, hai imparato come installare e configurare un server SSH su host Debian 10.

Hai anche appreso le opzioni di configurazione di base che devono essere applicate per eseguire un server SSH sicuro e robusto su una LAN o su Internet.

Se sei curioso dell'amministrazione del sistema Linux, abbiamo un sacco di tutorial sull'argomento in una categoria dedicata.


Debian
  1. Come installare e configurare OpenVPN Server su Debian 10

  2. Come installare Redis Server su Debian 11

  3. Come installare MySQL 8.0 / 5.7 su Debian 11 / Debian 10

  4. Come installare e configurare il server VNC su Debian 10

  5. Come installare ProFTPD su Debian 8

Come installare Puppet Server e Agent su Debian 11

Come installare Todoman sul server Debian 11

Come installare e configurare Apache Web Server su Debian 11

Come installare FastPanel su Debian 11

Come installare I2P su Debian Server:

Come abilitare SSH su Debian 10 Buster