Server Virtuale con Ubuntu 11.04

Transcript

Server Virtuale con Ubuntu 11.04
Server Virtuale con Ubuntu 11.04
In questa guida andremo a vedere come installare e configurare un server virtuale utilizzando Virtualbox, e
come sistema virtuale su cui installare il server Ubuntu 11.04 server.
Installiamo Virtualbox (quello proprietario) da repo in questo modo:
echo "deb http://download.virtualbox.org/virtualbox/debian maverick contrib #VirtualBox" |
sudo tee -a /etc/apt/sources.list #Repository VirtualBox
wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key
add - #Chiave Repository VirtualBox
sudo apt-get update
sudo apt-get install virtualbox-4.0
Creazione della macchina virtuale
Creiamo innanzitutto la macchina virtuale. Nella finestra principale di VirtualBox scegliamo quindi “Nuova”.
Diamo il nome alla macchina, e selezioniamo come sistema operativo Linux Ubuntu.
Scegliamo quanta memoria dedicargli. Questo è un dato
molto indicativo e può variare molto a seconda della
macchina ospitante. 512MB sono comunque una
discreta risorsa per un server sperimentale.
Scegliamo ora il supporto virtuale. Se non esiste già,
creiamone uno a espansione dinamica. 12GB possono
bastare. Se proprio ce ne fosse necessità, si può portare
a 20, 30 o 40GB.
Una volta creata la macchina andiamo nelle sue
impostazioni. Impostiamo il CD di Ubuntu Server
come primo avvio. Poi spostiamoci nella scheda
“Rete” all'interno della “Scheda 1”, scegliamo come
scheda di rete il tipo “Bridge”. In questo modo sarà
come se dalla stessa scheda di rete vengano
utilizzate due connessioni, infatti se dal router
controlliamo quali host sono connessi, troveremo
anche il nostro server virtuale.
Guida creata da kekko_94
1
Protetta da Creative Commons v 3.0 BY
Installazione del server
sulla macchina virtuale
Ora installiamo il server
all'interno della nostra
macchina virtuale.
Impostiamo la macchina
virtuale in modo che parta con
il CD di Ubuntu 11.04 server,
e avviamo la macchina.
Durante la fase di
installazione ci verrà chiesto
la lingua, la disposizione
della tastiera e il nome del
copmuter in rete. Dopo queste
fasi banali, arriviamo a come
partizionare l'hard disk.
Lasciamo che sia il suo
partizionamento automatico
LVM a lavorare.
Alla richiesta di quali servizi installare scegliamo “Server LAMP” e “OpenSSH Server”.
L'installazione continua con domande come utente, password, time zone, e (importante) la password
dell'utente root di MySQL.
Guida creata da kekko_94
2
Protetta da Creative Commons v 3.0 BY
Configurazione BASE server
Configuriamo la rete con un indirizzo locale statico. Apriamo il file /etc/network/interfaces con permessi di
amministrazione e modifichiamo l'interfaccia eth0 in questo modo (a seconda di come è configurata la rete):
auto eht0 inet static
address 192.168.1.x
netmask 255.255.255.0
gateway 192.168.1.254
Ora apriamo il file /etc/resolv.conf con permessi di amministrazione e modifichiamo il server DNS che
usiamo (a seconda di come è configurata la rete):
nameserver 192.168.1.254
Rete visibile anche dall'esterno
Se vogliamo che la nostra rete sia visibile anche dall'esterno avremo bisogno di un indirizzo IP statico.
Questo è offerto in alcuni pacchetti per la connessione, ma se non vogliamo pagare un supplemento per
questo servizio, è possibile bypassare il problema.
È neccessario registrarsi presso un dominio di DynamicDNS. Questo tipo di servizio permette di avere un
utente collegato ad un nome dominio di secondo livello del tipo utente.servizio.com.
Uno dei più famosi e importanti è DynDNS.com. Una volta registrato l'utente, andiamo nelle configurazioni
del router. Sarà presente, solitamente nei servizi, l'opzione DNS Dinamico che si interfaccia proprio con quel
sito.
Un'altra cosa da impostare è l'inoltro delle porte. Infatti il firewall di default blocca tutte le porte in entrata, a
meno che non decidiamo di aprirle. Inoltre le porte in entrata che richiedono di utilizzare i componenti della
nostra rete come server sono bloccate. Dobbiamo andare quindi in “Inoltro delle porte (port forwarding)”.
Impostiamo che tutte le connessioni in entrata verso la porta 80 e verso la porta 21 siano reindirizzate alla
macchina con l'IP che abbiamo impostato prima per il server.
Configurazione generale.
Per testare se la configurazione è andata a buon fine apriamo un browser sul sistema ospitante e digitiamo:
192.168.1.x
Se tutto è andato a buon fine dovremo visualizzare la scritta: “It works!”.
Se vogliamo fare delle prove possiamo aprire, con privilegi di amministrazione il file
/var/www/index.html e editarlo a nostro piacere, controllando poi che vengano rispettate le modifiche.
Dato che la risoluzione del nostro server è bassa, possiamo aumentarla con i parametri VESA da passare al
kèrnel attraverso il grub. Secondo questa guida infatti per avere una risuluzione di 1024x768 dobbiamo
passare il parametro vga=0x316, quindi apriamo con permessi di amministrazione il file /etc/default/grub
sudo vim /etc/default/grub
ed editiamolo in questo modo:
GRUB_CMDLINE_LINUX_DEFAUL=”quiet vga=0x316”
Ora aggiorniamo il grub.cfg con il comando:
sudo update-grub
Guida creata da kekko_94
3
Protetta da Creative Commons v 3.0 BY
Configurazione APACHE Server
Come prima cosa aggiungiamo il nostro utente al gruppo www-data, che sarà il gruppo ad avere i permessi
per eseguire le pagine web.
Per far questo basta aprire con un editor di testo con permessi di amministrazione il file
/etc/group
E dopo i due punti nella riga di www-data inserire il nostro nome utente:
www-data:x:33:utente
Per configurare il nostro server in modo che lavori su una cartella che non sia quella predefinita apriamo con
un editor di testo con permessi di amministrazione il file:
/etc/apache2/sites-enabled/000-default
Ora cerchiamo le due righe interessate, in particolare le righe:
DocumentRoot /var/www/
<Directory /var/www/>
E modifichiamole con il percorso interessato. In questo caso metteremo tutto nella home dell'utente.
DocumentRoot /home/utente/www/
<Directory /home/utente/www/>
Dato che se caricheremo i file tramite FTP, questo creerà dei file che appartengono all'utente che li carica,
ma non al gruppo www-data, dobbiamo installare un modulo che ci permetta di far girare Apache con un
utente particolare, invece che con www-data. Questo ci permetterà di bypassare il problema dei permessi,
altrimenti Apache non sarà in grado di scrivere sul file, molto scocciante se si usano CMS.
Installiamo quindi il modulo mpm-itk
sudo apt-get install apache2-mpm-itk
Ora modifichiamo la configurazione dei siti /etc/apache2/sites-enabled/000-default in modo opportuno. In
particolare tra “Document Root” e “<Directory /> ” inseriamo queste tre righe, dove utente è l'utente con cui si
effettuerà il trasferimento FTP:
<IfModule mpm_itk_module>
AssignUserId
utente utente
</IfModule>
Ora facciamo ripartire il servizio apache2.
sudo /etc/init.d/apache2 restart
Quando avviamo/riavviamo il servizio Apache notiamo che abbiamo un errore del tipo:
apache2: Could not reliably determine the server's fully qualified domain name, using
127.0.1.1 for ServerName
Questo è dato dal fatto che non abbiamo specificato nessun ServerName nella configurazione di Apache.
Per eliminare questo fastidioso problema apriamo con permessi di amministrazione il file
/etc/apache2/apache2.conf e inseriamo questa riga:
ServerName nome.del.server.com
Guida creata da kekko_94
4
Protetta da Creative Commons v 3.0 BY
Configurazione qBitTorrent Server
Per configurare un server torrent sempre attivo sul nostro server possiamo installare un comodo server
torrent accessibile da interfaccia web. Installiamo quindi qbittorrent-nox
sudo apt-get install qbittorrent-nox
Per farlo avviare ad ogni avvio del server bisogna compiere alcuni passaggi. È consigliabile compierli via
ssh, per motivi che capirete. Prima di tutto avviamolo una prima volta, e diamo 'y' quando richiesto. Dopo
chiudiamo il processo (CTRL+C) e andiamo a creare un file chiamato qbittorrent-nox-daemon:
sudo vim /etc/init.d/qbittorrent-nox-daemon
Ora andiamo a questo indirizzo e copiamo tutto il contenuto, per poi incollarlo nel file appena creato (è per
questo che è meglio ssh). Ricordiamoci di modificare il parametro USER=[utente] con un utente che abbia
privilegi di amministrazione. Ora eseguiamo questi altri comandi:
sudo chmod 775 /etc/init.d/qbittorrent-nox-daemon
sudo update-rc.d qbittorrent-nox-daemon default
Nel caso vogliate toglierlo dall'avvio possiamo eliminarlo con il comando:
sudo update-rc.d -f qbittorrent-nox-daemon remove
Possiamo accedere alla WebUi tramite l'indirizzo ipserver:8080 utente: “admin” password: “adminadmin”
Consiglio di cambiare nome utente e password e anche la porta in ascolto.
Configurazione FTP Server
In questa guida, scegliamo di installare proftpd, non per motivi particolari, ma configurare il nostro server
FTP con vsftp può essere più complicato ai nuovi utenti. Installiamolo quindi con:
sudo apt-get install proftpd-basic
Scegliamo l'esecuzione “autonomo”.
Andiamo subito a configurarlo, aprendo con permessi di amministrazione il file:
/etc/proftpd/proftpd.conf
Individuiamo le righe che ci interessano, e in particolare la riga:
DefaultRoot ~
Modificandola con (a seconda della configurazione che ci interessa):
DefaultRoot /home/utente/www/
www-data
Ora facciamo ripartire il servizio proftpd:
sudo /etc/init.d/proftpd restart
Installazione di Webmin
Questo passaggio è opzionale, ma consigliato se si vuole avere una comoda interfaccia grafica su cui
lavorare, al posto di una brutta shell.
Installiamo quindi webmin con questi comandi:
wget http://www.webmin.com/download/deb/webmin-current.deb
sudo dpkg -i webmin-current.deb
sudo apt-get install -f
Ora la nostra interfaccia web sarà disponibile da browser digitando l'indirizzo:
https://localhost:10000
Non dimentichiamoci la 's' nel protocollo, infatti Webmin utilizza il protocollo ssl per la connessione. Se
utilizziamo un browser aggiornato (cosa d'obbligo, direi) esso (giustamente) ci avvertirà dicendo che la
connessione non può essere autenticata. Freghiamocene :-)
Per colpa di un piccolo bug non ancora risolto, avremo problemi ad autenticarci. Niente panico: è facilmente
risolvibile. Creiamo una password per l'utente root
sudo passwd root
Dopodichè accediamo a webmin con utente “root” e quella password. Andiamo quindi sul menu a sinistra
nella voce “Webmin>Utenti Webmin” creandone uno. Rimuoviamo la password di root e accediamo con
l'utente appena creato.
sudo passwd -l root
Guida creata da kekko_94
5
Protetta da Creative Commons v 3.0 BY
Installazione di PhpMyAdmin
Anche questo passaggio è opzionale, ma facilita di gran lunga alcune operazioni che possono essere
necessarie per gestire complessi siti web. Phpmyadmin è presente nei repository, si può quindi installare
molto facilmente digitando:
sudo apt-get install phpmyadmin
Ora l'interfaccia di phpmyadmin è disponibile all'indirizzo
ipserver/phpmyadmin
Installazione di Joomla
Ora che abbiamo un server web funzionante con possibilità di uploadare file tramite FTP, possiamo fare una
prova del funzionamento con il CMS Joomla. Questa guida è valida sia per la versione 1.5 sia per la 1.6.
Non è stata testata con la 1.0 ma teoricamente non dovrebbero esserci problemi.
Per prima cosa Joomla necessita di un database. Entriamo quindi in phpmyadmin.
Nella pagina principale creiamo un nuovo database e chiamiamolo joomla15. Ora per una questione di
sicurezza creiamo un utente che abbia i permessi di scrivere/leggere solamente in quel database. Andiamo
quindi in “Privilegi” e clicchiamo su “Aggiungi nuovo utente”. Impostiamo nome utente e password
(ovviamente diversi dall'utente root, altrimenti non avrebbe senso). Non creiamo nessun database per
l'utente e non concediamoli nessun privilegio. Salviamo.
Ora torniamo nella pagina dei privilegi e sulla riga dell'utente appena creato clicchiamo sull'immagine
“Modifica”sotto la colonna “Azione”. Sotto il campo “Privilegi specifici al database” selezioniamo il database
che avevamo creato in precedenza, diamogli tutti i permessi e salviamo.
Ora procediamo con l'installazione vera e propria: scarichiamo il file compresso di joomla e
decomprimiamolo in una cartella del nostro Hard Disk. Apriamo un client FTP (consiglio FileZilla) e
carichiamo sul server tutti i file di joomla. Consiglio di caricarli in una cartella a parte, in modo che se
volessimo far convivere più siti nel server, questi essendo in cartelle separate non andrebbero in conflitto.
Ponendo che abbiamo caricato i file nella cartella /home/utente/www/joomla15 nella barra degli indirizzi
dovremo digitare ipserver/joomla15 per vedere la pagina di installazione.
Procediamo con l'installazione, e al momento di richiesta del database inseriamo:
host: localhost
nome utente: quello creato in precedenza con phpmyadmin
password: quella data in precedenza con phpmyadmin
nome del database: quello creato in precedenza con phpmyadmin
Guida creata da kekko_94
6
Protetta da Creative Commons v 3.0 BY