Virtuális gazdagépek létrehozása, SSL-tanúsítványok és kulcsok generálása, valamint a CGI-átjáró engedélyezése a Gentoo Linuxban
A legutóbbi oktatóanyag a LAMP telepítése Gentoo Linux rendszerben témájában éppen az alapvető telepítési folyamatot ismertette, anélkül, hogy az Apache számára további beállítások álltak volna rendelkezésre a tartományok jobb irányítása érdekében.
Ez az oktatóanyag szorosan kapcsolódik a Gentoo LAMP előzőhöz, és a LAMP környezet extra beállításait tárgyalja, mint például virtuális gazdagépek létrehozása Apache-on, generálása >SSL Tanúsítványfájlok és kulcsok, engedélyezze a biztonságos SSL protokollt a HTTP-tranzakciókhoz, és használja az Apache CGI Gateway-t, hogy futtathassa a Perl vagy Bash szkriptek a webhelyén.
Követelmények
- Telepítse a LAMP-ot Gentoo Linuxra
1. lépés: Az Apache Virtual Hosts létrehozása
Ez a témakör hamis tartománynevet használ – gentoo.lan –, amely a helyi hosts fájlon keresztül engedélyezett, a webhelyfájlok a /var/www/gentoo.lan – DocumentRoot címről szolgálnak ki. direktíva érvényes DNS rekord nélkül, amely bemutatja, hogyan lehet több virtuális gépet engedélyezni a Gentoo-n az Apache webszerver használatával.
1. Kezdésként nyissa meg a Gentoo hosts fájlt szerkesztésre, és adjon hozzá egy új sort a domain nevével.
sudo nano /etc/hosts
A fájl végén hasonlítson ehhez.
127.0.0.1 localhost gentoo
192.168.1.13 gentoo.lan
2. Tesztelje hamis domainjét a ping paranccsal, és a domainnek az IP-címével kell válaszolnia.
ping -c2 gentoo.lan
3. Az Apache Virtual Hosts aktiválásának folyamata meglehetősen egyszerű. Csak nyissa meg az Apache alapértelmezett virtuális gazdagép fájlját, amely az /etc/apache2/vhosts.d/ elérési úton található, és az utolsó utasítás előtt írja be az új Virtual Host definíciót a < alatt. … irányelvek. c
Tartalmazza az egyéni beállításait, például a ServerName és a DocumentRoot elérési utat. Használja a következő fájlsablont útmutatóként egy új virtuális gazdagéphez, és helyezze el a 00_default_vhost.conf fájlba (nem SSL webhelyek esetén).
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>
Amint azt a fájl tartalmának megjelenítéséből láthatja, a fájlt nagymértékben kommentálják magyarázatokkal, és megtartja a localhost Virtual Host definíciót is – amelyet útmutatóként használhat.
4. Miután befejezte a fájl szerkesztését az egyéni virtuális gazdagéppel, indítsa újra az Apache-t a beállítások alkalmazásához, és győződjön meg róla, hogy létrehozta a DocumentRoot könyvtárat arra az esetre, ha módosította ezt az utasítást, és az elérési út 'nem létezik alapértelmezés szerint (ebben az esetben a következőre módosult: /var/www/gentoo.lan). Létrehoztam egy kis PHP fájlt is a webszerver konfigurációk tesztelésére.
sudo mkdir /var/www/gentoo.lan
su "echo '<?php phpinfo(); ?>' > /var/www/gentoo.lan/info.php"
sudo /etc/init.d/apache2 restart
5. Az ellenőrzéshez nyisson meg egy böngészőt, és mutasson rá virtuális domainnevére http://gentoo.lan/info.php.
Ezzel az eljárással tetszőleges számú nem SSL webhelyet adhat hozzá az Apache Virtual Hosts segítségével, de egy valódi internet felé néző gép esetén győződjön meg arról, hogy a domainjei regisztrálva vannak, és érvényes DNS-kiszolgáló rekordokat használ.
Egy virtuális gazdagép eltávolításához írja be megjegyzéssel vagy törölje a … alatt található direktívákat a 00_default_vhost.conf fájlban.
2. lépés: SSL-tanúsítványok és kulcsok létrehozása a virtuális gazdagépekhez
Az SSL egy titkosítási protokoll, amelyet biztonságos kommunikációs csatornán keresztül történő információcserére használnak az interneten vagy a belső hálózatokon tanúsítványok és szimmetrikus/aszimmetrikus kulcsok segítségével.
6. A tanúsítványok és kulcsok létrehozási folyamatának egyszerűsítéséhez használja a következő Bash-szkriptet, amely parancsként működik, és automatikusan létrehoz mindent, amire szüksége van az SSL-tartománynév-beállításokkal.
Először a Bash szkript létrehozásával kezdje el a következő paranccsal.
sudo nano /usr/local/bin/apache_gen_ssl
Adja hozzá a következő fájltartalmat.
#!/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. A fájl létrehozása után fűzze hozzá a végrehajtási engedélyeket, és futtassa az SSL-kulcsok és -tanúsítványok generálásához.
sudo chmod +x /usr/local/bin/apache_gen_ssl
sudo apache_gen_ssl
Amikor első alkalommal futtatja, meg kell adnia a domain nevét. Adja meg a domain nevét, amelyhez SSL-beállításokat generál, és töltse ki a tanúsítványt a szükséges adatokkal, a legfontosabb, a közös név, használja a szerver FQDN-jét.
Az alapértelmezett hely, ahol minden tanúsítványa és kulcsa tárolva van ezzel a módszerrel: /etc/apache2/ssl/.
8. Most itt az ideje létrehozni a gentoo.lan Virtual Host SSL megfelelőjét. Használja ugyanazt a módszert, mint a nem SSL virtuális gazdagépeknél, de ezúttal szerkessze az /etc/apache2/vhosts.d/00_default_ssl_vhosts.conf fájlt kis változtatásokkal.
Először nyissa meg a fájlt szerkesztésre, és hajtsa végre a következő módosításokat.
sudo nano /etc/apache2/vhosts.d/00_default_ssl_vhosts.conf
A Listen 443 direktíva alatt adja hozzá a következő tartalmat.
NameVirtualHost *:443
Használja a következő sablont egy új virtuális gazdagéphez, és fűzze hozzá az új SSL-tanúsítvány + kulcs elérési útját és neveit.
## 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 ###
A Virtual Hosts definícióknak ez utóbbi három utasítás előtt kell véget érniük.
</IfModule>
</IfDefine>
</IfDefine>
9. A Virtual Host fájl szerkesztésének befejezése után indítsa újra az Apache szolgáltatást, és irányítsa böngészőjét a domainjére a https://gentoo.lan HTTPS protokoll használatával.
sudo /etc/init.d/apache2 restart
Ezzel az eljárással hozzáadhat SSL-webhelyeket saját tanúsítványokkal és kulcsokkal az Apache Virtual Hosts segítségével. Az SSL Virtual Hosts eltávolításához írja ki vagy törölje a /etc/apache2/vhosts.d/00_default_ssl_vhosts.conf fájl … alatt található direktíváit.
3. lépés: A CGI interfész engedélyezése
A CGI (Common Gateway Interface) lehetővé teszi az Apache számára, hogy külső programokkal kommunikáljon, elsősorban Perl- vagy BASH-szkriptekből, amelyek dinamikus tartalmat adhatnak webhelyéhez.
10. A CGI-átjáró engedélyezése előtt győződjön meg arról, hogy az Apache a USE CGI modulok jelzőinek támogatásával lett lefordítva a Portage make.conf fájlban: cgi cgid . Az Apache GCI-támogatásának engedélyezéséhez nyissa meg az /etc/conf.d/apache2 fájlt, és fűzze hozzá a CGI-modult az APACHE2_OPTS sorhoz.
sudo nano /etc/conf.d/apache2
Győződjön meg arról, hogy ez a sor hasonló tartalommal rendelkezik.
APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D SSL -D SSL_DEFAULT_VHOST -D LANGUAGE -D STATUS -D CGI"
11. A CGI-modulok engedélyezése után nyissa meg a webhelydefiníciós gazdagépet, amelyhez engedélyezni szeretné a CGI-felületet, és adja hozzá a következő tartalmat a Virtual Host direktívákhoz.
<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. Ha a DocumentRoot (/var/www/gentoo.lan/) elérési útjában van egy könyvtár, amely CGI-szkripteket tartalmaz, akkor csak ebben a könyvtárban engedélyezheti a dinamikus Perl kiszolgálását. vagy Bash szkripteket.
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. SSI (Server Side Includes) esetén fűzze hozzá a +Includes utasítást az Options részhez, és adja hozzá az .shtml fájlkiterjesztést.
<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. Néhány egyszerű .cgi és .pl szkript teszteléséhez az Apache CGI átjárón hozza létre a következő szkripteket a Virtual Host DocumentRoot ( /var/www/gentoo.lan/).
Perl szkript
sudo nano /var/www/gentoo.lan/env.pl
Adja hozzá a következő Perl-tartalmat.
#!/usr/bin/perl
print "Content-type: text/html\n\n"; foreach my $keys (sort keys %ENV) { print "$keys =
$ENV{$keys}<br/>\n";
}
Bash Script
sudo nano /var/www/gentoo.lan/run.cgi
Adja hozzá a következő Bash-tartalmat.
#!/bin/bash
echo "Content-type: text/html"
echo ""
echo "---------------------------------------------------------------------------------"
./env.pl
echo "---------------------------------------------------------------------------------"
15. A fájlok létrehozása után tegye őket végrehajthatóvá, indítsa újra az Apache démont, és mutasson böngészőjében a következő URL-ekre.
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
Most a Gentoo-t egy erőteljes webtárhely-platformmá alakíthatja, finomhangolási beállításokkal a rendszer teljesítményéhez és a teljes környezet maximális vezérléséhez.