CodeGym /Corsi /Docker SELF /Configurazione di SSH, diagnostica di rete con `ping`, `n...

Configurazione di SSH, diagnostica di rete con `ping`, `netstat`, `dig`

Docker SELF
Livello 4 , Lezione 5
Disponibile

1. Configurazione del server SSH

Benvenuto in un'immersione pratica nelle funzionalità di rete di Linux. Oggi è il momento di mettere alla prova le nostre conoscenze! Imparerai a configurare un server SSH, connetterti ad esso utilizzando un client, diagnosticare la rete con i comandi più popolari e verificare la disponibilità delle porte. Sentiamoci veri ingegneri di rete!

SSH (Secure Shell) è uno strumento per l'accesso remoto sicuro a un server. Ti consente di connetterti al server, gestirlo come se fossi davanti ad esso e trasferire file.

Passo 1: Installazione del server SSH

Per iniziare, installiamo il server SSH. Se utilizzi Ubuntu o Debian, esegui il seguente comando:

sudo apt update
sudo apt install openssh-server -y

Se hai Fedora o CentOS:

sudo yum install -y openssh-server

Dopo l'installazione, assicurati che il servizio SSH sia avviato:

sudo systemctl start ssh
sudo systemctl enable ssh  # Per avviare automaticamente SSH all'avvio del sistema
sudo systemctl status ssh  # Verifichiamo lo stato del servizio

Se tutto è andato a buon fine, vedrai che il servizio è in esecuzione.

Passo 2: Configurazione del server SSH

Il file di configurazione del server SSH si trova al seguente percorso:

sudo nano /etc/ssh/sshd_config

Alcuni dei parametri utili:

  • PermitRootLogin no — disabilita l'accesso come utente root.
  • PasswordAuthentication yes — abilita l'autenticazione tramite password.
  • PubkeyAuthentication yes — abilita l'autenticazione tramite chiavi.

Dopo aver apportato le modifiche, riavvia SSH:

sudo systemctl restart ssh

Ora il server è pronto per accettare connessioni.

Passo 3: Connessione al server tramite SSH

Da un'altra macchina (o dalla macchina locale tramite localhost) prova a connetterti:

ssh your_username@your_server_ip

Se stai lavorando localmente, sostituisci your_server_ip con 127.0.0.1. Inserisci la password del tuo utente e sarai all'interno del sistema tramite il terminale.


2. Configurazione dell'autenticazione con chiavi

L'autenticazione tramite password è comoda, ma dal punto di vista della sicurezza, il miglior approccio è utilizzare le chiavi SSH.

Passo 1: Generare le chiavi SSH

Sulla macchina client esegui il comando:

ssh-keygen

Il sistema ti chiederà dove salvare le chiavi. Per impostazione predefinita, saranno salvate nella directory ~/.ssh/. Premi semplicemente Enter.

Passo 2: Copiare la chiave sul server

Copiamo la chiave pubblica sul server:

ssh-copy-id your_username@your_server_ip

Ora potrai connetterti senza dover inserire la password:

ssh your_username@your_server_ip

Se tutto è stato configurato correttamente, congratulazioni! Ora il tuo server SSH è protetto con l'autenticazione a chiave.


3. Diagnostica di rete con l'uso di ping

Siamo già familiari con questo comando. Facciamo un rapido controllo della disponibilità del nostro server SSH.

ping -c 4 your_server_ip

Dovresti vedere una risposta dal server. Se non c'è risposta, verifica se il server è avviato e configurato correttamente.


4. Verifica dei DNS usando nslookup e dig

Se il tuo server ha un nome di dominio, puoi verificarne il funzionamento tramite DNS. Per esempio:

Comando nslookup:

nslookup your-domain.com

Dovresti vedere l'indirizzo IP corrispondente al tuo dominio.

Comando dig:

Ora proviamo a ottenere un set completo di informazioni:

dig your-domain.com

Vedrai un sacco di dati, ma quello che ci interessa è la linea con ANSWER SECTION, dove sarà indicato l'indirizzo IP.


5. Analisi delle connessioni di rete con netstat e ss

Il server SSH ascolta la porta 22 di default. Controlliamo questo con netstat:

sudo netstat -tln | grep 22

Oppure con ss, uno strumento più moderno:

sudo ss -tln | grep 22

Se vedi che la porta 22 è in stato "LISTEN" (in attesa di connessione), significa che il server è pronto a ricevere i client.


6. Verifica della disponibilità della porta con nc

Il comando netcat (o nc) permette di testare la disponibilità delle porte. Proviamo a connetterci al nostro server SSH:

nc -zv your_server_ip 22

Dovresti vedere un messaggio tipo "Connection to your_server_ip 22 port [tcp/ssh] succeeded!".

Se la connessione non è riuscita, potrebbe significare che la porta è bloccata dal firewall o che il server non sta ascoltando sulla porta indicata.


7. Compito pratico

Ora mettiamo tutto insieme in uno scenario pratico. Ti servirà:

  1. Attivare SSH sulla tua macchina o ambiente virtuale, ad esempio WSL2.
  2. Generare le chiavi e configurare l'autenticazione con chiave (vietando le password).
  3. Connetterti al server tramite SSH.
  4. Usare ping per verificare la disponibilità del server.
  5. Usare nslookup e dig per controllare la risoluzione dell'indirizzo IP (se hai un nome di dominio).
  6. Controllare la porta 22 sul server usando netstat, ss e nc.

Ora sei pronto non solo per configurare l'accesso remoto, ma anche per risolvere problemi di rete, diagnosticare il server e proteggerlo come un vero pro! Sei già sulla strada per essere chiamato un Linux-guru.

1
Sondaggio/quiz
Lavorare con la rete in Linux, livello 4, lezione 5
Non disponibile
Lavorare con la rete in Linux
Lavorare con la rete in Linux
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION