Najczęściej używaną na świecie usługa sieciową udostępniającą strony WWW jest Apache. Apache jest solidnym i stabilnym serwerem stron www. W zakresie jego możliwości jest również możliwość zastosowania protokołu SSL w celu tworzenie bezpiecznych stron WWW.
INSTALACJA SERWERA APACHE
Krok 1 - Instalacja pakietu serwera
yum install -y httpd mod_ssl
Krok 2 - Sprawdzenie poprawności instalacji
[root@RHEL01 vsftpd]# rpm -qa | grep http
httpd-2.2.15-15.el6.i686
httpd-tools-2.2.15-15.el6.i686
Krok 3 - Ustawienie by usługa uruchamiała się automatycznie z systemem
# chkconfig httpd on
Krok 4 - Weryfikacja wprowadzonych zmian
[root@RHEL01 vsftpd]# chkconfig httpd --list
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
KONFIGURACJA SERWERA APACHE
Jeżeli serwer został zainstalowany można zająć się konfiguracją plików i katalogów. Istnieją trzy istotne lokalizacje związane z serwerem apache:
/etc/httpd/conf/httpd.conf - główny plik konfiguracyjny
/var/log/httpd - Logi związane z web serwerem
/usr/lib64/httpd/modules - Moduły serwera Apache
Główny plik konfiguracyjny zawiera mnóstwo opcji i trzeba poświęcić chwilę czasu by się z nim zapoznać i nauczyć używać. Został on podzielony na 3 odpowiednie sekcje i opatrzony komentarzami.
# The configuration directives are grouped into three basic sections:
# 1. Directives that control the operation of the Apache server process as a
# whole (the ‘global environment’).
# 2. Directives that define the parameters of the ‘main’ or ‘default’ server,
# which responds to requests that aren’t handled by a virtual host.
# These directives also provide default values for the settings
# of all virtual hosts.
# 3. Settings for virtual hosts, which allow Web requests to be sent to
# different IP addresses or hostnames and have them handled by the
# same Apache server process.
Kilka opcji dotyczących ustawień globalnych
ServerRoot - Definiuje gdzie znajdują sie pliki konfiguracyjne
Timeout - Ustawia czas po jakim następuję zerwanie połączenia
Listen - Ustawia domyślny port nasłuchu (standardowo 80)
User - Ustawia z jakiego użytkownika serwer zostaje uruchomiony
Group - Identyfikuje grupę użytkowników serwera
LoadModule - Definiuje moduły uruchamiane przy starcie
Poniższe opcje są już ustawione ale warto wiedzieć co oznaczają:
DecumentRoot - Lokalizacja plików stron WWW
ServerName - Ustawienia nazwy serwera, adresu IP i nr portu
Domyślnie lokalizacją plików strony WWW jest katalog :
/var/www/html
To również można zmienić w pliku konfiguracyjnym odszukujemy wpis :
<Directory “/var/www/html”>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Opcja ta definiuje miejsce przechowywania plików stron oraz jej domyślną strukturę. Jeżeli postanowimy zmienić to ustawienie trzeba wykonać zmianę :
DocumentRoot “/var/www/html”
By dowiedzieć się czy ustawienia pliku konfiguracyjnego są poprawne możemy wydać polecenie:
# service httpd configtest
Syntax OK
By zrestartować usługę wydajemy polecenie :
# service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
Jeżeli chcemy zaczytać nowe pliki stron WWW
# service httpd reload
Reloading httpd: [ OK ]
KONFIGURACJA FIREWALL I SELINUX DLA APACHE
Aby serwer stron www byl w pełni funkcjonalny należy dokonać zmian w zabezpieczeniach systemu. Po pierwsze należy otworzyć ruch na porcie 80.
Krok 1 - Otworzenie ruchu dla portu 80 w iptables
iptables -I INPUT 5 -p tcp -m tcp --dport 80 -j ACCEPT
Krok 2 - Zapis ustawień iptables
[root@RHEL01 vsftpd]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[OK]
Krok 3 - Restart usługi iptables
[root@RHEL01 vsftpd]# service iptables restart
iptables: Flushing firewall rules: [ OK ]
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Unloading modules: [ OK ]
iptables: Applying firewall rules: [ OK ]
iptables: Loading additional modules: nf_conntrack_ftp [ OK ]
Teraz zobaczmy ustawienia SELinux dla usługi Apache:
httpd_can_network_relay - Zezwala na przekazywanie
httpd_can_network_connect_db - Umożliwia połączenie z bazami danych
httpd_use_gpg - Zezwala na użycie gpg w gpg-web domain
httpd_enable_cgi - Wsparcie CGI
httpd_use_cifs - Zezwala na dostęp CIF
allow_httpd_mod_auth_pam - Zezwala na użycie mod_auth-pam
allow_httpd_anon_write - Zezwala na modyfikacje publicznych plików
httpd_enables_homedirs - Zezwala na odczyt katalogów domowych przez httpd
allow_httpd_sys_scripts_anon_write - Zezwolenie skryptom apache pisania w katalogu publicznym
http_dbus_avahi - Zezwolenie na komunikacje z usługami avahi i dbus
httpd_unified - Umożliwia uchwyt do wszystkich treści plików.
Jeżeli uporaliśmy się z iptables oraz SELinux można zobaczyć jak to wszystko działa
Krok 1 - Utwórzmy katalogi stron WWW
# mkdir /var/www/site1
# mkdir /var/www/site2
Krok 2 - Sprawdzenie aktualnego kontekstu plików
# ls -Z /var/www/
drwxr-xr-x. root root system_u:object_r:httpd_sys_script_exec_t:s0 cgi-bin
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 error
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 html
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 icons
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_content_t:s0 site1
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_content_t:s0 site2
Krok 3 - Zmiana kontekstu dla użytkowników i domeny
[root@RHEL01 www]# chcon -Rvu system_u site1
changing security context of `site1'
[root@RHEL01 www]# chcon -Rvu system_u site2
changing security context of `site2'
Krok 4 - sprawdzenie zmian
# ls -Z /var/www/
drwxr-xr-x. root root system_u:object_r:httpd_sys_script_exec_t:s0 cgi-bin
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 error
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 html
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 icons
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 site1
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 site2
Przydała by się informacja odnośnie uruchamiania kilku stron na jednym serwerze + konfiguracja DNS-ów.
OdpowiedzUsuń