Virtuaalisten isäntien luominen, SSL-varmenteiden ja avainten luominen ja CGI-yhdyskäytävän ottaminen käyttöön Gentoo Linuxissa


Viimeinen opetusohjelma LAMPin asentamisesta Gentoo Linuxiin käsitti vain perusasennusprosessin ilman Apache: lle käytettävissä olevia lisäasetuksia verkkotunnusten hallitsemiseksi.

Tämä opetusohjelma on tiukasti yhteydessä edelliseen Gentoo LAMP -sovellukseen ja siinä käsitellään LAMP -ympäristön lisäasetuksia, kuten Virtuaalisten isäntien luominen Apachessa, luominen SSL Sertifikaattitiedostot ja avaimet, ota suojattu SSL -protokolla käyttöön HTTP-tapahtumissa ja käytä Apache CGI-yhdyskäytävää , jotta voit suorittaa Perl tai Bash -skriptit verkkosivustollesi.

  1. Asenna LAMP Gentoo Linuxiin

Vaihe 1: Luo Apache-virtuaalipalvelimet

Tämä aihe käyttää väärennettyä verkkotunnusta - gentoo.lan -, joka on otettu käyttöön paikallisen isäntätiedoston kautta, ja verkkosivustotiedostot palvelevat osoitteesta /var/www/gentoo.lan - DocumentRoot -direktiivi ilman kelvollista DNS -tietokantaa osoittamaan, kuinka useita virtuaalisia isäntiä voidaan ottaa käyttöön Gentoon Apache-verkkopalvelimella.

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

$ 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 verkkotunnuksesi ping -komennolla, ja verkkotunnuksen tulisi vastata IP-osoitteellaan.

$ ping -c2 gentoo.lan

3. Apache-virtuaalipalvelinten aktivointiprosessi on melko yksinkertainen. Avaa vain Apache-oletusarvoinen virtuaalihostitiedosto, joka sijaitsee /etc/apache2/vhosts.d/ -polulla ja kirjoita uusi viimeinen -käsky ennen virtuaalisen isännän määritystä direktiivit. c

Sisältää mukautetut asetukset, kuten Palvelimen nimi ja DocumentRoot -polku. Käytä seuraavaa tiedostomallia uuden virtuaalipalvelimen oppaana ja lisää se 00_default_vhost.conf -tiedostoon (muille kuin SSL-verkkosivustoille).

$ 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 voit nähdä visualisoimalla tämän tiedostosisällön, tiedostoon on annettu paljon selityksiä ja se pitää myös localhost -virtuaalipalvelimen määritelmän - jota voit käyttää sitä oppaana.

4. Kun olet muokannut tiedostoa mukautetulla virtuaalipalvelimella, käynnistä Apache uudelleen asetusten soveltamiseksi ja varmista, että luot DocumentRoot -hakemiston, jos olet muuttanut tätä direktiiviä ja polkua ei ole oletusarvoisesti ( tapaus muutettiin muotoon /var/www/gentoo.lan ). Olen myös luonut pienen PHP-tiedoston verkkopalvelimen määritysten 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 virtuaalisen verkkotunnuksesi nimi http://gentoo.lan/info.php .

Tämän menettelyn avulla voit lisätä niin monta muuta kuin SSL-verkkosivustoa kuin haluat Apache Virtual Hosts -palvelun avulla, mutta varmista, että todellinen Internetiin päin oleva kone on, että olet rekisteröinyt verkkotunnuksesi ja käytät kelvollisia DNS-palvelintietueita.

Jos haluat poistaa virtuaalisen isännän, kommentoi tai poista sen 00_default_vhost.conf -tiedoston alla olevat ohjeet.

Vaihe 2: Luo SSL-varmenteet ja avaimet virtuaalisille palvelimille

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

6. Yksinkertaistaaksesi varmenteita ja avainten luomisprosessia käytä seuraavaa Bash-komentosarjaa, joka toimii komentona ja luo kaiken tarvitsemasi automaattisesti SSL-toimialueen nimi-asetuksilla.

Aloita luomalla Bash-komentosarja 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. Kirjoita verkkotunnuksesi nimi, jolle luot SSL-asetukset, ja täytä varmenne tarvittavilla tiedoilla, tärkein, yleinen nimi , käytä palvelimesi FQDN-nimeä.

Oletuspaikka, jossa kaikkia varmenteitasi ja avaimiasi 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 muille kuin SSL-virtuaalipalvelimille, mutta tällä kertaa muokkaamalla /etc/apache2/vhosts.d/00_default_ssl_vhosts.conf -tiedostoa hieman muuttamalla.

Avaa ensin tiedosto muokkausta varten ja tee seuraavat muutokset.

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

Lisää seuraava sisältö Kuuntele 443 -direktiivin alaisuuteen.

NameVirtualHost *:443

Käytä seuraavaa mallia uudelle virtuaalipalvelimelle ja liitä uusi SSL-varmenne + avaimen polku 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 ###

Virtuaalisten isäntien määritelmien on lopputtava ennen tätä kolmea viimeistä lausetta.

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

9. Kun olet suorittanut virtuaalisen isäntätiedoston muokkauksen, 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 varmenteillaan ja avaimillaan Apache Virtual Host -palvelinten avulla. Poistaaksesi SSL-virtuaalipalvelimet, kommentoi tai poista sen / alla olevat /etc/apache2/vhosts.d/00_default_ssl_vhosts.conf -tiedoston -alueen ohjearvot.

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

CGI ( Common Gateway Interface ), jonka avulla Apache voi olla vuorovaikutuksessa ulkoisten ohjelmien kanssa, ensisijaisesti Perl- tai BASH-komentosarjoista, jotka voivat lisätä dynaamista sisältöä verkkosivustoosi.

10. Ennen kuin otat CGI-yhdyskäytävän käyttöön, varmista, että Apache on käännetty KÄYTÄ CGI -moduuleilla, jotka tukevat Portagen make.conf -tiedostoa: cgi cgid . Ota Gache-tuki Apache-sovellukseen käyttöön avaamalla /etc/conf.d/apache2 -tiedosto ja liittämällä CGI-moduuli riville APACHE2_OPTS .

$ 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 ovat käytössä, avaa verkkosivustosi määrityspalvelin, jonka haluat ottaa käyttöön CGI-käyttöliittymän, ja lisää seuraava sisältö Virtual Host -direktiiveihin.

<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 DocumentRoot-polun sisällä ( /var/www/gentoo.lan/ ) on hakemisto, joka sisältää CGI-komentosarjoja, voit sallia juuri kyseisen hakemiston tarjoavan dynaamisia Perl- tai Bash-komentosarjoja.

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. Liitä SSI (palvelinpuoli sisältää) -kohdan + Sisältää -käsky Asetuksiin 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. Testataksesi yksinkertaisia .cgi ja .pl komentosarjoja Apache CGI -yhdyskäytävässä, luo seuraavat komentosarjat Virtual Host DocumentRoot (/var/www/gentoo. lan/).

$ 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";
}
$ 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ä suoritettava, 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, jossa on hienosäätöasetukset järjestelmän suorituskykyyn ja maksimaaliseen hallintaan koko ympäristössäsi.