Ero sivun ”Apache2” versioiden välillä
Rivi 176: | Rivi 176: | ||
Tämä Apachen lisäosa estää DDOS (palvelunestohyökkäykset) webbipalvelimeen. | Tämä Apachen lisäosa estää DDOS (palvelunestohyökkäykset) webbipalvelimeen. | ||
− | + | Asentaminen: | |
apt-get install libapache2-mod-evasive | apt-get install libapache2-mod-evasive | ||
Rivi 196: | Rivi 196: | ||
LoadModule evasive20_module /usr/lib/apache2/modules/mod_evasive20.so | LoadModule evasive20_module /usr/lib/apache2/modules/mod_evasive20.so | ||
+ | Avataan virtuaali host: | ||
+ | |||
+ | nano /etc/apache2/sites-available/default | ||
+ | |||
+ | ja lisätään rivit: | ||
+ | |||
+ | <IfModule mod_evasive20.c> | ||
DOSHashTableSize 3097 | DOSHashTableSize 3097 | ||
DOSPageCount 2 | DOSPageCount 2 | ||
Rivi 203: | Rivi 210: | ||
DOSBlockingPeriod 10 | DOSBlockingPeriod 10 | ||
DOSLogDir “/var/log/apache2/evasive” | DOSLogDir “/var/log/apache2/evasive” | ||
+ | </IfModule> | ||
'''DOSPageCount''' = Sivun pyyntöjen rajoitukset, jos ylittyy niin estolistalle | '''DOSPageCount''' = Sivun pyyntöjen rajoitukset, jos ylittyy niin estolistalle |
Versio 14. kesäkuuta 2014 kello 14.34
Apache on avoimen lähdekoodin perustuva HTTP - palvelinohjelmisto (webbiserveri). Tämän voi myös asentaa Windowssille ja on integroituna Mac OSX - käyttöjärjestelmään. Tämä on ollut pitkään internetin suosituin webbipalvelin ohjelmisto. Tämä palvelin ja datatekniikka.fi sivustot käyttää myöskin Apachea.
Lisäksi tämän rinnalle suositellaan asentamaan Php5 ja Mysql - tietokanta.
Sisällysluettelo
Asentaminen
Apachen asennetaan komennolla:
aptitude install apache2
Voit testatata sivujasi menemällä selailemma http://palvelimen_ip_osoite. Sivun tulisi näyttää seuraavanlaisena:
It works! This is the default web page for this server. The web server software is running but no content has been added, yet.
Apachen oletusverkkosivuhakemisto sijaitsee:
/var/www/
Apachen konfigurointi tiedostot löytyvät täältä:
/etc/apache2
Oletusverkkosivun asetukset löytyvät täältä:
nano /etc/apache2/sites-enabled/000-default
Apachen kanssa voi käyttää myös Php5 ja Mysql.
Konfigurointi
Apachen konfigurointi hakemistosta
cd /etc/apache2/
löytyy tälläisiä tiedostoja ja hakemistoja:
apache2.conf envvars magic mods-enabled/ sites-available/ conf.d/ httpd.conf mods-available/ ports.conf sites-enabled/
apache2.conf on pääkonfigurointi tiedosto. Tähän tiedostoon voidaan tehdä kaikki apachen määritykset, vaikka suositeltavaa käyttää erillisiä tiedotoja selkeyden vuoksi.
ports.conf Tänne määritetään portit ja virtuaali isännät vastaavat pyyntöihin. Tarkista jos määrität SSL apacheen.
conf.d Hakemistossa on erityisiä määrityksiä Apachen kokoonpanoon. Täällä on myös charcet tiedosto josta voi sallia UTF-8 merkistökoodauksen.
sites-available/ Hakemistossa on kaikki virtuaali isäntä kokoonpanojen määritys tiedostot.
sites-enabled/ Hakemistossa määritetään mitä todellisuudessa virtuaali isäntiä käytetään
mods-available/ Moduulien määritykset.
apache2.conf
nano /etc/apache2/apache2.conf
Parametrit tiedotossa:
Timeout Oletuksena määritettu 300s. Tämä kertoo kuinka kauan palvelin vastaa pyyntöön. Suositellaan pienentämään 60, sillä monet palvelimet eivät pysty vastaamaan 300s pyyntöihin.
KeepAlive Jos vaihtoehto on "On" mahdollistaa useiden pyyntöjen toteuttamisen. Jos "Off" niin kaikki pyynnöt käsitellään erikseen, joka voi kasvattaa palvelimen kuormaa.
MaxKeepAliveRequests Rajoitetaan pyyntöjen määrä samaanaikaisena. Pidä tämä mahdollisimman korkealla, palvelimen kuormituksen takia. Jos on määritetty "0", niin palvelin sallii rajoittamattoman pääsyn.
KeepAliveTimeout Pyyntöjen aikakatkaisu aika. Jos pyyntö kestää yli aikakatkaisu ajan, niin yhteys katkaistaan.
sites-available/ (Virtual Host)
Oletuksena tässä hakemistossa on tiedosto default, jonka sisältö näyttää tältä:
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www //päähakemisto, jossa verkkosivut sijaitsevat <Directory /> Options FollowSymLinks AllowOverride None //Salli konfigurointien yliajamisen (.htaccess) </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> . . .
Oletuksena virtuaali isäntä vastaa kaikkiin pyyntöihin portissa 80, oletus HTTP portti. Kun haluat luoda toisen virtuaali isännän, niin muokkaa tämä tiedostoa ja tallenna toisella nimellä.
Tämän jälkeen laitat sivun käyttöön (Käytössä olevat sivut löytyvät /etc/apache2/sites-enabled/ hakemiston alta):
a2ensite sivun_nimi
Esimerkiksi
a2ensite intra
Tämän jälkeen apachen täytyy laittaa lukemaan asetustiedostot uudelleen:
service apache2 reload
Tämän jälkeen lisää tarvittaessa ports.conf tiedostoon:
NameVirtualHost isäntänimi:portti
Lisätietoa:
Sivuston poistaminen käytöstä:
a2dissite sivun_nimi
service apache2 reload
Virtuaali Directory
Virtuaali Directory mahdollistaa Apachen webbihakemiston hakemisen eri sijannista kuin root hakemisto on
Alias /webbialihakemisto/ "/polku/" <Directory "/polku/"> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory>
Esimerkki:
Alias /wwwtesti "/var/wwwtesti/" <Directory "/var/wwwtesti/"> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory>
Käyttäjien omat verkkosivut
Lisää tämä Virtuaali isännälle, ja luo kotikansion alle public_html kansio. Kotikansion verkko-osoite on palvelimenosoite/~käyttäjätunnus.
<IfModule mod_userdir.c>
Kansion nimi josta tulee verkkohakemisto
UserDir public_html
Ei käytettävissä root käyttäjällä
UserDir disabled root
Hakemiston lisäasetukset (valinnainen)
<Directory /home/*/public_html> AllowOverride AuthConfig Options FollowSymLinks Options +Indexes </Directory>
Mahdollistaa aliaksena palvelinnimi/käyttäjätunnus yhdistämisen
AliasMatch ^/([a-zA-Z0-9]+)/?(.*) /home/$1/public_html/$2 </IfModule>
conf.d/charset
Tässä tiedostossa voit määrittää Apachen oletusmerkistökoodaukseski UTF-8.
1. Avaa konfigurointitiedosto:
nano /etc/apache2/conf.d/charset
2. Poista risuaita # merkki pois kohdasta:
AddDefaultCharset UTF-8
3. Käynnistä Apache uudelleen
service apache2 restart
mod-available/mod-evasive.load
Tämä Apachen lisäosa estää DDOS (palvelunestohyökkäykset) webbipalvelimeen.
Asentaminen:
apt-get install libapache2-mod-evasive
Luodaan kansiot:
mkdir -p /var/log/apache2/evasive
ja määritetään käyttöoikeudet
chown -R www-data:root /var/log/apache2/evasive
Avataan konfigurointi tiedosto
nano /etc/apache2/mods-available/mod-evasive.load
Lisätään jos ei ole tiedostoon:
LoadModule evasive20_module /usr/lib/apache2/modules/mod_evasive20.so
Avataan virtuaali host:
nano /etc/apache2/sites-available/default
ja lisätään rivit:
<IfModule mod_evasive20.c> DOSHashTableSize 3097 DOSPageCount 2 DOSSiteCount 50 DOSPageInterval 5 DOSSiteInterval 1 DOSBlockingPeriod 10 DOSLogDir “/var/log/apache2/evasive” </IfModule>
DOSPageCount = Sivun pyyntöjen rajoitukset, jos ylittyy niin estolistalle
DOSSiteCount = Sivuston pyyntöjen kokonaismäärän ylitys
DOSPageInterval = Aikaväli sivun pyynnöille
DOSSiteInterval = Aikaväli sivuston pyynnöille
DOSBlockingPeriod = Estoaika
Tarkista asetukset apache2.conf tiedostosta:
nano /etc/apache2/apache2.conf
Ja nämä rivit pitäisi olla tiedostossa
# Include module configuration: Include mods-enabled/*.load Include mods-enabled/*.conf
HTTPS / SSL
HTTPS - yhteyttä käyttäessä tarvitaan SSL sertifikaattia varmentamaan sivuston aitouden. Näin saadaan lisäturvaa verkkosivulle. Virallisen sertifikaatin pitää tilata viralliselta varmentajalta. Tämä virallinen vahvistus maksaa 20€-> useisiin satoihin asti.
Virallisia SSL sertifikaatin varmentajia
- Startssl - Ilmainen mutta ei luetettava.
- GeoTrust RapidSSL - Luettava ja toimiva, ei liikennetoiminnalle.
Epävirallinen SSL sertifikaatti
Toinen tapa on saada ilmaiseksi on käytettävä itseallekirjoitettavia SSL sertifikaatteja. Näihin selaimet eivät oletuksena luota jonka takia ei voi käyttää yleisessä käytössä. Sertifikaatit tulee asentaa manuaalisesti koneelle. Tässä ohje Openssl käyttöön, jolla on helppo tehdä itseallekirjoitettavia sertifikaatteja.
Määritetään Apacheen SSL avaamalla /etc/apache2/sites-available/default-ssl
nano /etc/apache2/sites-available/default
SSLEngine on
SSLCertificateFile /etc/ssl/localcerts/ssl.crt SSLCertificateKeyFile /etc/ssl/localcerts/ssl.key
Käynnistetään SSL sivut
a2ensite default-ssl
Lisätään SSL moduuli Apacheen
a2enmod ssl
Lataa Apachen konfigurointi tiedostot uudelleen
service apache2 reload
12. Sallitaan SSL Apacheen
a2enmod ssl
ja käynnistetään Apache uudelleen
service apache2 restart
Nyt on valmista, jos tuli virhe niin tuli vika konfiguraatioon
256bittiseen salaukseen on muokattava Apachen konffeihin:
nano /etc/apache2/mod-available/ssl.conf
SSLCipherSuite AES256-SHA
.htaccess
.htaccess tiedosto mahdollistaa konfigurointi tiedostojen tallentamisen suoraan verkkosivuhakemistoon, esimerkiksi /var/www/.htaccess.
Sallitaan .htaccess tiedoston ylikirjoittamaan entiset konfiguroinnit:
/etc/apache2/sites-available/default
seuraavanlaiseksi:
<Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory>
Käynnistä Apache uudelleen:
service apache2 restart
Luodaan .htaccess tiedosto /var/www/.htaccess
nano /var/www/.htaccess
Salasanasuojaus verkkosivulle
!! htpasswd httpd-2.4.4 on rikki. Odota päivitystä. !!
Kirjoita alla olevat rivit .htaccess tiedotoon:
AuthUserFile /var/.htpasswd AuthName "Anna kirjautumisen tiedot" AuthType Basic require user [käyttäjänimet]
Tallenna tiedosto ja tämän jälkeen luodaan esimerkiksi /var/.htpasswd tiedosto jossa on käyttäjänimet ja salasanat, jolla oikeudet kirjautua sivulle. Suositellaan erityisesti salasanojen kryptaamista. Huomaa, että polut pitää olla palvelimen fyysisiä polkuja, ei verkkopolkuja!
käyttäjänimi:salasana
Sinun tulee käyttää Debianissa htpasswd työkalua. Internetissä on myös htpasswd työkaluja saatavilla.
Esimerkki:
htpasswd -B /polku/.htpasswd Käyttäjätunnus Salasana
Tallenna tiedosto ja kokeile kirjautua sivullesi.
htpasswd bugin väliaikaisen korjaus
Bugi ei anna kuin Debianissa generoituja salasanojen kirjautumisen järjestelmään.
Voit generoida salasanan tällä komennolla:
htpasswd -nb user password
Kopioi ja tallenna htpasswd tiedostoon, näin pitäisi toimia
Virhesivut
Kirjoita alla olevat .htaccess tiedostoon. Muuta polut vastaamaan palvelimessasi olevaa polkua.
ErrorDocument 400 /errors/badrequest.html ErrorDocument 401 /errors/authreqd.html ErrorDocument 403 /errors/forbid.html ErrorDocument 404 /errors/notfound.html ErrorDocument 500 /errors/serverr.html