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 utenteroot.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à:
- Attivare SSH sulla tua macchina o ambiente virtuale, ad esempio WSL2.
- Generare le chiavi e configurare l'autenticazione con chiave (vietando le password).
- Connetterti al server tramite SSH.
- Usare
pingper verificare la disponibilità del server. - Usare
nslookupedigper controllare la risoluzione dell'indirizzo IP (se hai un nome di dominio). - Controllare la porta 22 sul server usando
netstat,ssenc.
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.
GO TO FULL VERSION