apache 2
DESCRIPTION
Apache 2TRANSCRIPT
-
2013/02/09 04:28 1/18 Apache
SzitWiki - http://szit.hu/
< Webszerver
ApacheSzerz: Sallai AndrslCopyright Sallai Andrs, 2011lLicenc: GNU Free Documentation License 1.3lWeb: http://szit.hul
A webszerverrl
A webszerver HTML oldalakat szolgl ki http protokollon keresztl. Alaprtelmezetten a 80-as porton.Titkostott adattvitelre is kpes SSL vagy TLS felett, a 443-as porton (https protokoll).
Az Apache weboldala http://apache.org. Az Apache valjban egy alaptvny, amelynek nagyon sokprojektje van. A webszerver (httpd) csak az egyik projekt a sok kzl. A webszervert a foldalrlkiindulva a kvetkez tvonalon lehet megtallni:
Project -> Project Listing -> Apache HTTP Server
Persze egyszeren azt is rhatjuk:
http://httpd.apache.orgl
A Debian GNU/Linux 6.x verzin, az apache2 csomagban a 2.2 verzij apache tallhat. Ennekdokumentcija:
http://httpd.apache.org/docs/2.2/l
Telepts
apt-get install apache2
Az apache weboldalrl letlthet a legjabb verzi is. 2012. mjusban ez a 2.4-es verzi.
A weblapok helye
Alaprtelmezetten a weblapok helye a kvetkez.
-
Last update: 2012/09/12 21:41 oktatas:linux:webszerver:apache http://szit.hu/doku.php?id=oktatas:linux:webszerver:apache
http://szit.hu/ Printed on 2013/02/09 04:28
/var/www
Ez persze megvltoztathat.
Vezrls
Vezrls initscriptekkel
/etc/init.d/apache2 stop
/etc/init.d/apache2 start
/etc/init.d/apache2 restart
/etc/init.d/apache2 reload
apache2ctl
Az apache az apache2ctl paranccsal is vezrelhet. A kvetkez parancsok adhatok:
startlstoplrestartlfullstatuslstatuslgracefullgraceful-stoplconfigtestl
Pldul az apache indtsa:
apache2ctl start
Pldul az apache lelltsa:
apache2ctl stop
A graceful parancs a SIGUSR1 jelzst kldi az apache-nak. Ennek hatsra, ha az apache nem voltelindtva, akkor elindul. Ha el volt indtva, akkor nem szaktja meg a meglv kapcsolatokat. Halelltjuk a graceful-stop paranccsal az sem szaktja meg a kapcsolatokat.
-
2013/02/09 04:28 3/18 Apache
SzitWiki - http://szit.hu/
a2enmod, a2dismod
A modulok engedlyezse, tiltsa.
Hasznlata:
Engedlyezs:
a2enmod modulnv
Tilts:
a2dismod mdoulnv
Milyen modulok engedlyezhetk? Nzzk meg a mods-available knyvtr tartalmt:
ls /etc/apache2/mods-available
a2ensite, a2dissite
Site vagy virtualhost engedlyezse, tiltsa
a2ensite [site]a2dissite [site]
Pldul az alaprtelmezett site lelltsa:
a2dissite default
Milyen sit-ok engedlyezhetk? Nzzk meg a sites-available knyvtr tartalmt:
ls /etc/apache2/sites-available
Milyen sit-ok vannak engedlyezve? Nzzk meg a sites-enabled knyvtr tartalmt:
ls /etc/apache2/sites-enabled
Bellts
Telepts utn a belltsok a kvetkez helyen tallhatk:
/etc/apache2/
Ezen bell jabb knyvtrakat s llomnyokat tallunk:
-
Last update: 2012/09/12 21:41 oktatas:linux:webszerver:apache http://szit.hu/doku.php?id=oktatas:linux:webszerver:apache
http://szit.hu/ Printed on 2013/02/09 04:28
conf.dlEbben a knyvtrban elhelyezett llomnyok konfigurcis fjlknt beolvassra kerlnek.m
mods-availablelEbben a knyvtrban az engedlyezhet modulok konfigurcis llomnyi vannak.m
mods-enabledlEebben a knyvtrban az elz knyvtrbl vannak szimbolikus linkek.mHa itt megtallhat egy modulhoz egy szimbolikus link akkor az engedlyezve van.m
sites-availablelHozzfrhet webhelyek belltsaim
sites-enabledlEngedlyezett webhelyek (elz knyvtrbl szimbolikus link)m
apache2.conflltalnos belltsokm
envvarslKrnyezeti vltozkm
httpd.conflSajt belltsink helyem
magiclKiterjesztsek kezelsem
ports.conflHasznlt portokm
Naplfjlok
A naplfjlok helye:
/var/log/apache2
Hromfle naplfjl van:
Hibanapl:
/var/log/apache2/error.log
Hozzfrsi napl:
/var/log/apach2/access.log
Alapbelltsok
A Debian GNU/Linux rendszeren telepl Apache2 azonnal hasznlhat.
A naplllomnyokban azonban hibazenet van, mert egy ikonfjlt vr, amelyet megjelent abngszk flein, ha az adott weblaphoz nincs semmi megadva. Alaprtelmezetten azt vrja, hogyksztsnk egy 1616-os ico kiterjeszts kpfjlt.
-
2013/02/09 04:28 5/18 Apache
SzitWiki - http://szit.hu/
Az ikonfjlt elkszthetjk pldul a GIMP rajzol, kpszerkeszt programmal. Az elkszlt icokiterjeszts fjlt a szerveren a kvetkez helyre kell menteni, az albbi nven:
/var/www/favicon.ico
Belltsok alkalmazsi kre
A belltsokat alkalmazhatjuk knyvtrakra:
...
A belltsokat alkalmazhatjuk knyvtrakra, szablyos kifejezseket is hasznlva:
...
A belltsokat alkalmazhatjuk fjlokra:
...
A belltsokat alkalmazhatjuk fjlokra, szablyos kifejezseket is hasznlva:
...
A belltsokat alkalmazhatjuk webhelyre:
...
A belltsokat alkalmazhatjuk webhelyre, szablyos kifejezseket is hasznlva:
......
A belltsokat alkalmazhatjuk virtulis hostokra:
...
Apache azonosts
Az apache kpes weboldalak hozzfrst szablyozni azonostssal. Vagyis nem kell awebmesternek megrni az azonostsi eljrst valamilyen nven, mert az alapbl a rendelkezsnkrell.
-
Last update: 2012/09/12 21:41 oktatas:linux:webszerver:apache http://szit.hu/doku.php?id=oktatas:linux:webszerver:apache
http://szit.hu/ Printed on 2013/02/09 04:28
Jelszfjl ltrehozsa
Az els felhasznlt gy vesszk fel:
htpasswd -c /etc/apache2/auth/pass joska
A -c kapcsol a jelsz fjl ltrehozsra ad utastst.
A futtats eredmnye:
htpasswd -c /etc/apache2/auth/pass joskaNew password: titokRe-type new password: titokAdding password for user joska
A kvetkez felhasznlnl mr nem szksges a -c kapcsol:
htpasswd /etc/apache2/auth/pass mari
Ha hasznljuk mgis a -c kapcsolt, akkor fellrjuk a pass llomnyt tartalmt.
Bellts
Az apache konfigurcis llomnyban be kell lltanunk az azonostst:
AuthType Basic AuthName "Vdett tartomny" AuthUserFile /etc/apache2/auth/pass Require valid-user
Tovbbi lehetsgek
Require valid-userlRequire user userid [userid2] lRequire group csoportnev [csportnev2] l
Ha csak mari felhasznl lphet be:
Require user mari
Csoportfjl
-
2013/02/09 04:28 7/18 Apache
SzitWiki - http://szit.hu/
Ha csoportot lltunk be, akkor meg kell adni a csoportfjl helyt.
AuthGroupFile /etc/apache2/auth/groups
A csoportfjl szintaxisa:
csoportnev: nev1 nev2 nev3
Egy csoportfjl gy nzhet ki:
informatika: joska mari katigazdasagi: tibi gabor lajos
A pldban kt csoport van. Az informatika s a gazdasagi. Az informatika csoportba tartozik joska,mari s kati. A gazdasagi csoportba tartozik tibi, gabor s lajos.
A core modul
Options
Mindig alapbl betltd modul.
Lehetv teszi az Options s az AllowOverride belltsokat
Options kapcsol1 kapcsol2
Options ExecCGI FollowSymlinks Indexes SymlinksIfOwnerMatch
ExecCGIlCGI programok futtathatkm
FollowSymlinkslSzimbolikus linkek kvetsemLocation direktvban hatstalanm
IndexeslAz autoindex modul hasznlatt engedlyezi, vagy tiltjam
SymlinksIfOwnerMatchlA webkiszolgl kveti a szimbolikus linkeket, ha tulajdonos azonosmLocation direktvban nem hasznlhatm
AllowOverride
AllowOverride jog1 jog2
A knyvtrakban elhelyezett .htaccess fjlok mit rhatnak fell.
-
Last update: 2012/09/12 21:41 oktatas:linux:webszerver:apache http://szit.hu/doku.php?id=oktatas:linux:webszerver:apache
http://szit.hu/ Printed on 2013/02/09 04:28
NonelA .htaccess llomny semmit sem brlhat fellm
AlllA .htaccess llomny minden fellbrlhatm
IndexeslA knyvtrindexelshez kapcsold vezrlsek lehetsge (A Options Indexes nem tartozik ide!mAz az Options-al kell lltani)
LimitlSzablyozhat, melyik szmtgprl rhet el (access modul)m
Optionslfellbrlhatja a biztonsgi kapcsolkatm
.htaccess hasznlata
A .htaccess akkor hasznljuk, ha egy knyvtrnak a belltsait nem kzpontilag akarjuk megoldani.Ez jellemzen akkor van, ha azt egy msik rendszergazdra, vagy a webmesterre bzzuk(tovbbiakban a webmesterre fogok hivatkozni).
A webmester ltrehoz ezen a nven egy llomnyt az adott knyvtrban, amiben elhelyezi abelltsait. Hogy mi az amit bellthat mi hatrozzuk meg az AllowOverride belltssal kzpontilag.
Ha virtulis domainrl van sz, akkor szerkesszk a virtulis domain belltsait, ha sajt domainnkakkor httpd.conf fjlt:
Szerkesszk a httpd.conf llomnyt:
mcedit /etc/apache2/http.conf
Az engedlyezst (mint azt fentebb mr csinltuk) Directory direktvk kztt hasznlhatjuk, pldul:
AllowOverride AuthConfig
Az AuthConfig teszi lehetv, hogy a webmester a .htaccess fjlban apache azonostst lltson be.
lljon itt egy lista miket szoktunk engedlyezni:
NonelAlllAuthConfiglIndexeslLimitlOptionsl
Ha tbb lehetsget szeretnnk megadni, azt rjuk szkzkkel tagolva egyms utn:
AllowOverride AuthConfig Options Limits
-
2013/02/09 04:28 9/18 Apache
SzitWiki - http://szit.hu/
Az authz_host modul
A authz_host modul a 2.0-s apacheban mg access modul nven szerepel!
Allow,Deny
Clja a hozzfrs szablyozsa.
Az Allow s a Deny direktvkkal szablyozhatjuk milyen hostrl vagy IP cmrl rhetik el az egyesweboldalakat.
Allow from all
Allow from piros.and
Allow from 10.252.46.165
Deny from 10.252.46.165
Allow from 192.168.1.104 192.168.1.205
Minden szmtgp szmra: all
Deny from all
Allow from 192.168.5.0/255.255.255.0
Allow from 192.168.5.0/24
Allow from 10.1.0.0/255.255.0.0
Allow from 10.1.0.0/16
Allow from 2001:db8::a00:20ff:fea7:cceaAllow from 2001:db8::a00:20ff:fea7:ccea/10
Order
Order sorrend
-
Last update: 2012/09/12 21:41 oktatas:linux:webszerver:apache http://szit.hu/doku.php?id=oktatas:linux:webszerver:apache
http://szit.hu/ Printed on 2013/02/09 04:28
Szigorbb
Alaprtelmezs szerint mindenkinek tiltott az elrs.
Order Allow,Deny
Elszr megnzzk az Allow rszt. Ha egyetlen Allow rsz sem illeszkedik akkor tilts.
Msodszor megnzzk a Deny rszt. Ha illeszkedik egy Deny-re akkor hiba volt engedlyezve, tiltvalesz.
Enyhbb
Alaprtelmezs szerint minden gyfl jhet.
Order Deny,Allow
Elszr megnzzk a Deny rszt. Ha nincs illeszkeds akkor elrhet a knyvtr.
Msodszor megnzzk a Allow-ot. Ez fell rja a Deny rszt is, ha meg volt tiltva, de most szerepel azAllow rszben, akkor hozzfrhet.
Hozzfrs plda
Order Allow,Deny Allow from piros.and Deny from sarga.and
Order Deny,Allow Deny from 192.168.5.0/24 Allow from 192.168.5.3
A 192.168.5.0 hlzatbl nem jhet senki, csak a 192.168.5.3-as cmrl.
Virtualhost belltsa
-
2013/02/09 04:28 11/18 Apache
SzitWiki - http://szit.hu/
Minimum
Hozzunk ltre pldul a piros.and domain szmra egy llomnyt:
mcedit /etc/apache2/sites-available/piros.and
Minimlis tartalma:
ServerAdmin [email protected] ServerName piros.and ServerAlias www.piros.and DirectoryIndex index.html DocumentRoot /home/virtual-web/piros.and/htdocs/ # CGI knyvtr ScriptAlias /cgi-bin/ /home/virtual-web/piros.and/cgi-bin/ Options +ExecCGI # Naplfjlok ErrorLog /home/virtual-web/piros.and/logs/error.log CustomLog /home/virtual-web/piros.and/logs/access.log combined
Ez utn tltsk jra a konfigurcit:
/etc/init.d/apache2 reload
Ellenrizzk milyen hibk vannak:
tail /var/log/apache2/error.log
Engedlyezzk a domaint:
a2ensite piros.and
Ez utn tltsk jra a konfigurcit:
/etc/init.d/apache2 reload
Ellenrizzk a weblap elrhetsgt:
lynx http://piros.and
A website elrsvel kapcsolatos hibk ez utn itt:
-
Last update: 2012/09/12 21:41 oktatas:linux:webszerver:apache http://szit.hu/doku.php?id=oktatas:linux:webszerver:apache
http://szit.hu/ Printed on 2013/02/09 04:28
ErrorLog /home/virtual-web/piros.and/logs/error.log
A weblaprl elrsi adatok:
CustomLog /home/virtual-web/piros.and/logs/access.log combined
Ellenrz eszkzk
Bngsz
apt-get install lynx
A lynx egy karakteres bngsz.
Terhels
apt-get install apachetop
MySQL azonosts
apt-get install libapache2-mod-auth-mysql
a2enmod auth_mysql
mysql -u root -p
grant all on auth.* to auth_user@localhost identified by 'titok';
create database auth;
use auth;
CREATE TABLE `clients` (`username` varchar(30) NOT NULL default '',`passwd` varchar(25) NOT NULL default '',`groups` varchar(25) NOT NULL default '',PRIMARY KEY (`username`),KEY `groups` (`groups`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
2013/02/09 04:28 13/18 Apache
SzitWiki - http://szit.hu/
INSERT INTO `clients` VALUES ('joska', 'titok', 'info');
mcedit /etc/apache2/httpd.conf
Auth_MySQL_Info localhost auth_user titok
AuthName "Azonositas" AuthType Basic AuthBasicAuthoritative off AuthMySQL On AuthMySQL_Authoritative on AuthMySQL_DB auth AuthMySQL_Password_Table clients AuthMySQL_Group_Table clients AuthMySQL_Empty_Passwords off AuthMySQL_Encryption_Types Plaintext Crypt_DES AuthMySQL_Username_Field username AuthMySQL_Password_Field passwd require valid-user
ASP
Nha a webmesterek ASP-t szeretnnek futtatni a webszervernkn. Ehhez Mono nev csomagteleptsre van szksg:
apt-get install libapache2-mod-mono
SSL
Tanstvny elksztse
Els lps - Privt kulcs generlsa
Az openssl eszkzzel kszthetnk RSA pvitkulcsot s CSR-t azaz Certificate Signing Request. Egy1024 bites RSA kulcsot hozunk ltre, amely Triple-DES algoritmussal van kdolva. A trols formjaPEM, gy ASCII szvegknt olvashat.
openssl genrsa -des3 -out server.key 1024
-
Last update: 2012/09/12 21:41 oktatas:linux:webszerver:apache http://szit.hu/doku.php?id=oktatas:linux:webszerver:apache
http://szit.hu/ Printed on 2013/02/09 04:28
Ehhez hasonl kimenetet ltunk:
Generating RSA private key, 1024 bit long modulus.........................................................++++++........++++++e is 65537 (0x10001)Enter PEM pass phrase:Verifying password - Enter PEM pass phrase:
Msodik lps - CSR elksztse
openssl req -new -key server.key -out server.csr
Country Name (2 letter code) [GB]:HUState or Province Name (full name) [Berkshire]:PestLocality Name (eg, city) [Newbury]:BudapestOrganization Name (eg, company) [My Company Ltd]: Zold Zrt.Organizational Unit Name (eg, section) []:Informatika osztlyCommon Name (eg, your name or your server's hostname) []:zold.andEmail Address []: [email protected] enter the following 'extra' attributesto be sent with your certificate requestA challenge password []:An optional company name []:
Harmadik lps - A Jelsz trlse a kulcsbl
Step 3: Remove Passphrase from Key
cp server.key server.key.orgopenssl rsa -in server.key.org -out server.key
Az ls kimenete:
-rw-r--r-- 1 root root 745 Jul 04 14:15 server.csr-rw-r--r-- 1 root root 891 Jul 04 14:12 server.key-rw-r--r-- 1 root root 963 Jul 04 14:21 server.key.org
Negyedik lps - Tanstvnyt alrjuk
(Self-Signed Certificate)
openssl x509 -req -days 365 -in server.csr -signkey server.key -out
-
2013/02/09 04:28 15/18 Apache
SzitWiki - http://szit.hu/
server.crt
tdik lps - A privtkulcs s a tanstvny teleptse
cp server.crt /etc/apache2/ssl/ssl.crtcp server.key /etc/apache2/ssl/ssl.key
SSL belltsa
SSLEngine onSSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crtSSLCertificateKeyFile /usr/local/apache/conf/ssl.key/server.keySetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdownCustomLog logs/ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\"%b"
Hetedik lps - Apache jraindtsaa
invoke-rc.d apache restart
Rewrite
A rewritingrl
Egy cmet, tvonalat jrarhatunk segtsgvel. Felhasznlsnak szmtalan mdja lehet, mi mostcsak egy egyszer http https tirnytst fogunk megnzni a plda kedvrt.
tirnyts
Elszr engedlyezzk az trst:
RewriteEngine On
Ellenrizzk, hogy nincs HTTPS kapcsolat:
RewriteCond %{HTTPS} !=on
-
Last update: 2012/09/12 21:41 oktatas:linux:webszerver:apache http://szit.hu/doku.php?id=oktatas:linux:webszerver:apache
http://szit.hu/ Printed on 2013/02/09 04:28
Ezek utn a krst tirnytjuk ugyanarra a cmre, de https protokollal.
RewriteRule ^/?(.*) https://%{SERVER_NAME}/ class="code apache" [R,L]
Pldul:
http://zold.and https://zold.and
A belltsoknak kt helye legyen:
httpd.confl.htaccessl
A .htaccess fjlban val hasznlathoz be kell lltani a httpd.conf fjlban a kvetkez tulajdonsgot:
AllowOverride
Esetleg az albbi sor helyettesthet:
RewriteCond %{HTTPS} !=on
ezzel:
RewriteCond %{HTTPS} off
Knyvtr megadsa
Either put the above solution in a .htaccess file in the directory to be affected, or put the URI prefix inthe regex itself.
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?secure/(.*) https://%{SERVER_NAME}/secure/ class="code apache"[R,L]
Pldul:
http://zold.and/titkos/ https://zold.and/titkos/
Favicon plda
# REDIRECT FAVICON REQUESTS
RewriteEngine on
-
2013/02/09 04:28 17/18 Apache
SzitWiki - http://szit.hu/
RewriteCond %{REQUEST_URI} !^/favicon\.ico [NC] RewriteCond %{REQUEST_URI} favicon\.ico [NC] RewriteRule (.*) http://domain.tld/favicon.ico [R=301,L]
tirnyts
Minden hivatkozst tirnytunk egy msik cmre. Lehet /etc/apache2/httpd.conf, vagy egy helyi.htaccess fjlban.
Lehet Directory direktva kztt:
RedirectMatch permanent ^(.*)$ http://masikdomain.valahol
Lehet Location direktva kztt:
RedirectMatch permanent ^(.*)$ http://masikdomain.valahol
A kvetkez pldban ha a blog knyvtr vagy annak egy alknyvtrrra hivatkozik valaki, akkortirnyts trtnik:
RedirectMatch 301 ^/blog/.*$ http://domain.tld/target.html
Ha csak a blog knyvtrra szeretnnk:
RedirectMatch 301 ^/blog/$ http://domain.tld/target.html
Esetleg csak domainnel:
RedirectMatch 301 ^/blog/$ http://domain.tld/
Ms varicik, amelyekben benne van az ideiglenes (302) s a tarts (301) tirnyts:
# Tarts tirnytsRedirectMatch 301 ^/blog/.*$ http://domain.tld/target.html # Ideiglenes tirnyits:RedirectMatch 302 ^/blog/.*$ http://domain.tld/target.html
Likewise, you may also write:
# This is a permanent redirect RedirectMatch permanent ^/blog/.*$ http://domain.tld/target.html #This is a temporary redirect RedirectMatch temp ^/blog/.*$ http://domain.tld/target.html
-
Last update: 2012/09/12 21:41 oktatas:linux:webszerver:apache http://szit.hu/doku.php?id=oktatas:linux:webszerver:apache
http://szit.hu/ Printed on 2013/02/09 04:28
Irodalom
Linkek
http://httpd.apache.org/docs/2.2/howto/auth.htmllhttp://httpd.apache.org/docs/2.2/mod/mod_authz_host.htmllhttp://www.howtoforge.com/mod_auth_mysql_apache2_debianlhttp://modauthmysql.sourceforge.net/CONFIGURElhttp://www.akadia.com/services/ssh_test_certificate.html (SSL)l
From:http://szit.hu/ - SzitWiki
Permanent link:http://szit.hu/doku.php?id=oktatas:linux:webszerver:apache
Last update: 2012/09/12 21:41
ApacheA webszerverrlTeleptsA weblapok helyeVezrlsVezrls initscriptekkelapache2ctla2enmod, a2dismoda2ensite, a2dissite
BelltsNaplfjlokAlapbelltsokBelltsok alkalmazsi kreApache azonostsJelszfjl ltrehozsaBelltsTovbbi lehetsgekCsoportfjl
A core modulOptionsAllowOverride.htaccess hasznlata
Az authz_host modulAllow,DenyOrderSzigorbbEnyhbb
Hozzfrs plda
Virtualhost belltsaMinimum
Ellenrz eszkzkBngszTerhels
MySQL azonostsASPSSLTanstvny elksztseEls lps - Privt kulcs generlsaMsodik lps - CSR elksztseHarmadik lps - A Jelsz trlse a kulcsblNegyedik lps - Tanstvnyt alrjuktdik lps - A privtkulcs s a tanstvny teleptseSSL belltsaHetedik lps - Apache jraindtsaa
RewriteA rewritingrltirnytsKnyvtr megadsaFavicon plda
tirnytsIrodalomLinkek