Kuunda Wapangishi Pekee, Tengeneza Vyeti & Vifunguo vya SSL na Wezesha Lango la CGI katika Gentoo Linux


Mafunzo ya mwisho kuhusu Kusakinisha LAMP katika Gentoo Linux yalishughulikia mchakato msingi wa usakinishaji bila mipangilio ya ziada inayopatikana kwa Apache ili kudhibiti vikoa vyako vyema.

Mafunzo haya yameunganishwa kikamilifu na ya awali kwenye Gentoo LAMP na yanajadili mipangilio ya ziada ya LAMP mazingira kama vile kuunda Virtual Hosts kwenye Apache, tengeneza SSL Faili za Cheti na Funguo, washa itifaki salama ya SSL kwenye shughuli za HTTP na utumie Apache CGI Gateway ili uweze kuendesha Perl au Bash hati juu ya tovuti yako.

  1. Sakinisha LAMP katika Gentoo Linux

Hatua ya 1: Unda Majeshi ya Apache Virtual

Mada hii inatumia jina ghushi la kikoa - gentoo.lan - iliyowezeshwa kupitia faili ya wapangishi wa ndani, na faili za tovuti zinazotolewa kutoka /var/www/gentoo.lan - DocumentRoot maagizo, bila rekodi halali ya DNS, ili kuonyesha jinsi Vipangishi vingi vya Virtual vinaweza kuwashwa kwenye Gentoo kwa kutumia Apache web Server.

1. Kuanza, fungua faili ya wapangishi wa Gentoo kwa uhariri na uongeze laini mpya yenye jina la kikoa chako.

$ sudo nano /etc/hosts

Mwisho wa faili fanya ionekane sawa na hii.

127.0.0.1 localhost gentoo
192.168.1.13  gentoo.lan

2. Jaribu kikoa chako ghushi kwa amri ya ping na kikoa kijibu kwa anwani yake ya IP.

$ ping -c2 gentoo.lan

3. Mchakato wa kuwezesha Apache Virtual Hosts ni rahisi sana. Fungua tu faili ya seva pangishi chaguomsingi ya Apache inayopatikana kwenye /etc/apache2/vhosts.d/ njia na kabla ya taarifa ya ya mwisho, weka ufafanuzi wako mpya wa Mpangishi Mtandaoni ulioambatanishwa chini ya maagizo. c

Ina mipangilio yako maalum kama vile ServerName na DocumentRoot njia. Tumia kiolezo cha faili kifuatacho kama mwongozo wa Seva pangishi mpya na uijumuishe kwenye 00_default_vhost.conf faili (kwa tovuti zisizo za 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>

Kama unavyoweza kuona kwa kuibua maudhui ya faili hii, faili inatolewa maoni mengi kwa maelezo na pia huweka mwenyeji wa ndani ufafanuzi wa Mpangishi pepe – ambao unaweza kuitumia kama mwongozo.

4. Baada ya kumaliza kuhariri faili na Seva yako maalum ya Virtual, anzisha tena Apache ili kutumia mipangilio na uhakikishe kuwa umeunda saraka ya DocumentRoot ikiwa umebadilisha maagizo haya na njia haipo kwa chaguo-msingi ( in. kesi hii ilibadilishwa hadi /var/www/gentoo.lan). Pia nimeunda faili ndogo ya PHP ili kujaribu usanidi wa seva ya wavuti.

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

5. Ili kukithibitisha, fungua kivinjari na uelekeze jina la kikoa chako pepe http://gentoo.lan/info.php.

Kwa kutumia utaratibu huu unaweza kuongeza tovuti nyingi zisizo za SSL upendavyo kwa kutumia Apache Virtual Hosts, lakini kwa mashine halisi inayoangazia Mtandao hakikisha kuwa umesajili vikoa vyako na unatumia rekodi halali za seva ya DNS.

Ili kuondoa Seva Pekee, toa tu maoni au ufute maagizo yake yaliyoambatanishwa chini ya kwenye 00_default_vhost.conf faili.

Hatua ya 2: Tengeneza Vyeti na Vifunguo vya SSL kwa Wapaji Pekee

SSL ni itifaki ya kriptografia inayotumika kubadilishana taarifa kupitia chaneli salama ya mawasiliano katika Mtandao au ndani ya mitandao kwa kutumia Vyeti na Funguo linganifu/asymmetric.

6. Ili kurahisisha mchakato wa kuunda Vyeti na funguo tumia hati ifuatayo ya Bash inayofanya kazi kama amri na kuunda kiotomatiki yote unayohitaji kwa mipangilio ya jina la kikoa chako cha SSL.

Kwanza anza kwa kuunda hati ya Bash kwa kutumia amri ifuatayo.

$ sudo nano /usr/local/bin/apache_gen_ssl

Ongeza yaliyomo kwenye faili ifuatayo.

#!/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. Baada ya faili kuundwa, ambatisha idhini ya kutekeleza juu yake na uiendeshe ili kutoa Vifunguo na Vyeti vya SSL.

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

Unapoiendesha kwa mara ya kwanza, itakuuliza uweke jina la kikoa chako. Weka kikoa chako ambacho unatengenezea mipangilio ya SSL na ujaze Cheti kwa taarifa inayohitajika, lililo muhimu zaidi, Jina la Kawaida, tumia seva yako ya FQDN.

Mahali chaguomsingi ambapo Vyeti na Funguo zako zote zimepangishwa kwa kutumia mbinu hii ni /etc/apache2/ssl/.

8. Sasa ni wakati wa kuunda gentoo.lan Sawa na Mpangishaji Mtandaoni wa SSL. Tumia mbinu sawa na kwa Wapangishi wasio wa SSL Virtual lakini wakati huu ukihariri faili ya /etc/apache2/vhosts.d/00_default_ssl_vhosts.conf na mabadiliko kidogo.

Kwanza fungua faili kwa ajili ya kuhariri na ufanye mabadiliko yafuatayo.

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

Chini ya Sikiliza 443 maagizo ongeza maudhui yafuatayo.

NameVirtualHost *:443

Tumia kiolezo kifuatacho kwa Seva mpya ya Mtandaoni na uongeze Cheti kipya cha SSL + Njia ya Ufunguo na majina.

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

Ufafanuzi wa Majeshi Mtandao lazima umalizike kabla ya taarifa hizi tatu za mwisho.

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

9. Baada ya kumaliza kuhariri faili ya seva pangishi, anzisha upya huduma ya Apache na uelekeze kivinjari chako kwenye kikoa chako kwa kutumia itifaki ya HTTPS https://gentoo.lan.

$ sudo /etc/init.d/apache2 restart

Kwa kutumia utaratibu huu, unaweza kuongeza tovuti za SSL zilizo na Vyeti na Funguo zao kwa kutumia Apache Virtual Hosts. Ili kuondoa Wapangishi wa Mtandaoni wa SSL toa maoni au ufute maagizo yake yaliyoambatanishwa chini ya kwenye faili ya /etc/apache2/vhosts.d/00_default_ssl_vhosts.conf.

Hatua ya 3: Washa Kiolesura cha CGI

CGI (Kiolesura cha Kawaida cha Lango) huruhusu Apache kuingiliana na programu za nje, msingi unaojumuisha hati za Perl au BASH, ambazo zinaweza kuongeza maudhui yanayobadilika kwenye tovuti yako.

10. Kabla ya kuwezesha lango la CGI hakikisha Apache imeundwa kwa msaada wa moduli za TUMIA CGI kwenye faili ya Portage make.conf: cgi cgid. Ili kuwezesha usaidizi wa GCI kwa Apache fungua faili ya /etc/conf.d/apache2 na uongeze moduli ya CGI kwenye mstari wa APACHE2_OPTS.

$ sudo nano /etc/conf.d/apache2

Hakikisha kuwa mstari huu una maudhui sawa.

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

11. Baada ya moduli za CGI kuwashwa, fungua seva pangishi ya ufafanuzi wa tovuti unayotaka kuwezesha kiolesura cha CGI na uongeze maudhui yafuatayo ndani ya maagizo ya Virtual Host.

<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. Ikiwa una saraka ndani ya njia yako ya DocumentRoot (/var/www/gentoo.lan/) ambayo ina hati za CGI unaweza kuwezesha saraka hiyo tu kutoa hati dhabiti za Perl au Bash.

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. Kwa SSI (Upande wa Seva Unajumuisha) ongeza +Inajumuisha taarifa kwenye Chaguo na uongeze .shtml kiendelezi cha faili.

<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. Ili kujaribu hati rahisi za .cgi na .pl kwenye lango la Apache CGI unda hati zifuatazo ndani yako Virtual Host DocumentRoot (/var/www/gentoo. lan/).

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

Ongeza yaliyomo kwenye Perl.

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

Ongeza maudhui yafuatayo ya Bash.

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

15. Baada ya faili kuundwa, zifanye zitekelezwe, anzisha upya daemon ya Apache na uelekeze kivinjari chako kwa URL zifuatazo.

$ 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

Sasa unaweza kubadilisha Gentoo kuwa jukwaa dhabiti la kukaribisha Wavuti lenye mipangilio mizuri ya urekebishaji kwa utendakazi wa mfumo wako na udhibiti wa juu zaidi wa mazingira yako yote.