Benvenuto Visitatore ( Log In | Registrati )
![]() ![]() |
23 Aug 2007, 13:18
Messaggio
#1
|
|
|
Ciao,
girando per il forum si notano molte domande su SSH allora vediamo di raccogliere in questo capitolo tutte le informazioni relative ad ssh. - Che cos'è SSH? - Come configurare una connessione - Come creare chiave di autenticazione - Come collegarsi a sistemi remoti - Lanciare comandi su sistemi remoti - Copiare file da sistemi remoti a sistemi locali e viceversa - Esempio pratico A voi la discussione SoHo -------------------- Stefano Dindo
|
|
|
|
|
|
|
|
25 Aug 2007, 11:05
Messaggio
#2
|
|
|
Provo a dare il mio piccolo contributo, spero che sia utile a qualcuno.
CITAZIONE - Che cos'è SSH? Secure Shell, un protocollo che utilizza una connessione cifrata per collegare due host. La differenza con gli altri tipi di protocolli quali ad esempio FTP, è che mentre questi trasmettono informazioni in chiaro, SSH utilizza un sistema di criptazione per impedire ad eventuali analizzatori di rete di individuare il contenuto dei pacchetti scambiati tra i due host. CITAZIONE - Come configurare una connessione Lato client: basta lanciare il client ssh da terminale secondo la seguente sintassi: ssh nomeutente@ipserver -p porta Dove: "nomeutente" si riferisce all'account name sul server remoto, "ipserver" è autoesplicativo, "porta" è di default sulla 22 (in questo casa si può anche omettere l'opzione -p), altrimenti va specificata. Lato Server: Per quanto riguarda OS.X credo che basti spuntare la relativa opzione in system preferences/sharing, personalmente ho usato sshd solo su linux e queste sono alcune delle operazioni che svolgo normalmente, sia per incrementare la sicurazza che per amministrare il server: Editare il file di configurazione /etc/ssh/sshd_config adattando i seguenti parametri alle proprie esigenze: Port---> porta sulla quale mettere in ascolto sshd, personalmente non lascio mai il valore di default, per evitare tonnellate di tentativi di cracking sui log. Protocol---> impostare a "2" ListenAddress---> ip del server SyslogFacility---> "AUTHPRIV", logga tutti i tipi di accesso, corretti e falliti. PermitRootLogin---> "no" Evito di far loggare root da remoto. X11Forwarding---> "no" opzione tipica del mondo Linux, ma è sempre meglio disattivare il controllo remoto di X via ssh. AllowUsers---> qui vanno messi, in sequenza e divisi da spazi, gli username degli utenti che potranno accedere al demone sshd, tutti gli altri saranno tagliati fuori. CITAZIONE - Come creare chiave di autenticazione Merita più tempo di quanto ne abbia adesso CITAZIONE - Come collegarsi a sistemi remoti Vedi utilizzo lato client. CITAZIONE - Lanciare comandi su sistemi remoti Una volta effettuato il login sul sitema remoto, basta lanciare i consueti comandi unix per effettuare le operazioni che ci interessano. CITAZIONE - Copiare file da sistemi remoti a sistemi locali e viceversa Invocare da terminale il comando "sftp nomeutente@ipserver -p porta" ed utilizzare, una volta connessi, i seguenti comandi per eseguire le operazioni: ls = listare files o directory cd = spostarsi all'interno della struttura delle directory get = scaricare un file sul nostro computer put = caricare un file sul server remoto exit = terminare la connessione Oppure usare un client sftp ad interfaccia grafica, il mio preferito è Transmit. CITAZIONE - Esempio pratico CODICE [eddie@obiwan ~]$ ssh eddie@192.168.1.63 -p 6547
eddie@192.168.1.63's password: Last login: Sat Aug 25 16:34:24 2007 from 192.168.1.7 [eddie@anakin ~]$ uname -a Linux anakin 2.6.9-55.0.2.ELsmp #1 SMP Sat Aug 25 16:30:12 2007 i686 i686 i386 GNU/Linux -------------------- |
|
|
|
|
25 Aug 2007, 11:55
Messaggio
#3
|
|
|
CITAZIONE - Che cos'è SSH? Secure Shell, un protocollo che utilizza una connessione cifrata per collegare due host.La differenza con gli altri tipi di protocolli quali ad esempio FTP, è che mentre questi trasmettono informazioni in chiaro, SSH utilizza un sistema di criptazione per impedire ad eventuali analizzatori di rete di individuare il contenuto dei pacchetti scambiati tra i due host. In pratica con quando si lancia SSH è come se si fosse seduti di fronte al computer al quale ci si collega e si aprisse una finestra del terminale. CITAZIONE - Come configurare una connessione […]Lato Server: Per quanto riguarda OS.X credo che basti spuntare la relativa opzione in system preferences/sharing, CITAZIONE - Copiare file da sistemi remoti a sistemi locali e viceversa Invocare da terminale il comando "sftp nomeutente@ipserver -p porta" ed utilizzare, una volta connessi, i seguenti comandi per eseguire le operazioni:ls = listare files o directory cd = spostarsi all'interno della struttura delle directory get = scaricare un file sul nostro computer put = caricare un file sul server remoto exit = terminare la connessione Oppure usare un client sftp ad interfaccia grafica, il mio preferito è Transmit. CODICE scp user1@host1:file1 user2@host2:file2 dove user1 (2) è il nome utente per accedere al computer host1 (2) in cui si trova il file file1 (2). Se non si specifica user viene sottointeso il proprio utente attuale, se non si specifica host viene sottointeso la propria macchina locale.Esempio: si vuole copiare il file pippo.txt contenuto nella propria home sulla scrivania dell'utente con il proprio stesso nome sul computer topolino.local rinominandolo pluto.txt. CODICE scp ~/pippo.txt topolino.local:~/Desktop/pluto.txt Ciao Paolo -------------------- |
|
|
|
|
25 Aug 2007, 13:14
Messaggio
#4
|
|
|
Direi che per il momento è il post che sta esprimendo la migliore filosofia del mio progetto! Complimenti!! appena mi libero di impegni di lavoro vediamo di aggiungere un po di cose ...
Continuate così! Ciaoz SoHo -------------------- Stefano Dindo
|
|
|
|
|
27 Aug 2007, 18:37
Messaggio
#5
|
|
|
Un altro utilizzo di ssh è quello di "tunneling" di servizi che risiedono su macchine remote.
Un esempio classico è dato da servizi tipo VNC. Solitamente la sintassi per fare un tunneling di un servizio è la seguente: CODE ssh -L [porta del servizio in locale]:[localhost]:[porta del servizio in remoto] -f -N username@ip o nomehost remoto prendiamo l'esempio di VNC: se in remoto il servizio VNC è di default sulla porta 5900 e si vuole fare un tunneling del servizio in locale sulla porta 9510, sia inoltre l'ip della macchina remota ad es.: 87.5.23.9 sulla quale è stato attivato il servizio di login remoto. Diamo uno username di un utente (ikee non suona male ) per effettuare il tunneling da una macchina controllante, opererò, nella fattispecie, c.s.: CODE ssh -L 5910:localhost:5900 -f -N ikee@87.5.23.9 una volta fatta l'autenticazione, per accedere da remoto tramite vnc, basterà lanciare il viewer e dirgli di collegarsi a localhost:5910 risultato: abbiamo fatto il tunnel del servizio VNC remoto sulla ns. macchina Saluti Andrea P.S. Corretti alcuni errori su segnalazione di Andrea. SoHo -------------------- |
|
|
|
|
28 Aug 2007, 08:29
Messaggio
#6
|
|
|
Un altro utilizzo di ssh è quello di "tunneling" di servizi che risiedono su macchine remote. Un esempio classico è dato da servizi tipo VNC. Solitamente la sintassi per fare un tunneling di un servizio è la seguente: CODE ssh -L [porta del servizio in locale]:[localhost]:[porta del servizio in remoto] -f -N username@ip o nomehost remoto prendiamo l'esempio di VNC: se in remoto il servizio VNC è di default sulla porta 5900 e si vuole fare un tunneling del servizio in locale sulla porta 9510, sia inoltre l'ip della macchina remota ad es.: 87.5.23.9 sulla quale è stato attivato il servizio di login remoto. Diamo uno username di un utente (ikee non suona male ) per effettuare il tunneling da una macchina controllante, opererò, nella fattispecie, c.s.: CODE ssh -L 5910:localhost:5900 -f -N ikee@87.5.23.9 una volta fatta l'autenticazione, per accedere da remoto tramite vnc, basterà lanciare il viewer e dirgli di collegarsi a localhost:5910 risultato: abbiamo fatto il tunnel del servizio VNC remoto sulla ns. macchina Saluti Andrea Prova a spiegare cos'è un servizio tipo VNC e per cosa sta VNC. ciaoz SoHo -------------------- Stefano Dindo
|
|
|
|
|
28 Aug 2007, 12:06
Messaggio
#7
|
|
|
Prova a spiegare cos'è un servizio tipo VNC e per cosa sta VNC. VNC è l'acronimo di Virtual Network Computing. In pillole: è un servizio che serve per poter controllare remotamente lo schermo di un'altra macchina. Il servizio si avvale di due programmi: un programma server (detto appunto VNC server) ed un programma client (detto VNC client o visore VNC o brr...cliente VNC). Non mi dilungo sul funzionamento ed i dettagli di VNC in quanto non è la sezione adatta (aspetto suggerimenti da SoHo su dove postare maggiori dettagli). L'esempio riportato sopra era relativo a VNC ma in realtà può essere riportato per qualsiasi altro servizio. Prendiamo ad es. il servizio di controllo web di aMule (si attiva sulla porta 4711) ssh -L 4711:87.5.23.9:4711 -f -N ikee@87.5.23.9 per poter visualizzare il proprio pannello di controllo di aMule, basterà lanciare il browser e scrivere sulla barra indirizzi http://127.0.0.1:4711 oppure http://localhost:4711 poi si potrebbe andare avanti per ogni genere e specie di servizi che si vogliiono attivare facendo un "tunnel" con ssh Appena ho un po' di tempo spero di riuscire a parlare del "reverse tunneling" con ssh. Purtroppo non oggi Saluti -------------------- |
|
|
|
|
29 Aug 2007, 16:57
Messaggio
#8
|
|
|
Aggiungo anche io qualcosa:
l'SSH, e se nello specifico trattiamo la versione OpenSource OPENSSH, è un protocollo che permette l'attivazione di un canale cifrato tra due host; l'host client, attiva una connessione con un altro host, che svolge in questo caso, la funzione di server; tutti i dati che vengono scambiati sono cifrati, compresa la user e la password per l'accesso all'host server. Il protocollo ssh può essere utilizzato per amministrare remotamente un host, e questo in alternativa ad applicazioni come rlogin, rsh (remote shell) e telnet, le quali attivano una connessione "in chiaro", e quindi, molto meno sicura. Ma attraverso questo protocollo (openssh), è possibile anche inviare file ad un host remoto, sostituendo di fatto l'uso di un server ftp, ed utilizzando, pertanto un canale cifrato a discapito di un canale (ftp) comunque in chiaro. Il primo vantaggio di questo protocollo è la praticità, è legato al fatto che sull'host remoto è sufficiente installare ed attivare solo il server ssh; mentre, se avessi voluto utilizzare protocolli in chiaro, avrei dovuto attivare un servizio rsh (o rlogin, oppure telnet) per l'amministrazione remota, ed un servizio ftp per il traferimento file. Openssh mettte a disposizione dell'utente alcune applicazioni: - SSH: client di accesso per amministrazione remota. (Secure shell). - SFTP: client di traferimento file (Secure FTP). - SCP: client di copia remota di file (Secure Copy). OpenSSH offre alcuni meccanismi di sicurezza legati alle credenziali d'accesso, infatti, è possibile accedere ad un server remoto tramite user/password, oppure tramite certificato digitale; in quest'ultimo caso, il client genera una propri chiave, che occorre "copiare" sul server, in questo modo il server ssh validerà la postazione che accede, e a cui corrisponde la chiave; così facendo, sul server è possibile disabilitare l'accesso tramite user/password, aumentando di fatto la sicurezza, e restringendo l'accesso ai soli client che hanno copiato la propria chiave sul server. -------------------- L'importante è crederci
Alubook 15" G4@1,25 GHZ - 1,5 GB RAM - 100GB HD Alubook 12" G4@1,33 GHz - 1,2 GB RAM - 60 GB HD iMac G3@500 MHz DV SE - 256 MB RAM - 30GB HD PowerMac G4@466 MHz - 1 GB RAM - 30GB HD PowerMac G5@1,6 GHz - 2,5GB RAM - 80GB HD iPod 2G 40GB iPod Shuffle 2G 1GB |
|
|
|
|
29 Aug 2007, 16:59
Messaggio
#9
|
|
|
Non mi dilungo sul funzionamento ed i dettagli di VNC in quanto non è la sezione adatta (aspetto suggerimenti da SoHo su dove postare maggiori dettagli). Stavo pensando di aprire un capitolo "Reti e connessioni" quindi in quel caso potresti aggiungere li la tua recensione che ne dici? ciaoz SoHo -------------------- Stefano Dindo
|
|
|
|
|
29 Aug 2007, 17:32
Messaggio
#10
|
|
|
- Come creare chiave di autenticazione Prima di illustrare la creazione di una chiave di autenticazione faccio una breve premessa sulla crittografia a chiave pubblica (nota spesso come RSA) La crittografia a chiave pubblica è un sistema per codificare messaggi ma che garantisce un'elevata sicurezza per gli sforzi computazionali che richiede per ottenere la decodifica di un messaggio. Vediamo come funziona la crittografia a chiave pubblica con un semplice esempio. Immaginiamo che A debba spedire un messaggio segreto a B. Occorrono i seguenti passaggi: 1)B sceglie due numeri primi molto grandi (per esempio da 300 cifre) e li moltiplica con il suo computer (impiegando meno di un secondo). 2)B invia il numero che ha ottenuto ad A. Chiunque può vedere questo numero. 3)A usa questo numero per crittografare il messaggio 4)A manda il messaggio a B, che chiunque può vedere ma non leggere 5)B riceve il messaggio e utilizzando i due fattori primi, che solo lui conosceva decifra il messaggio. A e B hanno impiegato pochi secondi a cifrare e decifrare, ma chiunque avesse intercettato le loro comunicazioni impiegherebbe milioni di anni per scoprire i due fattori primi, con cui si può decifrare il messaggio. Tutto questo significa che è sicuro inviare la chiave pubblica (per esempio il contenuto del file id_rsa.pub) per posta elettronica o anche inserire la chiave nel file authorized_keys. Per avere accesso alla macchina chiunque avrò bisogno della chiave priva corrispondente (id_rsa) per identificarsi. Creazione della chiave pubblica: Il primo passo è usare ssh-keygen per creare una chiave di autenticazione per se stessi. In molti casi i parametri predefiniti andranno bene. Bisogna sempre fornire una frase di accesso quando si crea una chiave. Può essere composta di molte parole anche separate da spazio, in modo da ricordarsela facilmente. Per essere più sicuri meglio scrivere delle parole in modo errato o cambiare alcune lettere con dei numeri (qualche esempio: 1 = i, 2 = Z, 3 = E, 4 = A, 5 = S, 6 = b, 7 = L, 8 = B, 9 = g, 0 = O) o mettere a caso maiuscole e minuscole. Ecco un esempio di creazione di una chiave di autenticazione: utente% ssh-keygen -t rsa [Invio] Generating public/private rsa key pair. Enter file in which to save the key (/home/utente/.ssh/id_rsa): [Invio] Enter passphrase (empty for no passphrase): Son tutt3 83773 le m4MM3 d37 m0nd0 [Invio] Enter same passphrase again: Son tutt3 83773 le m4MM3 d37 m0nd0 [Invio] Your identification has been saved in /home/utente/.ssh/id_rsa. Your public key has been saved in /home/utente/.ssh/id_rsa.pub. The key fingerprint is: b7:18:ad:3b:0b:50:5c:e1:da:2d:6f:5b:65:82:94:c5 utente@host È bene creare una chiave per ogni utente per salvaguardarne la sicurezza. Per modificare una frase d'accesso utilizzare l'opzione -p del comando ssh-keygen: utente% ssh-keygen -p Enter file in which the key is (/home/utente/.ssh/id_rsa): [Invio] Enter old passphrase: Son tutt3 83773 le m4MM3 d37 m0nd0 [Invio] Key has comment '/home/utente/.ssh/id_rsa' Enter new passphrase (empty for no passphrase): S3mpr3 c4r0 m1 fu qu3st3rmo c0113 [Invio] Enter same passphrase again: S3mpr3 c4r0 m1 fu qu3st3rmo c0113 [Invio] Your identification has been saved with the new passphrase. -------------------- Stefano Dindo
|
|
|
|
|
4 Sep 2007, 17:18
Messaggio
#11
|
|
|
Scusate la mia ignoranza, ma non mi è chiara una cosa.
Se io mi collego ad un host tramite SSH come avviene la criptazione dei dati, compresi user e password? Ovvero se io spedisco i dati criptati (ad esempio la password), come fa l'host a decriptarli? E se ci riesce lui dovrebbe riuscirci chiunque ascolti il traffico... Visto che così non è, come avviene il tutto? Grazie! -------------------- |
|
|
|
|
8 Sep 2007, 23:50
Messaggio
#12
|
|
|
Level 1/11 ![]() Gruppo: Forum User Messaggi: 45 Iscritto il: 13-June 05 Utente Nr.: 3.931 |
Ovvero se io spedisco i dati criptati (ad esempio la password), come fa l'host a decriptarli? E se ci riesce lui dovrebbe riuscirci chiunque ascolti il traffico... Visto che così non è, come avviene il tutto? Grazie! Cerco di rispondere il piu' semplicemente possibile, tieni di conto per una risposta precisa dovrei scrivere un libro (o anche due)... Nel caso piu' semplice SSH usa un protocollo chiamato Diffie-Hellman per creare una chiave condivisa (con cui sia il server che il client possono criptare e decriptare i messaggi scambiati, compresa la password utente). Per come e' fatto questo protocollo la chiave condivisa viene creata senza mandare in chiaro nessun segreto ne dal client ne dal server. In alternativa un utente puo' mettere la propria chiave pubblica su un server remoto (o chiedere a qualcuno di farlo per lui) in modo tale che quando si inizia una sessione il server sa gia' come decriptare i messaggi che gli arrivano (inclusi utente e pwd). simlup |
|
|
|
11 Sep 2007, 20:36
Messaggio
#13
|
|
|
Cerco di rispondere il piu' semplicemente possibile, tieni di conto per una risposta precisa dovrei scrivere un libro (o anche due)... Nel caso piu' semplice SSH usa un protocollo chiamato Diffie-Hellman per creare una chiave condivisa (con cui sia il server che il client possono criptare e decriptare i messaggi scambiati, compresa la password utente). Per come e' fatto questo protocollo la chiave condivisa viene creata senza mandare in chiaro nessun segreto ne dal client ne dal server. In alternativa un utente puo' mettere la propria chiave pubblica su un server remoto (o chiedere a qualcuno di farlo per lui) in modo tale che quando si inizia una sessione il server sa gia' come decriptare i messaggi che gli arrivano (inclusi utente e pwd). simlup Grazie per la risposta, simlup. Penso di aver capito (per quel che è possibile senza dover leggere un libro -------------------- |
|
|
|
|
4 Oct 2007, 09:07
Messaggio
#14
|
|
|
Solamente due righe per segnalare una gradevolissima interfaccia grafica di gestione del server ssh.
Il programma si chiama Secure Shell Helper della Gideon Softworks. E' un donationware e sostanzialmente altro non è che un'interfaccia grafica per la gestione del server. Da consigliare a chi preferisce lavorare a colpi di "click" anzichè da terminale (tanto poi il terminale si ritrova comunque Saluti -------------------- |
|
|
|
|
7 Nov 2007, 18:19
Messaggio
#15
|
|
|
Ovvero se io spedisco i dati criptati (ad esempio la password), come fa l'host a decriptarli? E se ci riesce lui dovrebbe riuscirci chiunque ascolti il traffico... Visto che così non è, come avviene il tutto? Grazie! Cerco di rispondere il piu' semplicemente possibile, tieni di conto per una risposta precisa dovrei scrivere un libro (o anche due)... Nel caso piu' semplice SSH usa un protocollo chiamato Diffie-Hellman per creare una chiave condivisa (con cui sia il server che il client possono criptare e decriptare i messaggi scambiati, compresa la password utente). Per come e' fatto questo protocollo la chiave condivisa viene creata senza mandare in chiaro nessun segreto ne dal client ne dal server. In alternativa un utente puo' mettere la propria chiave pubblica su un server remoto (o chiedere a qualcuno di farlo per lui) in modo tale che quando si inizia una sessione il server sa gia' come decriptare i messaggi che gli arrivano (inclusi utente e pwd). simlup Nella pratica tutti i sistemi crittografici fino ad oggi esistenti utilizzano la crittografia a chiave asimmetrica per la creazione o lo scambio di un segreto condiviso, e poi utilizzano questo segreto come chiave di un'algoritmo di crittografia a chiave simmetrica (oggi quasi tutti utilizzano AES con chiave a 128 bit o superiore). Gli algoritmi di crittografia asimmetrici non vengono utilizzati durante tutta la comunicazione principalmente per un problema di prestazioni, in quanto un'algoritmo a chiave simmetrica e' centinaia se non migliaia di volte piu' veloce di uno a chiave asimmetrica. SSH non fa' eccezione in questo, ed utilizza AES con chiave a 128 bit per la cifratura dei dati sul canale di comunicazione. Un piccolo appunto sui termini corretti in Italiano che dovreste utilizzare: 1) crittografia, dal greco kryptós, che significa nascosto; 2) cifratura, che significa mettere in cifra; 3) decifratura, che e' l'operazione inversa della precedente. Gli altri termini non sono corretti in Italiano. -------------------- |
|
|
|
|
7 Nov 2007, 18:28
Messaggio
#16
|
|
|
Dimenticavo... complimenti per l'iniziativa
-------------------- |
|
|
|
|
21 Nov 2007, 08:03
Messaggio
#17
|
|
|
Dimenticavo... complimenti per l'iniziativa Aggiungo al post interssante su ssh un link ad un tutorial per usare il protocollo SSH per accedere da remoto ad una macchina con vnc: Un tunnel SSH su mac saluti fede -------------------- - 1st don't waver... (© woz)
- Atletico tevac '80- apple way as a feet view © fede_dev - enigmatico - supporta zio pino & tevac |
|
|
|
|