Apache-harjoituksia
Tarkoituksena on pystyttää oppilaitoksen (yrityksen) www-palvelin, johon tulee niin oppilaitoksen (yrityksen) kuin oppilaiden (työntekijöiden) kotisivut. Mahdollistetaan salasanasuojattujen hakemistojen tekeminen, määritetään mukautetut virheilmoitukset, tarkastellaan palvelimelle pääsyn rajoittamista, tutkitaan miten virtualHost määritteet toimivat ja lopuksi tutkitaan miten saadaan helposti luotua raportteja sivustojen käytöstä webalizerin avulla.
Perustoimet
Asennus ja käynnistys
- Asenna Apache
yum install httpd
- Käynnistä Apache:
service httpd start
- Tarkista Apachen toimivuus selaimella (127.0.0.1 tai localhost)
- Oletussivun luominen:
Luo index.html /var/www/html/ hakemistoon: touch /var/www/html/index.html
- Kirjoita tekstieditorilla (vaikkapa mc:llä) sisältö. Tarkista toimivuus.
- Mahdollista index.htm ja index.php
/etc/httpd/conf/httpd.conf rivi 375
- Käyttäjien kotihakemiston käyttöönotto:
rivi 339: #UserDir disable (lisää risuaita) rivi 346: UserDir public_html (poista risuaita)
- Käynnistä Apache uudestaan:
service httpd restart
- Luo index.htm käyttäjän "oppilas" kotihakemistoon public_html nimiseen kansioon. Muuta kotihakemiston oikeuksiksi 711
Salasanasuojattujen hakemistojen tekeminen
- Kirjoita riviltä 383 alkaen seuraavat rivit
<Directory /home/oppilas/public_html/suojattu*> AllowOverride AuthConfig AuthUserFile /home/oppilas/public_html/.htpasswd AuthType Basic AuthName “Salasanaa vaativa hakemisto�? Require valid-user </Directory>
- Käynnistä httpd uudelleen
- Tee public_html hakemistoon suojattu niminen alihakemisto
- Tee suojattu hakemistoon index.htm tiedosto
- Luo .htpasswd tiedosto ja määritä siihen käyttäjä ja salasana:
htpasswd -c .htpasswd mulonlupa
- Muuta kyseinen tiedosto luettavaksi (chmod 644 .htpasswd)
- Testaa
Mukautetun virheilmoituksen tekeminen
- Mikäli käyttäjä painaa Cancel-painiketta salasanaa kysyttäessä, saa hän Authorization required virheilmoituksen (virhe 401). Muutetaan kyseinen ilmoitus toiseksi.
- Lisää riville 809 seuraava teksti
ErrorDocument 401 /eilupaa.htm
- Luo /var/www/html/eilupaa.htm tiedosto haluamillasi teksteillä
- Käynnistä Apache uudestaan
- Testaa
Palomuurin portin 80 avaaminen
Anna komento setup, siirry kohtaan firewall konfiguration ja valitse www. Vaihtoehtoisesti lisää tiedostoon /etc/sysconfig/iptables (ennen COMMIT-riviä) rivi:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
ja anna sen jälkeen komento: service iptables restart
Testaa (Kokeile naapurikoneesta)
- Rajoitetaan pääsy vain tietystä IP-osoitteesta
- Lisää riville 391 alkaen tekstit:
<Directory /home/oppilas/*> Order deny.allow Deny from all Allow from sallittavan.koneen.ip.osoite </Directory>
- Käynnistä httpd uudestaan
- Testaa
- Kommentoi edellä tekemäsi muutokset
- Käynnistä httpd uudestaan
- Testaa
VirtualHost
- Lisää httpd.confin loppuun
<VirtualHost apache.palvelimen.ip.osoite> ServerAdmin webmaster@wwwmalli.jee DocumentRoot /home/oppilas/public_html ServerName wwwmalli.jee ServerAlias www.wwwmalli.jee ErrorLog logs/wwwmalli.jee-error_log CustomLog logs/wwwmalli.jee-access_log common </VirtualHost>
- sekä muuta:
# Use name-based virtual hosting. NameVirtualHost apache.palvelimen.ip.osoite
- Käynnistä Apache uudelleen
- Lisää asiakaskoneen /etc/hosts tiedostoon rivi:
apache.palvelimen.ip.osoite wwwmalli.jee
- Testaa toimivuus
Webalizer statistiikka
Asenna Webalizer
yum install webalizer
- Anna komento webalizer
- Käynnistä Apache uudestaan
- Testaa osoitteessa 127.0.0.1/usage
- Jos haluat mahdollistaa tilastojen näkymisen muillekin kuin 127.0.0.1:lle, niin poista rajoitukset tiedostosta /etc/httpd/conf.d/webalizer.conf
- Käynnistä Apache uudestaan
- Testaa osoitteessa apache.palvelimen.ip.osoite/usage
- Määritä webalizer automaattiseksi
- Anna komento rootin kotihakemistossa:
crontab -e ja lisää rivi 30 * * * * webalizer
(Editori on vim, jossa insert mahdollistaa kirjoitustilan, esc lopettaa kirjoitustilan, :w tallentaa ja :q lopettaa)
- Määritä Apache käynnistymään automaattisesti. Anna komento:
chkconfig --level 35 httpd on (huomaa kaksi viivaa ennen level sanaa).
SELinux
Jos SELinux käytössä joudut tekemään erilaisia muutoksia määrityksiin. Alla yksi esimerkki
- Käytäjien kotihakemistoja varten tarvittavat muutokset:
yum install system-config-securitylevel
- Anna komento:
system-config-securitylevel
- Tarkista, että rasti kohdassa Allow HTTPD to read home directories
- Anna komento:
chcon -t httpd_sys_content_t /home/oppilas/public_html
- Tee sama index.htm tiedostolle
- Lisätietoja osoitteesta: