Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

SSH e gestione risorse di rete

Scopriamo come utilizzare OpenSSH per le connessioni sicure e gestire le risorse di rete nel passaggio da Windows a Linux
Scopriamo come utilizzare OpenSSH per le connessioni sicure e gestire le risorse di rete nel passaggio da Windows a Linux
Link copiato negli appunti

Bentornati in questa terza guida dedicata alla migrazione da Windows a Linux. Questa volta ci focalizzeremo principalmente sulla configurazione del demone di OpenSSH e sulla gestione delle risorse di rete tramite shell ed i relativi tool integranti nelle distribuzioni. I professionisti del mondo IT, e non, si affidano non di rado ad OpenSSH per poter accedere a file e dati collocati su altri computer.

OpenSSH è dunque uno degli strumenti principali adottati dai sistemisti, o dai developer, per lavorare anche su decine di computer diversi. Linux è la piattaforma ideale per operare con SSH, questo perché tale protocollo nasce proprio in ambito Unix-like e dunque gode di un'integrazione nativa con tali sistemi.

Installazione del server OpenSSH

Il pacchetto del demone di OpenSSH è presente nei repository di quasi tutti i sistemi Linux. Per semplicità utilizzeremo come distribuzione di riferimento Linux Mint. Dunque avviamo bash ed iniziamo la procedura di configurazione invocando il package manager APT:

sudo apt install openssh-server

Come abbiamo spiegato nel tutorial precedente, il gestore di pacchetti si occupa anche di reperire ed installare le relative dipendenze. Oltre all'applicativo stesso vengono scaricati i pacchetti correlati ovvero: ncurses-term openssh-sftp-server ed ssh-import-id che vanno a gestire alcune funzioni extra del server SSH.

OpenSSH

Dopo aver terminato il setting di tali pacchetti il server viene automaticamente avviato da systemd, il gestore dei demoni utilizzato da gran parte delle distribuzioni Linux. Tuttavia, se lo preferiamo, possiamo sempre chiedere ad systemd se OpenSSH è attivo:

sudo systemctl is-enabled ssh

Come output la shell dovrebbe risponderci con "enabled" ma è possibile sincerarsi che il demone sia in esecuzione anche in questo modo:

sudo systemctl status ssh

Nel caso in cui il sistema non proceda all'auto avvio di OpenSSH possiamo avviare il processo, ed impostarlo come l'autoavvio al boot, tramite il comando:

sudo systemctl enable ssh --now

sudo systemctl start ssh

Configurazione del firewall

Ora è necessario dare il permesso al server OpenSSH di scambiare dati con i client da altri computer. Per farlo è necessario creare un regola sul firewall di Linux Mint, chiamato UFW, in modo tale che venga anche aperta la porta TCP 22, usata appunto da SSH. Dunque torniamo su bash e digitiamo:

sudo ufw allow ssh

sudo ufw allow 22/tcp

Se si ha la necessità di autorizzare l'accesso ad un determinato set di IP possiamo specificarli manualmente ad UFW:

sudo ufw allow from IPdelPCdesiderato to any port 22

Infine abilitiamo le modifiche appena immesse alle regole del firewall:

sudo ufw enable

e riavviamo il UFW per sicurezza:

sudo ufw reload

Se desideriamo prendere visione delle regole impostate possiamo interfacciarsi con UFW in questo modo:

sudo ufw status verbose

A questo punto testiamo il server OpenSSH appena configurato. Dunque apriamo una shell da un altro PC, o da un macchina virtuale, e scriviamo:

ssh nomeutente@IPdelServerSSH

In questo caso potremo effettuare il login tramite l'uso delle classiche credenziali, nome utente e password, tuttavia tale configurazione non è di certo la più comoda quando è necessario connettersi a decine di computer diversi. Ecco perché consigliamo di utilizzare l'autenticazione tramite una SSH Public Key.

Autenticazione con SSH Public Key

Il principale vantaggio dell'uso di tale metodologia di autenticazione è la possibilità di eseguire il login senza password. Per generare la public key, da distribuire ai vari client che desideriamo autorizzare, basta immettere tale comando su bash:

ssh-keygen -t rsa

A questo punto tramite scp possiamo copiare la chiave appena generata su di un PC remoto:

scp ~/.ssh/id_rsa.pub nomeutente@IPdelclient:~/.ssh/authorized_keys

È possibile anche sfruttare la funzione integrata in OpenSSH chiamata ssh-copy-id:

ssh-copy-id nomeutente@IPdelclient

ssh-copy-id -i ~/.ssh/id_rsa.pub nomeutente@IPdelclient

Possiamo verificare manualmente se la copia è avvenuta correttamente tramite cat:

cat ~/.ssh/id_rsa.pub

Dovremmo infatti ricevere un output simile al seguente:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAfawAABAQCyVGaw1PuEl98f4/7Kq3O9ZIvDwwaf2OFOSXAFVqilSFNkgawaewafwaghaHlefm1iMt iltuohostname@hostname

Ora l'utente potrà connettersi al server SSH senza dover digitare la password. È possibile anche disabilitare completamente il login tramite password andando a modificare il paramento chiamato "PasswordAuthentication" in "No". Tale configurazione si trova nel file sshd_config nella directory /etc/ssh. Per operare questa modifica possiamo sfruttare ad esempio il pratico editor di testo da shell nano:

sudo nano /etc/ssh/sshd_config

Per salvare le modifiche ed uscire dal documento usiamo la combinazione di tasti CTRL+O e CTRL+X

Configurazione server Samba

Per eseguire lo condivisione di una o più directory tra più computer nella medesima rete LAN è possibile realizzare un server Samba. Quindi torniamo nel terminale e digitiamo:

sudo apt install samba wsdd avahi-daemon

A questo punto andiamo a realizzare una nuova directory dove collare i file da condividere e diamo i permessi di lettura/scrittura all'utente:

sudo mkdir -p /home/CartellaCondivisa

sudo chmod 777 /home/CartellaCondivisa

Ora è il momento di modificare il file di configurazione di Samba in modo tale da impostare tale cartella come posizione di riferimento per le operazioni di sharing:

sudo nano /etc/samba/smb.conf

Nel dettaglio bisogna modificare il parametro chiamato "patch=" includendo la posizione della directory:

patch= /home/CartellaCondivisa

Inoltre assicuriamoci che le opzioni "writable", "guest" e "guest only" siano impostati su "yes".

Infine sinceriamoci che il firewall permetta a Samba di operare e di condividere i file:

sudo ufw allow samba

Configurare il Secure Samba Share

Se preferiamo consentire l'accesso al nostro serve Samba solo a determinati utenti dobbiamo implementare una configurazione particolare. Assegniamo prima di tutto la proprietà della directory appena creata al sambashare group:

sudo chgrp sambashare /home/CartellaCondivisa

Adesso generiamo un utente per samba (può essere identico a quello usato nel sistema) e la relativa password:

sudo useradd -M -d /home/share/NomeUtente -s /usr/sbin/nologin -G sambashare NomeUtente
sudo mkdir /home/CartellaCondivisa/NomeUtente
sudo chown NomeUtente:sambashare /home/CartellaCondivisa/NomeUtente
sudo chmod 2770 /home/CartellaCondivisa/NomeUtente
sudo smbpasswd -a NomeUtente
sudo smbpasswd -e NomeUtente

Ora è possibile generare un utente amministratore del server Samba e creare la tua directory dedicata:

sudo useradd -M -d /home/share/smbadmin -s /usr/sbin/nologin -G sambashare smbadmin
sudo mkdir /home/share/smbadmin sudo smbpasswd -a smbadmin
sudo smbpasswd -e smbadmin
sudo chown smbadmin:sambashare /home/share/smbadmin
sudo chmod 2770 /home/share/smbadmin

Ora torniamo nel file di configurazione di Samba:

sudo nano /etc/samba/smb.conf

ed aggiungiamo il parametro:

valird user = @smbadmin @sambashar

alla fine del documento. Infine riavviamo il server per confermare tutte le modifiche eseguite:

sudo systemctl restart smbd nmbd

Configurazione dei client Samba

Se invece desideriamo configurare semplicemente il client samba dobbiamo assicurarci di aver installato tali pacchetti:

sudo apt install samba-client cifs-utils

Proviamo quindi a connetterci alla directory condivisa:

smbclient //IPdelserverSamba/CartellaCondivisa -U NomeUtente

Se preferiamo avere la cartella condivisa sempre disponibile nel file manager è necessario sfruttare cifs ed impostare tale regola nel file di configurazione di samba oltre che in fstab:

sudo mkdir -p /mounts/shares

sudo mount -t cifs -o username=NomeUtente //IPdelserver/nomeutente ~/mounts/shares

Ora apriamo il file fstab:

sudo nano /etc/fstab

ed aggiungiamo la seguente riga alla fine del documento:

//IPdelserver Samba/nomeutente  /mnt/shares cifs credentials=/.sambacreds 0 0

Adesso configuriamo il client samba per l'automount, quindi apriamo il file di configurazione:

sudo nano/.sambacreds

ed aggiungiamo questi parametri:

username: nomeutente

password: lapassworddelserversamba

domain: WORKGROUP

Quindi controlliamo se tutti è andato a buon fine:

sudo mkdir -p /mnt/shares

sudo mount -a

df -hT | grep cifs

Dopo l'ultimo comando dovremmo ottenere un output simile a questo:

//ipdelserver/nomeutente cifs      40G  24G  14G  90% /mnt/shares

Ti consigliamo anche