Archivio per giugno 2007|archivio pagina mensile
Creare un virtual host con Apache2
Per la creazione di un virtualhost su un server Debian equipaggiato con Apache2 è molto semplice.
Specifiche del server:
- Indirizzo IP: 192.168.100.23
- nome del virtualhost: www.mioserver.local
- directory da pubblicare: /var/www/mioserver/httpdocs
- directory dei log: /var/www/mioserver/log
Si aggiunge questa riga al file /etc/hosts
192.168.100.23 www.mioserver.local
Si crea la struttura delle directory da pubblicare e un file di prova:
mkdir /var/www/mioserver
mkdir /var/www/mioserver/httpdocs
mkdir /var/www/mioserver/log
echo "funziona!!!" > /var/www/mioserver/httpdocs/index.html
chmod -R www-data:www-data /var/www/mioserver/httpdocs
a questo punto si crea il file di configurazione del virtual host /etc/apache2/sites-enabled/001-mioserver
NameVirtualHost *
<VirtualHost *>
ServerName www.mioserver.local
DocumentRoot /var/www/mioserver/httpdocs
CustomLog /var/www/mioserver/log/access.log combined
ErrorLog /var/www/mioserver/log/error.log
</VirtualHost>
Se tutto è stato svolto correttamente, sarà sufficiente ricaricare il server apache:
/etc/init.d/apache2 reload
Shell remota con SSH
OpenSSH è più comune implementazione del protocollo SSH (Secure SHell).
Mediante la creazione di un canale criptato, ssh, permette di accedere a sistemi remoti e amministrarli mediante shell, come se si trattasse di sistemi locali.
Per connettersi ad un sistema remoto è necessario disporre di un client ssh. Il sistema remoto, a sua volta, deve avere un servizio ssh attivo.
La connessione avviene molto semplicemente mediante il comando:
ssh server.dominio.local
dove server.dominio.local è il server a cui ci si vuole connettere.
Nel caso in cui volessimo specificare un utente diverso da quello locale è sufficiente digitare:
ssh untente@server.dominio.local
Il server richiederà l’inserimento della password dell’utente specificato e successivamente, se corretta, fornirà una shell.
I file utilizzati da OpenSSH
Client
all’interno della propria home si trova un directory che si chiama .ssh (dir nascosta, usare ls -la per visualizzarla).
Dentro questa directory si trovano alcuni file utilizzati dal servizio ssh client.
- known_hosts
contiene le fingerprint delle chiavi pubbliche dei server conosciuti. Serve a garantire autenticità dell’identità dichiarata dai server ai quali si chiede accesso. Se il server al quale si chiede accesso è sconosciuto, verrà richiesta conferma della sua identità e la sua fingerprint verrà salvata in questo file per future autenticazioni.
Server
all’interno di ogni home directory è presente, anceh in questo caso una dir .ssh utile alla gestione del servizio di ssh server.
Il file più interessante è:
- autorized_keys
contiene le fingerprint pubbliche dai client autorizzati alla connessione. A seconda della configurazione, il server le può gestire per diversi tipi di operazioni. E’ possibile impedire l’accesso a qualunque client non sia in questa lista oppure permettere a chi è presente di accedere senza la richiesta della password (debian di default)
Come evitare di inserire la password tramite l’uso delle chiavi RSA
Per accedere ad un server ssh senza che vanga richiesta la password è possibile utilizzare le chiavi RSA per garantire autenticità del client. Il client dovrà generare le proprie chiavi RSA statiche mediante il comando:
ssh-keygen
Successivamente si deve trasportare la chiave pubblica /home/utente/.ssh/id_rsa.pub sul server attraversu un canale sicuro.
L’ultima operazione consiste nell’aggiungere la chiave RSA alle chiavi accettate dal server:
cat id_rsa.pub >> /home/utente/.ssh/authorized_keys
Chiaramente quest’ultima operazione dev’essere compiuta sul server.
La crittografia
La crittografia ha lo scopo di comunicare un messaggio al destinatario garantendo l’impossibilità di fruizione a soggetti non autorizzati.
I due principali problemi che la crittografia moderna (a chiavi asimmetriche) risolve sono:
- garanzia che solo il legittimo destinatario possa leggere il messaggio (segretezza)
- garanzia che il mittente sia proprio chi dice di essere (autenticità)
La crittografia asimmetrica si realizza matematicamente e ha come risultato la generazioni di una coppia di chiavi. La prima chiave, denominata “privata”, viene custodita segretamente, mentre la seconda, detta “pubblica”, viene resa disponibile a chiunque ne faccia richiesta.
Il funzionamento, molto semplificato, del meccanismo di crittografia asimmetrica è il seguente: un messaggio codificato con una chiave, può essere decodificato solo con l’altra chiave della coppia. Pertanto se codifichiamo con chiave pubblica, solo il possessore della chiave privata corrispondente potrà decodificare. Se codifichiamo una piccola parte di messaggio con la chiave privata, si potrà verificare l’identità decodificandolo con la chiave pubblica corrispondente.
Per garantire la segretezza, il messaggio viene codificato mediante la chiave pubblica del destinatario, il quale, unico titolare della chiave privata associata, sarà l’unico in grado di decodificarlo.
L’autenticità del viene garantita firmando il messaggio con la chiave privata del mittente, consentendo al destinatario la verifica mediante l’utilizzo della relativa chiave pubblica disponibile a tutti.
L’utilizzo della crittografia, in un sistema GNU/Linux offre la possibilità di ottenere strati di sucurezza implementati tramite SSL ed è alla base di servizi come SSH e HTTPS.
Commenti (6)