Mainos / Advertisement:

Ero sivun ”Apache2” versioiden välillä

Kohteesta Taisto
Siirry navigaatioon Siirry hakuun
 
(67 välissä olevaa versiota 2 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
Apache on avoimeen lähdekoodiin perustuva [http://fi.wikipedia.org/wiki/WWW-palvelin HTTP - palvelinohjelmisto (webbiserveri)]. Apachen voi myös asentaa Windowsille ja on integroituna Mac OSX - käyttöjärjestelmässä. Apache on ollut pitkään internetin suosituin webbipalvelinohjelmisto. Tämä palvelin ja [http://www.datatekniikka.fi  datatekniikka.fi] käyttävät myöskin Apachea.
+
<languages/>
 +
<translate>
 +
<!--T:1-->
 +
Apache on avoimeen lähdekoodiin perustuva [http://fi.wikipedia.org/wiki/WWW-palvelin HTTP - palvelinohjelmisto (webbiserveri)]. Apachen voi myös asentaa Windowsille ja on integroituna Mac OSX - käyttöjärjestelmässä. Apache on ollut pitkään internetin suosituin webbipalvelinohjelmisto.
  
 +
<!--T:365-->
 +
Tämä ohje on yleinen ohje Apache2 palvelinohjelmistolle. Kaikki on testattu Apache 2.2 versiossa ja Apache 2.4 muutokset löytyvät [[Apache2.4|täältä]].
 +
 +
<!--T:2-->
 
Lisätietoa Apachesta: [http://fi.wikipedia.org/wiki/Apache_(palvelinohjelma) Apache (palvelinohjelma)]
 
Lisätietoa Apachesta: [http://fi.wikipedia.org/wiki/Apache_(palvelinohjelma) Apache (palvelinohjelma)]
  
== Asentaminen ==
+
== Asentaminen == <!--T:3-->
  
=== Debian / Ubuntu ===
+
<!--T:366-->
 +
Asennusohje on tehty Apache 2.2 versiolle Debian 7.8 käyttöjärjestelmään.
  
 +
=== Debian / Ubuntu === <!--T:4-->
 +
 +
<!--T:5-->
 
''Apache löytyy Debianista DVD 1 - levyltä.''
 
''Apache löytyy Debianista DVD 1 - levyltä.''
  
 +
<!--T:6-->
 
Apache asennetaan komennolla:
 
Apache asennetaan komennolla:
  
   [[aptitude]] install apache2
+
   <!--T:7-->
 +
[[aptitude]] install apache2
  
 +
<!--T:8-->
 
Voit testata sivujasi menemällä selaimella osoitteeseen http://palvelimen_ip_osoite. Sivun tulisi näyttää seuraavanlaisena:
 
Voit testata sivujasi menemällä selaimella osoitteeseen http://palvelimen_ip_osoite. Sivun tulisi näyttää seuraavanlaisena:
  
   It works!
+
   <!--T:9-->
 +
It works!
 
   This is the default web page for this server.
 
   This is the default web page for this server.
 
   The web server software is running but no content has been added, yet.
 
   The web server software is running but no content has been added, yet.
  
 +
<!--T:10-->
 
Apachen oletusverkkosivuhakemisto sijaitsee:
 
Apachen oletusverkkosivuhakemisto sijaitsee:
  
   /var/www/
+
   <!--T:11-->
 +
/var/www/
  
 +
<!--T:12-->
 
Apachen konfigurointihakemisto löytyy täältä:
 
Apachen konfigurointihakemisto löytyy täältä:
  
   /etc/apache2
+
   <!--T:13-->
 +
/etc/apache2
  
 +
<!--T:14-->
 
Oletusverkkosivun asetukset löytyvät täältä ja voit avata sen tekstieditoriin:
 
Oletusverkkosivun asetukset löytyvät täältä ja voit avata sen tekstieditoriin:
  
   nano /etc/apache2/sites-enabled/default
+
   <!--T:15-->
 +
nano /etc/apache2/sites-enabled/default
  
 +
<!--T:16-->
 
Apachen kanssa voi käyttää myös [[Php5]] ja [[Mysql]].
 
Apachen kanssa voi käyttää myös [[Php5]] ja [[Mysql]].
  
=== Red Hat / CentOS / Fedora ===
+
==== Apache 2.2. Ubuntu 16.04:lle ====
 +
 
 +
Ei suositeltavaa mutta jos on pakko :) Eli asennetaan Ubuntu 16.04:lle Apache 2.2 (x64).
 +
 
 +
<pre>
 +
cd /tmp/
 +
wget http://security.ubuntu.com/ubuntu/pool/main/a/apache2/apache2_2.2.22-1ubuntu1.11_amd64.deb
 +
wget http://security.ubuntu.com/ubuntu/pool/main/a/apache2/apache2-utils_2.2.22-1ubuntu1.11_amd64.deb
 +
wget http://security.ubuntu.com/ubuntu/pool/main/a/apache2/apache2.2-bin_2.2.22-1ubuntu1.11_amd64.deb
 +
wget http://security.ubuntu.com/ubuntu/pool/main/a/apache2/apache2.2-common_2.2.22-1ubuntu1.11_amd64.deb
 +
wget http://security.ubuntu.com/ubuntu/pool/main/a/apache2/apache2-mpm-worker_2.2.22-1ubuntu1.11_amd64.deb
 +
</pre>
 +
 
 +
Asenna paketit
 +
 
 +
<pre>
 +
sudo dpkg -i apache2-utils_2.2.22-1ubuntu1.11_amd64.deb
 +
sudo dpkg -i apache2.2-bin_2.2.22-1ubuntu1.11_amd64.deb
 +
sudo dpkg -i apache2.2-common_2.2.22-1ubuntu1.11_amd64.deb
 +
sudo dpkg -i apache2-mpm-worker_2.2.22-1ubuntu1.11_amd64.deb
 +
sudo dpkg -i apache2_2.2.22-1ubuntu1.11_amd64.deb
 +
</pre>
 +
 
 +
Jos saat virheen että joitakin dependereitä puuttuu, käytä apt-get install -f komentoa asentaakseen ne. Varmista että asentaa oikeata versiota.
 +
 
 +
Lisäksi voit asentaa [[Php5#PHP5_asennus_Ubuntu_16.04:lle|PH5:n]].
 +
 
 +
=== Red Hat / CentOS / Fedora === <!--T:17-->
  
 +
<!--T:18-->
 
Asenna Apache2 komennolla
 
Asenna Apache2 komennolla
  
   yum install httpd
+
   <!--T:19-->
 +
yum install httpd
  
 +
<!--T:20-->
 
Käynnistä Apache2
 
Käynnistä Apache2
  
   service httpd start
+
   <!--T:21-->
 +
service httpd start
  
 +
<!--T:22-->
 
Lisätietoa CentOS ohjeita: https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-centos-6
 
Lisätietoa CentOS ohjeita: https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-centos-6
  
== Konfigurointi ==
+
== Konfigurointi == <!--T:23-->
 
 
 
 
  
 +
<!--T:24-->
 
Apachen konfigurointihakemistosta  
 
Apachen konfigurointihakemistosta  
  
 +
<!--T:25-->
 
Debian / Ubuntu:
 
Debian / Ubuntu:
  
   cd /etc/apache2/
+
   <!--T:26-->
 
+
cd /etc/apache2/
Red Hat / CentOS / Fedora:
 
 
 
  /etc/httpd/
 
 
 
  
 +
<!--T:29-->
 
löytyy tällaisia tiedostoja ja hakemistoja:
 
löytyy tällaisia tiedostoja ja hakemistoja:
  
   apache2.conf  envvars    magic            mods-enabled/  sites-available/
+
   <!--T:30-->
 +
apache2.conf  envvars    magic            mods-enabled/  sites-available/
 
   conf.d/      httpd.conf  mods-available/  ports.conf    sites-enabled/
 
   conf.d/      httpd.conf  mods-available/  ports.conf    sites-enabled/
  
 +
<!--T:31-->
 
'''apache2.conf''' on pääkonfigurointitiedosto. Tähän tiedostoon voidaan tehdä kaikki apachen määritykset, vaikka olisi suositeltavaa käyttää erillisiä tiedostoja selkeyden vuoksi.
 
'''apache2.conf''' on pääkonfigurointitiedosto. Tähän tiedostoon voidaan tehdä kaikki apachen määritykset, vaikka olisi suositeltavaa käyttää erillisiä tiedostoja selkeyden vuoksi.
  
 +
<!--T:32-->
 
'''ports.conf''' Tänne määritetään portit ja virtual hostit vastaavat pyyntöihin.
 
'''ports.conf''' Tänne määritetään portit ja virtual hostit vastaavat pyyntöihin.
  
 +
<!--T:33-->
 
'''conf.d''' Hakemistossa on erityisiä määrityksiä Apachen kokoonpanoon. Täällä on myös charcet tiedosto josta voi sallia UTF-8 merkistökoodauksen.
 
'''conf.d''' Hakemistossa on erityisiä määrityksiä Apachen kokoonpanoon. Täällä on myös charcet tiedosto josta voi sallia UTF-8 merkistökoodauksen.
  
 +
<!--T:34-->
 
'''sites-available/''' Hakemistossa on kaikki virtual hostien kokoonpanojen määritystiedostot.
 
'''sites-available/''' Hakemistossa on kaikki virtual hostien kokoonpanojen määritystiedostot.
  
 +
<!--T:35-->
 
'''sites-enabled/''' Hakemistossa määritetään mitä virtual hosteja todellisuudessa käytetään.
 
'''sites-enabled/''' Hakemistossa määritetään mitä virtual hosteja todellisuudessa käytetään.
  
 +
<!--T:36-->
 
'''mods-available/''' Moduulien määritykset.
 
'''mods-available/''' Moduulien määritykset.
  
 +
<!--T:37-->
 
'''mods-enabled/''' Moduulit jotka ovat käytössä.
 
'''mods-enabled/''' Moduulit jotka ovat käytössä.
  
 +
<!--T:27-->
 +
Red Hat / CentOS / Fedora:
 +
 +
  <!--T:28-->
 +
/etc/httpd/
 +
 +
<!--T:367-->
 +
Apachen oma konfigurointitiedosto löytyy CentOS käyttöjärjestelmästä:
 +
 +
  <!--T:368-->
 +
/etc/httpd/conf/httpd.conf
  
=== apache2.conf ===
 
  
 +
=== apache2.conf === <!--T:38-->
  
  nano /etc/apache2/apache2.conf
 
  
 +
  <!--T:39-->
 +
nano /etc/apache2/apache2.conf
 +
 +
<!--T:40-->
 
Parametrit tiedostossa:
 
Parametrit tiedostossa:
  
 +
<!--T:41-->
 
'''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.
 
'''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.
  
 +
<!--T:42-->
 
'''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.  
 
'''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.  
  
 +
<!--T:43-->
 
'''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.
 
'''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.
  
 +
<!--T:44-->
 
'''KeepAliveTimeout''' Pyyntöjen aikakatkaisu aika. Jos pyyntö kestää yli aikakatkaisu ajan, niin yhteys katkaistaan.
 
'''KeepAliveTimeout''' Pyyntöjen aikakatkaisu aika. Jos pyyntö kestää yli aikakatkaisu ajan, niin yhteys katkaistaan.
  
=== sites-available/  (Virtual Host)===
+
=== sites-available/  (Virtual Host)=== <!--T:45-->
  
 +
<!--T:46-->
 
Hakemistossa on oletuksena ''default'' ja nyt luodaan toinen virtuaalihosti. Alla on esimerkki virtuaalihostista ja tallenna se esimerkiksi nimellä ''intra''.
 
Hakemistossa on oletuksena ''default'' ja nyt luodaan toinen virtuaalihosti. Alla on esimerkki virtuaalihostista ja tallenna se esimerkiksi nimellä ''intra''.
  
<VirtualHost *:80>                            #*.80 = Vastaa kaikille IP-osoitteille portissa 80.
+
<!--T:47-->
 +
<syntaxhighlight lang="apache">
 +
<VirtualHost *:80>                            #*.80 = Vastaa kaikille IP-osoitteille portissa 80.
 
         ServerAdmin webmaster@localhost        #Palvelimen ylläpitäjän sähköpostiosoite
 
         ServerAdmin webmaster@localhost        #Palvelimen ylläpitäjän sähköpostiosoite
 
         ServerName example.com                #Palvelimen nimi tai verkko-osoite (Voit käyttää IPv4- ja IPv6-osoitteita)
 
         ServerName example.com                #Palvelimen nimi tai verkko-osoite (Voit käyttää IPv4- ja IPv6-osoitteita)
Rivi 114: Rivi 194:
 
                 allow from all                #Salli kaikkien muodostamisen verkkosivuusi
 
                 allow from all                #Salli kaikkien muodostamisen verkkosivuusi
 
         </Directory>
 
         </Directory>
</VirtualHost>
+
</VirtualHost>
 +
</syntaxhighlight>
  
 +
<!--T:48-->
 
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 (fyysinen polku ja ServerName) ja tallenna toisella nimellä.
 
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 (fyysinen polku ja ServerName) ja tallenna toisella nimellä.
  
 +
<!--T:49-->
 
Tämän jälkeen laitat sivun käyttöön (Käytössä olevat sivut löytyvät /etc/apache2/sites-enabled/ hakemiston alta):
 
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
+
   <!--T:50-->
 +
a2ensite sivun_nimi
  
 +
<!--T:51-->
 
a2ensite [tiedoston nimi joka on /etc/apache2/sites-available] hakemistossa jonka haluat käyttöön
 
a2ensite [tiedoston nimi joka on /etc/apache2/sites-available] hakemistossa jonka haluat käyttöön
  
 +
<!--T:52-->
 
Esimerkiksi:
 
Esimerkiksi:
  
   a2ensite intra
+
   <!--T:53-->
 +
a2ensite intra
  
 +
<!--T:54-->
 
Tämän jälkeen apachen täytyy laittaa lukemaan asetustiedostot uudelleen:
 
Tämän jälkeen apachen täytyy laittaa lukemaan asetustiedostot uudelleen:
  
   service apache2 reload
+
   <!--T:55-->
 +
service apache2 reload
  
 +
<!--T:56-->
 
Tämän jälkeen lisää tarvittaessa ports.conf (jos määritit muuhun porttiin kuin 80 (HTTP oletusportti)) tiedostoon:
 
Tämän jälkeen lisää tarvittaessa ports.conf (jos määritit muuhun porttiin kuin 80 (HTTP oletusportti)) tiedostoon:
  
   NameVirtualHost isäntänimi:portti
+
   <!--T:57-->
 +
NameVirtualHost isäntänimi:portti
  
==== Lisätietoa: ====
+
==== Lisätietoa: ==== <!--T:58-->
  
 +
<!--T:59-->
 
Sivuston poistaminen käytöstä:
 
Sivuston poistaminen käytöstä:
  
   a2dissite sivun_nimi
+
   <!--T:60-->
 +
a2dissite sivun_nimi
  
 +
<!--T:61-->
 
Sivun nimi on sama kuin /etc/apache2/sites-available/[sivusi_nimi]
 
Sivun nimi on sama kuin /etc/apache2/sites-available/[sivusi_nimi]
  
   service apache2 reload
+
   <!--T:62-->
 +
service apache2 reload
 +
 
 +
[[Luokka:Debian|Apache2]]
 +
[[Luokka:Linux|Apache2]]
 +
[[Luokka:Ubuntu|Apache2]]
 +
[[Luokka:Webbipalvelimet|Apache2]]
 +
[[Luokka:Webserver|Apache2]]
  
=== Virtuaali Hakemistot ===
+
=== Virtuaali Hakemistot === <!--T:63-->
  
 +
<!--T:64-->
 
Virtuaali Directory mahdollistaa Apachen webbihakemiston hakemisen eri sijannista kuin root hakemisto on
 
Virtuaali Directory mahdollistaa Apachen webbihakemiston hakemisen eri sijannista kuin root hakemisto on
  
Alias /webbialihakemisto/ /polku/
+
<!--T:65-->
# Verkkosivupolku (/webbihakemisto) ja fyysinen polku ("/polku")
+
<syntaxhighlight lang="apache">
  <Directory "/polku/">
+
Alias /webbialihakemisto/ /polku/
    Options Indexes FollowSymLinks MultiViews
+
# Verkkosivupolku (/webbihakemisto) ja fyysinen polku ("/polku")
    AllowOverride None
+
<Directory "/polku/">
    Order allow,deny
+
  Options Indexes FollowSymLinks MultiViews
    allow from all
+
  AllowOverride None
</Directory>
+
  Order allow,deny
 +
  allow from all
 +
</Directory>
 +
</syntaxhighlight>
  
 +
<!--T:66-->
 
Esimerkki:  
 
Esimerkki:  
  
  Alias /wwwtesti /var/wwwtesti/
+
<!--T:67-->
  <Directory "/var/wwwtesti/">
+
<syntaxhighlight lang="apache">
    Options Indexes FollowSymLinks MultiViews
+
Alias /wwwtesti /var/wwwtesti/
    AllowOverride None
+
<Directory "/var/wwwtesti/">
    Order allow,deny
+
  Options Indexes FollowSymLinks MultiViews
    allow from all
+
  AllowOverride None
  </Directory>
+
  Order allow,deny
 
+
  allow from all
=== Käyttäjien omat verkkosivut ===
+
</Directory>
 
+
</syntaxhighlight>
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>
 
 
 
Voit luoda automaattisesti uusille käyttäjille webbihakemiston:
 
 
 
  mkdir /etc/skel/public_html
 
  
Skel hakemistossa olevat kansiot ja tiedostot kopioituvat automaattisesti uusille käyttäjille.
+
[[Luokka:Debian|Apache2]]
 +
[[Luokka:Linux|Apache2]]
 +
[[Luokka:Ubuntu|Apache2]]
 +
[[Luokka:Webbipalvelimet|Apache2]]
 +
[[Luokka:Webserver|Apache2]]
  
=== conf.d/charset ===
+
=== conf.d/charset === <!--T:68-->
  
 +
<!--T:69-->
 
Tässä tiedostossa voit määrittää Apachen oletusmerkistökoodaukseski UTF-8.
 
Tässä tiedostossa voit määrittää Apachen oletusmerkistökoodaukseski UTF-8.
  
 +
<!--T:70-->
 
1. Avaa konfigurointitiedosto:
 
1. Avaa konfigurointitiedosto:
 
    
 
    
 
   nano /etc/apache2/conf.d/charset
 
   nano /etc/apache2/conf.d/charset
  
 +
<!--T:71-->
 
2. Poista risuaita # merkki pois kohdasta:
 
2. Poista risuaita # merkki pois kohdasta:
  
   AddDefaultCharset UTF-8
+
   <!--T:72-->
 +
AddDefaultCharset UTF-8
  
 +
<!--T:73-->
 
3. Käynnistä Apache uudelleen
 
3. Käynnistä Apache uudelleen
  
   service apache2 restart
+
   <!--T:74-->
 +
service apache2 restart
  
== Lisämoduulit ==
+
== Lisämoduulit == <!--T:75-->
  
 +
<!--T:76-->
 
Lisäominaisuuksia ja lisäturvallisuutta Apachen käyttöön.  
 
Lisäominaisuuksia ja lisäturvallisuutta Apachen käyttöön.  
  
 +
<!--T:77-->
 +
Lisämoduulien hakemisto on Apachessa:
 +
 +
  <!--T:78-->
 +
/etc/apache2/mods-available
 +
 +
<!--T:79-->
 +
Ja tässä hakemistossa käytössä olevat moduulit
 +
 +
  <!--T:80-->
 +
/etc/apache2/mods-enabled
  
 +
<!--T:81-->
 
Määrittäminen .htaccess tai virtuaali-isäntään
 
Määrittäminen .htaccess tai virtuaali-isäntään
  
   <IfModule mod_[moduulinnimi].c>
+
   <!--T:82-->
 +
<IfModule mod_[moduulinnimi].c>
 
   ...
 
   ...
 
   # Määritä tähän kaikki konffit
 
   # Määritä tähän kaikki konffit
Rivi 223: Rivi 333:
 
   </IfModule>
 
   </IfModule>
  
=== mod_dir ===
+
=== mod_bw (mod_bandwidth) === <!--T:369-->
 +
 
 +
<!--T:370-->
 +
mod_bw:llä (mod_bandwidth) voi rajoittaa Apachen käyttämää kaistaa, esimerkiksi ladatessa suuria tiedostoja.
 +
 
 +
==== Asennus ==== <!--T:371-->
 +
 
 +
<!--T:372-->
 +
Asenna mod_bw pakettihallinnasta
 +
 
 +
  <!--T:373-->
 +
apt-get install libapache2-mod-bw
 +
 
 +
<!--T:374-->
 +
Ota mod-bw käyttöön komennolla
 +
 
 +
  <!--T:375-->
 +
a2enmod bw
 +
 
 +
==== Konfigurointi ==== <!--T:376-->
 +
 
 +
<!--T:377-->
 +
Ota moduuli käyttöön
 +
  BandwidthModule On
 +
Pakota moduuli käyttöön kaikilla yhteyksillä
 +
  ForceBandWidthModule On
 +
Rajoita yhteyksiä kaikille 10Mt/s
 +
  Bandwidth all 10000000
 +
Poista rajoitus kokonaan IP:lle 192.168.215.5
 +
  BandWidth 192.168.218.5 0
 +
Salli enintään 10 yhteyttä samaanaikaan
 +
  MaxConnection all 10
 +
Rajoita kaikkien .avi tiedostopääteiden latausnopeutta 1000t/s - 5Mt/s
 +
  LargeFileLimit .avi 1000 5000000
 +
 
 +
<!--T:378-->
 +
Esimerkki
 +
 
 +
  <!--T:379-->
 +
<Directory /var/www>
 +
  Ota moduuli käyttöön
 +
  BandwidthModule On
 +
  ForceBandWidthModule On
 +
  Bandwidth all 10000000
 +
  BandWidth 192.168.218.5 0
 +
  MaxConnection all 10
 +
  LargeFileLimit .avi 1000 5000000
 +
  </Directory>
  
 +
=== mod_dir === <!--T:83-->
 +
 +
<!--T:84-->
 
Tämä ominaisuus päättää oletustiedosto jos annetaan esimerkiksi www.example.com. Yleensä tämä on index.html, index.php tai index.htm.
 
Tämä ominaisuus päättää oletustiedosto jos annetaan esimerkiksi www.example.com. Yleensä tämä on index.html, index.php tai index.htm.
  
 +
<!--T:85-->
 
Ominaisuus on oletuksena käytössä ja sitä voi muuttaa
 
Ominaisuus on oletuksena käytössä ja sitä voi muuttaa
  
   /etc/apache2/mod-available/dir.conf
+
   <!--T:86-->
 +
/etc/apache2/mod-available/dir.conf
  
 +
<!--T:87-->
 
Sisältä on oletuksena seuraavanlainen:
 
Sisältä on oletuksena seuraavanlainen:
  
   <IfModule mod_dir.c>
+
   <!--T:88-->
 +
<IfModule mod_dir.c>
 
   
 
   
 
           DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
 
           DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
Rivi 239: Rivi 403:
 
   </IfModule>
 
   </IfModule>
  
=== mod_evansive ===
+
=== mod_evansive === <!--T:89-->
  
 +
<!--T:90-->
 
Tämä Apachen lisäosa estää DDOS (palvelunestohyökkäykset) webbipalvelimeen. Suositeltavaa on asentaa Apacheen. Tämä rajoittaa verkkosivusi latauksia seuraavalla tavalla
 
Tämä Apachen lisäosa estää DDOS (palvelunestohyökkäykset) webbipalvelimeen. Suositeltavaa on asentaa Apacheen. Tämä rajoittaa verkkosivusi latauksia seuraavalla tavalla
  
 +
<!--T:91-->
 
* Pyytämällä samalla sivulla enemmän kuin pari kertaa sekunnissa
 
* Pyytämällä samalla sivulla enemmän kuin pari kertaa sekunnissa
 
* Estää yli 50 samanaikaisia ​​pyyntöjä samalle laitteelle sekunnissa
 
* Estää yli 50 samanaikaisia ​​pyyntöjä samalle laitteelle sekunnissa
 
* Estää mitään pyyntöjä taas väliaikaisesti mustalla listalla (eli estolistalle)
 
* Estää mitään pyyntöjä taas väliaikaisesti mustalla listalla (eli estolistalle)
  
==== Asentaminen ====
+
==== Asentaminen ==== <!--T:92-->
  
   apt-get install libapache2-mod-evasive
+
   <!--T:93-->
 +
apt-get install libapache2-mod-evasive
  
 +
<!--T:94-->
 
Käynnistä Apache uudelleen
 
Käynnistä Apache uudelleen
  
   service apache2 restart
+
   <!--T:95-->
 +
service apache2 restart
  
 +
<!--T:96-->
 
Luodaan kansio lokitiedostoja varten:
 
Luodaan kansio lokitiedostoja varten:
  
   mkdir -p /var/log/apache2/evasive
+
   <!--T:97-->
 +
mkdir -p /var/log/apache2/evasive
  
 +
<!--T:98-->
 
ja määritetään käyttöoikeudet
 
ja määritetään käyttöoikeudet
  
   chown -R www-data:root /var/log/apache2/evasive
+
   <!--T:99-->
 +
chown -R www-data:root /var/log/apache2/evasive
  
==== Konfigurointi ====
+
==== Konfigurointi ==== <!--T:100-->
  
 +
<!--T:101-->
 
Avataan konfigurointi tiedosto
 
Avataan konfigurointi tiedosto
  
   nano /etc/apache2/mods-available/mod-evasive.load
+
   <!--T:102-->
 +
nano /etc/apache2/mods-available/mod-evasive.load
  
 +
<!--T:103-->
 
Lisätään jos ei ole tiedostoon:
 
Lisätään jos ei ole tiedostoon:
  
   LoadModule evasive20_module /usr/lib/apache2/modules/mod_evasive20.so
+
   <!--T:104-->
 +
LoadModule evasive20_module /usr/lib/apache2/modules/mod_evasive20.so
  
 +
<!--T:105-->
 
Avataan virtuaali host (esimerkissä default):
 
Avataan virtuaali host (esimerkissä default):
  
   nano /etc/apache2/sites-available/default
+
   <!--T:106-->
 +
nano /etc/apache2/sites-available/default
  
 +
<!--T:107-->
 
ja lisätään rivit jokaiseen virtual hostiin:
 
ja lisätään rivit jokaiseen virtual hostiin:
  
  ...
+
  <!--T:108-->
 +
...
 
  </Directory>
 
  </Directory>
 
  <IfModule  mod_evasive20.c>
 
  <IfModule  mod_evasive20.c>
Rivi 294: Rivi 475:
  
  
 +
<!--T:109-->
 
'''DOSPageCount''' = Sivun pyyntöjen rajoitukset, jos ylittyy niin estolistalle
 
'''DOSPageCount''' = Sivun pyyntöjen rajoitukset, jos ylittyy niin estolistalle
  
 +
<!--T:110-->
 
'''DOSSiteCount''' = Sivuston pyyntöjen kokonaismäärän ylitys
 
'''DOSSiteCount''' = Sivuston pyyntöjen kokonaismäärän ylitys
  
 +
<!--T:111-->
 
'''DOSPageInterval''' = Aikaväli sivun pyynnöille
 
'''DOSPageInterval''' = Aikaväli sivun pyynnöille
  
 +
<!--T:112-->
 
'''DOSSiteInterval''' = Aikaväli sivuston pyynnöille
 
'''DOSSiteInterval''' = Aikaväli sivuston pyynnöille
  
 +
<!--T:113-->
 
'''DOSBlockingPeriod''' = Estoaika
 
'''DOSBlockingPeriod''' = Estoaika
  
 +
<!--T:114-->
 
'''DOSLogDir''' = Loki
 
'''DOSLogDir''' = Loki
  
 +
<!--T:115-->
 
'''DOSSystemCommand''' = Lisäparametrejä (poistettu käytöstä, kehittyneimille)
 
'''DOSSystemCommand''' = Lisäparametrejä (poistettu käytöstä, kehittyneimille)
  
  
 +
<!--T:116-->
 
Tarkista asetukset apache2.conf tiedostosta:
 
Tarkista asetukset apache2.conf tiedostosta:
  
   nano /etc/apache2/apache2.conf  
+
   <!--T:117-->
 +
nano /etc/apache2/apache2.conf  
  
 +
<!--T:118-->
 
Ja nämä rivit pitäisi olla tiedostossa
 
Ja nämä rivit pitäisi olla tiedostossa
  
  # Include module configuration:
+
  <!--T:119-->
 +
# Include module configuration:
 
  Include mods-enabled/*.load
 
  Include mods-enabled/*.load
 
  Include mods-enabled/*.conf
 
  Include mods-enabled/*.conf
  
=== mod_expires ===
+
=== mod_http2 ===
 +
 
 +
HTTP/2 Apache2:selle käyttöön. Tuettu Apache 2.4.18 jälkeen mutta testasimme tätä Apache 2.4.27 versiossa.
 +
 
 +
==== Asennus ====
 +
 
 +
Ubuntun jakelussa tätä ei ainakaan löytynyt mutta PPA:sta löytyy
 +
 
 +
<pre>
 +
sudo apt-get install software-properties-common python-software-properties
 +
sudo add-apt-repository ppa:ondrej/apache2
 +
sudo apt-get update
 +
sudo apt-get install apache2
 +
sudo a2enmod http2
 +
</pre>
 +
 
 +
Lisää seuraavan rivi Apache2 konfiguraatioon
 +
 
 +
Protocols h2 h2c http/1.1
 +
 
 +
Käynnistä apache2 uudelleen
 +
 
 +
==== HTTP/2 ei ole tuettu preforkissa  ====
 +
 
 +
Kun käytösssi on Apache MPM prefork moduuli niin HTTP/2 ei voida ottaa käyttöön, eli vaihdetaan käyttöön PHP7.0-FPM Apachelle.
 +
 
 +
<pre>
 +
sudo apt install php7.0-fpm
 +
sudo service apache2 stop
 +
sudo a2enmod proxy_fcgi setenvif
 +
sudo a2dismod php7.0
 +
sudo a2enconf php7.0-fpm.conf
 +
sudo a2dismod mpm_prefork
 +
sudo a2enmod mpm_event
 +
sudo service apache2 start
 +
</pre>
 +
 
 +
=== mod_proxy ===
 +
 
 +
Apachella on mahdollista lisämoduulien avulla tehdä reverse proxy. Tällä välityspalvelimella voi esimerkiksi välittää välityspalvelimella verkkosivuliikennettä muihin webpalvelimiin.
 +
 
 +
===== Asennus =====
 +
 
 +
Asenna vaaditut paketit
 +
 
 +
  aptitude install -y libapache2-mod-proxy-html libxml2-dev
 +
 
 +
Ota käyttöön vaaditut paketit
 +
 
 +
<pre>
 +
a2enmod proxy
 +
a2enmod proxy_http
 +
a2enmod proxy_ajp
 +
a2enmod rewrite
 +
a2enmod deflate
 +
a2enmod headers
 +
a2enmod proxy_balancer
 +
a2enmod proxy_connect
 +
a2enmod proxy_html
 +
</pre>
 +
 
 +
==== Konfiguroi Vhost ====
 +
 
 +
Esimerkki konfiguraatio virtuaalihostille. Muuta http://0.0.0.0:8080 vastaamaan oman palvelimesi osoitteita.
 +
 
 +
<syntaxhighlight lang="apache">
 +
<VirtualHost *:*>
 +
    ProxyPreserveHost On
 +
 
 +
    # Servers to proxy the connection, or;
 +
    # List of application servers:
 +
    # Usage:
 +
    # ProxyPass / http://[IP Addr.]:[port]/
 +
    # ProxyPassReverse / http://[IP Addr.]:[port]/
 +
    # Example:
 +
    ProxyPass / http://0.0.0.0:8080/
 +
    ProxyPassReverse / http://0.0.0.0:8080/
 +
 
 +
    ServerName localhost
 +
</VirtualHost>
 +
</syntaxhighlight>
 +
 
 +
[[Luokka:Debian|Apache2]]
 +
[[Luokka:Linux|Apache2]]
 +
[[Luokka:Ubuntu|Apache2]]
 +
[[Luokka:Webbipalvelimet|Apache2]]
 +
[[Luokka:Webserver|Apache2]]
 +
 
 +
==== SSL vhost ====
 +
 
 +
Esimerkiksi https sivusta
 +
 
 +
<syntaxhighlight lang="apache">
 +
Listen 443
 +
 
 +
NameVirtualHost *:443
 +
<VirtualHost *:443>
 +
 
 +
    SSLEngine On
 +
 
 +
    # Set the path to SSL certificate
 +
    # Usage: SSLCertificateFile /path/to/cert.pem
 +
    SSLCertificateFile /etc/apache2/ssl/file.pem
 +
 
 +
    SSLProxyEngine On
 +
    ProxyPreserveHost On
 +
 
 +
    # Servers to proxy the connection, or;
 +
    # List of application servers:
 +
    # Usage:
 +
    # ProxyPass / http://[IP Addr.]:[port]/
 +
    # ProxyPassReverse / http://[IP Addr.]:[port]/
 +
    # Example:
 +
    ProxyPass / http://0.0.0.0:8080/
 +
    ProxyPassReverse / http://0.0.0.0:8080/
 +
 
 +
    # Or, balance the load:
 +
    # ProxyPass / balancer://balancer_cluster_name
 +
 
 +
</VirtualHost>
 +
</syntaxhighlight>
 +
 
 +
[[Luokka:Debian|Apache2]]
 +
[[Luokka:Linux|Apache2]]
 +
[[Luokka:Ubuntu|Apache2]]
 +
[[Luokka:Webbipalvelimet|Apache2]]
 +
[[Luokka:Webserver|Apache2]]
 +
 
 +
=== mod_expires === <!--T:120-->
  
 +
<!--T:121-->
 
Tämä mahdollistaa välimuistiin tallennettujen elementtien viimeisen voimassaoloajan määrittämisen. Välimuistiin kannattaa määrittää kuvat, sillä tää toiminto sallii tallentamaan esimerkiksi kuvat selaimen välimuistiin enintään kyseisen päivän asti. Selaimen välimuistissa olevat kuvat säästävät kaistaa palvelimen ja käyttäjän välillä, joten sivun lataus nopeutuu, kun ei tarvitse kuvia hakeaa palvelimelta joka kerta uudelleen. Välimuistin kanssa voi tulla ongelmia jos sivuston tulisi päivittyä usein.
 
Tämä mahdollistaa välimuistiin tallennettujen elementtien viimeisen voimassaoloajan määrittämisen. Välimuistiin kannattaa määrittää kuvat, sillä tää toiminto sallii tallentamaan esimerkiksi kuvat selaimen välimuistiin enintään kyseisen päivän asti. Selaimen välimuistissa olevat kuvat säästävät kaistaa palvelimen ja käyttäjän välillä, joten sivun lataus nopeutuu, kun ei tarvitse kuvia hakeaa palvelimelta joka kerta uudelleen. Välimuistin kanssa voi tulla ongelmia jos sivuston tulisi päivittyä usein.
  
==== Asennus ====
+
==== Asennus ==== <!--T:122-->
  
 +
<!--T:123-->
 
Tämä ominaisuus on valmiina Apachen asennuspaketissa. Ota ominaisuus käyttöön komennolla
 
Tämä ominaisuus on valmiina Apachen asennuspaketissa. Ota ominaisuus käyttöön komennolla
  
   a2enmod expires
+
   <!--T:124-->
 +
a2enmod expires
  
 +
<!--T:125-->
 
Käynnistä Apache uudelleen
 
Käynnistä Apache uudelleen
  
   service apache2 restart
+
   <!--T:126-->
 +
service apache2 restart
  
==== Konfigurointi ====
+
==== Konfigurointi ==== <!--T:127-->
  
 +
<!--T:128-->
 
Voit määrittää konfiguroinnin suoraan  virtuaali isäntään  ja .htacess tiedostoon.
 
Voit määrittää konfiguroinnin suoraan  virtuaali isäntään  ja .htacess tiedostoon.
  
 +
<!--T:129-->
 
Esimerkki:
 
Esimerkki:
  
  ## EXPIRES CACHING ##
+
<!--T:130-->
 +
<syntaxhighlight lang="apache">
 +
## EXPIRES CACHING ##
 
   <IfModule mod_expires.c>
 
   <IfModule mod_expires.c>
 
   ExpiresActive On
 
   ExpiresActive On
 
   ExpiresDefault "access plus 30 days"
 
   ExpiresDefault "access plus 30 days"
 
   </IfModule>
 
   </IfModule>
  ## EXPIRES CACHING ##
+
## EXPIRES CACHING ##
 +
</syntaxhighlight>
  
 +
<!--T:131-->
 
Eli oletuksena 30 päivää, jolloin vaaditaan uudelleenlataus palvelimelta kaikille tiedostoille, jotka ladattu selaimen välimuistiin.
 
Eli oletuksena 30 päivää, jolloin vaaditaan uudelleenlataus palvelimelta kaikille tiedostoille, jotka ladattu selaimen välimuistiin.
  
  
 +
<!--T:132-->
 
Lisää:
 
Lisää:
  
   ExpiresActive On
+
   <!--T:133-->
 +
ExpiresActive On
 
   ExpiresByType image/jpg "access plus 1 year"
 
   ExpiresByType image/jpg "access plus 1 year"
 
   ExpiresByType image/jpeg "access plus 1 year"
 
   ExpiresByType image/jpeg "access plus 1 year"
Rivi 363: Rivi 696:
 
   ExpiresDefault "access plus 2 days"
 
   ExpiresDefault "access plus 2 days"
  
 +
<!--T:134-->
 
Kuville 1 vuoden viimeinen voimassaoloaika, pdf-tiedostoille, javascript sekä flash on kuukausi. Ikoneille yksi vuosi ja oletus muille on kaksi päivää.
 
Kuville 1 vuoden viimeinen voimassaoloaika, pdf-tiedostoille, javascript sekä flash on kuukausi. Ikoneille yksi vuosi ja oletus muille on kaksi päivää.
  
=== mod_rewrite ===
+
[[Luokka:Debian|Apache2]]
 +
[[Luokka:Linux|Apache2]]
 +
[[Luokka:Ubuntu|Apache2]]
 +
[[Luokka:Webbipalvelimet|Apache2]]
 +
[[Luokka:Webserver|Apache2]]
 +
 
 +
=== mod_rewrite === <!--T:135-->
  
 +
<!--T:136-->
 
Uudellenohjaus moduuli, mahdollistaa verkkosivuihin uudelleenohjauksia.
 
Uudellenohjaus moduuli, mahdollistaa verkkosivuihin uudelleenohjauksia.
  
==== Asennus ====
+
==== Asennus ==== <!--T:137-->
  
 +
<!--T:138-->
 
Tämä on asennettu valmiina Apacheen, sinun tulee ottaa toiminto käyttöön:
 
Tämä on asennettu valmiina Apacheen, sinun tulee ottaa toiminto käyttöön:
  
   a2enmod rewrite
+
   <!--T:139-->
 +
a2enmod rewrite
  
 +
<!--T:140-->
 
Käynnistä Apache uudelleen
 
Käynnistä Apache uudelleen
  
   service apache2 restart
+
   <!--T:141-->
 +
service apache2 restart
  
==== Konfigurointi ====
+
==== Konfigurointi ==== <!--T:142-->
  
 +
<!--T:143-->
 
Esimerkki: HTTP -> HTTPS
 
Esimerkki: HTTP -> HTTPS
  
   RewriteEngine On
+
   <!--T:144-->
 +
RewriteEngine On
 
   RewriteCond %{HTTPS} off
 
   RewriteCond %{HTTPS} off
 
   RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI}
 
   RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI}
  
 +
<!--T:145-->
 
Eli uudelleenohjataan samaan sijaintiin HTTPS kanssa, kun pyydetään.
 
Eli uudelleenohjataan samaan sijaintiin HTTPS kanssa, kun pyydetään.
  
 +
<!--T:146-->
 
Esimerkki: Uudelleenohjaus UserAgentin avulla
 
Esimerkki: Uudelleenohjaus UserAgentin avulla
  
   RewriteCond  %{HTTP_USER_AGENT}  (iPhone|Blackberry|Android)
+
   <!--T:147-->
 +
RewriteCond  %{HTTP_USER_AGENT}  (iPhone|Blackberry|Android)
 
   RewriteRule  ^/$                /mobile.html  [L]
 
   RewriteRule  ^/$                /mobile.html  [L]
 
    
 
    
 
   RewriteRule  ^/$                /std.html  [L]
 
   RewriteRule  ^/$                /std.html  [L]
  
 +
<!--T:148-->
 
Eli Iphone, Blackberry ja Android laitteet uudelleenohjataan /mobile.html sivulle. Lisääthän tarvittavat UserAgent tiedot että tämä toimisi kaikilla haluamallasi selaimilla tai laitteilla.
 
Eli Iphone, Blackberry ja Android laitteet uudelleenohjataan /mobile.html sivulle. Lisääthän tarvittavat UserAgent tiedot että tämä toimisi kaikilla haluamallasi selaimilla tai laitteilla.
  
 +
<!--T:149-->
 
Esimerkki: Jos tiedostoa ei ole (ERROR 404), uudelleenohjaa /index.php tiedostoon. Normaalisti näytetään ERROR 404 verkkosivu.
 
Esimerkki: Jos tiedostoa ei ole (ERROR 404), uudelleenohjaa /index.php tiedostoon. Normaalisti näytetään ERROR 404 verkkosivu.
  
   RewriteEngine On
+
   <!--T:150-->
 +
RewriteEngine On
 
   RewriteBase /
 
   RewriteBase /
 
   RewriteCond %{REQUEST_FILENAME} !-f
 
   RewriteCond %{REQUEST_FILENAME} !-f
Rivi 406: Rivi 759:
 
   RewriteRule . /index.php [L]
 
   RewriteRule . /index.php [L]
  
 +
<!--T:151-->
 
Sinun tulee määrittää DocumentRoot polku samaan sijainnilla kuin /index.php määritetty.
 
Sinun tulee määrittää DocumentRoot polku samaan sijainnilla kuin /index.php määritetty.
  
 +
<!--T:152-->
 
Esimerkki: domain.net, domain.com, www.domain.net uudelleenohjahtaan domain.local osoitteeseen.
 
Esimerkki: domain.net, domain.com, www.domain.net uudelleenohjahtaan domain.local osoitteeseen.
  
   RewriteEngine On
+
   <!--T:153-->
 +
RewriteEngine On
 
   RewriteCond %{HTTP_HOST} =domain.net [OR]
 
   RewriteCond %{HTTP_HOST} =domain.net [OR]
 
   RewriteCond %{HTTP_HOST} =domain.com [OR]
 
   RewriteCond %{HTTP_HOST} =domain.com [OR]
Rivi 416: Rivi 772:
 
   RewriteRule .* https://domain.local%{REQUEST_URI}
 
   RewriteRule .* https://domain.local%{REQUEST_URI}
  
==== Esimerkkejä ====
+
==== Esimerkkejä ==== <!--T:154-->
  
 +
<!--T:155-->
 
Uudelleenohjaus domain.com -> www.domain.com
 
Uudelleenohjaus domain.com -> www.domain.com
  
   RewriteEngine On
+
   <!--T:156-->
 +
RewriteEngine On
 
   RewriteBase /
 
   RewriteBase /
 
   RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
 
   RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
 
   RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]
 
   RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]
  
 +
<!--T:157-->
 
Uudelleenohjaus www.domain.com -> domain.com
 
Uudelleenohjaus www.domain.com -> domain.com
  
   RewriteEngine On
+
   <!--T:158-->
 +
RewriteEngine On
 
   RewriteBase /
 
   RewriteBase /
 
   RewriteCond %{HTTP_HOST} !^domain.com$ [NC]
 
   RewriteCond %{HTTP_HOST} !^domain.com$ [NC]
 
   RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301]
 
   RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301]
  
 +
<!--T:159-->
 
Uudelleenohjaus http -> https
 
Uudelleenohjaus http -> https
  
   <IfModule mod_rewrite.c>
+
   <!--T:160-->
 +
<IfModule mod_rewrite.c>
 
   RewriteEngine On
 
   RewriteEngine On
 
   RewriteCond %{HTTPS} off
 
   RewriteCond %{HTTPS} off
   RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}
+
   RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
 
  </IfModule>
 
  </IfModule>
  
 +
<!--T:161-->
 
Uudelleenohjaus https -> http
 
Uudelleenohjaus https -> http
  
  <IfModule mod_rewrite.c>
+
  <!--T:162-->
 +
<IfModule mod_rewrite.c>
 
     RewriteEngine On
 
     RewriteEngine On
 
     RewriteCond %{HTTPS} on
 
     RewriteCond %{HTTPS} on
Rivi 448: Rivi 812:
 
  </IfModule>
 
  </IfModule>
  
=== mod_security ===
+
=== mod_security === <!--T:163-->
  
 +
<!--T:164-->
 
Tällä estetään SQL injektiot ja CSR. Lisätietoa https://www.digitalocean.com/community/tutorials/how-to-set-up-mod_security-with-apache-on-debian-ubuntu
 
Tällä estetään SQL injektiot ja CSR. Lisätietoa https://www.digitalocean.com/community/tutorials/how-to-set-up-mod_security-with-apache-on-debian-ubuntu
  
==== Asennus ====
+
==== Asennus ==== <!--T:165-->
  
   apt-get install libapache2-modsecurity
+
   <!--T:166-->
 +
apt-get install libapache2-modsecurity
  
 +
<!--T:167-->
 
Käynnistä Apache uudelleen
 
Käynnistä Apache uudelleen
  
   service apache2 restart
+
   <!--T:168-->
 +
service apache2 restart
  
 +
<!--T:169-->
 
Muuta oletuskonfigurointi tiedoston nimi
 
Muuta oletuskonfigurointi tiedoston nimi
  
   /etc/modsecurity/modsecurity.conf{-recommended,} (tallenna uudelleen *.conf päätteeksi)
+
   <!--T:170-->
 +
/etc/modsecurity/modsecurity.conf{-recommended,} (tallenna uudelleen *.conf päätteeksi)
  
 +
<!--T:171-->
 
Lataa Apachen konfigurointi tiedosto uudelleen
 
Lataa Apachen konfigurointi tiedosto uudelleen
  
   service apache2 reload
+
   <!--T:172-->
 +
service apache2 reload
  
 +
<!--T:173-->
 
Löydät loki tiedoston Apachen loki hakemistosta /var/log/apache2/
 
Löydät loki tiedoston Apachen loki hakemistosta /var/log/apache2/
  
   root@droplet:~# ls -l /var/log/apache2/modsec_audit.log
+
   <!--T:174-->
 +
root@droplet:~# ls -l /var/log/apache2/modsec_audit.log
 
   -rw-r----- 1 root root 0 Oct 19 08:08 /var/log/apache2/modsec_audit.log
 
   -rw-r----- 1 root root 0 Oct 19 08:08 /var/log/apache2/modsec_audit.log
  
==== Konfigurointi ====
+
==== Konfigurointi ==== <!--T:175-->
  
 +
<!--T:176-->
 
Avaa konfigurointi tiedosto
 
Avaa konfigurointi tiedosto
  
   nano /etc/modsecurity/modsecurity.conf
+
   <!--T:177-->
 +
nano /etc/modsecurity/modsecurity.conf
  
 +
<!--T:178-->
 
Etsi rivi:
 
Etsi rivi:
  
   SecRuleEngine DetectionOnly
+
   <!--T:179-->
 +
SecRuleEngine DetectionOnly
  
 +
<!--T:180-->
 
ja muuta se:
 
ja muuta se:
  
   SecRuleEngine On
+
   <!--T:181-->
 +
SecRuleEngine On
  
 +
<!--T:182-->
 
Etsi rivi:
 
Etsi rivi:
  
   SecResponseBodyAccess On
+
   <!--T:183-->
 +
SecResponseBodyAccess On
  
 +
<!--T:184-->
 
ja muuta se
 
ja muuta se
  
   SecResponseBodyAccess Off
+
   <!--T:185-->
 +
SecResponseBodyAccess Off
  
 +
<!--T:186-->
 
Näillä voit rajoittaa lähettettyjen tietojen määrää:
 
Näillä voit rajoittaa lähettettyjen tietojen määrää:
  
   SecRequestBodyLimit
+
   <!--T:187-->
 +
SecRequestBodyLimit
 
   SecRequestBodyNoFilesLimit
 
   SecRequestBodyNoFilesLimit
  
=== mod_ssl ===
+
=== mod_ssl === <!--T:188-->
  
 +
<!--T:189-->
 
Tämä moduuli mahdollistaa HTTPS yhteyden palvelimeen.  
 
Tämä moduuli mahdollistaa HTTPS yhteyden palvelimeen.  
  
==== Asennus ====
+
==== Asennus ==== <!--T:190-->
  
 +
<!--T:191-->
 
Tämä on asennettu apache2-common paketin mukana. Sinun tulee ottaa käyttöön
 
Tämä on asennettu apache2-common paketin mukana. Sinun tulee ottaa käyttöön
  
   a2enmod ssl
+
   <!--T:192-->
 +
a2enmod ssl
  
 +
<!--T:193-->
 
Käynnistä Apache uudelleen
 
Käynnistä Apache uudelleen
  
   service apache2 restart
+
   <!--T:194-->
 +
service apache2 restart
  
==== Konfigurointi ====
+
==== Konfigurointi ==== <!--T:195-->
  
 +
<!--T:196-->
 
Esimerkki: SSL konffit
 
Esimerkki: SSL konffit
  
   SSLEngine on
+
   <!--T:197-->
 +
SSLEngine on
 
   SSLCertificateFile /etc/ssl/ssl.crt
 
   SSLCertificateFile /etc/ssl/ssl.crt
 
   SSLCertificateKeyFile /etc/ssl/ssl.key
 
   SSLCertificateKeyFile /etc/ssl/ssl.key
  
 +
<!--T:198-->
 
Tallenna tilaamasi sertifikaatti hakemistoon ja määritä se virtuaali isäntään.
 
Tallenna tilaamasi sertifikaatti hakemistoon ja määritä se virtuaali isäntään.
  
 +
<!--T:199-->
 
256 bittinen salaus
 
256 bittinen salaus
  
 +
<!--T:200-->
 
256bittiseen salaukseen on muokattava Apachen konffeihin:
 
256bittiseen salaukseen on muokattava Apachen konffeihin:
  
   nano /etc/apache2/mod-available/ssl.conf
+
   <!--T:201-->
 +
nano /etc/apache2/mod-available/ssl.conf
  
 +
<!--T:202-->
 
Ja muuta riviä:
 
Ja muuta riviä:
  
   SSLCipherSuite AES256-SHA
+
   <!--T:203-->
 +
SSLCipherSuite AES256-SHA
  
=== mod_userdir ===
+
==== Lisäkonfiguraatiota ==== <!--T:264-->
  
Tämä moduuli mahdollistaa jokaiselle tai osalle palvelimen käyttäjätilille omat verkkosivut.
+
<!--T:380-->
 +
Voidaan myös määrittää Virtuaalihost kohtaisesti ja htaccess
  
==== Asennus ====
 
  
Tämä moduuli on valmiina asennettu Apachen mukana, sinun tulee laittaa se käyttöön
+
<!--T:266-->
 +
256bittiseen salaukseen on muokattava Apachen konffeihin:
  
   a2enmod userdir
+
   <!--T:381-->
 +
nano /etc/apache2/mod-available/ssl.conf
  
Käynnistä Apache uudelleen
+
  <!--T:268-->
 +
SSLCipherSuite AES256-SHA
  
  service apache2 restart
+
<!--T:382-->
 +
Poista SSL3 ja SSL2 käytöstä
  
==== Konfigurointi ====
+
  <!--T:383-->
 +
nano /etc/apache2/mod-available/ssl.conf
  
Esimerkki: Sallitaan kaikille käyttäjille käyttää tätä toimintoa. Käyttäjän tulee luoda /home/ hakemistoon public_html niminen kansio.
+
<!--T:384-->
 +
  SSLProtocol All -SSLv2 -SSLv3
  
  UserDir public_html
 
  UserDir enabled
 
  
Esimerkki: Sallitaan kaikille käyttäjätileille käyttää tätä toimintoa, paitsi root käyttäjälle. Käyttäjän tulee luoda /home/ hakemistoon public_html niminen kansio.
+
<!--T:385-->
 +
Hyvä SSLChipperSuite:
  
  UserDir public_html
 
  UserDir disabled root
 
  UserDir enabled
 
  
Esimerkki: Sallitaan vain käyttäjän user1 ja user2 käyttää tätä toimintoa. Käyttäjän tulee luoda /home/ hakemistoon public_html niminen kansio.
+
  <!--T:386-->
 +
nano /etc/apache2/mod-available/ssl.conf
  
 +
<!--T:387-->
 +
  SSLCipherSuite "ECDHE-RSA-AES128-GCM-SHA256  EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4"
  
  UserDir public_html
 
  UserDir disabled
 
  UserDir enabled user1 user2
 
  
Verkkopolku on käyttäjien kotisivuille http://ip-osoite/~username.
+
<!--T:388-->
 +
Ota käyttöön Strict Transport Security (HSTS) ominaisuus lisäämällä ottamalla käyttään moduuli headers
  
Esimerkki konfigurointi:
+
  <!--T:389-->
 +
a2enmod headers
  
  UserDir public_html
+
<!--T:390-->
  UserDir disabled root
+
ja lisäämällä konffeihin:
    <Directory /home/*/public_html>
 
        AllowOverride AuthConfig
 
        Options FollowSymLinks +Indexes
 
    </Directory>
 
    AliasMatch ^/users/([a-zA-Z0-9]+)/?(.*) /home/$1/public_html/$2
 
  
Eli kaikille käyttäjille sallittu, paitsi root käyttäjälle. Lisäksi sallitaan /home/*/public_html hakemistoon (verkkosivuhakemistoon) AuthConfig eli .htaccess tiedostoon luominen kirjautiminen näkymä. AliasMatch mahdollistaa uudelleenohjata kotisivuhakemisto esimerkiksi tässä http://ip-osoite/users/username
+
  <!--T:391-->
 +
Header always set Strict-Transport-Security "max-age=15768000; includeSubdomains; preload"
  
===== PHP5 userdir =====
+
[[Luokka:Debian|Apache2]]
 +
[[Luokka:Linux|Apache2]]
 +
[[Luokka:Ubuntu|Apache2]]
 +
[[Luokka:Webbipalvelimet|Apache2]]
 +
[[Luokka:Webserver|Apache2]]
  
Salli käyttäjien sivuilla PHP5 käyttö.
+
==== DHPARAM ==== <!--T:392-->
  
Muokkaa tiedostoa
+
<!--T:393-->
 +
Korvaa seuraava rivi /etc/apache2/mod-enabled/ssl.conf tiedostosta ja käynnistä uudelleen
  
   /etc/apache2/mod-enabled/php5.conf
+
   <!--T:394-->
 +
SSLCipherSuite "EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH+aRSA!RC4:EECDH:!RC4:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS"
  
Lisää risuaita
+
=== mod_userdir === <!--T:204-->
  
#      php_admin_value engine On
+
<!--T:205-->
 +
Tämä moduuli mahdollistaa jokaiselle tai osalle palvelimen käyttäjätilille omat verkkosivut.
  
== HTTPS / SSL ==
+
==== Asennus ==== <!--T:206-->
  
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.
+
<!--T:207-->
 +
Tämä moduuli on valmiina asennettu Apachen mukana, sinun tulee laittaa se käyttöön
  
 +
  <!--T:208-->
 +
a2enmod userdir
  
=== Virallisia SSL sertifikaatin varmentajia ===
+
<!--T:209-->
 +
Käynnistä Apache uudelleen
  
* [https://www.startssl.com/ Startssl] - Ilmainen ja toimii pääosin selaimissa.
+
  <!--T:210-->
* [https://www.namecheap.com/security/ssl-certificates/geotrust.aspx GeoTrust RapidSSL] - Luettava ja toimiva, ei liikennetoiminnalle.
+
service apache2 restart
  
==== Virallisen SSL sertifikaatin asennus ====
+
==== Konfigurointi ==== <!--T:211-->
  
Luodaan avain (key) ja sertifikaatin allekirjoituspyyntö (CSR - Certificate Signing Request). Vaihda domain.com omasi domainisi nimi.
+
<!--T:212-->
 +
Avaa konfigurointi tiedosto /etc/apache2/mods-available/userdir.conf
  
   openssl req -nodes -newkey rsa:2048 -keyout domain.com.key -out domain.com.csr
+
   <!--T:213-->
 +
nano /etc/apache2/mods-available/userdir.conf
  
Säilytä ehdottomasti domain.com.key tiedosto! Suosittelemme ehdottomasti varmuuskopioimaan domain.com.key tiedosto! Jos hävität tämän tiedoston niin menetät SSL Sertifikaatin.
+
<!--T:214-->
 +
Jos haluat määrittää tiettyyn virtuaaliseen hostiin, kommentoi tiedosto ja konfiguroi konffit virtuaali hostin konffeihin.
  
Siirry nyt kohtaan
+
<!--T:215-->
[[Apache2#SSL_salliminen_Apacheen|SSL salliminen Apacheen]]
+
Esimerkki: Sallitaan kaikille käyttäjille käyttää tätä toimintoa. Käyttäjän tulee luoda /home/ hakemistoon public_html niminen kansio.
  
=== Epävirallinen SSL sertifikaatti ===
+
  <!--T:216-->
 +
UserDir public_html
 +
  UserDir enabled
  
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.
+
<!--T:217-->
 +
Esimerkki: Sallitaan kaikille käyttäjätileille käyttää tätä toimintoa, paitsi root käyttäjälle. Käyttäjän tulee luoda /home/ hakemistoon public_html niminen kansio.
  
 +
  <!--T:218-->
 +
UserDir public_html
 +
  UserDir disabled root
 +
  UserDir enabled
  
<gallery>
+
<!--T:219-->
Tiedosto:Ssl_virhe.png|SSL virheilmoitus epävirallisessa sertifikaatissa
+
Esimerkki: Sallitaan vain käyttäjän user1 ja user2 käyttää tätä toimintoa. Käyttäjän tulee luoda /home/ hakemistoon public_html niminen kansio.
</gallery>
 
  
Yksinkertainen SSL Sertifikaatti voi luoda tällä komennolla:
 
  
   make-ssl-cert generate-default-snakeoil
+
   <!--T:220-->
 +
UserDir public_html
 +
  UserDir disabled
 +
  UserDir enabled user1 user2
  
Määritetään Apacheen SSL avaamalla /etc/apache2/sites-available/default-ssl
+
<!--T:221-->
+
Verkkopolku on käyttäjien kotisivuille http://ip-osoite/~username.
  nano /etc/apache2/sites-available/default-ssl
 
  
  SSLEngine on
+
<!--T:222-->
 +
Esimerkki konfigurointi:
  
  SSLCertificateFile /etc/ssl/localcerts/ssl.crt
+
  <!--T:223-->
  SSLCertificateKeyFile /etc/ssl/localcerts/ssl.key
+
UserDir public_html
 +
  UserDir disabled root
 +
    <Directory /home/*/public_html>
 +
        AllowOverride AuthConfig
 +
        Options FollowSymLinks +Indexes
 +
    </Directory>
  
=== SSL salliminen Apacheen ===
+
<!--T:224-->
 +
Lisää seuraava rivi jos haluat käyttää osoitetta http://ip-osoite/user/username
  
Käynnistetään SSL sivut
+
      <!--T:225-->
 +
AliasMatch ^/users/([a-zA-Z0-9]+)/?(.*) /home/$1/public_html/$2
  
  a2ensite default-ssl
+
<!--T:226-->
 +
Eli kaikille käyttäjille sallittu, paitsi root käyttäjälle. Lisäksi sallitaan /home/*/public_html hakemistoon (verkkosivuhakemistoon) AuthConfig eli .htaccess tiedostoon luominen kirjautiminen näkymä. AliasMatch mahdollistaa uudelleenohjata kotisivuhakemisto esimerkiksi tässä http://ip-osoite/users/username
  
Lisätään SSL moduuli Apacheen
+
===== PHP5 userdir ===== <!--T:227-->
  
  a2enmod ssl
+
<!--T:228-->
 +
Salli käyttäjien sivuilla PHP5 käyttö.
  
Lataa Apachen  konfigurointi tiedostot uudelleen
+
<!--T:229-->
 +
Muokkaa tiedostoa
  
   service apache2 reload
+
   <!--T:230-->
 
+
/etc/apache2/mod-enabled/php5.conf
Sallitaan SSL Apacheen
 
 
 
a2enmod ssl
 
 
 
ja käynnistetään Apache uudelleen
 
 
 
  service apache2 restart
 
 
 
==== Lisäkonfiguraatiota ====
 
 
 
Voidaan myös määrittää Virtuaalihost kohtaisesti ja htaccess
 
 
 
 
 
 
 
256bittiseen salaukseen on muokattava Apachen konffeihin:
 
 
 
  nano /etc/apache2/mod-available/ssl.conf
 
 
 
  SSLCipherSuite AES256-SHA
 
 
 
Poista SSL3 ja SSL2 käytöstä
 
 
 
  nano /etc/apache2/mod-available/ssl.conf
 
 
 
  SSLProtocol All -SSLv2 -SSLv3
 
 
 
Hyvä SSLChipperSuite:
 
 
 
  nano /etc/apache2/mod-available/ssl.conf
 
 
 
  SSLCipherSuite "ECDHE-RSA-AES128-GCM-SHA256  EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4"
 
  
 +
<!--T:231-->
 +
Lisää risuaita
  
Ota käyttöön Strict Transport Security (HSTS) ominaisuus lisäämällä tämä htaccess tiedostoon:
+
<!--T:232-->
 +
#      php_admin_value engine On
  
  Header set Strict-Transport-Security "max-age=31536000" env=HTTPS
+
===== Luo uudelle käyttäjälle public_html kansio ===== <!--T:233-->
  
=== HTTPS testi ===
+
<!--T:234-->
 +
Luo kansio /etc/skel hakemiston alle. Täälä olevat tiedostot ja kansiot automaattisesti kopioidaan uuden käyttäjän kotikansioon.
  
Kannattaa suorittaa palvelimessa HTTPS testi:
+
  <!--T:235-->
 +
mkdir /etc/skel/public_html
  
https://www.ssllabs.com/ssltest/
+
== .htaccess == <!--T:280-->
 
 
== .htaccess ==
 
  
 +
<!--T:281-->
 
.htaccess tiedosto mahdollistaa konfigurointi tiedostojen tallentamisen suoraan verkkosivuhakemistoon, esimerkiksi /var/www/.htaccess.  
 
.htaccess tiedosto mahdollistaa konfigurointi tiedostojen tallentamisen suoraan verkkosivuhakemistoon, esimerkiksi /var/www/.htaccess.  
  
 +
<!--T:282-->
 
Sallitaan .htaccess tiedoston ylikirjoittamaan entiset konfiguroinnit:
 
Sallitaan .htaccess tiedoston ylikirjoittamaan entiset konfiguroinnit:
  
  
   /etc/apache2/sites-available/default
+
   <!--T:283-->
 +
/etc/apache2/sites-available/default
  
 +
<!--T:284-->
 
seuraavanlaiseksi:
 
seuraavanlaiseksi:
  
         <Directory /var/www/>
+
         <!--T:285-->
 +
<Directory /var/www/>
 
                 Options Indexes FollowSymLinks MultiViews
 
                 Options Indexes FollowSymLinks MultiViews
 
                 AllowOverride All
 
                 AllowOverride All
Rivi 713: Rivi 1 121:
 
Käynnistä Apache uudelleen:
 
Käynnistä Apache uudelleen:
  
   service apache2 reload
+
   <!--T:286-->
 +
service apache2 reload
  
 +
<!--T:287-->
 
Luodaan .htaccess tiedosto /var/www/.htaccess (HUOM! Varmista että se on ".htaccess" ei .htacess.txt ym.)
 
Luodaan .htaccess tiedosto /var/www/.htaccess (HUOM! Varmista että se on ".htaccess" ei .htacess.txt ym.)
  
   nano /var/www/.htaccess
+
   <!--T:288-->
 +
nano /var/www/.htaccess
  
=== Salasanasuojaus verkkosivulle ===
+
=== Salasanasuojaus verkkosivulle === <!--T:289-->
  
  
 +
<!--T:290-->
 
'''!! htpasswd httpd-2.4.4 on rikki. Odota päivitystä.  !!
 
'''!! htpasswd httpd-2.4.4 on rikki. Odota päivitystä.  !!
 
'''
 
'''
  
  
 +
<!--T:291-->
 
Kirjoita alla olevat rivit .htaccess tiedotoon:
 
Kirjoita alla olevat rivit .htaccess tiedotoon:
  
   AuthUserFile /var/.htpasswd
+
   <!--T:292-->
 +
AuthUserFile /var/.htpasswd
 
   AuthName "Anna kirjautumisen tiedot"
 
   AuthName "Anna kirjautumisen tiedot"
 
   AuthType Basic
 
   AuthType Basic
 
   require user [käyttäjänimet]
 
   require user [käyttäjänimet]
  
 +
<!--T:293-->
 
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!
 
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
+
   <!--T:294-->
 +
käyttäjänimi:salasana
  
 +
<!--T:295-->
 
Sinun tulee käyttää Debianissa htpasswd työkalua. Internetissä on myös htpasswd työkaluja saatavilla.
 
Sinun tulee käyttää Debianissa htpasswd työkalua. Internetissä on myös htpasswd työkaluja saatavilla.
  
 +
<!--T:296-->
 
Esimerkki:
 
Esimerkki:
  
  htpasswd -B /polku/.htpasswd Käyttäjätunnus Salasana
+
  <!--T:297-->
 +
htpasswd -B /polku/.htpasswd Käyttäjätunnus Salasana
  
 +
<!--T:298-->
 
Tallenna tiedosto ja kokeile kirjautua sivullesi.
 
Tallenna tiedosto ja kokeile kirjautua sivullesi.
  
  
==== htpasswd bugin väliaikaisen korjaus ====
+
==== htpasswd bugin väliaikaisen korjaus ==== <!--T:299-->
  
 +
<!--T:300-->
 
Bugi ei anna kuin Debianissa generoituja salasanojen kirjautumisen järjestelmään.  
 
Bugi ei anna kuin Debianissa generoituja salasanojen kirjautumisen järjestelmään.  
  
 +
<!--T:301-->
 
Voit generoida salasanan tällä komennolla:
 
Voit generoida salasanan tällä komennolla:
  
   htpasswd -nb user password
+
   <!--T:302-->
 +
htpasswd -nb user password
  
 +
<!--T:303-->
 
Kopioi ja tallenna htpasswd tiedostoon, näin pitäisi toimia
 
Kopioi ja tallenna htpasswd tiedostoon, näin pitäisi toimia
  
=== Virhesivut ===
+
=== Virhesivut === <!--T:304-->
  
 +
<!--T:305-->
 
Kirjoita alla olevat .htaccess tiedostoon. Muuta polut vastaamaan palvelimessasi olevaa polkua.
 
Kirjoita alla olevat .htaccess tiedostoon. Muuta polut vastaamaan palvelimessasi olevaa polkua.
  
   ErrorDocument 400 /errors/badrequest.html
+
   <!--T:306-->
 +
ErrorDocument 400 /errors/badrequest.html
 
   ErrorDocument 401 /errors/authreqd.html
 
   ErrorDocument 401 /errors/authreqd.html
 
   ErrorDocument 403 /errors/forbid.html
 
   ErrorDocument 403 /errors/forbid.html
Rivi 766: Rivi 1 192:
 
   ErrorDocument 500 /errors/serverr.html
 
   ErrorDocument 500 /errors/serverr.html
  
 +
<!--T:307-->
 
Määritä polut oikein vastaamaan palvelimesi polkuja missä virhesivusi sijaitsevat
 
Määritä polut oikein vastaamaan palvelimesi polkuja missä virhesivusi sijaitsevat
  
== Apachen suojaaminen ==
+
== Apachen suojaaminen == <!--T:308-->
  
 +
<!--T:309-->
 
Webbipalvelimen suojaaminne ulkopuolisten hyökkäyksiltä kannattaa tehdä.  mod_evansive ja mod_security auttavat siinä. Olen heiman kuitenkin koonnut lisää konffeja jolla voi suojata Apachea paremmi.
 
Webbipalvelimen suojaaminne ulkopuolisten hyökkäyksiltä kannattaa tehdä.  mod_evansive ja mod_security auttavat siinä. Olen heiman kuitenkin koonnut lisää konffeja jolla voi suojata Apachea paremmi.
  
  
 +
<!--T:310-->
 
Piilota Apachen versio ja muut tiedot
 
Piilota Apachen versio ja muut tiedot
  
   /etc/apache2/conf.d/secure
+
   <!--T:311-->
 +
/etc/apache2/conf.d/security
  
   ServerSignature Off
+
   <!--T:312-->
 +
ServerSignature Off
 
   ServerTokens Prod
 
   ServerTokens Prod
  
 +
<!--T:313-->
 
Poista kansioden selaus käytöstä
 
Poista kansioden selaus käytöstä
  
 +
<!--T:314-->
 
.htaccess
 
.htaccess
  
   Options -Indexes
+
   <!--T:315-->
 +
Options -Indexes
  
 +
<!--T:316-->
 
Määritä Timeout
 
Määritä Timeout
  
   /etc/apache2/apache2.conf
+
   <!--T:317-->
 +
/etc/apache2/apache2.conf
  
   Timeout 45
+
   <!--T:318-->
 +
Timeout 45
  
 +
<!--T:319-->
 
Rajoita pyyntöjä
 
Rajoita pyyntöjä
  
   /etc/apache2/apache2.conf
+
   <!--T:320-->
 +
/etc/apache2/apache2.conf
  
   LimitRequestBody 1048576
+
   <!--T:321-->
 +
LimitRequestBody 1048576
  
=== Apache2 + PAM autentikointi ===
+
=== Apache2 + PAM autentikointi === <!--T:322-->
  
 +
<!--T:323-->
 
Asennetaan lisämoduuli apacheen
 
Asennetaan lisämoduuli apacheen
  
  aptitude install libapache2-mod-auth-pam
+
  <!--T:324-->
 +
aptitude install libapache2-mod-auth-pam
  
 +
<!--T:325-->
 
Avataan Apachen Virtuaalihost konfigurointi tiedosto
 
Avataan Apachen Virtuaalihost konfigurointi tiedosto
  
  nano /etc/apache2/sites-enabled/000-default
+
  <!--T:326-->
 +
nano /etc/apache2/sites-enabled/000-default
  
        <Directory /var/www/salaista/> #Polku palvelimella
+
<!--T:327-->
 +
<pre>
 +
<Directory /var/www/salaista/> #Polku palvelimella
 
         AuthType Basic
 
         AuthType Basic
 
         AuthName "ebin" #Viesti kirjautumisessa
 
         AuthName "ebin" #Viesti kirjautumisessa
Rivi 818: Rivi 1 264:
 
         AuthGroupFile /etc/group
 
         AuthGroupFile /etc/group
 
         Require group Role_Adminit #Salli tietylle käyttäjäryhmälle oikeudet
 
         Require group Role_Adminit #Salli tietylle käyttäjäryhmälle oikeudet
        </Directory>
+
</Directory>
 +
</pre>
  
 +
<!--T:328-->
 
Näin Unixin tunnuksillakin voi kirjautua htaccess sivulle (ilman että htpasswd komentoa on ajettu).
 
Näin Unixin tunnuksillakin voi kirjautua htaccess sivulle (ilman että htpasswd komentoa on ajettu).
  
==  Loki ==
+
=== Apache ja Active Directory todennus === <!--T:395-->
 +
 
 +
<!--T:396-->
 +
Testattu Apache 2.2 Debianilla.
 +
 
 +
<!--T:397-->
 +
Ota käyttöön moduulit authnz_ldap ja ldap
 +
 
 +
  <!--T:398-->
 +
a2enmod authnz_ldap
 +
 
 +
  <!--T:399-->
 +
a2enmod ldap
 +
 
 +
<!--T:400-->
 +
Kopioi alla oleva haluamasi virtualihostiin.
 +
 
 +
<!--T:401-->
 +
<pre>
 +
<Directory "/var/www/login">
 +
        AuthType Basic
 +
        AuthName "Active Directory kirjautuminen"
 +
 
 +
        <!--T:402-->
 +
AuthBasicProvider ldap
 +
        AuthzLDAPAuthoritative off
 +
 
 +
        <!--T:403-->
 +
AuthLDAPURL "ldap://dc.domain.com:389/dc=domain,dc=com?sAMAccountName?sub?(objectClass=*)"
 +
 
 +
        <!--T:404-->
 +
AuthLDAPBindDN "[email protected]"
 +
        AuthLDAPBindPassword salaisuus
 +
 
 +
        <!--T:405-->
 +
Require valid-user
 +
        #Require ldap-group CN=Administrators,CN=Users,DC=example,DC=com
 +
</Directory>
 +
</pre>
 +
 
 +
<!--T:406-->
 +
* AuthLDAPURL on osoite jossa ldap palvelin (toimialueenohjauskone) on. Muuta konfiguraatiota vastaamaan palvelimesi konfiguraatiota. Kokeile myös porttia 3268.
 +
* AuthLDAPBindDN on käyttäjätunnus jolla on pääsy lukemaan Active Directoryä
 +
* AuthLDAPBindPassword on käyttäjätunnuksen salasana
 +
 
 +
<!--T:407-->
 +
Jos ei toimi lisää tämä konfiguraatioon ja katso Apachen error log tiedosto /var/log/apache/error.log:
 +
 
 +
  <!--T:408-->
 +
LogLevel debug
 +
 
 +
==  Loki == <!--T:329-->
  
 +
<!--T:330-->
 
Apachen lokiin virhe ja kävijä lokit
 
Apachen lokiin virhe ja kävijä lokit
  
  ErrorLog ${APACHE_LOG_DIR}/error.log
+
  <!--T:331-->
 +
ErrorLog ${APACHE_LOG_DIR}/error.log
 
   
 
   
 
  # Possible values include: debug, info, notice, warn, error, crit,
 
  # Possible values include: debug, info, notice, warn, error, crit,
Rivi 834: Rivi 1 335:
 
  CustomLog ${APACHE_LOG_DIR}/access.log combined ==
 
  CustomLog ${APACHE_LOG_DIR}/access.log combined ==
  
== Ongelmanratkaisu ==
+
== Apachen postaminen == <!--T:332-->
 +
 
 +
<!--T:333-->
 +
Pysäytä Apache2
 +
 
 +
  <!--T:334-->
 +
service apache2 stop
 +
 
 +
<!--T:335-->
 +
Poistetaan Apachen2 paketit:
 +
 
 +
  <!--T:336-->
 +
apt-get purge apache2 apache2-utils apache2.2-bin apache2-common
 +
 
 +
<!--T:337-->
 +
Etsitään Apachen hakemistoja ja poistetaan ne yksitellen:
 +
 
 +
  <!--T:338-->
 +
whereis apache2
 +
 
 +
<!--T:339-->
 +
Tässä tulostuu esimerkiksi:
 +
 
 +
  <!--T:340-->
 +
apache2: /etc/apache2
 +
 
 +
<!--T:341-->
 +
Poistetaan hakemisto:
 +
 
 +
  <!--T:342-->
 +
sudo rm -rf /etc/apache2
  
 +
== Ongelmanratkaisu == <!--T:343-->
 +
 +
<!--T:344-->
 
Jos Apache ei käynnisty ja tulee jonkinlainen virhe, varmista että olet kirjoittanut konfigurointi tiedostoihin oikein jä tämän jälkeen kannattaa avata palvelimen loki:
 
Jos Apache ei käynnisty ja tulee jonkinlainen virhe, varmista että olet kirjoittanut konfigurointi tiedostoihin oikein jä tämän jälkeen kannattaa avata palvelimen loki:
  
   /var/log/apache2/error.log
+
   <!--T:345-->
 +
/var/log/apache2/error.log
  
 +
<!--T:346-->
 
sinne tallentuu kaikki virheilmoitukset. Kopioi virheilmoitus ja Googleta virheilmoitus. Googlesta saat ongelmaan ratkaisun.
 
sinne tallentuu kaikki virheilmoitukset. Kopioi virheilmoitus ja Googleta virheilmoitus. Googlesta saat ongelmaan ratkaisun.
  
 +
<!--T:347-->
 
Konfiguroinnin tarkistus
 
Konfiguroinnin tarkistus
  
   apachectl configtest
+
   <!--T:348-->
 +
apachectl configtest
  
 +
<!--T:349-->
 
TAI
 
TAI
  
   apache2ctl configtest
+
   <!--T:350-->
 +
apache2ctl configtest
  
== Lähteet ==
+
== Lähteet == <!--T:351-->
  
 +
<!--T:352-->
 
http://fi.wikipedia.org/wiki/Apache_(palvelinohjelma)
 
http://fi.wikipedia.org/wiki/Apache_(palvelinohjelma)
  
 +
<!--T:353-->
 
https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-debian-7
 
https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-debian-7
  
 +
<!--T:354-->
 
http://wiki.syotec.fi/index.php?title=JAH380_-_Linux_Server_-_Toimialue
 
http://wiki.syotec.fi/index.php?title=JAH380_-_Linux_Server_-_Toimialue
  
 +
<!--T:355-->
 
http://www.rudedog.org/pipermail/auth_ldap/2003-December/001494.html
 
http://www.rudedog.org/pipermail/auth_ldap/2003-December/001494.html
  
 +
<!--T:356-->
 
http://www.edugeek.net/forums/nix/7453-apache-winbind-authentication-2.html
 
http://www.edugeek.net/forums/nix/7453-apache-winbind-authentication-2.html
  
 +
<!--T:357-->
 
http://www.held-im-ruhestand.de/software/apache-ldap-active-directory-authentication
 
http://www.held-im-ruhestand.de/software/apache-ldap-active-directory-authentication
  
 +
<!--T:358-->
 
http://enarion.net/web/htaccess/redirect-www-and-no-www/
 
http://enarion.net/web/htaccess/redirect-www-and-no-www/
  
 +
<!--T:359-->
 
https://www.digicert.com/ssl-certificate-installation-apache.htm
 
https://www.digicert.com/ssl-certificate-installation-apache.htm
  
 +
<!--T:360-->
 
https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-centos-6
 
https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-centos-6
  
 +
<!--T:361-->
 
http://httpd.apache.org/docs/2.2/mod/mod_ssl.html
 
http://httpd.apache.org/docs/2.2/mod/mod_ssl.html
  
 +
<!--T:362-->
 
http://stackoverflow.com/questions/24144552/how-to-set-hsts-header-from-htaccess-only-on-https
 
http://stackoverflow.com/questions/24144552/how-to-set-hsts-header-from-htaccess-only-on-https
 +
 +
<!--T:363-->
 +
http://xmodulo.com/how-to-uninstall-and-remove-apache2-on-ubuntu-debian.html
 +
 +
<!--T:409-->
 +
http://codeconnoisseur.org/ramblings/apache-22-and-active-directory-and-group-restrictions
 +
 +
<!--T:364-->
 +
[[Category:Debian]]
 +
[[Category:Webbipalvelimet]]
 +
</translate>
 +
 +
[[Category:Linux]]
 +
[[Category:Debian]]
 +
[[Category:Ubuntu]]
 +
[[Category:Webserver]]

Nykyinen versio 8. lokakuuta 2017 kello 07.50

Muut kielet:
English • ‎suomi

Apache on avoimeen lähdekoodiin perustuva HTTP - palvelinohjelmisto (webbiserveri). Apachen voi myös asentaa Windowsille ja on integroituna Mac OSX - käyttöjärjestelmässä. Apache on ollut pitkään internetin suosituin webbipalvelinohjelmisto.

Tämä ohje on yleinen ohje Apache2 palvelinohjelmistolle. Kaikki on testattu Apache 2.2 versiossa ja Apache 2.4 muutokset löytyvät täältä.

Lisätietoa Apachesta: Apache (palvelinohjelma)

Asentaminen

Asennusohje on tehty Apache 2.2 versiolle Debian 7.8 käyttöjärjestelmään.

Debian / Ubuntu

Apache löytyy Debianista DVD 1 - levyltä.

Apache asennetaan komennolla:

 aptitude install apache2

Voit testata sivujasi menemällä selaimella osoitteeseen 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 konfigurointihakemisto löytyy täältä:

 /etc/apache2

Oletusverkkosivun asetukset löytyvät täältä ja voit avata sen tekstieditoriin:

 nano /etc/apache2/sites-enabled/default

Apachen kanssa voi käyttää myös Php5 ja Mysql.

Apache 2.2. Ubuntu 16.04:lle

Ei suositeltavaa mutta jos on pakko :) Eli asennetaan Ubuntu 16.04:lle Apache 2.2 (x64).

cd /tmp/
wget http://security.ubuntu.com/ubuntu/pool/main/a/apache2/apache2_2.2.22-1ubuntu1.11_amd64.deb
wget http://security.ubuntu.com/ubuntu/pool/main/a/apache2/apache2-utils_2.2.22-1ubuntu1.11_amd64.deb
wget http://security.ubuntu.com/ubuntu/pool/main/a/apache2/apache2.2-bin_2.2.22-1ubuntu1.11_amd64.deb
wget http://security.ubuntu.com/ubuntu/pool/main/a/apache2/apache2.2-common_2.2.22-1ubuntu1.11_amd64.deb
wget http://security.ubuntu.com/ubuntu/pool/main/a/apache2/apache2-mpm-worker_2.2.22-1ubuntu1.11_amd64.deb

Asenna paketit

sudo dpkg -i apache2-utils_2.2.22-1ubuntu1.11_amd64.deb
sudo dpkg -i apache2.2-bin_2.2.22-1ubuntu1.11_amd64.deb
sudo dpkg -i apache2.2-common_2.2.22-1ubuntu1.11_amd64.deb
sudo dpkg -i apache2-mpm-worker_2.2.22-1ubuntu1.11_amd64.deb
sudo dpkg -i apache2_2.2.22-1ubuntu1.11_amd64.deb

Jos saat virheen että joitakin dependereitä puuttuu, käytä apt-get install -f komentoa asentaakseen ne. Varmista että asentaa oikeata versiota.

Lisäksi voit asentaa PH5:n.

Red Hat / CentOS / Fedora

Asenna Apache2 komennolla

 yum install httpd

Käynnistä Apache2

 service httpd start

Lisätietoa CentOS ohjeita: https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-centos-6

Konfigurointi

Apachen konfigurointihakemistosta

Debian / Ubuntu:

 cd /etc/apache2/

löytyy tällaisia 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ääkonfigurointitiedosto. Tähän tiedostoon voidaan tehdä kaikki apachen määritykset, vaikka olisi suositeltavaa käyttää erillisiä tiedostoja selkeyden vuoksi.

ports.conf Tänne määritetään portit ja virtual hostit vastaavat pyyntöihin.

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 virtual hostien kokoonpanojen määritystiedostot.

sites-enabled/ Hakemistossa määritetään mitä virtual hosteja todellisuudessa käytetään.

mods-available/ Moduulien määritykset.

mods-enabled/ Moduulit jotka ovat käytössä.

Red Hat / CentOS / Fedora:

 /etc/httpd/

Apachen oma konfigurointitiedosto löytyy CentOS käyttöjärjestelmästä:

 /etc/httpd/conf/httpd.conf


apache2.conf

 nano /etc/apache2/apache2.conf

Parametrit tiedostossa:

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)

Hakemistossa on oletuksena default ja nyt luodaan toinen virtuaalihosti. Alla on esimerkki virtuaalihostista ja tallenna se esimerkiksi nimellä intra.

<VirtualHost *:80>                            #*.80 = Vastaa kaikille IP-osoitteille portissa 80.
        ServerAdmin webmaster@localhost        #Palvelimen ylläpitäjän sähköpostiosoite
        ServerName example.com                 #Palvelimen nimi tai verkko-osoite (Voit käyttää IPv4- ja IPv6-osoitteita)
        ServerAlias www.example.com            #Alidomain, voi olla useita (Voit käyttää IPv4- ja IPv6-osoitteita)
        DocumentRoot /var/www                  #päähakemisto, jossa verkkosivut sijaitsevat
        <Directory />
                Options FollowSymLinks
                AllowOverride None             #Salli konfigurointien yliajamisen (.htaccess) juuri hakemistossa (ei suositella)
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None             #Salli konfigurointien yliajamisen (.htaccess)
                Order allow,deny               #Salli, estä muut
                allow from all                 #Salli kaikkien muodostamisen verkkosivuusi
        </Directory>
</VirtualHost>

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 (fyysinen polku ja ServerName) 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

a2ensite [tiedoston nimi joka on /etc/apache2/sites-available] hakemistossa jonka haluat käyttöön

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 (jos määritit muuhun porttiin kuin 80 (HTTP oletusportti)) tiedostoon:

 NameVirtualHost isäntänimi:portti

Lisätietoa:

Sivuston poistaminen käytöstä:

 a2dissite sivun_nimi

Sivun nimi on sama kuin /etc/apache2/sites-available/[sivusi_nimi]

 service apache2 reload

Virtuaali Hakemistot

Virtuaali Directory mahdollistaa Apachen webbihakemiston hakemisen eri sijannista kuin root hakemisto on

Alias /webbialihakemisto/ /polku/
# Verkkosivupolku (/webbihakemisto) ja fyysinen polku ("/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>

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

Lisämoduulit

Lisäominaisuuksia ja lisäturvallisuutta Apachen käyttöön.

Lisämoduulien hakemisto on Apachessa:

 /etc/apache2/mods-available 

Ja tässä hakemistossa käytössä olevat moduulit

 /etc/apache2/mods-enabled

Määrittäminen .htaccess tai virtuaali-isäntään

 <IfModule mod_[moduulinnimi].c>
 ...
 # Määritä tähän kaikki konffit
 ..
 </IfModule>

mod_bw (mod_bandwidth)

mod_bw:llä (mod_bandwidth) voi rajoittaa Apachen käyttämää kaistaa, esimerkiksi ladatessa suuria tiedostoja.

Asennus

Asenna mod_bw pakettihallinnasta

 apt-get install libapache2-mod-bw

Ota mod-bw käyttöön komennolla

 a2enmod bw

Konfigurointi

Ota moduuli käyttöön

  BandwidthModule On

Pakota moduuli käyttöön kaikilla yhteyksillä

  ForceBandWidthModule On

Rajoita yhteyksiä kaikille 10Mt/s

  Bandwidth all 10000000

Poista rajoitus kokonaan IP:lle 192.168.215.5

 BandWidth 192.168.218.5 0

Salli enintään 10 yhteyttä samaanaikaan

  MaxConnection all 10

Rajoita kaikkien .avi tiedostopääteiden latausnopeutta 1000t/s - 5Mt/s

  LargeFileLimit .avi 1000 5000000

Esimerkki

  <Directory /var/www>
  Ota moduuli käyttöön
  BandwidthModule On
  ForceBandWidthModule On
  Bandwidth all 10000000
  BandWidth 192.168.218.5 0
  MaxConnection all 10
  LargeFileLimit .avi 1000 5000000
  </Directory>

mod_dir

Tämä ominaisuus päättää oletustiedosto jos annetaan esimerkiksi www.example.com. Yleensä tämä on index.html, index.php tai index.htm.

Ominaisuus on oletuksena käytössä ja sitä voi muuttaa

 /etc/apache2/mod-available/dir.conf

Sisältä on oletuksena seuraavanlainen:

 <IfModule mod_dir.c>

         DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm

 </IfModule>

mod_evansive

Tämä Apachen lisäosa estää DDOS (palvelunestohyökkäykset) webbipalvelimeen. Suositeltavaa on asentaa Apacheen. Tämä rajoittaa verkkosivusi latauksia seuraavalla tavalla

  • Pyytämällä samalla sivulla enemmän kuin pari kertaa sekunnissa
  • Estää yli 50 samanaikaisia ​​pyyntöjä samalle laitteelle sekunnissa
  • Estää mitään pyyntöjä taas väliaikaisesti mustalla listalla (eli estolistalle)

Asentaminen

 apt-get install libapache2-mod-evasive

Käynnistä Apache uudelleen

 service apache2 restart

Luodaan kansio lokitiedostoja varten:

 mkdir -p /var/log/apache2/evasive

ja määritetään käyttöoikeudet

 chown -R www-data:root /var/log/apache2/evasive

Konfigurointi

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 (esimerkissä default):

 nano /etc/apache2/sites-available/default

ja lisätään rivit jokaiseen virtual hostiin:

...
</Directory>
<IfModule  mod_evasive20.c>
 DOSHashTableSize 3097
 DOSPageCount 2
 DOSSiteCount 50
 DOSPageInterval 5
 DOSSiteInterval 1
 DOSBlockingPeriod 10
 DOSLogDir “/var/log/apache2/evasive”
 #DOSSystemCommand "sudo -u root /sbin/iptables -A INPUT -s %s -j DROP"
</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

DOSLogDir = Loki

DOSSystemCommand = Lisäparametrejä (poistettu käytöstä, kehittyneimille)


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

mod_http2

HTTP/2 Apache2:selle käyttöön. Tuettu Apache 2.4.18 jälkeen mutta testasimme tätä Apache 2.4.27 versiossa.

Asennus

Ubuntun jakelussa tätä ei ainakaan löytynyt mutta PPA:sta löytyy

sudo apt-get install software-properties-common python-software-properties
sudo add-apt-repository ppa:ondrej/apache2
sudo apt-get update
sudo apt-get install apache2
sudo a2enmod http2

Lisää seuraavan rivi Apache2 konfiguraatioon

Protocols h2 h2c http/1.1

Käynnistä apache2 uudelleen

HTTP/2 ei ole tuettu preforkissa

Kun käytösssi on Apache MPM prefork moduuli niin HTTP/2 ei voida ottaa käyttöön, eli vaihdetaan käyttöön PHP7.0-FPM Apachelle.

sudo apt install php7.0-fpm
sudo service apache2 stop
sudo a2enmod proxy_fcgi setenvif
sudo a2dismod php7.0
sudo a2enconf php7.0-fpm.conf
sudo a2dismod mpm_prefork 
sudo a2enmod mpm_event 
sudo service apache2 start

mod_proxy

Apachella on mahdollista lisämoduulien avulla tehdä reverse proxy. Tällä välityspalvelimella voi esimerkiksi välittää välityspalvelimella verkkosivuliikennettä muihin webpalvelimiin.

Asennus

Asenna vaaditut paketit

 aptitude install -y libapache2-mod-proxy-html libxml2-dev

Ota käyttöön vaaditut paketit

a2enmod proxy
a2enmod proxy_http
a2enmod proxy_ajp
a2enmod rewrite
a2enmod deflate
a2enmod headers
a2enmod proxy_balancer
a2enmod proxy_connect
a2enmod proxy_html

Konfiguroi Vhost

Esimerkki konfiguraatio virtuaalihostille. Muuta http://0.0.0.0:8080 vastaamaan oman palvelimesi osoitteita.

<VirtualHost *:*>
    ProxyPreserveHost On

    # Servers to proxy the connection, or;
    # List of application servers:
    # Usage:
    # ProxyPass / http://[IP Addr.]:[port]/
    # ProxyPassReverse / http://[IP Addr.]:[port]/
    # Example: 
    ProxyPass / http://0.0.0.0:8080/
    ProxyPassReverse / http://0.0.0.0:8080/

    ServerName localhost
</VirtualHost>

SSL vhost

Esimerkiksi https sivusta

Listen 443

NameVirtualHost *:443
<VirtualHost *:443>

    SSLEngine On

    # Set the path to SSL certificate
    # Usage: SSLCertificateFile /path/to/cert.pem
    SSLCertificateFile /etc/apache2/ssl/file.pem

    SSLProxyEngine On
    ProxyPreserveHost On

    # Servers to proxy the connection, or;
    # List of application servers:
    # Usage:
    # ProxyPass / http://[IP Addr.]:[port]/
    # ProxyPassReverse / http://[IP Addr.]:[port]/
    # Example: 
    ProxyPass / http://0.0.0.0:8080/
    ProxyPassReverse / http://0.0.0.0:8080/

    # Or, balance the load:
    # ProxyPass / balancer://balancer_cluster_name

</VirtualHost>

mod_expires

Tämä mahdollistaa välimuistiin tallennettujen elementtien viimeisen voimassaoloajan määrittämisen. Välimuistiin kannattaa määrittää kuvat, sillä tää toiminto sallii tallentamaan esimerkiksi kuvat selaimen välimuistiin enintään kyseisen päivän asti. Selaimen välimuistissa olevat kuvat säästävät kaistaa palvelimen ja käyttäjän välillä, joten sivun lataus nopeutuu, kun ei tarvitse kuvia hakeaa palvelimelta joka kerta uudelleen. Välimuistin kanssa voi tulla ongelmia jos sivuston tulisi päivittyä usein.

Asennus

Tämä ominaisuus on valmiina Apachen asennuspaketissa. Ota ominaisuus käyttöön komennolla

 a2enmod expires

Käynnistä Apache uudelleen

 service apache2 restart

Konfigurointi

Voit määrittää konfiguroinnin suoraan virtuaali isäntään ja .htacess tiedostoon.

Esimerkki:

## EXPIRES CACHING ##
  <IfModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access plus 30 days"
  </IfModule>
## EXPIRES CACHING ##

Eli oletuksena 30 päivää, jolloin vaaditaan uudelleenlataus palvelimelta kaikille tiedostoille, jotka ladattu selaimen välimuistiin.


Lisää:

 ExpiresActive On
 ExpiresByType image/jpg "access plus 1 year"
 ExpiresByType image/jpeg "access plus 1 year"
 ExpiresByType image/gif "access plus 1 year"
 ExpiresByType image/png "access plus 1 year"
 ExpiresByType text/css "access plus 1 month"
 ExpiresByType application/pdf "access plus 1 month"
 ExpiresByType text/x-javascript "access plus 1 month"
 ExpiresByType application/x-shockwave-flash "access plus 1 month"
 ExpiresByType image/x-icon "access plus 1 year"
 ExpiresDefault "access plus 2 days"

Kuville 1 vuoden viimeinen voimassaoloaika, pdf-tiedostoille, javascript sekä flash on kuukausi. Ikoneille yksi vuosi ja oletus muille on kaksi päivää.

mod_rewrite

Uudellenohjaus moduuli, mahdollistaa verkkosivuihin uudelleenohjauksia.

Asennus

Tämä on asennettu valmiina Apacheen, sinun tulee ottaa toiminto käyttöön:

 a2enmod rewrite

Käynnistä Apache uudelleen

 service apache2 restart

Konfigurointi

Esimerkki: HTTP -> HTTPS

 RewriteEngine On
 RewriteCond %{HTTPS} off
 RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI}

Eli uudelleenohjataan samaan sijaintiin HTTPS kanssa, kun pyydetään.

Esimerkki: Uudelleenohjaus UserAgentin avulla

 RewriteCond  %{HTTP_USER_AGENT}  (iPhone|Blackberry|Android)
 RewriteRule  ^/$                 /mobile.html  [L]
 
 RewriteRule  ^/$                 /std.html  [L]

Eli Iphone, Blackberry ja Android laitteet uudelleenohjataan /mobile.html sivulle. Lisääthän tarvittavat UserAgent tiedot että tämä toimisi kaikilla haluamallasi selaimilla tai laitteilla.

Esimerkki: Jos tiedostoa ei ole (ERROR 404), uudelleenohjaa /index.php tiedostoon. Normaalisti näytetään ERROR 404 verkkosivu.

  RewriteEngine On
  RewriteBase /
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.php [L]

Sinun tulee määrittää DocumentRoot polku samaan sijainnilla kuin /index.php määritetty.

Esimerkki: domain.net, domain.com, www.domain.net uudelleenohjahtaan domain.local osoitteeseen.

 RewriteEngine On
 RewriteCond %{HTTP_HOST} =domain.net [OR]
 RewriteCond %{HTTP_HOST} =domain.com [OR]
 RewriteCond %{HTTP_HOST} =www.domain.net
 RewriteRule .* https://domain.local%{REQUEST_URI}

Esimerkkejä

Uudelleenohjaus domain.com -> www.domain.com

 RewriteEngine On
 RewriteBase /
 RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
 RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]

Uudelleenohjaus www.domain.com -> domain.com

 RewriteEngine On
 RewriteBase /
 RewriteCond %{HTTP_HOST} !^domain.com$ [NC]
 RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301]

Uudelleenohjaus http -> https

 <IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{HTTPS} off
  RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</IfModule>

Uudelleenohjaus https -> http

<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteCond %{HTTPS} on
   RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}
</IfModule>

mod_security

Tällä estetään SQL injektiot ja CSR. Lisätietoa https://www.digitalocean.com/community/tutorials/how-to-set-up-mod_security-with-apache-on-debian-ubuntu

Asennus

 apt-get install libapache2-modsecurity

Käynnistä Apache uudelleen

 service apache2 restart

Muuta oletuskonfigurointi tiedoston nimi

 /etc/modsecurity/modsecurity.conf{-recommended,} (tallenna uudelleen *.conf päätteeksi)

Lataa Apachen konfigurointi tiedosto uudelleen

 service apache2 reload

Löydät loki tiedoston Apachen loki hakemistosta /var/log/apache2/

 root@droplet:~# ls -l /var/log/apache2/modsec_audit.log
 -rw-r----- 1 root root 0 Oct 19 08:08 /var/log/apache2/modsec_audit.log

Konfigurointi

Avaa konfigurointi tiedosto

 nano /etc/modsecurity/modsecurity.conf

Etsi rivi:

 SecRuleEngine DetectionOnly

ja muuta se:

 SecRuleEngine On

Etsi rivi:

 SecResponseBodyAccess On

ja muuta se

 SecResponseBodyAccess Off

Näillä voit rajoittaa lähettettyjen tietojen määrää:

 SecRequestBodyLimit
 SecRequestBodyNoFilesLimit

mod_ssl

Tämä moduuli mahdollistaa HTTPS yhteyden palvelimeen.

Asennus

Tämä on asennettu apache2-common paketin mukana. Sinun tulee ottaa käyttöön

 a2enmod ssl

Käynnistä Apache uudelleen

 service apache2 restart

Konfigurointi

Esimerkki: SSL konffit

 SSLEngine on
 SSLCertificateFile /etc/ssl/ssl.crt
 SSLCertificateKeyFile /etc/ssl/ssl.key

Tallenna tilaamasi sertifikaatti hakemistoon ja määritä se virtuaali isäntään.

256 bittinen salaus

256bittiseen salaukseen on muokattava Apachen konffeihin:

 nano /etc/apache2/mod-available/ssl.conf

Ja muuta riviä:

 SSLCipherSuite AES256-SHA

Lisäkonfiguraatiota

Voidaan myös määrittää Virtuaalihost kohtaisesti ja htaccess


256bittiseen salaukseen on muokattava Apachen konffeihin:

 nano /etc/apache2/mod-available/ssl.conf
 SSLCipherSuite AES256-SHA

Poista SSL3 ja SSL2 käytöstä

 nano /etc/apache2/mod-available/ssl.conf
 SSLProtocol All -SSLv2 -SSLv3


Hyvä SSLChipperSuite:


 nano /etc/apache2/mod-available/ssl.conf
 SSLCipherSuite "ECDHE-RSA-AES128-GCM-SHA256  EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4"


Ota käyttöön Strict Transport Security (HSTS) ominaisuus lisäämällä ottamalla käyttään moduuli headers

 a2enmod headers

ja lisäämällä konffeihin:

 Header always set Strict-Transport-Security "max-age=15768000; includeSubdomains; preload"

DHPARAM

Korvaa seuraava rivi /etc/apache2/mod-enabled/ssl.conf tiedostosta ja käynnistä uudelleen

 SSLCipherSuite "EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH+aRSA!RC4:EECDH:!RC4:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS"

mod_userdir

Tämä moduuli mahdollistaa jokaiselle tai osalle palvelimen käyttäjätilille omat verkkosivut.

Asennus

Tämä moduuli on valmiina asennettu Apachen mukana, sinun tulee laittaa se käyttöön

 a2enmod userdir

Käynnistä Apache uudelleen

 service apache2 restart

Konfigurointi

Avaa konfigurointi tiedosto /etc/apache2/mods-available/userdir.conf

 nano /etc/apache2/mods-available/userdir.conf

Jos haluat määrittää tiettyyn virtuaaliseen hostiin, kommentoi tiedosto ja konfiguroi konffit virtuaali hostin konffeihin.

Esimerkki: Sallitaan kaikille käyttäjille käyttää tätä toimintoa. Käyttäjän tulee luoda /home/ hakemistoon public_html niminen kansio.

 UserDir public_html
 UserDir enabled

Esimerkki: Sallitaan kaikille käyttäjätileille käyttää tätä toimintoa, paitsi root käyttäjälle. Käyttäjän tulee luoda /home/ hakemistoon public_html niminen kansio.

 UserDir public_html
 UserDir disabled root
 UserDir enabled

Esimerkki: Sallitaan vain käyttäjän user1 ja user2 käyttää tätä toimintoa. Käyttäjän tulee luoda /home/ hakemistoon public_html niminen kansio.


 UserDir public_html
 UserDir disabled
 UserDir enabled user1 user2

Verkkopolku on käyttäjien kotisivuille http://ip-osoite/~username.

Esimerkki konfigurointi:

  UserDir public_html
  UserDir disabled root
    <Directory /home/*/public_html>
        AllowOverride AuthConfig
        Options FollowSymLinks +Indexes
    </Directory>

Lisää seuraava rivi jos haluat käyttää osoitetta http://ip-osoite/user/username

      AliasMatch ^/users/([a-zA-Z0-9]+)/?(.*) /home/$1/public_html/$2

Eli kaikille käyttäjille sallittu, paitsi root käyttäjälle. Lisäksi sallitaan /home/*/public_html hakemistoon (verkkosivuhakemistoon) AuthConfig eli .htaccess tiedostoon luominen kirjautiminen näkymä. AliasMatch mahdollistaa uudelleenohjata kotisivuhakemisto esimerkiksi tässä http://ip-osoite/users/username

PHP5 userdir

Salli käyttäjien sivuilla PHP5 käyttö.

Muokkaa tiedostoa

 /etc/apache2/mod-enabled/php5.conf

Lisää risuaita

#      php_admin_value engine On
Luo uudelle käyttäjälle public_html kansio

Luo kansio /etc/skel hakemiston alle. Täälä olevat tiedostot ja kansiot automaattisesti kopioidaan uuden käyttäjän kotikansioon.

 mkdir /etc/skel/public_html

.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 reload

Luodaan .htaccess tiedosto /var/www/.htaccess (HUOM! Varmista että se on ".htaccess" ei .htacess.txt ym.)

 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

Määritä polut oikein vastaamaan palvelimesi polkuja missä virhesivusi sijaitsevat

Apachen suojaaminen

Webbipalvelimen suojaaminne ulkopuolisten hyökkäyksiltä kannattaa tehdä. mod_evansive ja mod_security auttavat siinä. Olen heiman kuitenkin koonnut lisää konffeja jolla voi suojata Apachea paremmi.


Piilota Apachen versio ja muut tiedot

 /etc/apache2/conf.d/security
 ServerSignature Off
 ServerTokens Prod

Poista kansioden selaus käytöstä

.htaccess

 Options -Indexes

Määritä Timeout

 /etc/apache2/apache2.conf
 Timeout 45

Rajoita pyyntöjä

 /etc/apache2/apache2.conf
 LimitRequestBody 1048576

Apache2 + PAM autentikointi

Asennetaan lisämoduuli apacheen

aptitude install libapache2-mod-auth-pam

Avataan Apachen Virtuaalihost konfigurointi tiedosto

nano /etc/apache2/sites-enabled/000-default
<Directory /var/www/salaista/> #Polku palvelimella
        AuthType Basic
        AuthName "ebin" #Viesti kirjautumisessa
        AuthPAM_Enabled On
        AuthBasicAuthoritative Off
        AuthUserFile /dev/null
        #AuthBasicAuthoritative Off
        #AllowOverride AuthConfig
        AuthGroupFile /etc/group
        Require group Role_Adminit #Salli tietylle käyttäjäryhmälle oikeudet
</Directory>

Näin Unixin tunnuksillakin voi kirjautua htaccess sivulle (ilman että htpasswd komentoa on ajettu).

Apache ja Active Directory todennus

Testattu Apache 2.2 Debianilla.

Ota käyttöön moduulit authnz_ldap ja ldap

 a2enmod authnz_ldap
 a2enmod ldap

Kopioi alla oleva haluamasi virtualihostiin.

 <Directory "/var/www/login">
        AuthType Basic
        AuthName "Active Directory kirjautuminen"

        AuthBasicProvider ldap
        AuthzLDAPAuthoritative off

        AuthLDAPURL "ldap://dc.domain.com:389/dc=domain,dc=com?sAMAccountName?sub?(objectClass=*)"

        AuthLDAPBindDN "[email protected]"
        AuthLDAPBindPassword salaisuus

        Require valid-user
        #Require ldap-group CN=Administrators,CN=Users,DC=example,DC=com
</Directory>
  • AuthLDAPURL on osoite jossa ldap palvelin (toimialueenohjauskone) on. Muuta konfiguraatiota vastaamaan palvelimesi konfiguraatiota. Kokeile myös porttia 3268.
  • AuthLDAPBindDN on käyttäjätunnus jolla on pääsy lukemaan Active Directoryä
  • AuthLDAPBindPassword on käyttäjätunnuksen salasana

Jos ei toimi lisää tämä konfiguraatioon ja katso Apachen error log tiedosto /var/log/apache/error.log:

 LogLevel debug

Loki

Apachen lokiin virhe ja kävijä lokit

ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined ==

Apachen postaminen

Pysäytä Apache2

 service apache2 stop

Poistetaan Apachen2 paketit:

  apt-get purge apache2 apache2-utils apache2.2-bin apache2-common

Etsitään Apachen hakemistoja ja poistetaan ne yksitellen:

 whereis apache2

Tässä tulostuu esimerkiksi:

 apache2: /etc/apache2

Poistetaan hakemisto:

 sudo rm -rf /etc/apache2

Ongelmanratkaisu

Jos Apache ei käynnisty ja tulee jonkinlainen virhe, varmista että olet kirjoittanut konfigurointi tiedostoihin oikein jä tämän jälkeen kannattaa avata palvelimen loki:

 /var/log/apache2/error.log

sinne tallentuu kaikki virheilmoitukset. Kopioi virheilmoitus ja Googleta virheilmoitus. Googlesta saat ongelmaan ratkaisun.

Konfiguroinnin tarkistus

 apachectl configtest

TAI

 apache2ctl configtest

Lähteet

http://fi.wikipedia.org/wiki/Apache_(palvelinohjelma)

https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-debian-7

http://wiki.syotec.fi/index.php?title=JAH380_-_Linux_Server_-_Toimialue

http://www.rudedog.org/pipermail/auth_ldap/2003-December/001494.html

http://www.edugeek.net/forums/nix/7453-apache-winbind-authentication-2.html

http://www.held-im-ruhestand.de/software/apache-ldap-active-directory-authentication

http://enarion.net/web/htaccess/redirect-www-and-no-www/

https://www.digicert.com/ssl-certificate-installation-apache.htm

https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-centos-6

http://httpd.apache.org/docs/2.2/mod/mod_ssl.html

http://stackoverflow.com/questions/24144552/how-to-set-hsts-header-from-htaccess-only-on-https

http://xmodulo.com/how-to-uninstall-and-remove-apache2-on-ubuntu-debian.html

http://codeconnoisseur.org/ramblings/apache-22-and-active-directory-and-group-restrictions

Mainos / Advertisement: