Gentoo Linux'ta Sanal Ana Bilgisayarlar Oluşturma, SSL Sertifikaları ve Anahtarlar Oluşturma ve CGI Ağ Geçidini Etkinleştirme


Gentoo Linux'ta LAMP Kurulumu ile ilgili son eğitim, Apache'nin etki alanlarınızı daha iyi kontrol edebilmesi için ek ayarlar olmadan sadece temel kurulum sürecini kapsıyordu.

Bu eğitim Gentoo LAMP'teki önceki eğitimle sıkı bir şekilde bağlantılıdır ve LAMP ortamı için Apache'de Sanal Ana Bilgisayarlar oluşturma, SSL Sertifika dosyaları ve Anahtarları, HTTP işlemlerinde güvenli SSL protokolünü etkinleştirin ve Apache CGI Ağ Geçidini kullanın, böylece Perl'i çalıştırabilirsiniz veya Web siteniz üzerinde Bash komut dosyaları.

Gereksinimler

  1. LAMP'ı Gentoo Linux'a yükleyin

1. Adım: Apache Sanal Konakları Oluşturun

Bu konu, /var/www/gentoo.lanDocumentRoot adresinden sunulan web sitesi dosyaları ile yerel ana makine dosyası aracılığıyla etkinleştirilen sahte bir alan adı (gentoo.lan) kullanıyor yönergesi, geçerli bir DNS kaydı olmadan, Apache web Sunucusu kullanılarak Gentoo'da birden fazla Sanal Ana Bilgisayarın nasıl etkinleştirilebileceğini göstermek için.

1. Başlamak için, düzenlemek üzere Gentoo hosts dosyasını açın ve alan adınızı içeren yeni bir satır ekleyin.

sudo nano /etc/hosts

Dosyanın sonunda buna benzer görünmesini sağlayın.

127.0.0.1 localhost gentoo
192.168.1.13  gentoo.lan

2. Sahte alan adınızı ping komutuyla test edin; alan adı IP adresiyle yanıt vermelidir.

ping -c2 gentoo.lan

3. Apache Sanal Konaklarını etkinleştirme işlemi oldukça basittir. /etc/apache2/vhosts.d/ yolunda bulunan Apache varsayılan sanal konak dosyasını açın ve son ifadesinden önce, < altında yer alan yeni Sanal Konak tanımınızı girin. direktifleri. C

SunucuAdı ve DocumentRoot yolu gibi özel ayarlarınızı içerir. Yeni bir Sanal Ana Bilgisayar için aşağıdaki dosya şablonunu kılavuz olarak kullanın ve onu 00_default_vhost.conf dosyasına ekleyin (SSL olmayan web siteleri için).

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>

Bu dosya içeriğini görselleştirdiğinizde görebileceğiniz gibi, dosya açıklamalarla birlikte oldukça fazla yorumlanmıştır ve aynı zamanda bir kılavuz olarak kullanabileceğiniz localhost Sanal Ana Bilgisayar tanımını da tutmaktadır.

4. Dosyayı özel Sanal Sunucunuzla düzenlemeyi bitirdikten sonra, ayarları uygulamak için Apache'yi yeniden başlatın ve bu yönergeyi değiştirdiyseniz ve yolun açılmaması ihtimaline karşı DocumentRoot dizini oluşturduğunuzdan emin olun. 'varsayılan olarak mevcut değildir (bu durumda /var/www/gentoo.lan olarak değiştirilmiştir). Ayrıca web sunucusu yapılandırmalarını test etmek için küçük bir PHP dosyası da oluşturdum.

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

5. Bunu doğrulamak için bir tarayıcı açın ve sanal alan adınızı http://gentoo.lan/info.php olarak yönlendirin.

Bu prosedürü kullanarak, Apache Sanal Konaklarını kullanarak istediğiniz sayıda SSL olmayan web sitesi ekleyebilirsiniz, ancak gerçek bir İnternet'e bakan makine için, alan adlarınızın kayıtlı olduğundan ve geçerli DNS sunucu kayıtlarını kullandığınızdan emin olun.

Bir Sanal Ana Bilgisayarı kaldırmak için, 00_default_vhost.conf dosyasında altında yer alan yönergelerini yorumlayın veya silin.

Adım 2: Sanal Konaklar için SSL Sertifikaları ve Anahtarlar Oluşturun

SSL, Sertifikalar ve simetrik/asimetrik Anahtarlar kullanılarak İnternet'teki veya ağ içindeki güvenli bir iletişim kanalı üzerinden bilgi alışverişinde bulunmak için kullanılan bir şifreleme protokolüdür.

6. Sertifikaları ve anahtarları oluşturma sürecini basitleştirmek için, komut görevi gören ve SSL alan adı ayarlarınızla ihtiyacınız olan her şeyi otomatik olarak oluşturan aşağıdaki Bash komut dosyasını kullanın.

Öncelikle aşağıdaki komutu kullanarak Bash betiği oluşturarak başlayın.

sudo nano /usr/local/bin/apache_gen_ssl

Aşağıdaki dosya içeriğini ekleyin.

#!/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. Dosya oluşturulduktan sonra, dosyaya yürütme izinlerini ekleyin ve SSL Anahtarları ve Sertifikaları oluşturmak için dosyayı çalıştırın.

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

İlk çalıştırdığınızda sizden alan adınızı girmenizi isteyecektir. SSL ayarlarını oluşturduğunuz alan adınızı girin ve Sertifikayı gerekli bilgilerle doldurun; en önemlisi Ortak Ad, sunucunuzun FQDN'sini kullanın.

Bu yöntem kullanılarak tüm Sertifikalarınızın ve Anahtarlarınızın barındırıldığı varsayılan konum /etc/apache2/ssl/'dir.

8. Şimdi gentoo.lan Sanal Ana Bilgisayar SSL eşdeğerini oluşturmanın zamanı geldi. SSL olmayan Sanal Ana Bilgisayarlarla aynı yöntemi kullanın ancak bu sefer /etc/apache2/vhosts.d/00_default_ssl_vhosts.conf dosyasını küçük değişikliklerle düzenleyin.

Öncelikle dosyayı düzenlemek için açın ve aşağıdaki değişiklikleri yapın.

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

Listen 443 direktifinin altına aşağıdaki içeriği ekleyin.

NameVirtualHost *:443

Yeni bir Sanal Ana Bilgisayar için aşağıdaki şablonu kullanın ve yeni SSL Sertifikası + Anahtar yolu ve adlarını ekleyin.

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

Sanal Konak tanımları bu son üç ifadeden önce sona ermelidir.

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

9. Sanal Ana Bilgisayar dosyasını düzenlemeyi bitirdikten sonra Apache hizmetini yeniden başlatın ve tarayıcınızı https://gentoo.lan HTTPS protokolünü kullanarak alanınıza yönlendirin.

sudo /etc/init.d/apache2 restart

Bu prosedürü kullanarak, Apache Sanal Konaklarını kullanarak SSL web sitelerini kendi Sertifikaları ve Anahtarları ile ekleyebilirsiniz. SSL Sanal Ana Bilgisayarlarını kaldırmak için, /etc/apache2/vhosts.d/00_default_ssl_vhosts.conf dosyasında altında yer alan yönergeleri yorumlayın veya silin.

3. Adım: CGI Arayüzünü Etkinleştirin

CGI (Ortak Ağ Geçidi Arayüzü), Apache'nin, web sitenize dinamik içerik ekleyebilen, birincil olarak Perl veya BASH betiklerinden oluşan harici programlarla etkileşime girmesine olanak tanır.

10. CGI ağ geçidini etkinleştirmeden önce Apache'nin Portage make.conf dosyasında USE CGI modül bayrakları desteğiyle derlendiğinden emin olun: cgi cgid . Apache için GCI desteğini etkinleştirmek için /etc/conf.d/apache2 dosyasını açın ve CGI modülünü APACHE2_OPTS satırına ekleyin.

sudo nano /etc/conf.d/apache2

Bu satırın benzer içeriğe sahip olduğundan emin olun.

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

11. CGI modülleri etkinleştirildikten sonra, CGI arayüzünü etkinleştirmek istediğiniz web sitesi tanım ana makinenizi açın ve aşağıdaki içeriği Sanal Ana Bilgisayar yönergelerinin içine ekleyin.

<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. DocumentRoot (/var/www/gentoo.lan/) yolunuzda CGI betiklerini barındıran bir dizin varsa, dinamik Perl sunması için yalnızca bu dizini etkinleştirebilirsiniz. veya Bash komut dosyaları.

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 (Sunucu Tarafı İçeriği) için Seçenekler'e +Includes ifadesini ekleyin ve .shtml dosya uzantısını ekleyin.

<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. Apache CGI ağ geçidinde bazı basit .cgi ve .pl komut dosyalarını test etmek için Sanal Ana Bilgisayar DocumentRoot'unuzun () içinde aşağıdaki komut dosyalarını oluşturun. /var/www/gentoo.lan/).

Perl Komut Dosyası
sudo nano /var/www/gentoo.lan/env.pl

Aşağıdaki Perl içeriğini ekleyin.

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

Aşağıdaki Bash içeriğini ekleyin.

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

15. Dosyalar oluşturulduktan sonra onları çalıştırılabilir hale getirin, Apache arka plan programını yeniden başlatın ve tarayıcınızı aşağıdaki URL'lere yönlendirin.

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

Artık Gentoo'yu, sistem performansınız için ince ayar ayarları ve tüm ortamınız üzerinde maksimum kontrol ile güçlü bir Web barındırma platformuna dönüştürebilirsiniz.