Virtuaalsete hostide loomine, SSL-sertifikaatide ja võtmete genereerimine ning CGI-lüüsi lubamine Gentoo Linuxis


Viimane LAMP-i installimine Gentoo Linuxi õpetus hõlmas just põhilist installiprotsessi ilma Apache jaoks saadaval olevate täiendavate seadistusteta, et teie domeene paremini kontrollida.

See õpetus on tihedalt seotud eelmisega saidil Gentoo LAMP ja selles käsitletakse keskkonna LAMP täiendavaid seadeid, näiteks Apache'is virtuaalsete hostide loomine, SSL Sertifikaadifailid ja võtmed, lubage HTTP-tehingutel turvaline SSL -protokoll ja kasutage Apache CGI-lüüsi , et saaksite käivitada Perl või Bash skriptid teie veebisaidi kohal.

  1. Installige LAMP Gentoo Linuxi

1. samm: looge Apache virtuaalsed hostid

See teema kasutab võltsitud domeeninime - gentoo.lan -, mis on lubatud kohaliku hosti faili kaudu, veebisaidi faile serveeritakse saidilt /var/www/gentoo.lan - DocumentRoot direktiiv ilma kehtiva DNS kirjeta, et näidata, kui palju virtuaalseid hoste saab Gentoo's lubada Apache veebiserveri abil.

1. Alustuseks avage redigeerimiseks Gentoo hostifail ja lisage oma domeeninimega uus rida.

$ sudo nano /etc/hosts

Tehke faili lõpus sarnane sellega.

127.0.0.1 localhost gentoo
192.168.1.13  gentoo.lan

2. Testige oma võltsdomeeni käsuga ping ja domeen peaks vastama oma IP-aadressiga.

$ ping -c2 gentoo.lan

3. Apache virtuaalsete hostide aktiveerimise protsess on üsna lihtne. Lihtsalt avage Apache vaikimisi virtuaalhostide fail, mis asub teekonnal /etc/apache2/vhosts.d/ ja enne viimast lauset sisestage oma uus virtuaalse masina määratlus, mis on lisatud jaotisse /b>… direktiivid. c

Sisaldavad teie kohandatud seadeid, näiteks ServerName ja DocumentRoot tee. Kasutage uue virtuaalhosti juhendina järgmist failimalli ja lisage see faili 00_default_vhost.conf (mitte-SSL-i veebisaitide jaoks).

$ 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>

Nagu näete selle faili sisu visualiseerimisel, kommenteeritakse faili koos selgitustega ja see hoiab ka virtuaalse hosti määratlust localhost - mida saate seda kasutada juhendina.

4. Pärast kohandatud virtuaalse hostiga faili redigeerimise lõpetamist taaskäivitage Apache seadete rakendamiseks ja veenduge, et loote kataloogi DocumentRoot juhul, kui olete seda direktiivi muutnud ja teed vaikimisi pole see juhtum muudeti /var/www/gentoo.lan ). Veebiserveri konfiguratsioonide testimiseks olen loonud ka väikese PHP-faili.

$ sudo mkdir /var/www/gentoo.lan
$ su "echo '<?php phpinfo(); ?>' > /var/www/gentoo.lan/info.php"
$ sudo /etc/init.d/apache2 restart

5. Selle kontrollimiseks avage brauser ja suunake see oma virtuaalse domeeni nimele http://gentoo.lan/info.php .

Selle protseduuri abil saate Apache virtuaalsete hostide abil lisada nii palju SSL-e mittekuuluvaid veebisaite, kui soovite, kuid tõelise Interneti-põhise masina jaoks veenduge, et olete oma domeenid registreerinud ja kasutate kehtivaid DNS-serveri kirjeid.

Virtuaalhosti eemaldamiseks kommenteerige lihtsalt failid 00_default_vhost.conf ja kustutage selle käskkirjad, mis asuvad jaotises .

2. samm: genereerige virtuaalsetele hostidele SSL-sertifikaadid ja võtmed

SSL on krüptograafiaprotokoll, mida kasutatakse sertifikaatide ja sümmeetriliste/asümmeetriliste võtmete abil teabe vahetamiseks Interneti kaudu või võrgusiseses turvalises sidekanalis.

6. Sertifikaatide ja võtmete genereerimise lihtsustamiseks kasutage järgmist Bashi skripti, mis toimib käsuna ja loob teie SSL-i domeeninime seadetega automaatselt kõik vajaliku.

Kõigepealt alustage Bashi skripti loomisega järgmise käsu abil.

$ sudo nano /usr/local/bin/apache_gen_ssl

Lisage järgmine faili sisu.

#!/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. Pärast faili loomist lisage sellele täitmisõigused ja käivitage see SSL-võtmete ja sertifikaatide loomiseks.

$ sudo chmod +x /usr/local/bin/apache_gen_ssl
$ sudo apache_gen_ssl

Esmakordsel käivitamisel palub teil sisestada oma domeeni nimi. Sisestage oma domeeni nimi, mille jaoks genereerite SSL-i sätted, ja täitke sertifikaat nõutava teabega, kõige olulisem Üldine nimi , kasutage oma serveri FQDN-i.

Vaikimisi asukoht, kus kõiki teie sertifikaate ja võtmeid selle meetodi abil majutatakse, on /etc/apache2/ssl/.

8. Nüüd on aeg luua virtuaalse hosti SSL-i samaväärne gentoo.lan . Kasutage sama meetodit kui SSL-i mittekuuluvate virtuaalsete hostide puhul, kuid seekord muutke faili /etc/apache2/vhosts.d/00_default_ssl_vhosts.conf pisut muudatustega.

Esmalt avage fail redigeerimiseks ja tehke järgmised muudatused.

$ sudo nano /etc/apache2/vhosts.d/00_default_ssl_vhosts.conf

Lisage direktiivi Kuula 443 all järgmine sisu.

NameVirtualHost *:443

Kasutage uue virtuaalse hosti jaoks järgmist malli ja lisage uus SSL-sertifikaat + võtme tee ja nimed.

## 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 ###

Virtuaalhostide definitsioonid peavad lõppema enne viimast kolme lauset.

</IfModule>
</IfDefine>
</IfDefine>

9. Pärast virtuaalse hostifaili redigeerimise lõpetamist taaskäivitage Apache-teenus ja suunake oma brauser oma domeenile, kasutades HTTPS-protokolli https: //gentoo.lan .

$ sudo /etc/init.d/apache2 restart

Selle protseduuri abil saate Apache virtuaalsete hostide abil lisada SSL-i veebisaite koos oma sertifikaatide ja võtmetega. SSL-i virtuaalsete hostide eemaldamiseks kommenteerige faili /etc/apache2/vhosts.d/00_default_ssl_vhosts.conf kommentaarid või kustutage selle käskkirjad, mis on jaotises .

3. samm: lubage CGI-liides

CGI ( Common Gateway Interface ), mis võimaldab Apache'il suhelda väliste programmidega, mis koosnevad peamiselt Perli või BASH-i skriptidest ja mis võivad teie veebisaidile dünaamilist sisu lisada.

10. Enne CGI-lüüsi lubamist veenduge, et Apache kompileeriti moodulitega KASUTA CGI lipude tugi failis Portage make.conf : cgi cgid Apache GCI-toe lubamiseks avage fail /etc/conf.d/apache2 ja lisage reale APACHE2_OPTS CGI-moodul.

$ sudo nano /etc/conf.d/apache2

Veenduge, et sellel real on sarnane sisu.

APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D SSL -D SSL_DEFAULT_VHOST -D LANGUAGE -D STATUS -D CGI"

11. Kui CGI-moodulid on lubatud, avage oma veebisaidi määratluse hosti, mille soovite CGI-liidese lubada, ja lisage järgmine sisu virtuaalserveri direktiividesse.

<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. Kui teil on DocumentRoot ( /var/www/gentoo.lan/ ) tee sees CGI-skripte hoidev kataloog, saate lubada just selle kataloogi dünaamiliste Perli või Bashi skriptide esitamiseks.

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 (serveripool sisaldab) korral lisage suvanditele lause + Sisaldab ja lisage faililaiend .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. Mõne lihtsa .cgi ja .pl skripti testimiseks Apache CGI lüüsil looge enda sees järgmised skriptid Virtual Host DocumentRoot (/var/www/gentoo. lan/).

$ sudo nano /var/www/gentoo.lan/env.pl

Lisage järgmine Perli sisu.

#!/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

Lisage järgmine Bashi sisu.

#!/bin/bash
echo "Content-type: text/html"
echo ""
echo "---------------------------------------------------------------------------------"
              ./env.pl 
echo "---------------------------------------------------------------------------------"

15. Pärast failide loomist muutke need käivitatavaks, taaskäivitage Apache deemon ja suunake oma brauser järgmistele URL-idele.

$ 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

Nüüd saate Gentoo muuta võimsaks veebimajutusplatvormiks, millel on süsteemi jõudluse ja maksimaalse kontrolli kogu keskkonna üle täpsemad seaded.