Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "InternetRete/DesktopRemoto/OpenSsh/SecPanel"
Differenze tra le versioni 1 e 19 (in 18 versioni)
Versione 1 del 08/10/2008 16.44.09
Dimensione: 12668
Autore: PaoloGarbin
Commento:
Versione 19 del 10/10/2021 10.45.08
Dimensione: 2712
Autore: ivantu
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 1: Linea 1:
## page was renamed from SSHHowto ## page was renamed from InternetRete/ConfigurazioneRete/OpenSsh/SecPanel
Linea 4: Linea 4:
##TODO:
##--usare risorse -> connessione al server... per avere disponibile un filesystem remoto in nautilus
##--criptare una connessione tramite tunneling
##--revisionare il paragrafo relativo all'X11 Forwarding
[[BR]]
[[Indice(depth=1)]]
<<BR>>
<<Indice(depth=1)>>
Linea 13: Linea 9:
'''OpenSSH''' è un insieme di programmi che permettono, in tutta sicurezza, di svolgere diverse operazioni: '''!SecPanel''' è un’interfaccia grafica utilizzata per gestire ed avviare connessioni SSH e SCP.
Linea 15: Linea 11:
 * controllare un computer remoto tramite terminale;

 * copiare file da un computer remoto al computer locale e viceversa;

 * cifrare qualunque traffico di dati tra computer locale e computer remoto tramite il ''tunneling''.

'''OpenSSH''' sostituisce i vecchi programmi '''telnet''', '''rlogin''' e '''ftp''', considerati poco sicuri poichè trasmettono in chiaro i dati relativi all'autenticazione (nome utente, password etc).

[[Anchor(installazione)]]
<<Anchor(installazione)>>
Linea 26: Linea 14:
È necessario disporre di un server '''ssh''' su ogni computer al quale ci si vuole connettere (chiamato in seguito «computer remoto»), e di un client '''ssh''' su ogni computer dal quale si vuole avviare la connessione (chiamato in seguito «computer locale»). Se ad esempio si dispone di due computer e si vuole che ognuno dei due possa connettersi all'altro, su entrambi dovranno essere installati sia il server che il client. È necessario disporre di un server '''OpenSSH''' su ogni computer remoto al quale ci si vuole connettere e di un client '''OpenSSH''' su ogni computer locale dal quale si desidera avviare la connessione. Se ad esempio si dispone di due computer e si vuole che ognuno dei due possa connettersi all'altro, su entrambi dovranno essere installati sia il server che il client.
Linea 28: Linea 16:
Per avere il server '''ssh''' su Ubuntu, è sufficiente [:AmministrazioneSistema/InstallareProgrammi:installare] il pacchetto ''openssh-server''. Per avere il server '''ssh''' su Ubuntu, è sufficiente [[AmministrazioneSistema/InstallareProgrammi|installare]] il pacchetto ''openssh-server''.
Linea 30: Linea 18:
Il client '''ssh''' (contenuto nel pacchetto ''openssh-client'') è installato in Ubuntu in modo predefinito. Il client '''ssh''', contenuto nel pacchetto ''openssh-client'', è installato in Ubuntu in modo predefinito.
Linea 32: Linea 20:
[[Anchor(accessoremoto)]]
= Usare nautilus con computer remoti =
Per installare '''!SecPanel''', è necessario [[AmministrazioneSistema/InstallareProgrammi|installare]] il pacchetto ''secpanel'', presente nel [[Repository/Componenti|componente]] '''universe''' dei [[Repository|repository]] ufficiali.
Linea 35: Linea 22:
'''Nautilus''' consente di visualizzare, modificare, eliminare o copiare file presenti su un computer remoto (con server '''ssh''' installato) in tutta sicurezza, grazie a '''OpenSSH'''. Il metodo più semplice per ottenere ciò è aprire '''nautilus''' e inserire l'indirizzo desiderato (verrà chiesta la password dell'utente remoto), come da esempio: <<Anchor(accessoremoto)>>
= Avvio e utilizzo =

'''!SecPanel''' consente di visualizzare, modificare, eliminare o copiare file presenti sia sul computer locale che su quello remoto (con server '''ssh''' installato) in tutta sicurezza, grazie a '''OpenSSH'''.

Avviare l'applicazione e inserire l'indirizzo desiderato; digitare il seguente comando in una finestra di terminale:
Linea 37: Linea 29:
ssh://nomeutenteRemoto@indirizzoIP secpanel
Linea 40: Linea 32:
Il metodo successivo permette di avere un'icona persistente in '''nautilus''', evitando dunque di inserire ogni volta gli stessi «nomeutenteRemoto» e «indirizzoIP». Scegliere '''''Risorse -> Connetti al server...''''', quindi inserire i seguenti dati:

||<style="background-color:#FEB76D;":>'''Campo'''||<style="background-color:#FEB76D;":>'''Valore'''||
|| Tipo di servizio: || SSH ||
|| Server: || «indirizzoIP» ||
|| Nome utente: || «nomeutenteRemoto» ||
|| Nome da usare per la connessione: || a scelta dell'utente ||

= Utilizzo da terminale =

== Copia di file ==

Per copiare un file dal proprio computer locale a un computer remoto (e viceversa) attraverso il terminale, '''OpenSSH''' mette a disposizione il comando '''scp'''.

Nel primo caso, la sintassi del comando dovrebbe essere simile alla seguente:
{{{
scp percorsoFileLocale nomeUtenteRemoto@indirizzoIP:PercorsoDestinazioneRemota
{{{#!wiki note
Con'' '''scp''' ''non si possono copiare file tra due computer remoti. La sorgente o la destinazione devono essere file locali.
Linea 59: Linea 36:
Quello che segue è un esempio:
{{{
scp fileDaCopiare.txt mario@192.168.1.1:/home/mario/fileCopiato.txt
}}}
Se il computer remoto utilizza Ubuntu come sistema operativo, può non essere possibile connettersi come utente '''root''', perché in Ubuntu l'utente '''root''' non è abilitato. Se si desidera svolgere compiti amministrativi, '''!SecPanel''' non prevede questa possibilità. Su un computer remoto con Ubuntu, connettersi normalmente via '''ssh''' prima come utente normale, una volta all'interno della macchina remota usare successivamente '''sudo''' per dare comandi con privilegi amministrativi. In alternativa, è possibile [[AmministrazioneSistema/Sudo#abilitare_login_root|abilitare l'utente root]] sul computer remoto.
Linea 64: Linea 38:
Il precedente comando copierà il file `fileDaCopiare.txt` dalla cartella corrente del computer locale alla posizione `/home/mario/fileCopiato.txt` (non è necessario cambiare il nome del file) del computer remoto identificato dall'indirizzo ip `192.168.1.1` , usando l'utente `mario` sul computer remoto. = Migliorare la sicurezza =
Linea 66: Linea 40:
Per copiare un file da un computer remoto al computer locale, basta seguire lo schema inverso, digitando un comando simile al seguente:
{{{
scp nomeUtenteRemoto@indirizzoIP:PercorsoFileRemoto PercorsoDestinazioneLocale
}}}

Quello che segue è un esempio:
{{{
scp mario@192.168.1.1:/home/mario/fileDaCopiare.txt .
}}}

Tale comando copierà il file remoto identificato dal percorso `/home/mario/fileDaCopiare.txt` nella cartella corrente (identificata dal punto `.`), senza rinominarlo.

||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5% ^>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''Con'' '''scp''' ''non si possono copiare file tra due computer remoti. La sorgente o la destinazione devono essere file locali.'' ||

== Accedere al terminale di un computer remoto ==

Per accedere alla linea di comando di un computer remoto, '''OpenSSH''' fornisce il comando '''ssh'''. È sufficiente digitare il comando:
{{{
ssh nomeutente@indirizzoIP
}}}

Quello che segue è un esempio:
{{{
ssh mario@192.168.23.42
}}}

Se il computer remoto utilizza Ubuntu come sistema operativo, risulterà impossibile connettersi a esso come utente '''root''', perché in Ubuntu l'utente '''root''' non è abilitato. Se si desidera svolgere compiti amministrativi su un computer remoto con Ubuntu, connettersi prima come utente normale, quindi usare '''sudo''' per dare comandi con privilegi amministrativi. In alternativa, [:AmministrazioneSistema/Sudo#abilitare_login_root:abilitare l'utente root] sul computer remoto.

= X11 Forwarding =

== Prerequisiti ==

Può essere utile aprire e utilizzare alcune applicazioni grafiche sul computer remoto. Al posto di alternative come VNC e XDMCP, le quali non supportano la cifratura, è possibile utilizzare l'X11 Forwarding. Gli unici requisiti del computer locale sono una connessione abbastanza veloce con il computer remoto (una ADSL standard dovrebbe andare bene) e l'installazione di base del server X11, mentre non ci sono requisiti particolari per il computer remoto.
Potrebbe inoltre essere necessaria l'installazione del pacchetto '''xauth''' sul computer locale.

== Sintassi ==

Prima di tutto è necessario autorizzare il server X11 del computer locale ad accettare connessioni in entrata dal computer remoto, quindi aprire una finestra di terminale e digitare:

{{{
xhost +
}}}


||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5% ^>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''Se l'esecuzione di questo comando dovesse fallire sarà necessario installare il pacchetto xauth.'' ||

Successivamente per collegarsi al computer remoto digitare:

{{{
ssh -X utenteremoto@computerremoto
}}}

== Note per Windows ==

La maggior parte dei software SSH per Windows non supporta nativamente il Forwarding X11. In questo caso si può utilizzare Cyg``Win, che contiene il port di numerosi software linux, tra quali SSH (sia client che server) e server X11.

= Aumentare la sicurezza =

== Autenticazione a chiave pubblica ==

Per impostazione predefinita, '''OpenSSH''' consente di effettuare l'accesso tramite autenticazione con nome utente e password dell'utente remoto. Tuttavia se qualcuno è venuto in possesso di nome e password dell'utente del computer remoto, vi si potrà connettere dall'esterno, compromettendo la sicurezza del computer remoto. Da tempo '''OpenSSH''' è in grado di prevenire il problema, grazie all'autenticazione con chiave pubblica.

'''OpenSSH''' può usare chiavi di accesso private e pubbliche al posto della password utente remoto. La prima cosa da fare è creare la propria coppia di chiavi, privata e pubblica, sul computer locale. Aprire una finestra di terminale e digitare:
{{{
ssh-keygen -t dsa
}}}


Verrà chiesto dove salvare la chiave privata (si consiglia di accettare la posizione predefinita `~/.ssh/id_dsa`) e di scegliere una '''passphrase''' adeguata. La passphrase è una nuova password, usata per cifrare la chiave privata. Ogni qualvolta servirà la nostra chiave privata, bisognerà prima fornire la passphrase.

||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5% ^>[[Immagine(Icone/Grandi/info.png,,center)]] ||<style="padding:0.5em; border:none;">Si può anche scegliere di non creare la passphrase e quindi di non cifrare la chiave privata, ma sarebbe una pessima scelta, in quanto chiunque venisse in possesso della nostra chiave privata in chiaro avrebbe facilmente accesso a tutti i servizi. ||

Insieme alla chiave privata viene creata anche la chiave pubblica (localizzata in `~/.ssh/id_dsa.pub` sul computer locale), liberamente distribuibile.

L'account utente sul computer remoto usato per l'accesso deve avere memorizzata la chiave pubblica nel relativo file di autorizzazione, cioè il file `~/.ssh/authorized_keys` del computer remoto; per lo scopo, '''OpenSSH''' mette a disposizione il comando `ssh-copy-id`, da usare sul computer locale come nel seguente esempio:
{{{
ssh-copy-id -i percorsoLocaleChiavePubblica nomeUtenteRemoto@indirizzoIP
}}}

Quello che segue è un esempio:
{{{
ssh-copy-id -i ~/.ssh/id_dsa.pub mario@192.168.23.42
}}}

||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5% ^>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''Se l'autenticazione con password utente remoto è disabilitata, si deve copiare e incollare la chiave con un altro mezzo.'' ||

Una volta aggiunta la chiave pubblica sul computer remoto sarà possibile effetuare l'accesso. Aprire una finestra di terminale e digitare il seguente comando:
{{{
ssh nomeutente@indirizzoIP
}}}

Verrà chiesta la passphrase conservata in locale e non la password dell'utente remoto (salvata in `/etc/password` del computer remoto).

Se si sceglie di usare solo l'autenticazione tramite chiave pubblica, per aumentare ulteriormente la sicurezza si può disabilitare l'autenticazione tramite password utente. Aprire il file `/etc/ssh/sshd_config` con un [:Ufficio/EditorDiTesto:Editor di testo] con i [:AmministrazioneSistema/Sudo:privilegi di amministrazione] e aggiungere la seguente riga:
{{{
Password``Authentication no
}}}

Terminate le modifiche sarà necessario riavviare il server '''ssh'''.

== Memorizzazione della passphrase ==

Se si usa l'autenticazione a chiave pubblica, '''OpenSSH''' fornisce un metodo grazie al quale la passphrase verrà chiesta solo una volta durante tutta la sessione. Questa caratteristica è utile ad esempio a chi usa spesso il comando '''scp''', o agli amministratori di computer remoti, in quanto evita di dover reinserire la password ogni volta che si lancia un comando.

Il comando per aggiungere la propria passphrase al gestore delle identità è '''ssh-add'''. Digitare il seguente comando:
{{{
ssh-add
}}}

Verrà chiesta la passphrase, dopodiché la chiave privata sarà sempre disponibile.

||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5% ^>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''Se ci si allontana dal proprio computer, altre persone potrebbero usarlo e sfruttare la chiave privata senza conoscere la passphrase. Se si teme una simile eventualità, si consiglia di bloccare lo schermo con la combinazione di tasti'' '''Ctrl+Alt+L''' ''prima di allontanarsi.'' ||

== Permessi sui comandi ==

Sul computer remoto si può scegliere di far eseguire solo alcuni comandi a chi vi si connette tramite autenticazione a chiave pubblica. Se per esempio si gestisce un repository [:Programmazione/Cvs:CVS], si può aggiungere nel file `authorized_keys` la seguente riga:
{{{
command="/usr/bin/cvs server" ssh-dss AAAAB3N....
}}}

In questo modo è permessa l'esecuzione esclusivamente dei comandi per il CVS.

== Programmi con gestore grafico ==

I seguenti programmi, scaricabili tramite il gestore dei pacchetti, utilizzano un pannello grafico per gestire più facilmente tutti i vari comandi SSH più comunemente usati.

 * Putty; gestore grafico del login, che restituisce una finestra Terminale dell'utente remoto da cui operare solo tramite riga di comando.
 * Secpanel; gestore completamente grafico sia del login, della gestione dei file e delle cartelle locali e remote; gestisce singolarmente sia le chiavi che l'agente SSH.


= Il protocollo SSH su altri sistemi operativi =

== Supporto per Windows ==

Microsoft Windows dispone di [http://www.openssh.com/windows.html diverse alternative] più o meno valide per usare il protocollo SSH e fare anche da server. Il più diffuso client grafico SSH, realizzato anche per Windows, è [http://www.chiark.greenend.org.uk/~sgtatham/putty/ Putty].

== Supporto per cellulari Symbian ==

Il client SSH '''Putty''' è disponibile anche in una versione per cellulari Symbian a [http://s2putty.sourceforge.net/ questo indirizzo].
Consultare la [[InternetRete/ConfigurazioneRete/OpenSsh#sicurezza|relativa guida]].
Linea 208: Linea 44:
 * [http://www.openssh.org/ Sito ufficiale del progetto]
 * [wiki:Ubuntu/SSHHowto Pagina sul wiki internazionale]
 * [[http://www.secpanel.net|Sito ufficiale del progetto]]
 * [[Ubuntu:SSHHowto|Pagina sul wiki internazionale]]
Linea 212: Linea 48:
CategoryInternet CategorySicurezza CategoryServer CategoryInternet CategorySicurezza CategoryServer CategoryDaRevisionare


Introduzione

SecPanel è un’interfaccia grafica utilizzata per gestire ed avviare connessioni SSH e SCP.

Installazione

È necessario disporre di un server OpenSSH su ogni computer remoto al quale ci si vuole connettere e di un client OpenSSH su ogni computer locale dal quale si desidera avviare la connessione. Se ad esempio si dispone di due computer e si vuole che ognuno dei due possa connettersi all'altro, su entrambi dovranno essere installati sia il server che il client.

Per avere il server ssh su Ubuntu, è sufficiente installare il pacchetto openssh-server.

Il client ssh, contenuto nel pacchetto openssh-client, è installato in Ubuntu in modo predefinito.

Per installare SecPanel, è necessario installare il pacchetto secpanel, presente nel componente universe dei repository ufficiali.

Avvio e utilizzo

SecPanel consente di visualizzare, modificare, eliminare o copiare file presenti sia sul computer locale che su quello remoto (con server ssh installato) in tutta sicurezza, grazie a OpenSSH.

Avviare l'applicazione e inserire l'indirizzo desiderato; digitare il seguente comando in una finestra di terminale:

secpanel

Con scp non si possono copiare file tra due computer remoti. La sorgente o la destinazione devono essere file locali.

Se il computer remoto utilizza Ubuntu come sistema operativo, può non essere possibile connettersi come utente root, perché in Ubuntu l'utente root non è abilitato. Se si desidera svolgere compiti amministrativi, SecPanel non prevede questa possibilità. Su un computer remoto con Ubuntu, connettersi normalmente via ssh prima come utente normale, una volta all'interno della macchina remota usare successivamente sudo per dare comandi con privilegi amministrativi. In alternativa, è possibile abilitare l'utente root sul computer remoto.

Migliorare la sicurezza

Consultare la relativa guida.

Ulteriori risorse


CategoryInternet CategorySicurezza CategoryServer CategoryDaRevisionare