Creació d'amfitrions virtuals, generació de certificats i claus SSL i activació de la passarel·la CGI a Gentoo Linux
L'últim tutorial sobre Instal·lació de LAMP a Gentoo Linux acaba de cobrir el procés bàsic d'instal·lació sense opcions addicionals disponibles per a Apache per controlar millor els vostres dominis.
Aquest tutorial està estrictament connectat amb l'anterior a Gentoo LAMP i parla de la configuració addicional per a l'entorn LAMP, com ara crear amfitrions virtuals a Apache, generar SSL, activeu el protocol SSL segur en transaccions HTTP i utilitzeu Apache CGI Gateway perquè pugueu executar Perl o Scripts Bash al vostre lloc web.
- Instal·leu LAMP a Gentoo Linux
Pas 1: creeu hosts virtuals Apache
Aquest tema utilitza un nom de domini fals (gentoo.lan) habilitat mitjançant un fitxer d'amfitrions locals, amb fitxers del lloc web que es distribueixen des de /var/www/gentoo.lan – DocumentRoot , sense un registre DNS vàlid, per demostrar com es poden habilitar diversos hosts virtuals a Gentoo mitjançant el servidor web Apache.
1. Per començar, obriu el fitxer hosts de Gentoo per editar-lo i afegiu una línia nova amb el vostre nom de domini.
$ sudo nano /etc/hosts
Al final del fitxer, feu que sembli semblant a aquest.
127.0.0.1 localhost gentoo 192.168.1.13 gentoo.lan
2. Proveu el vostre domini fals amb l'ordre ping i el domini hauria de respondre amb la seva adreça IP.
$ ping -c2 gentoo.lan
3. El procés d'activació d'Apache Virtual Hosts és bastant senzill. Només cal que obriu el fitxer d'amfitrions virtuals per defecte d'Apache situat a la ruta /etc/apache2/vhosts.d/ i abans de l'última instrucció , introduïu la vostra nova definició d'amfitrió virtual adjunta a … directives. c
Conté la vostra configuració personalitzada, com ara ServerName i la ruta de DocumentRoot. Utilitzeu la plantilla de fitxer següent com a guia per a un nou host virtual i incloeu-lo al fitxer 00_default_vhost.conf (per a llocs web que no siguin SSL).
$ sudo nano /etc/apache2/vhosts.d/00_default_vhost.conf
## Another Virtual hosts statemes ending in </VirtualHost> ### <VirtualHost *:80> ServerName gentoo.lan DocumentRoot "/var/www/gentoo.lan" <Directory "/var/www/gentoo.lan" Options Indexes FollowSymLinks ExecCGI MultiViews # AllowOverride controls what directives may be placed in .htaccess files. AllowOverride All # Controls who can get stuff from this server file Order allow,deny Allow from all </Directory> <IfModule mpm_peruser_module> ServerEnvironment apache apache </IfModule> </VirtualHost> ## Another Virtual hosts statemes ### ## LAST STATEMENT which closes virtual hosts file ## </IfDefine>
Com podeu veure visualitzant el contingut d'aquest fitxer, el fitxer està molt comentat amb explicacions i també manté la definició d'amfitrió virtual localhost, que podeu utilitzar com a guia.
4. Després d'acabar d'editar el fitxer amb el vostre host virtual personalitzat, reinicieu Apache per aplicar la configuració i assegureu-vos que creeu el directori DocumentRoot en cas que hàgiu canviat aquesta directiva i el camí no existeix per defecte (en aquest cas es va canviar a /var/www/gentoo.lan). També he creat un petit fitxer PHP per provar les configuracions del servidor web.
$ sudo mkdir /var/www/gentoo.lan $ su "echo '<?php phpinfo(); ?>' > /var/www/gentoo.lan/info.php" $ sudo /etc/init.d/apache2 restart
5. Per verificar-ho, obriu un navegador i assenyaleu el vostre nom de domini virtual http://gentoo.lan/info.php.
Mitjançant aquest procediment, podeu afegir tants llocs web que no siguin SSL com vulgueu amb Apache Virtual Hosts, però per a una màquina real orientada a Internet, assegureu-vos que teniu els vostres dominis registrats i que utilitzeu registres de servidor DNS vàlids.
Per eliminar un amfitrió virtual, només cal comentar o eliminar les seves directives a sota de ... al fitxer 00_default_vhost.conf.
Pas 2: genereu certificats i claus SSL per a hosts virtuals
SSL és un protocol criptogràfic utilitzat per intercanviar informació a través d'un canal de comunicació segur a Internet o dins de xarxes mitjançant certificats i claus simètriques/asimètriques.
6. Per simplificar el procés de generació de certificats i claus, utilitzeu el següent script Bash que actua com a ordre i crea automàticament tot el que necessiteu amb la configuració del vostre nom de domini SSL.
Primer comenceu creant l'script Bash amb l'ordre següent.
$ sudo nano /usr/local/bin/apache_gen_ssl
Afegiu el contingut del fitxer següent.
#!/bin/bash mkdir /etc/apache2/ssl cd /etc/apache2/ssl echo -e "Enter a name for this certificate:\nEx: mydomain.lan" read cert openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out $cert.key chmod 600 $cert.key openssl req -new -key $cert.key -out $cert.csr openssl x509 -req -days 365 -in $cert.csr -signkey $cert.key -out $cert.crt echo -e " The certificate $cert has been generated!\nPlease link it to Apache SSL website!" ls -all /etc/apache2/ssl/ exit 0
7. Un cop creat el fitxer, afegiu-hi els permisos d'execució i executeu-lo per generar claus i certificats SSL.
$ sudo chmod +x /usr/local/bin/apache_gen_ssl $ sudo apache_gen_ssl
Quan l'executeu per primera vegada, us demanarà que introduïu el vostre nom de domini. Introduïu el vostre nom de domini per al qual genereu la configuració SSL i ompliu el Certificat amb la informació necessària, el més important, Nom comú, utilitzeu el FQDN del vostre servidor.
La ubicació per defecte on s'allotgen tots els vostres certificats i claus amb aquest mètode és /etc/apache2/ssl/.
8. Ara és el moment de crear l'equivalent a gentoo.lan Virtual Host SSL. Feu servir el mateix mètode que per als hosts virtuals que no siguin SSL, però aquesta vegada editeu el fitxer /etc/apache2/vhosts.d/00_default_ssl_vhosts.conf amb lleugers canvis.
Primer obriu el fitxer per editar-lo i feu els canvis següents.
$ sudo nano /etc/apache2/vhosts.d/00_default_ssl_vhosts.conf
A la directiva Escolta 443 afegiu el contingut següent.
NameVirtualHost *:443
Utilitzeu la plantilla següent per a un amfitrió virtual nou i afegiu un nou certificat SSL + camí i noms de clau.
## Another Virtual hosts statemes ending in </VirtualHost> ### <VirtualHost *:443> ServerName gentoo.lan DocumentRoot "/var/www/gentoo.lan" ErrorLog /var/log/apache2/gentoo.lan-ssl_error_log <IfModule log_config_module> TransferLog /var/log/apache2/gentoo.lan-ssl_access_log </IfModule> SSLEngine on SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL ## Edit with new generated SSL certificate and key and change path to /etc/apache2/ssl/ SSLCertificateFile /etc/apache2/ssl/gentoo.lan.crt SSLCertificateKeyFile /etc/apache2/ssl/gentoo.lan.key <Directory "/var/www/gentoo.lan"> Options Indexes FollowSymLinks ExecCGI MultiViews Includes AllowOverride All Order allow,deny Allow from all </Directory> <FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory "/var/www/gentoo.lan "> SSLOptions +StdEnvVars </Directory> <IfModule setenvif_module> BrowserMatch ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 </IfModule> <IfModule log_config_module> CustomLog /var/log/apache2/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </IfModule> </VirtualHost> ## Another Virtual hosts statements ###
Les definicions dels hosts virtuals han d'acabar abans d'aquestes tres últimes declaracions.
</IfModule> </IfDefine> </IfDefine>
9. Després d'acabar d'editar el fitxer Virtual Host, reinicieu el servei Apache i dirigiu el vostre navegador al vostre domini mitjançant el protocol HTTPS https://gentoo.lan.
$ sudo /etc/init.d/apache2 restart
Mitjançant aquest procediment, podeu afegir llocs web SSL amb els seus propis certificats i claus mitjançant Apache Virtual Hosts. Per eliminar els hosts virtuals SSL, feu comentaris o suprimiu-ne les directives que s'inclouen a … al fitxer /etc/apache2/vhosts.d/00_default_ssl_vhosts.conf.
Pas 3: habiliteu la interfície CGI
El CGI (Common Gateway Interface) permet a Apache interactuar amb programes externs, que consisteixen principalment en scripts Perl o BASH, que poden afegir un contingut dinàmic al vostre lloc web.
10. Abans d'habilitar la passarel·la CGI, assegureu-vos que Apache s'ha compilat amb el suport de senyals de mòduls USE CGI al fitxer make.conf de Portage: cgi cgid. Per habilitar el suport GCI per a Apache, obriu el fitxer /etc/conf.d/apache2 i afegiu el mòdul CGI a la línia APACHE2_OPTS.
$ sudo nano /etc/conf.d/apache2
Assegureu-vos que aquesta línia tingui contingut similar.
APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D SSL -D SSL_DEFAULT_VHOST -D LANGUAGE -D STATUS -D CGI"
11. Un cop habilitats els mòduls CGI, obriu el vostre amfitrió de definició de lloc web que voleu habilitar la interfície CGI i afegiu el contingut següent dins de les directrius d'amfitrió virtual.
<Directory "/var/www/gentoo.lan"> Options Indexes +ExecCGI MultiViews AddHandler cgi-script .cgi .pl DirectoryIndex index.cgi index.php index.html index.pl AllowOverride All Order allow,deny Allow from all </Directory>
12. Si teniu un directori dins de la vostra ruta de DocumentRoot (/var/www/gentoo.lan/) que conté scripts CGI, podeu habilitar només aquest directori per servir scripts dinàmics de Perl o Bash.
ScriptAlias /cgi-bin/ /var/www/gentoo.lan/cgi-bin/ <Location /cgi-bin> Options +ExecCGI AddHandler cgi-script .cgi .pl DirectoryIndex index.cgi index.php index.html index.pl </Location>
13. Per a SSI (Server Side Includes) afegiu la instrucció +Includes a Opcions i afegiu l'extensió de fitxer .shtml.
<Directory "/var/www/gentoo.lan"> Options Indexes +ExecCGI +Includes AddHandler cgi-script .cgi .pl AddType text/html .shtml AddOutputFilter INCLUDES .shtml DirectoryIndex index.shtml index.cgi index.pl index.php index.html AllowOverride All Order allow,deny Allow from all </Directory>
14. Per provar alguns scripts .cgi i .pl senzills a la passarel·la Apache CGI, creeu els següents scripts dins del vostre Virtual Host DocumentRoot (/var/www/gentoo. lan/).
$ sudo nano /var/www/gentoo.lan/env.pl
Afegiu el següent contingut de Perl.
#!/usr/bin/perl print "Content-type: text/html\n\n"; foreach my $keys (sort keys %ENV) { print "$keys = $ENV{$keys}<br/>\n"; }
$ sudo nano /var/www/gentoo.lan/run.cgi
Afegiu el següent contingut de Bash.
#!/bin/bash echo "Content-type: text/html" echo "" echo "---------------------------------------------------------------------------------" ./env.pl echo "---------------------------------------------------------------------------------"
15. Un cop creats els fitxers, feu-los executables, reinicieu el dimoni Apache i dirigiu el vostre navegador als URL següents.
$ sudo chmod +x /var/www/gentoo.lan/run.cgi $ sudo chmod +x /var/www/gentoo.lan/env.pl $ sudo /etc/init.d/apache2 restart
https://gentoo.lan/run.cgi OR https://gentoo.lan/env.pl
Ara podeu transformar Gentoo en una potent plataforma d'allotjament web amb una configuració fina per al rendiment del vostre sistema i el màxim control sobre tot el vostre entorn.