Mainos / Advertisement:

Apache2

Kohteesta Taisto
Versio hetkellä 15. kesäkuuta 2014 kello 16.25 – tehnyt Minh (keskustelu | muokkaukset) (→‎mod-available/mod-evasive.load)
Siirry navigaatioon Siirry hakuun

Apache on avoimen lähdekoodin perustuva HTTP - palvelinohjelmisto (webbiserveri). Tämän voi myös asentaa Windowssille ja on integroituna Mac OSX - käyttöjärjestelmään. Tämä on ollut pitkään internetin suosituin webbipalvelin ohjelmisto. Tämä palvelin ja datatekniikka.fi sivustot käyttää myöskin Apachea.

Lisäksi tämän rinnalle suositellaan asentamaan Php5 ja Mysql - tietokanta.

Asentaminen

Apachen asennetaan komennolla:

 aptitude install apache2

Voit testatata sivujasi menemällä selailemma http://palvelimen_ip_osoite. Sivun tulisi näyttää seuraavanlaisena:

 It works!
 This is the default web page for this server.
 The web server software is running but no content has been added, yet.

Apachen oletusverkkosivuhakemisto sijaitsee:

 /var/www/

Apachen konfigurointi tiedostot löytyvät täältä:

 /etc/apache2

Oletusverkkosivun asetukset löytyvät täältä:

 nano /etc/apache2/sites-enabled/000-default

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

Konfigurointi

Apachen konfigurointi hakemistosta

 cd /etc/apache2/

löytyy tälläisiä tiedostoja ja hakemistoja:

 apache2.conf  envvars     magic            mods-enabled/  sites-available/
 conf.d/       httpd.conf  mods-available/  ports.conf     sites-enabled/

apache2.conf on pääkonfigurointi tiedosto. Tähän tiedostoon voidaan tehdä kaikki apachen määritykset, vaikka suositeltavaa käyttää erillisiä tiedotoja selkeyden vuoksi.

ports.conf Tänne määritetään portit ja virtuaali isännät vastaavat pyyntöihin. Tarkista jos määrität SSL apacheen.

conf.d Hakemistossa on erityisiä määrityksiä Apachen kokoonpanoon. Täällä on myös charcet tiedosto josta voi sallia UTF-8 merkistökoodauksen.

sites-available/ Hakemistossa on kaikki virtuaali isäntä kokoonpanojen määritys tiedostot.

sites-enabled/ Hakemistossa määritetään mitä todellisuudessa virtuaali isäntiä käytetään

mods-available/ Moduulien määritykset.

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


apache2.conf

 nano /etc/apache2/apache2.conf

Parametrit tiedotossa:

Timeout Oletuksena määritettu 300s. Tämä kertoo kuinka kauan palvelin vastaa pyyntöön. Suositellaan pienentämään 60, sillä monet palvelimet eivät pysty vastaamaan 300s pyyntöihin.

KeepAlive Jos vaihtoehto on "On" mahdollistaa useiden pyyntöjen toteuttamisen. Jos "Off" niin kaikki pyynnöt käsitellään erikseen, joka voi kasvattaa palvelimen kuormaa.

MaxKeepAliveRequests Rajoitetaan pyyntöjen määrä samaanaikaisena. Pidä tämä mahdollisimman korkealla, palvelimen kuormituksen takia. Jos on määritetty "0", niin palvelin sallii rajoittamattoman pääsyn.

KeepAliveTimeout Pyyntöjen aikakatkaisu aika. Jos pyyntö kestää yli aikakatkaisu ajan, niin yhteys katkaistaan.

sites-available/ (Virtual Host)

Oletuksena tässä hakemistossa on tiedosto default, jonka sisältö näyttää tältä:

<VirtualHost *:80>
       ServerAdmin webmaster@localhost
    
       DocumentRoot /var/www                 //päähakemisto, jossa verkkosivut sijaitsevat
       <Directory />
               Options FollowSymLinks
               AllowOverride None            //Salli konfigurointien yliajamisen (.htaccess)
       </Directory>
       <Directory /var/www/>
               Options Indexes FollowSymLinks MultiViews
               AllowOverride None
               Order allow,deny
               allow from all
       </Directory>
. . .

Oletuksena virtuaali isäntä vastaa kaikkiin pyyntöihin portissa 80, oletus HTTP portti. Kun haluat luoda toisen virtuaali isännän, niin muokkaa tämä tiedostoa ja tallenna toisella nimellä.

Tämän jälkeen laitat sivun käyttöön (Käytössä olevat sivut löytyvät /etc/apache2/sites-enabled/ hakemiston alta):

 a2ensite sivun_nimi

Esimerkiksi

 a2ensite intra

Tämän jälkeen apachen täytyy laittaa lukemaan asetustiedostot uudelleen:

 service apache2 reload

Tämän jälkeen lisää tarvittaessa ports.conf tiedostoon:

 NameVirtualHost isäntänimi:portti

Lisätietoa:

Sivuston poistaminen käytöstä:

 a2dissite sivun_nimi
 service apache2 reload

Virtuaali Directory

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

Alias /webbialihakemisto/ "/polku/"
 <Directory "/polku/">
   Options Indexes FollowSymLinks MultiViews
   AllowOverride None
   Order allow,deny
   allow from all
</Directory>

Esimerkki:


 Alias /wwwtesti "/var/wwwtesti/"
 <Directory "/var/wwwtesti/">
   Options Indexes FollowSymLinks MultiViews
   AllowOverride None
   Order allow,deny
   allow from all
 </Directory>

Käyttäjien omat verkkosivut

Lisää tämä Virtuaali isännälle, ja luo kotikansion alle public_html kansio. Kotikansion verkko-osoite on palvelimenosoite/~käyttäjätunnus.

       <IfModule mod_userdir.c>

Kansion nimi josta tulee verkkohakemisto

               UserDir public_html

Ei käytettävissä root käyttäjällä

               UserDir disabled root

Hakemiston lisäasetukset (valinnainen)

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

Mahdollistaa aliaksena palvelinnimi/käyttäjätunnus yhdistämisen

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

conf.d/charset

Tässä tiedostossa voit määrittää Apachen oletusmerkistökoodaukseski UTF-8.

1. Avaa konfigurointitiedosto:

 nano /etc/apache2/conf.d/charset

2. Poista risuaita # merkki pois kohdasta:

 AddDefaultCharset UTF-8

3. Käynnistä Apache uudelleen

 service apache2 restart

mod-available/mod-evasive.load

Tämä Apachen lisäosa estää DDOS (palvelunestohyökkäykset) webbipalvelimeen.

Asentaminen:

 apt-get install libapache2-mod-evasive

Luodaan 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

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

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

Epävirallinen SSL sertifikaatti

Toinen tapa on saada ilmaiseksi on käytettävä itseallekirjoitettavia SSL sertifikaatteja. Näihin selaimet eivät oletuksena luota jonka takia ei voi käyttää yleisessä käytössä. Sertifikaatit tulee asentaa manuaalisesti koneelle. Tässä ohje Openssl käyttöön, jolla on helppo tehdä itseallekirjoitettavia sertifikaatteja.



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

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


Käynnistetään SSL sivut

 a2ensite default-ssl

Lisätään SSL moduuli Apacheen

 a2enmod ssl

Lataa Apachen konfigurointi tiedostot uudelleen

 service apache2 reload

12. Sallitaan SSL Apacheen

a2enmod ssl

ja käynnistetään Apache uudelleen

 service apache2 restart

Nyt on valmista, jos tuli virhe niin tuli vika konfiguraatioon

256bittiseen salaukseen on muokattava Apachen konffeihin:

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

.htaccess

.htaccess tiedosto mahdollistaa konfigurointi tiedostojen tallentamisen suoraan verkkosivuhakemistoon, esimerkiksi /var/www/.htaccess.

Sallitaan .htaccess tiedoston ylikirjoittamaan entiset konfiguroinnit:


 /etc/apache2/sites-available/default

seuraavanlaiseksi:

        <Directory /var/www/>
               Options Indexes FollowSymLinks MultiViews
               AllowOverride All
               Order allow,deny
               allow from all
       </Directory>

Käynnistä Apache uudelleen:

 service apache2 restart

Luodaan .htaccess tiedosto /var/www/.htaccess

 nano /var/www/.htaccess

Salasanasuojaus verkkosivulle

!! htpasswd httpd-2.4.4 on rikki. Odota päivitystä. !!


Kirjoita alla olevat rivit .htaccess tiedotoon:

 AuthUserFile /var/.htpasswd
 AuthName "Anna kirjautumisen tiedot"
 AuthType Basic
 require user [käyttäjänimet]

Tallenna tiedosto ja tämän jälkeen luodaan esimerkiksi /var/.htpasswd tiedosto jossa on käyttäjänimet ja salasanat, jolla oikeudet kirjautua sivulle. Suositellaan erityisesti salasanojen kryptaamista. Huomaa, että polut pitää olla palvelimen fyysisiä polkuja, ei verkkopolkuja!

 käyttäjänimi:salasana

Sinun tulee käyttää Debianissa htpasswd työkalua. Internetissä on myös htpasswd työkaluja saatavilla.

Esimerkki:

htpasswd -B /polku/.htpasswd Käyttäjätunnus Salasana

Tallenna tiedosto ja kokeile kirjautua sivullesi.


htpasswd bugin väliaikaisen korjaus

Bugi ei anna kuin Debianissa generoituja salasanojen kirjautumisen järjestelmään.

Voit generoida salasanan tällä komennolla:

 htpasswd -nb user password

Kopioi ja tallenna htpasswd tiedostoon, näin pitäisi toimia

Virhesivut

Kirjoita alla olevat .htaccess tiedostoon. Muuta polut vastaamaan palvelimessasi olevaa polkua.

 ErrorDocument 400 /errors/badrequest.html
 ErrorDocument 401 /errors/authreqd.html
 ErrorDocument 403 /errors/forbid.html
 ErrorDocument 404 /errors/notfound.html
 ErrorDocument 500 /errors/serverr.html
Mainos / Advertisement: