Archive for 5 giugno 2007|Daily archive page

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: http://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 http://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.