Introduzione
L'accesso alle macchine da remoto è diventato una necessità molto tempo fa e riusciamo a malapena a immaginare come sarebbe se non potessimo controllare i computer da postazioni remote. Esistono molti modi per stabilire una connessione con una macchina remota a seconda del sistema operativo in esecuzione, ma i due protocolli più utilizzati sono:
- Secure Shell (SSH) per macchine basate su Linux
- Remote Desktop Protocol (RDP) per macchine basate su Windows
I due protocolli utilizzano le applicazioni client e server per stabilire una connessione remota. Questi strumenti consentono di accedere e gestire in remoto altri computer, trasferire file e fare praticamente qualsiasi cosa mentre si è fisicamente seduti di fronte alla macchina.
Prerequisiti
Prima di poter stabilire un protocollo desktop remoto sicuro con una macchina remota, ci sono alcuni requisiti di base da soddisfare:
- Il computer remoto deve essere sempre acceso e disporre di una connessione di rete.
- Le applicazioni client e server devono essere installate e abilitate.
- È necessario l'indirizzo IP o il nome della macchina remota a cui connettersi.
- È necessario disporre delle autorizzazioni necessarie per accedere al computer remoto.
- Le impostazioni del firewall devono consentire la connessione remota.
Cos'è SSH?
Secure Shell, a volte indicato come Secure Socket Shell , è un protocollo che consente di connettersi in modo sicuro a un computer remoto o un server utilizzando un'interfaccia basata su testo.
Quando viene stabilita una connessione SSH sicura , verrà avviata una sessione shell e sarai in grado di manipolare il server digitando comandi all'interno del client sul tuo computer locale.
Gli amministratori di sistema e di rete utilizzano maggiormente questo protocollo, così come chiunque abbia bisogno di gestire un computer da remoto in modo altamente sicuro.
Come funziona SSH?
Per stabilire una connessione SSH, sono necessari due componenti: un client e il corrispondente componente lato server. Un client SSH è un'applicazione che installi sul computer che utilizzerai per connetterti a un altro computer o server. Il client utilizza le informazioni sull'host remoto fornite per avviare la connessione e, se le credenziali vengono verificate, stabilisce la connessione crittografata.
Sul lato server, c'è un componente chiamato demone SSH che ascolta costantemente una specifica porta TCP / IP per possibili richieste di connessione client. Una volta che un client avvia una connessione, il daemon SSH risponderà con il software e le versioni del protocollo che supporta ei due si scambieranno i propri dati di identificazione. Se le credenziali fornite sono corrette, SSH crea una nuova sessione per l'ambiente appropriato.
La versione del protocollo SSH predefinita per la comunicazione del server SSH e del client SSH è la versione 2.
Come abilitare una connessione SSH
Come installare un client OpenSSH
Prima di procedere con l'installazione di un client SSH, assicurati che non sia già installato. Molte distribuzioni Linux hanno già un client SSH. Per le macchine Windows, puoi installare PuTTY o qualsiasi altro client di tua scelta per ottenere l'accesso a un server.
Per verificare se il client è disponibile sul tuo sistema basato su Linux, dovrai:
- Carica un terminale SSH. Puoi cercare "terminale" o premere CTRL + ALT + T sulla tastiera.
- Digita
ssh
e premi Invio nel terminale. - Se il client è installato, riceverai una risposta simile a questa:
username@host:~$ ssh
usage: ssh [-1246AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
[-D [bind_address:]port] [-E log_file] [-e escape_char]
[-F configfile] [-I pkcs11] [-i identity_file]
[-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address] [-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]]
[user@]hostname [command]
username@host:~$
Ciò significa che sei pronto per connetterti in remoto a una macchina fisica o virtuale. Altrimenti, dovrai installare il client OpenSSH:
- Esegui il seguente comando per installare il client OpenSSH sul tuo computer:
sudo apt-get install openssh-client
- Digita la tua password di superutente quando richiesto.
- Premi Invio per completare l'installazione.
Ora sei in grado di eseguire SSH su qualsiasi macchina con l'applicazione lato server, a condizione che tu abbia i privilegi necessari per ottenere l'accesso, così come il nome host o l'indirizzo IP.
Come installare un server OpenSSH
Per accettare le connessioni SSH, una macchina deve avere la parte lato server del toolkit software SSH.
Se vuoi prima controllare se il server OpenSSH è disponibile sul sistema Ubuntu del computer remoto che deve accettare connessioni SSH, puoi provare a connetterti all'host locale:
- Apri il terminale sulla macchina server. Puoi cercare "terminale" o premere CTRL + ALT + T sulla tastiera.
- Digita
ssh localhost
e premi invio. - Per i sistemi senza il server SSH installato, la risposta sarà simile a questa:
username@host:~$ ssh localhost
ssh: connect to host localhost port 22: Connection refused username@host:~$
In tal caso, sarà necessario installare il server OpenSSH. Lascia il terminale aperto e:
- Eseguire il seguente comando per installare il server SSH:
sudo apt-get install openssh-server ii.
- Digita la tua password di superutente quando richiesto.
- Immettere e Y per consentire all'installazione di continuare dopo la richiesta di spazio su disco.
Verranno installati i file di supporto richiesti, quindi è possibile verificare se il server SSH è in esecuzione sulla macchina digitando questo comando:
sudo service ssh status
La risposta nel terminale dovrebbe essere simile a questa se il servizio SSH ora funziona correttamente:
username@host:-$ sudo service ssh status
• ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enab
Active: active (running) since Fr 2018-03-12 10:53:44 CET; 1min 22s ago Process: 1174 ExecReload=/bin/kill -HUP $MAINPID (code=exited, status=0/SUCCES
Main PID: 3165 (sshd)
Un altro modo per verificare se il server OpenSSH è installato correttamente e accetterà le connessioni è provare a eseguire ssh localhost
nuovamente il comando nel prompt del terminale. La risposta sarà simile a questa schermata quando esegui il comando per la prima volta:
username@host:~$ ssh localhost
The authenticity of host 'localhost (127.0.0.1)' can't be established. ECDSA key fingerprint is SHA256:9jqmhko9Yo1EQAS1QeNy9xKceHFG5F8W6kp7EX9U3Rs. Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
username@host:~$
Immettere sì o y per continuare.
Congratulazioni! Hai configurato il tuo server per accettare le richieste di connessione SSH da un computer diverso utilizzando un client SSH.
È ora possibile modificare il file di configurazione del daemon SSH, ad esempio, è possibile modificare la porta predefinita per le connessioni SSH. Nel prompt del terminale, esegui questo comando:
sudo nano /etc/ssh/sshd_config
Il file di configurazione si aprirà nell'editor di tua scelta. In questo caso, abbiamo utilizzato Nano.
Se devi installare Nano, esegui questo comando:
sudo apt-get install nano
Tieni presente che devi riavviare il servizio SSH ogni volta che apporti modifiche al sshd_config
file eseguendo questo comando:
sudo service ssh restart
Come connettersi tramite SSH
Ora che hai il client e il server OpenSSH installati su ogni macchina di cui hai bisogno, puoi stabilire una connessione remota sicura con i tuoi server. Fare così:
- Apri il terminale SSH sulla tua macchina ed esegui il seguente comando:
Se il nome utente sulla tua macchina locale corrisponde a quello sul server a cui stai tentando di connetterti, puoi semplicemente digitare:ssh your_username@host_ip_address
E premi Invio .ssh host_ip_address
- Digita la tua password e premi Invio . Tieni presente che non riceverai alcun feedback sullo schermo durante la digitazione. Se stai incollando la password, assicurati che sia archiviata in modo sicuro e non in un file di testo.
- Quando ti connetti a un server per la prima volta, ti verrà chiesto se desideri continuare a connetterti. Basta digitare sì e premere Invio . Questo messaggio viene visualizzato solo questa volta poiché il server remoto non è identificato sulla macchina locale.
- Viene ora aggiunta un'impronta digitale della chiave ECDSA e si è connessi al server remoto.
Se il computer a cui stai tentando di connetterti in remoto si trova sulla stessa rete, è meglio utilizzare l'indirizzo IP privato anziché l'indirizzo IP pubblico. In caso contrario, dovrai utilizzare solo l'indirizzo IP pubblico. Inoltre, assicurati di conoscere la porta TCP corretta su cui OpenSSH ascolta le richieste di connessione e che le impostazioni di inoltro della porta siano corrette. La porta predefinita è 22 se nessuno ha modificato la configurazione nel file sshd_config. Puoi anche aggiungere il numero di porta dopo l'indirizzo IP dell'host.
Ecco l'esempio di una richiesta di connessione utilizzando il client OpenSSH. Specificheremo anche il numero di porta:
username@machine:~$ ssh Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo. –p7654 Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.’s password:
The authenticity of host '185.52.53.222 (185.52.53.222)' can't be established. ECDSA key fingerprint is SHA256:9lyrpzo5Yo1EQAS2QeHy9xKceHFH8F8W6kp7EX2O3Ps. Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ' 185.52.53.222' (ECDSA) to the list of known hosts.
username@host:~$
Ora puoi gestire e controllare una macchina remota utilizzando il tuo terminale. In caso di problemi di connessione a un server remoto, assicurati che:
- L'indirizzo IP della macchina remota è corretto.
- La porta su cui è in ascolto il daemon SSH non è bloccata da un firewall o inoltrata in modo errato.
- Il tuo nome utente e la tua password sono corretti.
- Il software SSH è installato correttamente.
Nota: se SSH risponde con un messaggio "Connessione rifiutata", fare riferimento al nostro articolo Come correggere l'errore "Connessione rifiutata" di SSH per possibili motivi e soluzioni.
Ulteriori passaggi SSH
Ora che sei in grado di stabilire una connessione al tuo server utilizzando SSH, ti consigliamo vivamente di eseguire alcuni passaggi aggiuntivi per migliorare la sicurezza SSH . Quando lasci la configurazione con i valori predefiniti, è più probabile che venga violato e il tuo server può facilmente diventare un bersaglio di attacchi con script.
Alcuni dei suggerimenti per rafforzare SSH modificando il file di configurazione sshd includono:
-
- Modificare la porta TCP predefinita su cui è in ascolto il daemon SSH. Cambiarlo da 22 a qualcosa di molto più alto, ad esempio 24596. Assicurati di non utilizzare un numero di porta facile da indovinare, come 222, 2222 o 22222.
- Utilizza coppie di chiavi SSH per l'autenticazione per l' accesso SSH senza password . Sono entrambi più sicuri e consentono anche l'accesso senza la necessità di utilizzare la password (che è più veloce e più conveniente).
- Disabilita gli accessi basati su password sul tuo server. Se la tua password viene violata, eliminerai la possibilità di utilizzarla per accedere ai tuoi server. Prima di disabilitare l'opzione per accedere utilizzando le password, è importante assicurarsi che l'autenticazione tramite coppie di chiavi funzioni correttamente.
- Disabilita l'accesso root al tuo server e usa un account normale con il comando su per passare a un utente root .
È inoltre possibile utilizzare wrapper TCP per limitare l'accesso a determinati indirizzi IP o nomi host. Configura quale host può connettersi utilizzando wrapper TCP modificando i file /etc/hosts.allow
e etc/hosts.deny
.
Tieni presente che gli host consentiti sostituiscono gli host negati. Ad esempio, per consentire l'accesso SSH a un singolo host, prima negherai tutti gli host aggiungendo queste due righe in etc/hosts.deny
:
sshd : ALL
ALL : ALL
Quindi, etc/hosts.allow
aggiungere una riga con gli host consentiti per il servizio SSH. Che può essere un singolo indirizzo IP, un intervallo IP o un hostname: sshd : 10.10.0.5, LOCAL
.
Assicurati di mantenere le tue informazioni di accesso al sicuro in ogni momento e di applicare la sicurezza a più livelli. Usa metodi diversi per limitare l'accesso SSH ai tuoi server o utilizza servizi che bloccheranno chiunque tenti di usare la forza bruta per ottenere l'accesso ai tuoi server. Fail2ban è un esempio di tale servizio.
VNC su SSH
$ ssh -L 5901:localhost:5901 -N -f -l username hostname_or_IP
Ecco la ripartizione del comando sopra:
- ssh : avvia il programma client SSH sulla macchina locale e abilita la connessione sicura al server SSH su un computer remoto.
- -L 5901: localhost: 5901 : afferma che la porta locale per il client sulla macchina locale deve essere inoltrata all'host e alla porta specificati della macchina remota. In questo caso, la porta locale 5901 sul client locale viene inoltrata alla stessa porta del server remoto specificato.
- -N : indica di inoltrare solo le porte e non di eseguire un comando remoto.
- -f : invia SSH in background dopo che la password è stata fornita, appena prima che il comando venga eseguito. Quindi, puoi usare liberamente il terminale per digitare i comandi sulla macchina locale.
- -l nome utente : il nome utente che inserisci qui verrà utilizzato per accedere al server remoto specificato.
- hostname_or_IP : questo è il sistema remoto con un server VNC. Un esempio di un indirizzo IP sarebbe 172.16.0.5 e l'esempio di un nome host sarebbe mioserver.miodominio.com.
Puoi anche connetterti a un server remoto tramite tunnel SSH da una macchina Windows utilizzando PuTTY. Nella finestra di configurazione PuTTY:
- Vai a Connessione -> SSH -> Tunnel
- Nel campo Porta di origine digitare 5901
- Nel campo Destinazione digitare localhost: 5901
- Avvia la sessione SSH come faresti normalmente.
- Connettiti al tuo server con un client VNC di tua scelta.
Cos'è RDP?
Remote Desktop Protocol (RDP) è un protocollo sviluppato da Microsoft. Viene utilizzato per controllare e gestire in remoto macchine con sistema operativo Windows.
A differenza di Secure Shell, le connessioni stabilite utilizzando un client RDP forniscono all'utente un'interfaccia grafica attraverso la quale può accedere a un computer remoto e controllarlo allo stesso modo del proprio computer locale.
L'utilizzo dei servizi Desktop remoto, precedentemente noti come servizi terminal, consente ai tecnici di rete e di sistema di manipolare facilmente i computer remoti connessi a una rete locale oa Internet.
Questo ha un prezzo. Se non usi una rete privata virtuale (VPN), la connessione tramite RDP è molto meno sicura di SSH perché sei direttamente esposto a Internet. Esistono molti script automatici alla costante ricerca di punti deboli nella connessione, in particolare per le porte aperte utilizzate dalle connessioni Desktop remoto di Windows. In tal caso, si consiglia vivamente di disporre di password forti e sicure e di modificarle regolarmente. Ciò non rende le connessioni RDP sicure, ma meno vulnerabili.
Come funziona Remote Desktop Protocol?
Indipendentemente dalla versione del sistema operativo Windows in uso, sarai in grado di stabilire una connessione remota sicura a un altro computer poiché il client Desktop remoto è disponibile per impostazione predefinita. D'altra parte, un computer può essere accessibile in remoto solo se viene eseguito su un'edizione Pro, Enterprise o Server di un sistema operativo Windows. Quindi, possiamo concludere che le connessioni RDP sono possibili solo tra computer con un sistema operativo Windows su di essi.
Come abilitare una connessione RDP
Per stabilire una connessione Desktop remoto a un altro computer in rete è necessario abilitare il servizio server Desktop remoto di Windows. Il client Desktop remoto è integrato nei sistemi Windows, è pronto all'uso e non necessita di alcuna configurazione speciale prima di potersi connettere a un altro computer basato su Windows. Tuttavia, l'accettazione di connessioni Desktop remoto da altre macchine è disabilitata per impostazione predefinita su tutte le versioni del sistema operativo Windows.
Se vuoi connetterti da remoto a un server su Internet e non tramite la rete locale, devi prendere in considerazione alcune cose prima di abilitare questo servizio:
- Port forwarding . Se non stai utilizzando una VPN, assicurati che le porte vengano inoltrate correttamente all'indirizzo IP dell'host remoto. Controllare le impostazioni del router per vedere se il traffico sulla porta TCP predefinita per Remote Desktop Protocol (porta 3389) va all'IP del server con cui si desidera stabilire una connessione Desktop remoto. Tieni presente che il tuo server Windows è in questo caso direttamente esposto a Internet e vulnerabile.
- Utilizzando una VPN . Questa è un'opzione molto più sicura per la connessione Desktop remoto. Quando crei una rete privata virtuale su un computer client, sarai in grado di accedere a tutti i servizi disponibili solo quando utilizzi la connessione locale.
- Impostazioni del firewall . Assicurati che il firewall che stai utilizzando per la macchina remota non blocchi la connessione Desktop remoto. È necessario aprire la porta locale per RDP, indipendentemente dal fatto che si tratti del numero di porta predefinito o personalizzato.
Abilitazione dell'accesso remoto nelle versioni di Windows 7, 8, 10 e Windows Server
Passaggio 1: consentire connessioni remote
Vai alle informazioni del computer sulla macchina in cui desideri consentire le connessioni remote:
- Fare clic con il pulsante destro del mouse su Computer o Questo PC a seconda della versione del sistema operativo Windows.
- Fare clic su Proprietà .
- Fare clic su Impostazioni remote sul lato sinistro della finestra.
- Fare clic su Consenti connessioni remote a questo computer . Questo dovrebbe aggiungere automaticamente l'eccezione Remote Desktop Firewall. Inoltre, puoi selezionare la casella che dice "Consenti connessioni solo da computer che eseguono Desktop remoto con autenticazione a livello di rete (consigliato)" per una maggiore sicurezza delle sessioni RDP.
- Fare clic su Applica se si desidera rimanere nella scheda o su OK per chiuderla.
Passaggio 2: aggiungere utenti all'elenco degli utenti remoti
- Nella schermata delle impostazioni remote mostrata sopra, fai clic su Seleziona utenti ...
- Fare clic su Aggiungi nella casella Utenti desktop remoto.
- L'Utenti Select Verrà visualizzata la finestra. È possibile selezionare la posizione che si desidera cercare facendo clic su Posizioni .
- Nel campo Immettere i nomi degli oggetti da selezionare , digitare il nome di un utente e fare clic su Controlla nomi .
- Quando trovi una corrispondenza, seleziona l'account utente e fai clic su OK .
- Chiudere la finestra Proprietà del sistema facendo nuovamente clic su OK .
Non ci sono molte altre opzioni da modificare per configurare Desktop remoto. A condizione che altre impostazioni non interferiscano con la connessione desktop remoto, ora puoi connetterti e controllare in remoto questo computer.
Come utilizzare il client di rimozione della connessione desktop
Passaggio 1: avviare l'unità di connessione Destkop
- Per Windows 7, fare clic su Start -> Tutti i programmi, accedere alla cartella "Accessori" e fare clic su Connessione desktop remoto. Per Windows 10, fai clic su Start e individua la cartella "Accessori di Windows" in cui puoi trovare anche l'app Connessione desktop remoto.
- Fare clic su Start e digitare Connessione desktop remoto nella barra di ricerca. Riceverai i risultati della ricerca non appena inizi a digitare. Fare clic sull'applicazione quando viene visualizzata nell'elenco.
-
- Premi i tasti Windows + R sulla tastiera per ottenere la casella "Esegui". Digita mstsc e premi Invio nel campo "Apri:" per eseguire il client Desktop remoto.
Passaggio 2: immettere l'indirizzo IP o il nome dell'host remoto
Nel campo Computer , digita il nome o l'indirizzo IP corrispondente e fai clic su Connetti .
Nota: se la porta di ascolto predefinita per la connessione Desktop remoto (porta 3389) è stata modificata sull'host remoto con un valore diverso, sarà necessario specificarlo dopo l'indirizzo IP.
Esempio : 174.163.152.141:6200
A seconda delle circostanze, sarà necessario inserire l' indirizzo IP privato o pubblico dell'host remoto. Ecco i possibili scenari:
- Se il computer client e l'host remoto si connettono alla stessa rete locale , utilizzerai l' indirizzo IP privato dell'host per Connessione desktop remoto.
- Se stai utilizzando una rete privata virtuale ( VPN ) sul computer client per accedere all'host remoto, utilizzerai l' indirizzo IP privato dell'host per Connessione desktop remoto.
- Se il computer client si connette all'host remoto da un'altra rete su Internet senza una VPN , utilizzerai l' indirizzo IP pubblico .
Come trovare l'indirizzo IP e il nome host
Per determinare l'indirizzo IP privato di un computer:
- Cerca CMD dal menu Start o premi Windows + R sulla tastiera, digita CMD e premi Invio per eseguire il prompt dei comandi.
- Digita ipconfig nel prompt dei comandi e premi Invio.
- Vedrai l'indirizzo IP privato del tuo computer sotto la riga dell'indirizzo IPv4 .
Per determinare quale indirizzo IP pubblico sta utilizzando un computer:
- Dal tuo browser web, vai su com o usa la sua barra di ricerca.
- Digita "qual è il mio IP" o semplicemente "il mio IP" e premi Invio.
- Nella parte superiore della pagina, Google ti mostrerà l'indirizzo IP pubblico utilizzato dal tuo computer. Se questo non funziona per la tua regione, puoi visitare la prima pagina web nei risultati di ricerca e ti mostrerà l'indirizzo IP. Alcuni siti Web come whatismyip ti mostreranno anche il tuo indirizzo IP privato (locale).
Passaggio 3: immissione delle credenziali RDP e completamento della connessione
- Immettere la password per il nome utente selezionato. È possibile utilizzare un altro account, se necessario, e fornire un nome utente e una password diversi.
- Fai clic su OK quando sei pronto e riceverai l'avviso del certificato di sicurezza.
- Fare clic su Sì per continuare.
Nota: solo un utente può essere connesso alla volta su un computer Windows. Se qualcun altro sta utilizzando la macchina a cui stai tentando di accedere in remoto, quell'utente deve disconnettersi. In questi casi verrà visualizzato il messaggio di avviso di accesso.