A proposito dell'autore

Ciao a tutti, sono Alessandro, sono nato a Palermo il 24/01/1983 e vivo a qualche chilometro dalla città. Da anni coltivo la passione per i computer e tutto quello che ci sta attorno, con un occhio di riguardo per il mondo delle reti. Nel 2000 mi avvicino al mondo di Linux e ne resto impressionato da ciò che consente di fare, nonchè alla filosofia dell’opensource. Nel Aprile 2005 ho conseguito la certificazione Cisco CCNA. Da Novembre 2006 sono membro del CUG. Ho completato il corso HP IT Essential I e II e Cisco Network Security. Ho svolto uno stage presso Jump2Future dove mi sono occupato di redigere una ralazione per la realizzazione di un cluster basato su RedHat GFS (Global File System). Lavoro per l’IBIM-CNR di Palermo dal 2002 come tecnico informatico e gestione rete. Sto cominciando ad acquisire conoscenze nel campo del VoIP con software quali Trixbox e Elastix, realizzazione e uso di macchine virtuali basate su VMWare.

Premessa

In questo documento spiegherò come realizzare un server Web dotato di connessioni sicure grazie al protocollo SSL abilitato all’eventuale uso di pagine php e database, grazie all’installazione sulla stessa macchina di MySQL come server database. Questo tipo di server così configurato è indispensabile se vogliamo crearci un sito web, interno alla LAN o no, con i portal manager come Phpnuke, E-Xoops, Zope/Plone e tanti altri che si basano sulla tecnologia Php/MySQL, oppure creare un forum di discussione con PhpBB o con altri software.

Risorse Hardware e Software

Per il mio scopo ho utilizzato un vecchio pc , composto da un processore Pentium 166MMX, 64MB di RAM, Hard Disk da 40GB ide, scheda di rete pci 3Com 905-b 10/100Mbit., dal lato software ho utilizzato Slackware 10, MySQL, Apache, Php, OpenSSL, Mod_SSL e Mod_Perl.

Procuriamoci i pacchetti necessari

Per facilitarvi nell’impresa vi ho messo a disposizione il mio spazio web, da dove potere prelevare i pacchetti necessari senza andare in giro per la rete magari non trovando le versioni utilizzate in questo documento. Di seguito trovate i link per scaricare i pacchetti:

http://www.webalice.it/alepensato/apache/mysql-4.0.21.tar.gz

http://www.webalice.it/alepensato/apache/openssl-0.9.7d.tar.gz

http://www.webalice.it/alepensato/apache/apache_1.3.27.tar.tar

http://www.webalice.it/alepensato/apache/php-5.0.2.tar.gz

http://www.webalice.it/alepensato/mod_ssl-2.8.14-1.3.27.tar.gz

http://www.webalice.it/alepensato/mod_perl-1.29.tar.gz

Compilazione e installazione dei software sorgenti (come root)

Installazione del server MySQL

Il primo software che installeremo è MySQL. Esso si preoccuperà di gestire i database che verranno usati e anche di consentirne l’accesso tramite il linguaggio di programmazione Php che è in stretta relazione col server database Per prima cosa occorre scompattare i sorgenti e solo dopo potremmo avviare la configurazione seguita dalla compilazione e l’installazione. Una volta completati queste prime fasi, installeremo il database principale che contiene le informazioni che consentono al server di funzionare, copieremo i file di configurazione nelle posizioni corrette e modificheremo il file rc.local per avviare il server MySQL al boot del sistema. Eseguite questi comandi passo passo:

cd /tar				     
tar zxvf  mysql*			        
cd mysql*				        
./configure --prefix=/usr/local/mysql	      
make && make install			     
script/mysql_install_db		     
cp support*/*medium.cnf /etc/my.cnf	      
/usr/local/mysql/bin/mysqld_safe --user=root &
vi /etc/rc.d/rc.local

Installazione del pacchetto OpenSSL

Questo pacchetto, una volta installato, si occuperà della gestione delle informazioni crittografate col protocollo si sicurezza SSL utilizzando algoritmi complessi per la crittografia dei dati ed un sistema di chiavi pubbliche e private necessarie per la decodifica dei dati. Eseguite questi comandi passo passo:

cd /tar					
tar zxvf openssl				
cd openssl*				
./config && make && make install

Preconfigurazione di Apache

Apache è il software più utilizzato in internet per offrire la funzione di web server. Per il momento procediamo solo con la preconfigurazione, in quanto il software che dovremo installare successivamente (Php) richiede questo processo. Eseguite questi comandi passo passo:

cd /tar							
tar zxvf apache*						
cd apache*						
./configure --prefix=/usr/local/apache --enable-module=all --enable-shared=max	 	  

Installazione di Php

Adesso che abbiamo preconfigurato il server web Apache, ci occuperemo dell’installazione di Php, che come detto prima è un potente linguaggio di programmazione simile all’Asp, potremmo dire che Php è una versione Unix-Like di Asp che è per sistemi Microsoft®. Tra i vantaggio troviamo che Php è stato progettato per lavorare a stretto contatto con MySQL proponendo alcuni tag specifici per la connessione ai database oppure per la registrazione delle informazioni immesse in una form nei campi del database, proprio quello che fa per noi per usare i portal manager. Eseguite questi comandi passo passo:

cd /tar						         
tar zxvf  php*					           
cd php*						          
./configure --with-apache=../apache_1.3.27 --with-mysql=/usr/local/mysql \  
--enable-track-vars --enable-ftp   						
make && make install

Installazione di Mod_SSL

Questo è il pacchetto software che si occupa di abilitare Apache ad usare i servizi di crittografia offerti da OpenSSL. Con questo plug-in abiliteremo Apache ad effettuare delle connessioni protette, dove i dati che viaggiano tra server e utente saranno crittografati e decodificati tramite funzioni matematiche complesse. Questo tipo di connessioni vengono utilizzare in rete per esempio dalle banche che consentono ai loro clienti di controllare i loro investimenti e di effettuare operazioni, ma anche quando effettuiamo acquisti on line. In realtà nel caso delle banche non c’è solo il protocollo SSL che si preoccupa della sicurezza dei dati, ma entrano in gioco i certificati di protezione rilasciati da autorità accreditate e abilitate a questo scopo (CA Certification Authority). Spero di scrivere qualcosa su come funzionano le CA e di come realizzarne una a scopo dimostrativo o magari per usarla all’interno di una azienda. Adesso torniamo all’installazione del plug-in per Apache, eseguendo questi comandi:

cd /tar 							
tar zxvf mod_ssl* 					
cd mod_ssl*						

./configure –with-apache=../apache_1.3.27 –prefix=/usr/local/apache \

--enable-module=all --enable-shared=max –with-openssl=../openssl-0.9.7d	   

Installazione di Mod_Perl

Questo è il pacchetto software che si occupa di abilitare Apache per usare script esterni che richiedono Perl per poter funzionare correttamente servizi. Adesso torniamo all’installazione del plug-in per Apache, eseguendo questi comandi:

cd /tar 						
tar zxvf mod_perl* 					
cd mod_ssl*						
perl Makefile.PL USE_EVERYTHING=1 \                         
APACHE_PREFIX=/usr/local/apache 		

A questo punto ci verrà chiesto se ../apache_1.3.27/src è la posizione corretta dove si trovano i sorgenti di Apache, quindi risponderemo digitando Y, mentre alla seconda domanda, in cui ci viene chiesto se volgiamo che Mod_Perl ci compili ed installi apache risponderemo digitando una N. Adesso possiamo completare manualmente l’installazione di Mod_Perl digitando come segue:

make && make install

Installazione di Apache

Questo pacchetto si occupa di rispondere alle chiamate tcp dirette al server, quindi indispensabile per il funzionamento del server stesso. Eseguite questi comandi passo passo:

./configure --prefix=/usr/local/apache --enable-module=all \
--enable-shared=max --enable-module=ssl --disable-module=auth_dbm \
--activate-module=src/modules/php5/libphp5.a \
--activate-module=src/modules/perl/libperl.a			
make && make certificate			

Durante questa fase, verrà creato un certificato SSL associato alla nostra persona. Per tale operazione ci verranno chiesti alcuni dati e adesso vedremo come inserirli per ottenere il certificato.

Segnature Algorithm ((R)SA or (D)SA) [R]:  R
Country Name:  IT
State or Province Name:  Sicilia
Locality Name:  Palermo
Organizzation Name: porkyHTTP Network
Organizzation Unit Name:  porkyHTTP Network - CA
Common Name:  www.home.local
Email Address:  porkyhttp@home.local
Certificate Validity:  730
Certificate Version:  3
Encrypt the private key now:  Y
Enter PEM pass phrase: ******
Verifying - Enter PEM pass phrase: ******

Adesso che il certificate è stato creato possiamo completare l’installazione di Apache lanciando il comando

make install	

Configurazione di Apache

Adesso che Apache è stato installato, dobbiamo procedere a fare una breve personalizzazione del file di configurazione, nel quale attiveremo il supporto per la lettura delle pagine PHP, inseriamo i dati riguardanti l’amministratore di Apache e qualche altra piccola aggiunta. Apriamo con un editor di testi come VI il file di configurazione httpd.conf, che si trova nella directory /usr/local/apache/conf, e procediamo a modificare le voci del conf, come nell’esempio di seguito

vi /usr/local/apache/conf/httpd.conf

ServerName www.home.local
ServerAdmin porkyhttp@home.local
DirectoryIndex index.html index.htm index.php index.php3 index.phps index.cgi default.html 
default.htm home.htm
AddType application/x-httpd-php .php .php3
AddType application/x-httpd-php-source .phps

Queste riportate sopra sono le righe che dovremo aggiungere o modificare nel file httpd.conf. una volta eseguita questa operazione saremo pronti alla prima esecuzione di Apache. Abbiamo due alternative per l’avvio di Apache, con o senza il supporto SSL per le connessioni sicure. Per avviarlo col supporto SSL ci basterà lanciare il comando /usr/local/apache/bin/apachectl startssl e inserendo la password che abbiamo digitato al momento della generazione del certificato, Apache partirà e si metterà in ascolto si sulla prota 80 che 443. Se non volgiamo attivare tale supporto possiamo avviarlo col comando

/usr/local/apache/bin/apachectl start

Post correlati

Close
Entra in contatto con altri professionisti ICT, seguici su Facebook e Twitter: