SSH: differenze tra le versioni

4 170 byte aggiunti ,  27 nov 2015
m
nessun oggetto della modifica
m (Connessione SSH moved to SSH: Titolo più corretto per il glossario)
mNessun oggetto della modifica
 
(25 versioni intermedie di 7 utenti non mostrate)
Riga 1: Riga 1:
== Introduzione ==
== Descrizione ==
Il [[repository]] � a tutti gli effetti un archivio ordinato dove sono raccolti i pacchetti Debian (siano essi pacchetti binari o sorgenti) in modo ben organizzato e costantemente aggiornato. In ogni sistema debian i repository utilizzati vengono indicati nel file <tt>/etc/apt/sources.list</tt>. Vedi anche [[Faq#Repository|FAQ: Cos'� un '''repository'''?]].


== Lista repository ufficiali debian ==
'''SSH''' ('''S'''ecure '''SH'''ell, shell sicura) è un ''protocollo'' che permette di stabilire una connessione sicura tra due computer. SSH garantisce la segretezza e l'integrità dei dati scambiati tra due computer cifrando l'intera comunicazione, compresa la fase di autenticazione.
Di seguito troverete l'elenco repository ufficiali da inserire nel <tt>sources.list</tt> per le varie [[La struttura della Distribuzione|versioni di debian]]. Il mirror � quello italiano. I repository dei pacchetti sorgente sono commentati. per ulteriori informazioni leggere la sezione: [[I repository ed il loro utilizzo#Sources.list|Sources.list]].


=== Debian Sarge ===
Le connessioni SSH vengono instaurate tipicamente sulla ''porta 22'' e, di norma, il server risponde aprendo una [[shell]] di comando, tuttavia tramite il meccanismo del [http://en.wikipedia.org/wiki/Tunneling_protocol tunneling] è possibile instradare attraverso tale canale criptato anche il traffico di altre porte e persino le connessioni generate da applicazioni grafiche che risiedono sul computer remoto (ad es. una sessione vnc).<br/>
Questa importante caratteristica consente quindi di sottoporre a comunicazione criptata protocolli che in origine non prevedono questa possibilità, inoltre utilizzando una sola porta per la trasmissione di pacchetti che invece ne userebbero molte altre, è possibile collegarsi ad un [[host]] Linux posto dietro ad un firewall senza bisogno di modificarne le impostazioni.


  ## Debian Stable (sarge)
== Implementazioni ==
  deb http://ftp.it.debian.org/debian/ testing main contrib non-free
  #deb-src http://ftp.it.debian.org/debian/ testing main contrib non-free
  ## Aggiornamenti della sicurezza
  deb http://security.debian.org/ sarge/updates main contrib
  #deb-src http://security.debian.org/ sarge/updates main contrib


Per l'uso di sarge in ambito desktop (ma non solo) sono molto utili i [[backports]]:
Gli strumenti più diffusi per utilizzare il protocollo SSH sono la [http://www.openssh.com/ suite OpenSSH] che è disponibile per OpenBSD, Linux, vari UNIX, Mac OS X, e MS Windows tramite Cygwin.<br/>
Nella suite sono inclusi diversi client, tra cui il più famoso è <code>ssh</code> che permette di aprire appunto una shell remota connettendosi al server. Altri client sono <code>scp</code> che emula il comportamento di <code>cp</code> e <code>sftp</code> che ha un'interfaccia molto simile a <code>ftp</code> (simula un server FTP).


* [http://backports.org/ Debian Backports]
Il client <code>ssh</code> ha un'interfaccia a linea di comando simile a quella di [[telnet]] e <code>rlogin</code>, ma, a differenza di questi ultimi, l'intera comunicazione (sia l'autenticazione che la sessione di lavoro) avviene in maniera cifrata. Per questo motivo, SSH è diventato uno standard di fatto per l'amministrazione remota di sistemi *nix e di molti dispositivi di rete, rendendo obsoleto il protocollo telnet, giudicato troppo pericoloso per la sua mancanza di protezione contro le intercettazioni.


=== Debian Etch ===
Altro client interessante, venuto recentemente alla ribalta è '''<code>[[SSHFS: montare una risorsa remota sfruttando FUSE ed SSH|SSHFS]]</code>''' che permette di montare directory remote ed usarle in tutto e per tutto come directory locali (grazie a [http://fuse.sourceforge.net/ FUSE]): tutti i programmi possono accedere alla cartella remota in maniera trasparente, ignorando del tutto che essa si trovi su un altro computer!


  ## Debian Testing (etch)
Su sistemi Debian è possibile installare separatamente un server SSH (sulla macchina a cui si vuole accedere) o un client SSH (sulla macchina da cui si vuole accedere a un server SSH).
  deb http://ftp.it.debian.org/debian/ testing main contrib non-free
  #deb-src http://ftp.it.debian.org/debian/ testing main contrib non-free
  ## Aggiornamenti della sicurezza
  deb http://security.debian.org/ etch/updates main contrib
  #deb-src http://security.debian.org/ etch/updates main contrib


=== Debian Sid ===
== Autenticazione e crittografia della connessione ==


  ## Debian Unstable (sid)
SSH implementa diversi metodi di autenticazione, dal comune metodo della coppia di credenziali utenza/password al più sicuro e sofisticato metodo della coppia di chiavi pubblica/privata. Tralasciando il metodo utenza/password assai noto, risulta più interessante spendere due parole sul secondo.
  deb http://ftp.it.debian.org/debian/ unstable main contrib non-free
  #deb-src http://ftp.it.debian.org/debian/ unstable main contrib non-free


Per '''Sid''' non c'il repository per la sicurezza dato che eventuali falle vengono corrette semplicemente con l'aggiornamento del pacchetto incriminato.
La [http://it.wikipedia.org/wiki/Crittografia_asimmetrica criptografia asimmetrica] detta anche '''crittografia a coppia di chiavi''' o, più semplicemente, '''a chiave pubblica/privata''' (o, semplicemente, '''a chiave pubblica''') consiste nella generazione di una coppia di chiavi (chiamate [http://it.wikipedia.org/wiki/Chiave_privata chiave privata] e [http://it.wikipedia.org/wiki/Chiave_pubblica chiave pubblica]): la '''chiave pubblica''' cripta la comunicazione, mentre la '''chiave privata''' è usata per decriptarla. Ogni coppia di chiavi viene generata usando degli algoritmi asimmetrici, per esempio [http://it.wikipedia.org/wiki/RSA RSA] e [https://en.wikipedia.org/wiki/EdDSA EdDSA (ed25519)]: le connessioni che usano tali coppie di chiavi sono dette '''connessioni SSH'''. Tali algoritmi, però, servono soltanto per instaurare una connessione criptata fra il client SSH e il server SSH in quanto, per il trasferimento vero e proprio dei dati, si usano degli algoritmi simmetrici, come AES o 3DES, che sono molto più efficienti per questo scopo ovvero per cifrare la comunicazione.


== Lista repository non ufficiali ==
Riassumendo una '''connessione SSH''' è una connessione cifrata che utilizza gli algoritmi asimmetrici RSA o DSA soltanto per verificare se una chiave pubblica, memorizzata sul server, derivi da una chiave privata salvata sul client (in modo da garantire la reciproca autenticità del server e del client) in modo da essere utilizzata, per l'intera sessione, per la [[Introduzione alla crittografia|cifratura simmetrica]] con algoritmi come AES o 3DES.
Per una lista dei repository non ufficiali pi� diffusi vedere: [[Repository non ufficiali]].


== La Struttura dei repository ==
Un repository suddivisibile, grossomodo, in due sezioni:
* '''dists''' in questo ramo sono contenuti i file di controllo, che permettono il funzionamento del sistema di pacchettizzazione. Infatti sono presenti i file che descrivono i pacchetti presenti nell'archivio (divisi per la release di appartenenza);
* '''doc''' raccoglie la documentazione di base per Debian (segnalazioni di Bug, Faq, il Contratto Sociale ed altro)
* '''indices''' contiene l'indice di tutti i file contenuti in tutti i pacchetti. Queste informazioni sono usate da [[Apt-file: ricerca all'interno dei pacchetti|<tt>apt-file</tt>]].
* '''non-US''' a causa di problemi legali dovuti al divieto di esportazione di matariale per la difesa (tra cui materiale crittografici, utilizzati anche in PGP e SSH). Per ovviare a questi problemi, i pacchetti sono stati posti in una sezione a parte, la cui distribuzione legata a server non Statunitensi.
* '''pool''' questo l'archivio vero e proprio, dove sono contenuti i pacchetti, raggruppati per lettera iniziale;
* '''project''' contiene materiale per sviluppatori. Degne di nota la direcotory experimetal, che contiene i pacchetti in fase di sviluppo e perfezionamento;<br/>
* '''tools''' contiene degli strumenti Dos per la creazione di dischetti di boot, partizionamento e lancio di Linux.


== La Suddivisione del repository ==
== Voci correlate sul wiki ==
Navigando un po' tra gli archivi Debian, si nota subito una particolare suddivisione: i repository, infatti, sono divisi in '''main''', '''contrib''' e '''non-free''', nel modo seguente:
* '''main''' � la sezione principale, che contiene il 90% dei pacchetti presenti in Debian
* '''contrib''' raccoglie i pacchetti coerenti con la DFSG5.6, ma che dipendono da pacchetti che non la rispettano
* '''non-free''' contiene dei pacchetti che possiedono delle limitazioni nella distribuzione (ad esempio perch� non utilizzabili in ambito commerciale o perch� dipendenti da applicazioni o pacchetti che non rispettano la Debian Free Software Guideline)


== Sources.list ==
* [[OpenSSH]]
=== Il ruolo fondamentale ===
** [[OpenSSH: file di configurazione | File di configurazione]]
Il file '''/etc/apt/sources.list''' � forse il pi� importante file di configurazione del sistema di gestione dei pacchetti Debian. Esso, infatti, contiene l'elenco e gli indirizzi dei repository a cui apt accede.
** [[OpenSSH: Windows | Connettere windows e linux]]
** [[SSHFS: montare una risorsa remota sfruttando FUSE ed SSH]]
* [[Fail2ban | Ostacolare attacchi ''brute-force'' al server SSH con fail2ban]]


=== Ordine di Inserimento ===
== Approfondimenti ==
� importante inserire i repository con un giusto ordine: i primi in elenco, infatti, sono i pi� importanti (o favoriti). Per migliorare le performance, � consigliabile ordinarli per velocit� (Es. prima il cdrom, poi la rete locale, poi internet, ...).


=== Sintassi ===
* [http://it.wikipedia.org/wiki/Ssh Ssh] su Wikipedia (it)
Ogni riga che descrive un repository ha una ben determinata sintassi:
* [http://en.wikipedia.org/wiki/Secure_Shell Secure Shell] su Wikipedia (en)
<pre>
* [http://en.wikipedia.org/wiki/Public-key_cryptography Public-key cryptography] su Wikipedia (en): spiega, molto meglio del corrispondente articolo italiano, in cosa consiste la crittografia a chiave pubblica.
deb uri distribution [component..]
* [https://www.digitalocean.com/community/tutorials/understanding-the-ssh-encryption-and-connection-process SSH encryption and connection process], pagina che spiega le basi di chiavi pubblica/privata e di come funziona il processo autenticativo di SSH.
</pre>


Analizziamo i singoli componenti:
[[Categoria:Glossario]]
* '''deb o deb-src''' serve ad indicare se il repository indicato contiene pacchetti binari o pacchetti sorgenti (se li contiene entrambi, � necessario specificarlo usando due righe diverse).
* '''uri''' indica l'indirizzo a cui � possibile trovare il repository; � possibile scegliere tra i seguenti metodi di accesso ai pacchetti:
** '''file''' permette di inserire un repository presente sull'Hard Disk del computer;
** '''cdrom''' permette di inserire un repository presente su un cd-rom;
** '''http''' permette di accedere ad un repository tramite il protocollo http (se � impostata una variabile di ambiente '''http_proxy''' col formato '''http://server:port/''' verranno usate queste opzioni per accedere al repository; in caso di necessit� di autenticazione, � possibile specificare l'inidirizzo del proxy, nella variabile d'ambiente '''http_proxy''', nel seguente modo: '''http://user:pass@server:port/''', anche se risulta non essere un modo sicuro di autenticazione);
** '''ftp''' permette di accedere ad un repository tramite il protocollo ftp; � possibile specificare un proxy nell stesso modo indicato per http al punto precedente, sostituendo alla variabile '''http_proxy''' '''ftp_proxy''';
** '''copy''' � idendico a file, ma i file utilizzati vengono salvati nella cache di apt; utile nel caso di supporti removibili quali Usb-drive, Floppy, Zip, ...;
** '''rsh, ssh''' permette di accedere ad un repository tramite il protocollo ssh. Non � possibile, per�, effettuare alcuna autenticazione interativa, ma solo tramite lo scambio di chiavi RSA.
* '''distribution''' indica la [[La struttura della Distribuzione|distribuzione (o release)]] utilizzata... � possibile usare il nome in codice (sarge, etch, sid) o il nome generico (stable, testing, unstable);
*'''component''' indica la sezione (non-free, main, contrib...) del repository da inserire; sono possibili scelte multiple.
 
=== Alcuni esempi ===
Non c'� niente di meglio, per capire la sintassi del file sources.list, si un po' di esempi.
 
I repository ufficiali (binari e sorgenti) presi da un mirror italiano:
<pre>
deb http://ftp.it.debian.org/debian/ stable main non-free contrib
deb-src http://ftp.it.debian.org/debian/ stable main non-free contrib
</pre>
 
Il repository di apt-build (Rif. 7.1 Pag. [*]):
<pre>
deb file:/var/cache/apt-build/repository apt-build main
</pre>
 
Un repository 'artigianale' accessibile tramite un webserver:
<pre>
deb http://repos.debianizzati.org ./
</pre>
 
Un repository situato nella home dell'utente maxer, creato con <code>dpkg-scanpackages</code>:
<pre>
deb file:/home/maxer/repos ./
</pre>
 
Per altri repository vedere: [[#Lista repository ufficiali debian|Lista repository ufficiali debian]] e [[Repository non ufficiali]].
 
----
[[User:MaXeR|MaXeR]]
[[Categoria:Apt]]
[[Categoria:Repository]]
6 999

contributi