Virtuālo saimnieku izveide, SSL sertifikātu un atslēgu ģenerēšana un CGI Gateway iespējošana Gentoo Linux


Pēdējā apmācība par LAMP instalēšanu Gentoo Linux tikko ietvēra pamata instalēšanas procesu bez Apache papildu iestatījumiem, lai labāk kontrolētu jūsu domēnus.

Šī apmācība ir cieši saistīta ar iepriekšējo Gentoo LAMP un tajā ir apskatīti papildu iestatījumi videi LAMP , piemēram, Apache izveidošana Virtuālie saimnieki , ģenerēšana SSL Sertifikāta faili un atslēgas, iespējojiet drošu SSL protokolu HTTP darījumos un izmantojiet Apache CGI vārteju , lai jūs varētu palaist Perl vai Bash skripti virs jūsu vietnes.

  1. Instalējiet LAMP Gentoo Linux

1. darbība: izveidojiet Apache virtuālos saimniekus

Šajā tēmā tiek izmantots viltots domēna nosaukums - gentoo.lan - iespējots, izmantojot vietējo resursdatoru failu, ar vietņu failiem, kas tiek pasniegti no /var/www/gentoo.lan - DocumentRoot direktīva bez derīga DNS ieraksta, lai parādītu, kā Gentoo, izmantojot Apache tīmekļa serveri, var iespējot vairākus virtuālos resursdatorus.

1. Lai sāktu, atveriet Gentoo hosts failu rediģēšanai un pievienojiet jaunu rindiņu ar savu domēna vārdu.

$ sudo nano /etc/hosts

Faila beigās tas izskatās līdzīgs šim.

127.0.0.1 localhost gentoo
192.168.1.13  gentoo.lan

2. Pārbaudiet savu viltoto domēnu ar komandu ping , un domēnam vajadzētu atbildēt ar savu IP adresi.

$ ping -c2 gentoo.lan

3. Apache virtuālo saimnieku aktivizēšanas process ir diezgan vienkāršs. Vienkārši atveriet Apache noklusējuma virtuālo resursdatoru failu, kas atrodas ceļā /etc/apache2/vhosts.d/ , un pirms pēdējā paziņojuma ievadiet jauno virtuālā resursdatora definīciju, kas pievienota direktīvas. c

Satur jūsu pielāgotos iestatījumus, piemēram, ServerName un DocumentRoot ceļš. Izmantojiet šo faila veidni kā ceļvedi jaunam virtuālajam resursdatoram un iekļaujiet to failā 00_default_vhost.conf (vietnēm, kas nav 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>

Kā redzat, vizualizējot šo faila saturu, fails tiek ļoti komentēts ar paskaidrojumiem, kā arī saglabā localhost virtuālā resursdatora definīciju - kuru varat izmantot kā ceļvedi.

4. Pabeidzot faila rediģēšanu ar pielāgoto virtuālo resursdatoru, restartējiet Apache, lai lietotu iestatījumus, un pārliecinieties, ka izveidojat direktoriju DocumentRoot , ja esat mainījis šo direktīvu un ceļš pēc noklusējuma nepastāv ( šī lieta tika mainīta uz /var/www/gentoo.lan ). Esmu izveidojis arī nelielu PHP failu, lai pārbaudītu tīmekļa servera konfigurācijas.

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

5. Lai to pārbaudītu, atveriet pārlūku un norādiet tam virtuālā domēna nosaukumu http://gentoo.lan/info.php .

Izmantojot šo procedūru, varat pievienot tik daudz vietņu, kas nav SSL, cik vēlaties, izmantojot Apache virtuālos resursdatorus, taču īstai mašīnai, kas vērsta uz internetu, pārliecinieties, ka jūsu domēni ir reģistrēti un jūs izmantojat derīgus DNS serveru ierakstus.

Lai noņemtu virtuālo resursdatoru, vienkārši komentējiet vai izdzēsiet tā direktorijas, kas ietvertas faila 00_default_vhost.conf sadaļā .

2. darbība: izveidojiet SSL sertifikātus un atslēgas virtuālajiem viesiem

SSL ir kriptogrāfijas protokols, ko izmanto informācijas apmaiņai pa drošu sakaru kanālu internetā vai tīklos, izmantojot sertifikātus un simetriskas/asimetriskas atslēgas.

6. Lai vienkāršotu sertifikātu un atslēgu ģenerēšanas procesu, izmantojiet šādu Bash skriptu, kas darbojas kā komanda un automātiski izveido visu nepieciešamo ar SSL domēna vārda iestatījumiem.

Vispirms sāciet izveidot Bash skriptu, izmantojot šādu komandu.

$ sudo nano /usr/local/bin/apache_gen_ssl

Pievienojiet šādu faila saturu.

#!/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. Kad fails ir izveidots, pievienojiet tam izpildes atļaujas un palaidiet to, lai ģenerētu SSL atslēgas un sertifikātus.

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

Kad to palaidīsit pirmo reizi, jums tiks lūgts ievadīt savu domēna vārdu. Ievadiet sava domēna nosaukumu, kuram jūs ģenerējat SSL iestatījumus, un aizpildiet sertifikātu ar nepieciešamo informāciju, vissvarīgākais, Parastais nosaukums , izmantojiet sava servera FQDN.

Noklusējuma atrašanās vieta, kur visi jūsu sertifikāti un atslēgas tiek mitināti, izmantojot šo metodi, ir /etc/apache2/ssl/.

8. Tagad ir pienācis laiks izveidot virtuālā resursdatora SSL ekvivalentu gentoo.lan . Izmantojiet to pašu metodi kā virtuālajiem viesiem, kas nav SSL, taču šoreiz rediģējot failu /etc/apache2/vhosts.d/00_default_ssl_vhosts.conf ar nelielām izmaiņām.

Vispirms atveriet failu rediģēšanai un veiciet šādas izmaiņas.

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

Saskaņā ar direktīvu Klausīties 443 pievienojiet šo saturu.

NameVirtualHost *:443

Izmantojiet šo veidni jaunam virtuālajam resursdatoram un pievienojiet jaunu SSL sertifikātu + atslēgas ceļu un nosaukumus.

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

Virtuālo saimnieku definīcijām jābeidzas pirms pēdējiem trim paziņojumiem.

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

9. Pēc virtuālā resursdatora faila rediģēšanas pabeigšanas restartējiet Apache pakalpojumu un, izmantojot HTTPS protokolu https: //gentoo.lan , novirziet savu pārlūkprogrammu uz savu domēnu.

$ sudo /etc/init.d/apache2 restart

Izmantojot šo procedūru, varat pievienot SSL vietnes ar saviem sertifikātiem un atslēgām, izmantojot Apache virtuālos saimniekus. Lai noņemtu SSL virtuālos saimniekus, komentējiet vai izdzēsiet tās direktorijas, kas ietvertas faila /etc/apache2/vhosts.d/00_default_ssl_vhosts.conf sadaļā .

3. darbība: iespējojiet CGI saskarni

CGI ( Common Gateway Interface ) tas ļauj Apache mijiedarboties ar ārējām programmām, kuras galvenokārt sastāv no Perl vai BASH skriptiem, kas var pievienot dinamisku saturu jūsu vietnei.

10. Pirms iespējojat CGI vārteju, pārliecinieties, vai Apache ir kompilēts ar USE CGI moduļu karodziņu atbalstu Portage make.conf failā: cgi cgid . Lai iespējotu GCI atbalstu Apache, atveriet failu /etc/conf.d/apache2 un pievienojiet CGI moduli rindā APACHE2_OPTS .

$ sudo nano /etc/conf.d/apache2

Pārliecinieties, ka šai rindai ir līdzīgs saturs.

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

11. Kad CGI moduļi ir iespējoti, atveriet vietnes definēšanas resursdatoru, kurā vēlaties iespējot CGI saskarni, un pievienojiet šādu saturu Virtual Host direktīvās.

<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. Ja jūsu DocumentRoot ( /var/www/gentoo.lan/ ) ceļā ir direktorija, kurā atrodas CGI skripti, varat iespējot tieši šo direktoriju dinamisko Perl vai Bash skriptu apkalpošanai.

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. Attiecībā uz SSI (servera puse ietver) pievienojiet + Iekļaut paziņojumu Opcijas un pievienojiet faila paplašinājumu .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. Lai pārbaudītu dažus vienkāršus .cgi un .pl skriptus Apache CGI vārtejā, izveidojiet šādus skriptus savā Virtual Host DocumentRoot (/var/www/gentoo. lan/).

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

Pievienojiet šādu Perl saturu.

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

Pievienojiet šo Bash saturu.

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

15. Kad faili ir izveidoti, padariet tos izpildāmus, restartējiet Apache dēmonu un norādiet pārlūkprogrammai uz šādiem URL.

$ 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

Tagad jūs varat pārveidot Gentoo par spēcīgu tīmekļa mitināšanas platformu ar precīziem iestatījumiem jūsu sistēmas veiktspējai un maksimālai kontrolei pār visu vidi.