Luo virtuaalisia isäntiä, luo SSL-varmenteita ja -avaimia ja ota CGI-yhdyskäytävä käyttöön Gentoo Linuxissa


Viimeinen opetusohjelma LAMP:n asentamisesta Gentoo Linuxiin käsitteli juuri perusasennuksen ilman, että Apache olisi voinut hallita verkkotunnuksiasi paremmin.

Tämä opetusohjelma liittyy tiukasti edelliseen Gentoo LAMP -ohjelmaan ja käsittelee LAMP-ympäristön lisäasetuksia, kuten Virtual Hosts -palvelimen luomista Apachessa, luomista >SSL Varmennetiedostot ja -avaimet, ota suojattu SSL-protokolla käyttöön HTTP-tapahtumissa ja käytä Apache CGI Gateway -yhdyskäytävää, jotta voit suorittaa Perlin tai Bash-skriptit verkkosivustosi kautta.

Vaatimukset

  1. Asenna LAMP Gentoo Linuxiin

Vaihe 1: Luo Apache Virtual Hosts

Tämä aihe käyttää väärennettyä verkkotunnuksen nimeä – gentoo.lan –, joka on otettu käyttöön paikallisen hosts-tiedoston kautta, ja verkkosivuston tiedostot toimitetaan osoitteesta /var/www/gentoo.lanDocumentRoot .

1. Aloita avaamalla Gentoo hosts -tiedosto muokkausta varten ja lisäämällä uusi rivi verkkotunnuksesi nimellä.

sudo nano /etc/hosts

Tee tiedoston lopusta samanlainen kuin tämä.

127.0.0.1 localhost gentoo
192.168.1.13  gentoo.lan

2. Testaa väärennettyä verkkotunnusta ping-komennolla, niin verkkotunnuksen pitäisi vastata IP-osoitteellaan.

ping -c2 gentoo.lan

3. Apache Virtual Hostsin aktivointiprosessi on melko yksinkertainen. Avaa vain Apachen oletusarvoinen virtuaalipalvelintiedosto, joka sijaitsee polussa /etc/apache2/vhosts.d/ ja ennen viimeistä -lausetta, kirjoita uusi Virtual Host -määrittelysi kohdan direktiivit. c

Sisältää mukautetut asetuksesi, kuten ServerName ja DocumentRoot polun. Käytä seuraavaa tiedostomallia oppaana uudelle Virtual Hostille ja sisällytä se 00_default_vhost.conf-tiedostoon (muille kuin SSL-sivustoille).

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>

Kuten näet tämän tiedoston sisällön visualisoinnista, tiedostoa on kommentoitu runsaasti selityksillä ja se säilyttää myös localhost Virtual Host -määrityksen – jota voit käyttää oppaana.

4. Kun olet muokannut tiedostoa mukautetulla virtuaalipalvelimellasi, käynnistä Apache uudelleen ottaaksesi asetukset käyttöön ja varmista, että luot DocumentRoot-hakemiston, jos olet muuttanut tätä ohjetta ja polku 'ei ole oletuksena olemassa (tässä tapauksessa muutettiin muotoon /var/www/gentoo.lan). Olen myös luonut pienen PHP-tiedoston verkkopalvelinkokoonpanojen testaamiseksi.

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

5. Vahvista se avaamalla selain ja osoittamalla sille virtuaalinen verkkotunnuksesi http://gentoo.lan/info.php.

Tämän menettelyn avulla voit lisätä niin monta ei-SSL-verkkosivustoa kuin haluat Apache Virtual Hosts -palvelun avulla, mutta todellisessa Internetiin päin olevassa koneessa varmista, että verkkotunnuksesi on rekisteröity ja käytät kelvollisia DNS-palvelintietueita.

Voit poistaa virtuaalipalvelimen kommentoimalla tai poistamalla sen -kohdan alla olevat käskyt 00_default_vhost.conf-tiedostosta.

Vaihe 2: Luo SSL-sertifikaatit ja -avaimet virtuaalisille koneille

SSL on salausprotokolla, jota käytetään tietojen vaihtamiseen suojatun viestintäkanavan kautta Internetissä tai sisäverkoissa käyttämällä varmenteita ja symmetrisiä/epäsymmetrisiä avaimia.

6. Sertifikaattien ja avainten luontiprosessin yksinkertaistamiseksi käytä seuraavaa Bash-komentosarjaa, joka toimii komentona ja luo automaattisesti kaiken tarvitsemasi SSL-verkkotunnuksen nimiasetuksissa.

Aloita luomalla Bash-skripti seuraavalla komennolla.

sudo nano /usr/local/bin/apache_gen_ssl

Lisää seuraava tiedostosisältö.

#!/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. Kun tiedosto on luotu, liitä siihen suoritusoikeudet ja suorita se SSL-avainten ja -varmenteiden luomiseksi.

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

Kun suoritat sen ensimmäisen kerran, sinua pyydetään antamaan verkkotunnuksesi nimi. Anna verkkotunnuksesi nimi, jolle luot SSL-asetukset, ja täytä varmenne vaadituilla tiedoilla. Tärkein, Yleinen nimi, käytä palvelimesi FQDN:ää.

Oletussijainti, jossa kaikki sertifikaatit ja avaimet isännöidään tällä menetelmällä, on /etc/apache2/ssl/.

8. Nyt on aika luoda gentoo.lan Virtual Host SSL -vastaava. Käytä samaa menetelmää kuin ei-SSL-virtuaalipalvelimet, mutta tällä kertaa muokkaat /etc/apache2/vhosts.d/00_default_ssl_vhosts.conf-tiedostoa pienin muutoksin.

Avaa ensin tiedosto muokkausta varten ja tee seuraavat muutokset.

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

Lisää seuraava sisältö Listen 443 -käskyyn.

NameVirtualHost *:443

Käytä seuraavaa mallia uudelle virtuaalipalvelimelle ja liitä uusi SSL-sertifikaatti + avainpolku ja nimet.

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

Virtual Hosts -määritelmien tulee päättyä ennen näitä kolmea viimeistä lauseketta.

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

9. Kun olet muokannut Virtual Host -tiedostoa, käynnistä Apache-palvelu uudelleen ja ohjaa selaimesi verkkotunnukseesi käyttämällä HTTPS-protokollaa https://gentoo.lan.

sudo /etc/init.d/apache2 restart

Tämän menettelyn avulla voit lisätä SSL-verkkosivustoja omilla varmenteilla ja avaimilla käyttämällä Apache Virtual Hostsia. Poistaaksesi SSL-virtuaalipalvelimet kommentoimalla tai poistamalla sen käskyt, jotka on sisällytetty tiedoston /etc/apache2/vhosts.d/00_default_ssl_vhosts.conf kohtaan .

Vaihe 3: Ota CGI-käyttöliittymä käyttöön

CGI (Yleinen yhdyskäytäväliittymä) antaa Apachen olla vuorovaikutuksessa ulkoisten ohjelmien kanssa, jotka koostuvat ensisijaisesti Perl- tai BASH-skripteistä, jotka voivat lisätä dynaamista sisältöä verkkosivustollesi.

10. Ennen kuin otat CGI-yhdyskäytävän käyttöön, varmista, että Apache on käännetty USE CGI-moduulien lippujen tuella Portagen make.conf-tiedostossa: cgi cgid . Ota GCI-tuki käyttöön Apachelle avaamalla /etc/conf.d/apache2-tiedosto ja liittämällä CGI-moduuli APACHE2_OPTS-riville.

sudo nano /etc/conf.d/apache2

Varmista, että tällä rivillä on samanlainen sisältö.

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

11. Kun CGI-moduulit on otettu käyttöön, avaa verkkosivustosi määrityspalvelin, jonka CGI-käyttöliittymän haluat ottaa käyttöön, ja lisää seuraava sisältö Virtual Host -käskyihin.

<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. Jos sinulla on DocumentRoot-polussasi (/var/www/gentoo.lan/) hakemisto, joka sisältää CGI-komentosarjat, voit ottaa vain kyseisestä hakemistosta käyttöön dynaamisen Perlin tai Bash-skriptit.

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:lle (Server Side Includes) liitä +Includes-lauseke kohtaan Options ja lisää .shtml-tiedostotunniste.

<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. Jos haluat testata joitain yksinkertaisia .cgi- ja .pl-skriptejä Apache CGI -yhdyskäytävässä, luo seuraavat komentosarjat Virtual Host DocumentRootissa ( /var/www/gentoo.lan/).

Perl-skripti
sudo nano /var/www/gentoo.lan/env.pl

Lisää seuraava Perl-sisältö.

#!/usr/bin/perl
print "Content-type: text/html\n\n"; foreach my $keys (sort keys %ENV) { print "$keys =
$ENV{$keys}<br/>\n";
}
Bash-skripti
sudo nano /var/www/gentoo.lan/run.cgi

Lisää seuraava Bash-sisältö.

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

15. Kun tiedostot on luotu, tee niistä suoritettavia, käynnistä Apache-daemon uudelleen ja osoita selaimesi seuraaviin URL-osoitteisiin.

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

Nyt voit muuttaa Gentoon tehokkaaksi web-hosting-alustaksi hienosäätämällä asetuksia järjestelmäsi suorituskykyä ja maksimaalista koko ympäristöäsi varten.