Mainos / Advertisement:

Ero sivun ”Apache2” versioiden välillä

Kohteesta Taisto
Siirry navigaatioon Siirry hakuun
(Tämä versio merkittiin käännettäväksi)
Rivi 1: Rivi 1:
 
<languages/>
 
<languages/>
 
<translate>
 
<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ämä palvelin käyttää myöskin Apachea. Datatekniikan palvelimet käyttävät [[Nginx]] - palvelinohjelmistoa.
 
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 käyttää myöskin Apachea. Datatekniikan palvelimet käyttävät [[Nginx]] - palvelinohjelmistoa.
  
 +
<!--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 ===
+
=== 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 ===
+
=== 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/
  
 +
<!--T:27-->
 
Red Hat / CentOS / Fedora:
 
Red Hat / CentOS / Fedora:
  
   /etc/httpd/
+
   <!--T:28-->
 +
/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ä.
  
  
=== 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-->
 +
<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 118: Rivi 159:
 
  </VirtualHost>
 
  </VirtualHost>
  
 +
<!--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
  
=== 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-->
 +
Alias /webbialihakemisto/ /polku/
 
  # Verkkosivupolku (/webbihakemisto) ja fyysinen polku ("/polku")
 
  # Verkkosivupolku (/webbihakemisto) ja fyysinen polku ("/polku")
 
   <Directory "/polku/">
 
   <Directory "/polku/">
Rivi 161: Rivi 218:
 
  </Directory>
 
  </Directory>
  
 +
<!--T:66-->
 
Esimerkki:  
 
Esimerkki:  
  
   Alias /wwwtesti /var/wwwtesti/
+
   <!--T:67-->
 +
Alias /wwwtesti /var/wwwtesti/
 
   <Directory "/var/wwwtesti/">
 
   <Directory "/var/wwwtesti/">
 
     Options Indexes FollowSymLinks MultiViews
 
     Options Indexes FollowSymLinks MultiViews
Rivi 171: Rivi 230:
 
   </Directory>
 
   </Directory>
  
=== 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:
 
Lisämoduulien hakemisto on Apachessa:
  
   /etc/apache2/mods-available  
+
   <!--T:78-->
 +
/etc/apache2/mods-available  
  
 +
<!--T:79-->
 
Ja tässä hakemistossa käytössä olevat moduulit
 
Ja tässä hakemistossa käytössä olevat moduulit
  
   /etc/apache2/mods-enabled
+
   <!--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 209: Rivi 281:
  
  
=== mod_dir ===
+
=== 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 225: Rivi 302:
 
   </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 280: Rivi 374:
  
  
 +
<!--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_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-->
 +
## EXPIRES CACHING ##
 
   <IfModule mod_expires.c>
 
   <IfModule mod_expires.c>
 
   ExpiresActive On
 
   ExpiresActive On
Rivi 332: Rivi 445:
 
   ## EXPIRES CACHING ##
 
   ## EXPIRES CACHING ##
  
 +
<!--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 349: Rivi 465:
 
   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 ===
+
=== 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 392: Rivi 522:
 
   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 402: Rivi 535:
 
   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
Rivi 426: Rivi 565:
 
  </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 434: Rivi 575:
 
  </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 ===
+
=== mod_userdir === <!--T:204-->
  
 +
<!--T:205-->
 
Tämä moduuli mahdollistaa jokaiselle tai osalle palvelimen käyttäjätilille omat verkkosivut.
 
Tämä moduuli mahdollistaa jokaiselle tai osalle palvelimen käyttäjätilille omat verkkosivut.
  
==== Asennus ====
+
==== Asennus ==== <!--T:206-->
  
 +
<!--T:207-->
 
Tämä moduuli on valmiina asennettu Apachen mukana, sinun tulee laittaa se käyttöön
 
Tämä moduuli on valmiina asennettu Apachen mukana, sinun tulee laittaa se käyttöön
  
   a2enmod userdir
+
   <!--T:208-->
 +
a2enmod userdir
  
 +
<!--T:209-->
 
Käynnistä Apache uudelleen
 
Käynnistä Apache uudelleen
  
   service apache2 restart
+
   <!--T:210-->
 +
service apache2 restart
  
==== Konfigurointi ====
+
==== Konfigurointi ==== <!--T:211-->
  
 +
<!--T:212-->
 
Avaa konfigurointi tiedosto /etc/apache2/mods-available/userdir.conf
 
Avaa konfigurointi tiedosto /etc/apache2/mods-available/userdir.conf
  
   nano /etc/apache2/mods-available/userdir.conf
+
   <!--T:213-->
 +
nano /etc/apache2/mods-available/userdir.conf
  
 +
<!--T:214-->
 
Jos haluat määrittää tiettyyn virtuaaliseen hostiin, kommentoi tiedosto ja konfiguroi konffit virtuaali hostin konffeihin.
 
Jos haluat määrittää tiettyyn virtuaaliseen hostiin, kommentoi tiedosto ja konfiguroi konffit virtuaali hostin konffeihin.
  
 +
<!--T:215-->
 
Esimerkki: Sallitaan kaikille käyttäjille käyttää tätä toimintoa. Käyttäjän tulee luoda /home/ hakemistoon public_html niminen kansio.
 
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
+
   <!--T:216-->
 +
UserDir public_html
 
   UserDir enabled
 
   UserDir enabled
  
 +
<!--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.
 
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
+
   <!--T:218-->
 +
UserDir public_html
 
   UserDir disabled root
 
   UserDir disabled root
 
   UserDir enabled
 
   UserDir enabled
  
 +
<!--T:219-->
 
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.
 
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
+
   <!--T:220-->
 +
UserDir public_html
 
   UserDir disabled
 
   UserDir disabled
 
   UserDir enabled user1 user2
 
   UserDir enabled user1 user2
  
 +
<!--T:221-->
 
Verkkopolku on käyttäjien kotisivuille http://ip-osoite/~username.  
 
Verkkopolku on käyttäjien kotisivuille http://ip-osoite/~username.  
  
 +
<!--T:222-->
 
Esimerkki konfigurointi:
 
Esimerkki konfigurointi:
  
   UserDir public_html
+
   <!--T:223-->
 +
UserDir public_html
 
   UserDir disabled root
 
   UserDir disabled root
 
     <Directory /home/*/public_html>
 
     <Directory /home/*/public_html>
Rivi 571: Rivi 764:
 
     </Directory>
 
     </Directory>
  
 +
<!--T:224-->
 
Lisää seuraava rivi jos haluat käyttää osoitetta http://ip-osoite/user/username
 
Lisää seuraava rivi jos haluat käyttää osoitetta http://ip-osoite/user/username
  
       AliasMatch ^/users/([a-zA-Z0-9]+)/?(.*) /home/$1/public_html/$2
+
       <!--T:225-->
 +
AliasMatch ^/users/([a-zA-Z0-9]+)/?(.*) /home/$1/public_html/$2
  
 +
<!--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
 
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 =====
+
===== PHP5 userdir ===== <!--T:227-->
  
 +
<!--T:228-->
 
Salli käyttäjien sivuilla PHP5 käyttö.
 
Salli käyttäjien sivuilla PHP5 käyttö.
  
 +
<!--T:229-->
 
Muokkaa tiedostoa
 
Muokkaa tiedostoa
  
   /etc/apache2/mod-enabled/php5.conf
+
   <!--T:230-->
 +
/etc/apache2/mod-enabled/php5.conf
  
 +
<!--T:231-->
 
Lisää risuaita
 
Lisää risuaita
  
  #      php_admin_value engine On
+
  <!--T:232-->
 +
#      php_admin_value engine On
  
===== Luo uudelle käyttäjälle public_html kansio =====
+
===== Luo uudelle käyttäjälle public_html kansio ===== <!--T:233-->
  
 +
<!--T:234-->
 
Luo kansio /etc/skel hakemiston alle. Täälä olevat tiedostot ja kansiot automaattisesti kopioidaan uuden käyttäjän kotikansioon.
 
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
+
   <!--T:235-->
 +
mkdir /etc/skel/public_html
  
== HTTPS / SSL ==
+
== HTTPS / SSL == <!--T:236-->
  
 +
<!--T:237-->
 
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.  
 
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 ===  
+
=== Virallisia SSL sertifikaatin varmentajia === <!--T:238-->
  
 +
<!--T:239-->
 
* [https://www.startssl.com/ Startssl] - Ilmainen ja toimii pääosin selaimissa.  
 
* [https://www.startssl.com/ Startssl] - Ilmainen ja toimii pääosin selaimissa.  
 
* [https://www.namecheap.com/security/ssl-certificates/geotrust.aspx GeoTrust RapidSSL] - Luettava ja toimiva, ei liikennetoiminnalle.
 
* [https://www.namecheap.com/security/ssl-certificates/geotrust.aspx GeoTrust RapidSSL] - Luettava ja toimiva, ei liikennetoiminnalle.
  
==== Virallisen SSL sertifikaatin asennus ====
+
==== Virallisen SSL sertifikaatin asennus ==== <!--T:240-->
  
 +
<!--T:241-->
 
Luodaan avain (key) ja sertifikaatin allekirjoituspyyntö (CSR - Certificate Signing Request). Vaihda domain.com omasi domainisi nimi.
 
Luodaan avain (key) ja sertifikaatin allekirjoituspyyntö (CSR - Certificate Signing Request). Vaihda domain.com omasi domainisi nimi.
  
   openssl req -nodes -newkey rsa:2048 -keyout domain.com.key -out domain.com.csr
+
   <!--T:242-->
 +
openssl req -nodes -newkey rsa:2048 -keyout domain.com.key -out domain.com.csr
  
 +
<!--T:243-->
 
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.
 
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:244-->
 
Siirry nyt kohtaan  
 
Siirry nyt kohtaan  
 
[[Apache2#SSL_salliminen_Apacheen|SSL salliminen Apacheen]]
 
[[Apache2#SSL_salliminen_Apacheen|SSL salliminen Apacheen]]
  
=== Epävirallinen SSL sertifikaatti ===
+
=== Epävirallinen SSL sertifikaatti === <!--T:245-->
  
 +
<!--T:246-->
 
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.
 
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:247-->
 
<gallery>
 
<gallery>
 
Tiedosto:Ssl_virhe.png|SSL virheilmoitus epävirallisessa sertifikaatissa
 
Tiedosto:Ssl_virhe.png|SSL virheilmoitus epävirallisessa sertifikaatissa
 
</gallery>
 
</gallery>
  
 +
<!--T:248-->
 
Yksinkertainen SSL Sertifikaatti voi luoda tällä komennolla:
 
Yksinkertainen SSL Sertifikaatti voi luoda tällä komennolla:
  
   make-ssl-cert generate-default-snakeoil
+
   <!--T:249-->
 +
make-ssl-cert generate-default-snakeoil
  
 +
<!--T:250-->
 
Määritetään Apacheen SSL avaamalla /etc/apache2/sites-available/default-ssl
 
Määritetään Apacheen SSL avaamalla /etc/apache2/sites-available/default-ssl
 
   
 
   
 
   nano /etc/apache2/sites-available/default-ssl
 
   nano /etc/apache2/sites-available/default-ssl
  
   SSLEngine on
+
   <!--T:251-->
 +
SSLEngine on
  
   SSLCertificateFile /etc/ssl/localcerts/ssl.crt
+
   <!--T:252-->
 +
SSLCertificateFile /etc/ssl/localcerts/ssl.crt
 
   SSLCertificateKeyFile /etc/ssl/localcerts/ssl.key
 
   SSLCertificateKeyFile /etc/ssl/localcerts/ssl.key
  
=== SSL salliminen Apacheen ===
+
=== SSL salliminen Apacheen === <!--T:253-->
  
 +
<!--T:254-->
 
Käynnistetään SSL sivut
 
Käynnistetään SSL sivut
  
   a2ensite default-ssl
+
   <!--T:255-->
 +
a2ensite default-ssl
  
 +
<!--T:256-->
 
Lisätään SSL moduuli Apacheen
 
Lisätään SSL moduuli Apacheen
  
   a2enmod ssl
+
   <!--T:257-->
 +
a2enmod ssl
  
 +
<!--T:258-->
 
Lataa Apachen  konfigurointi tiedostot uudelleen
 
Lataa Apachen  konfigurointi tiedostot uudelleen
  
   service apache2 reload
+
   <!--T:259-->
 +
service apache2 reload
  
 +
<!--T:260-->
 
Sallitaan SSL Apacheen
 
Sallitaan SSL Apacheen
  
  a2enmod ssl
+
  <!--T:261-->
 +
a2enmod ssl
  
 +
<!--T:262-->
 
ja käynnistetään Apache uudelleen
 
ja käynnistetään Apache uudelleen
  
   service apache2 restart
+
   <!--T:263-->
 +
service apache2 restart
  
==== Lisäkonfiguraatiota ====
+
==== Lisäkonfiguraatiota ==== <!--T:264-->
  
 +
<!--T:265-->
 
Voidaan myös määrittää Virtuaalihost kohtaisesti ja htaccess
 
Voidaan myös määrittää Virtuaalihost kohtaisesti ja htaccess
  
  
  
 +
<!--T:266-->
 
256bittiseen salaukseen on muokattava Apachen konffeihin:
 
256bittiseen salaukseen on muokattava Apachen konffeihin:
  
   nano /etc/apache2/mod-available/ssl.conf
+
   <!--T:267-->
 +
nano /etc/apache2/mod-available/ssl.conf
  
   SSLCipherSuite AES256-SHA
+
   <!--T:268-->
 +
SSLCipherSuite AES256-SHA
  
 +
<!--T:269-->
 
Poista SSL3 ja SSL2 käytöstä  
 
Poista SSL3 ja SSL2 käytöstä  
  
   nano /etc/apache2/mod-available/ssl.conf
+
   <!--T:270-->
 +
nano /etc/apache2/mod-available/ssl.conf
  
   SSLProtocol All -SSLv2 -SSLv3
+
   <!--T:271-->
 +
SSLProtocol All -SSLv2 -SSLv3
  
 +
<!--T:272-->
 
Hyvä SSLChipperSuite:
 
Hyvä SSLChipperSuite:
  
   nano /etc/apache2/mod-available/ssl.conf
+
   <!--T:273-->
 +
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:274-->
 +
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:275-->
 
Ota käyttöön Strict Transport Security (HSTS) ominaisuus lisäämällä tämä htaccess tiedostoon:
 
Ota käyttöön Strict Transport Security (HSTS) ominaisuus lisäämällä tämä htaccess tiedostoon:
  
   Header set Strict-Transport-Security "max-age=31536000" env=HTTPS
+
   <!--T:276-->
 +
Header set Strict-Transport-Security "max-age=31536000" env=HTTPS
  
=== HTTPS testi ===
+
=== HTTPS testi === <!--T:277-->
  
 +
<!--T:278-->
 
Kannattaa suorittaa palvelimessa HTTPS testi:
 
Kannattaa suorittaa palvelimessa HTTPS testi:
  
 +
<!--T:279-->
 
https://www.ssllabs.com/ssltest/
 
https://www.ssllabs.com/ssltest/
  
== .htaccess ==
+
== .htaccess == <!--T:280-->
  
 +
<!--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 714: Rivi 959:
 
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 767: Rivi 1 030:
 
   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/secure
  
   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-->
 +
<Directory /var/www/salaista/> #Polku palvelimella
 
         AuthType Basic
 
         AuthType Basic
 
         AuthName "ebin" #Viesti kirjautumisessa
 
         AuthName "ebin" #Viesti kirjautumisessa
Rivi 821: Rivi 1 103:
 
         </Directory>
 
         </Directory>
  
 +
<!--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 ==
+
==  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 835: Rivi 1 120:
 
  CustomLog ${APACHE_LOG_DIR}/access.log combined ==
 
  CustomLog ${APACHE_LOG_DIR}/access.log combined ==
  
== Apachen postaminen ==
+
== Apachen postaminen == <!--T:332-->
  
 +
<!--T:333-->
 
Pysäytä Apache2
 
Pysäytä Apache2
  
   service apache2 stop
+
   <!--T:334-->
 +
service apache2 stop
  
 +
<!--T:335-->
 
Poistetaan Apachen2 paketit:
 
Poistetaan Apachen2 paketit:
  
   apt-get purge apache2 apache2-utils apache2.2-bin apache2-common
+
   <!--T:336-->
 +
apt-get purge apache2 apache2-utils apache2.2-bin apache2-common
  
 +
<!--T:337-->
 
Etsitään Apachen hakemistoja ja poistetaan ne yksitellen:
 
Etsitään Apachen hakemistoja ja poistetaan ne yksitellen:
  
   whereis apache2
+
   <!--T:338-->
 +
whereis apache2
  
 +
<!--T:339-->
 
Tässä tulostuu esimerkiksi:
 
Tässä tulostuu esimerkiksi:
  
   apache2: /etc/apache2
+
   <!--T:340-->
 +
apache2: /etc/apache2
  
 +
<!--T:341-->
 
Poistetaan hakemisto:
 
Poistetaan hakemisto:
  
   sudo rm -rf /etc/apache2
+
   <!--T:342-->
 +
sudo rm -rf /etc/apache2
  
== Ongelmanratkaisu ==
+
== 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
 
http://xmodulo.com/how-to-uninstall-and-remove-apache2-on-ubuntu-debian.html
  
 
</translate>
 
</translate>

Versio 21. tammikuuta 2015 kello 09.42

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ä palvelin käyttää myöskin Apachea. Datatekniikan palvelimet käyttävät Nginx - palvelinohjelmistoa.

Lisätietoa Apachesta: Apache (palvelinohjelma)

Asentaminen

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.

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/

Red Hat / CentOS / Fedora:

 /etc/httpd/


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


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_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_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 (.*) http://%{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

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

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

Virallisen SSL sertifikaatin asennus

Luodaan avain (key) ja sertifikaatin allekirjoituspyyntö (CSR - Certificate Signing Request). Vaihda domain.com omasi domainisi nimi.

 openssl req -nodes -newkey rsa:2048 -keyout domain.com.key -out domain.com.csr

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.

Siirry nyt kohtaan SSL salliminen Apacheen

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.


Yksinkertainen SSL Sertifikaatti voi luoda tällä komennolla:

 make-ssl-cert generate-default-snakeoil

Määritetään Apacheen SSL avaamalla /etc/apache2/sites-available/default-ssl

 nano /etc/apache2/sites-available/default-ssl
 SSLEngine on
 SSLCertificateFile /etc/ssl/localcerts/ssl.crt
 SSLCertificateKeyFile /etc/ssl/localcerts/ssl.key

SSL salliminen Apacheen

Käynnistetään SSL sivut

 a2ensite default-ssl

Lisätään SSL moduuli Apacheen

 a2enmod ssl

Lataa Apachen konfigurointi tiedostot uudelleen

 service apache2 reload

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"


Ota käyttöön Strict Transport Security (HSTS) ominaisuus lisäämällä tämä htaccess tiedostoon:

 Header set Strict-Transport-Security "max-age=31536000" env=HTTPS

HTTPS testi

Kannattaa suorittaa palvelimessa HTTPS testi:

https://www.ssllabs.com/ssltest/

.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/secure
 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).

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

Mainos / Advertisement: