Gestire un vps

Una macchina virtuale VPS non è difficile da gestire autonomamente, ma bisogna fare attenzione altrimenti dei malintenzionati potrebbero prenderne il controllo e utilizzare il virtual private server per attività illecite. Dopo aver scelto quale sono le caratteristiche necessarie alle nostre esigenze ed aver acquistato il vps, si può cominciare a configurare il sistema operativo.
In questo caso abbiamo scelto Debian Squeeze, a 32 bit, perché è adatto ad essere in funzione su un vps dotata con poca RAM. Questa guida si rivolge a coloro che vogliono imparare a configurare un vps economico basato su Linux.

Collegarsi via SSH

Ricevuta l’e-mail con le credenziali di accesso si può cominciare. Le credenziali sono formate da un indirizzo IP, un login name e una password.

Se si adopera un computer con Linux o Mac OS X si troveranno già degli strumenti utili per gestire una macchina virtuale remota, mentre se si utilizza Windows XP, Vista, 2008 o windows 7 si può adoperare Putty, un tool gratuito.
Putty è un client che supporta protocolli di sicurezza che sono utilizzati per eseguire una sessione remota su un computer in rete o su Internet. Con questo tool, inserire il proprio indirizzo IP nel campo Host Name (or IP Address), premere il pulsante Open.

Al primo avvio viene chiesto se accettare o meno il certificato fornito dal vps, accettarlo. Poi compare la scritta login: immettere il login name indicato nell’e-mail, premere INVIO e inserire anche la password. Apparirà la console di comando del virtual privare server.

Aggiornare il sistema operativo

La prima cosa da fare è un aggiornamento del sistema operativo che permette di installare tutte le patch di sicurezza necessarie per proteggere il vps.

# apt-get update && apt-get upgrade

Apparirà qualcosa come:

Reading package lists… Done
Building dependency tree… Done
The following packages will be upgraded:
  apache2 apache2-doc apache2-mpm-prefork apache2-utils apache2.2-bin
  apache2.2-common aptitude base-files bind9 bind9-host bind9utils bzip2
  ca-certificates cifs-utils dpkg dselect file libbind9-60 libbz2-1.0 libc-bin
  libc6 libcups2 libdns69 libfreetype6 libgnutls26 libgssapi-krb5-2 libisc62
  libisccc60 libisccfg62 libk5crypto3 libkrb5-3 libkrb5support0 liblwres60
  libmagic1 libpam-modules libpam-runtime libpam0g libpcap0.8 libperl5.10
  libssl0.9.8 libtasn1-3 libwbclient0 libxml2 locales module-init-tools
  openssh-client openssh-server openssl perl perl-base perl-modules samba
  samba-common smbfs tzdata update-inetd
56 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 49.2 MB of archives.
After this operation, 1028 kB disk space will be freed.
Do you want to continue [Y/n]?

E’ necessario premere il tasto Y e poi INVIO per installare gli aggiornamenti, quest’operazione dovrebbe durare non più di una decina di secondi se la vostra banda di traffico è ampia.

Può capitare che appaia una schermata come quella successiva, se non compare non è un problema.

Se si usa il client Putty, premere il pulsante TAB (quello con le due frecce sotto il tasto del backslash) così da selezionare OK e premere INVIO qualora non si abbiano esigenze particolari circa la configurazione di Samba.

Installazione dei servizi (deamon) necessari

Una vps senza programmi utili, non serve a molto. Per questo è necessario installare, se non fossero già presenti, le applicazioni e i servizi di cui abbiamo bisogno. Se si desidera ospitare un sito web tipicamente servono un web server (Apache, Nginx,…), un database come MySQL e PHP.

Su un VPS economico, Apache potrebbe essere troppo esoso in termini di risorse utilizzate. In questo caso abbiamo scelto di installare Nginx, assieme a MySQL e PHP.

Installare Nginx, MySQL e PHP su Debian Squeeze

Partiamo con l’installare MySQL.

# apt-get install mysql-server

Quando appare il messaggio “The following extra package will be installed”, confermiamo premendo il tasto Y poi INVIO. Poco dopo appare una schermata che richiede l’immissione della password di root di mysql: scegliamo una password complessa (ma non dimentichiamocela). Questa password va confermata.

MySQL consuma molta memoria. Si può scegliere di recuperare un po’ di spazio RAM disattivando l’engine InnoDB, non necessario per molti siti web. Per ulteriori informazioni potete consultare l’articolo Ottimizzazione di MySQL.

Ora si può installare il web server NginX. Siccome molte volte Apache è già installato nel sistema operativo è bene rimuoverlo.

# apt-get remove apache2-utils

Per Nginx:

# apt-get install nginx

Avviare il nuovo web server col comando:

# /etc/init.d/nginx start

Se non compaiono messaggi tipo: “ bind() to 0.0.0.0:80 failed (98: Address already in use)” è tutto OK.

Cambiare il proprietario della cartella /var/www, nella quale saranno posti i file dei vari siti web che si vogliono ospitare. Il proprietario sarà www-data appartenente al gruppo omonimo.

# chown www-data:www-data /var/www

Utilizzando un browser come FireFox, Chrome o Internet Explorer sul proprio computer, puntare all’indirizzo IP del proprio vps.

Dovrà essere mostrato un messaggio contenente il codice d’errore 403 Forbidden, seguito dalla versione di Nginx installata sul vps. Questo significa che il web server è attivo e funzionante.

Esistono due possibilità per abiltare PHP su Nginx. Una richiede di installare un componente di Lighttpd e l’altra di aggiungere un repository non ufficiale fra i sorgenti dei pacchetti di Debian Squeeze per utilizzare FastCGI Process Manager. L’ultima via è più semplice.

Per modificare i file di configurazione della vps è opportuno utilizzare un editor di testo in modalità testuale. Un ottimo e semplice editor è nano che può essere installato semplicemente:

# apt-get install nano

Il programma si può avviare lanciando il comando nano mentre per salvare un file premere CTRL + O, INVIO e CTRL + X.

Per poter utilizzare PHP 5 si può usare FastCGI Process Manager.  In questo caso occorre aggiungere la riga:

deb http://php53.dotdeb.org stable all

al file /etc/apt/sources.list, salvarlo e poi aggiornare le fonti dei pacchetti col comando:

#apt-get update

A questo punto si possono installare i componeneti di PHP5:

#apt-get install php5-cli php5-common php5-suhosin && apt-get install php5-fpm php5-cgi

Riavviare il web server col comando:

# /etc/init.d/nginx restart

E poi avviare anche il modulo FPM di PHP.

#/etc/init.d/php5-fpm restart

[…]

Visto che la sicurezza della nostra vps è cruciale, è importante assicurarsi che eventuali compromissioni del codice sorgente del sito web comportino il minor numero di danni possibile. Per fare questo è una buona pratica attribuire i file del sito web ad un utente che può eseguire un limitato numero di azioni sul sistema operativo: ad esempio se l’utente non può caricare file in una data cartella, alcuni attacchi possono essere vanificati.

Ora creiamo un gruppo nuovo:

groupadd gruppo

Creare un nuovo utente, impostando come home la cartella del sito web:

useradd -s /bin/false -d /var/www/mysite -m -g utente gruppo

Creiamo la cartella mysite che conterrà il sito web.

mkdir -p /var/www/mysite

Tutti i file che stanno in mysite saranno di proprietà di utente.

chown -R utente:gruppo /var/www/mysite

 

L’articolo è in continuo aggiornamento. Ultima modifica avvenuta il 23 aprile 2012.

 

7 pensieri riguardo “Gestire un vps

  1. Francuzzo ha detto:

    OOOOOOk, articolo molto molto interessante, ti chiederei però di pensare anche ad apache perchè è il più utilizzato e perchè ha a disposizione quel benedetto mod_security, che a quello che ho capito funziona solo con questo server.

    Inoltre, potresti gentilmente focalizzarti su tutta la questione sicurezza per la messa online di un sito web su vps/dedicato?

    Esiste o è possibile utilizzare, una configurazione iptables che vada bene per chiunque voglia semplicemente mettere su un normale sito web?

    Grazie 🙂

  2. valent ha detto:

    Grazie per il complimento e scusa per il ritardo per il quale ti ho risposto. Per quanto riguarda la sicurezza, puoi trovare interessanti questo articolo che si suddivide in tre parti: http://www.valent-blog.eu/2009/11/09/hardening-linux/
    Su Apache ho scritto diversi articoli come http://www.valent-blog.eu/2009/05/12/modsecurity-2-per-debian-lenny/ , http://www.valent-blog.eu/2008/06/21/un-server-web-su-xen/ e http://www.valent-blog.eu/2009/01/22/installazione-di-wordpress-su-apache/
    Se hai bisogno di qualcosa di più specifico, fammi sapere. Se riesco pubblico qualche guida.

  3. Daniela ha detto:

    Salve!
    Ho un server vps windows che uso solo come mail server. Vorrei “installare” il mio sito su questo server. Ho cercato in giro qualche guida,ma non ho trovato niente. Qualcuno potrebbe aiutarmi?

    Graxie 1000!

    D.

  4. valent ha detto:

    Ciao,
    puoi installare Microsoft IIS se intendi pubblicare un sito che usa la tecnologia ASPx (Active Server Pages) oppure Apache (versione XAMPP per windows).
    Facci sapere che tipo di sito intendi usare.

  5. sal ha detto:

    Indicazioni molto interessanti, grazie mille 🙂

  6. valent ha detto:

    Grazie per i complimenti

  7. Ryuu ha detto:

    Salve, io ho un vps linux CentOS 64bit e ci vorrei istallare sopra un server web che mi permetta di tenere sempre aperta una pagina web.
    Come posso fare, comunque bella guida! ( ps forse lo hai gia spiegato sopra ma non ho bene capito)

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *