Omezení přístupu na server podle domény či IP adresy a kontrola přístupu na server přes heslo.
V
minulém díle jsme se věnovali obecným omezením, nyní se budeme věnovat řízení přístupu uživatelů
Omezení přístupu na server podle domény či IP adresy
Toto musí být povoleno příkazem
AllowOverride s parametrem
Limit. Řekněme, že chceme, aby do adresáře
C:\Program Files\Apache Group\Apache\htdocs\members (
$HOME/apache/share/htdocs/members) měli povolen přístup pouze uživatelé z domény
server1.cz a nikdo jiný pro metodu
GET a
POST.
(příklad 3)
<Limit GET POST>
order deny, allow
deny allow
allow from .server1.cz
</Limit>
V případě Apache pro platformu Unix/Linux pouze změníme první řádek:
<Directory "$HOME/apache/share/htdocs/members">
(tabulka 3)
Proměnná |
Popis |
<Limit ... > </Limit> |
Říká pro jaké metody omezení platí. |
Order |
Ovlivňuje pořadí ve kterém se příkazy provádějí. |
Allow |
Povoluje přístup do adresáře pro domény či IP adresy. Pokud se vynechá část IP adresy čí domény (bráno zleva), pak to platí i pro podřazené domény či IP adresy. Parametr all, říká, že je povolen přístup pro všechny uživatele. |
Deny |
to samé jako allow, pouze zakazuje přístup z těchto domén, či IP adres |
Máme uživatele s IP adresou 123.456.789.11 až 123.456.789.99 a 123.456.777.77. Chceme, aby na server do adresáře C:\Program Files\Apache Group\Apache\htdocs\members ($HOME/apache/share/htdcos/members) měli přístup pouze tito uživatelé a nikdo jiný.
(příklad 4)
<Directory "C:/Program Files/Apache Group/Apache/htdocs/members">
<Limit GET POST>
order deny, allow
deny allow
allow from 123.456.777.77,123.456.789.
</Limit>
</Directory>
V případě Apache pro platformu Unix/Linux pouze změníme první řádek:
<Directory "$HOME/apache/share/htdocs/members">
Řízení přístupu heslem
Nyní ukážeme, jak řídit přístup na server podle uživatelů, tj. každý uživatel, který se bude chtít dostat na server do určitého adresáře bude muset zadat uživatelské konto a heslo, jinak bude přístup do tohoto adresáře odepřen.
(tabulka 4)
Proměnná |
Popis |
<Limit ... > </Limit> |
Říká pro jaké metody omezení platí. |
Require |
pro jaké skupiny, platí povolení přístupu do tohoto adresáře |
AuthType |
typ autorizace přístupu |
AuthName |
název, který se bude tisknou při žádosti o vložení uživatelského hesla a konta. |
AuthUserFile |
umístění souboru s názvy uživatelských kont a zakódovanými hesly |
AuthGroupFiles |
umístění souboru s uživatelskými skupinami. |
Řekněme, že chceme aby do adresáře C:\Program Files\Apache Group\Apache\htdocs\members ($HOME/apache/share/htdocs/members), měli přístup všichni uživatele odkudkoliv (nebrat ohled na IP adresu či doménu), ale pouze ti, kteří jsou registrovaní na serveru jako skupina „admin“
(příklad 5)
<Directory "C:/Program Files/Apache Group/Apache/htdocs/members">
<Limit GET POST>
require group admin
AuthType Basic
AuthName Spravci
AuthUserFile "C:/Program Files/Apache Group/auth/user-file.txt"
AuthGroupFile "C:/Program Files/Apache Group/auth/group-file.txt"
</Limit>
</Directory>
V případě Apache pro platformu Unix/Linux pouze změníme 1.,6. a 7. řádek:
<Directory "$HOME/apache/share/htdocs/members">
AuthUserFile $HOME/apache/auth/user-file.txt
AuthGroupFile $HOME/apache/auth/group-file.txt
Všimněte si, že umístění souboru typu AuthUserFile a AuthGroupFile není v adresáři typu DocumentRoot (adresář, kde jsou umístěny HTML soubory), ale o dvě úrovně níže a to z důvodů bezpečnosti.
V souboru typu AuthGroupFile by mohlo být např. toto. Tento zápis říká, že uživatelé user1 až user4 patří do uživatelské skupiny admin a uživatelé user3,user5 a user7 paří do uživatelské skupiny users.
(příklad 6)
admin: user1 user2 user3 user4
users: user3 user5 user7
Vložení uživatelského konta a hesla do souboru typu AuthUserFile se provede pomocí příkazu htpasswd, který je pouze v distribuci pro platformu Unix/Linux a to v $HOME/apache/sbin/htpasswd.
(příklad 7)
$HOME/apache/sbin/htpasswd $HOME/apache/auth/user-file.txt -c user1
$HOME/apache/sbin/htpasswd $HOME/apache/auth/user-file.txt user2
$HOME/apache/sbin/htpasswd $HOME/apache/auth/user-file.txt user3
$HOME/apache/sbin/htpasswd $HOME/apache/auth/user-file.txt user4
$HOME/apache/sbin/htpasswd $HOME/apache/auth/user-file.txt user5
$HOME/apache/sbin/htpasswd $HOME/apache/auth/user-file.txt user7
Poté budete dvakrát vyzváni ke vložení hesla a pokud se nespletete, pak bude tato informace zapsána do souboru typu AuthUserFile, v našem případě $HOME/apache/auth/user-file.txt. Přepínač -c použijte pouze v případě, pokud soubor typu AuthUserFile dosud neexistuje,
Pro platformu Windows neexistenci příkazu htpasswd lze obejít, tím, že si vytvoříme soubor typu AuthUserFile v našem případě C:/Program Files/Apache Group/auth/user-file.txt a do něj zapíšete tyto údaje: (heslo se pro platformu Windows nekryptuje)
(příklad 8)
user1: heslo1
user2: heslo2
user3: heslo3
user4: heslo4
user5: heslo5
user7: heslo7
Samozřejmě, že můžete přístup do adresáře C:\Program Files\Apache Group\Apache\htdocs\members ($HOME/apache/share/htdocs/members), omezit tak, že uživatelé budou muset zadat své uživatelské konto a heslo, a ještě se zkontroluje jejich IP adresa či doména. Zkombinování příkladu 4 a 5.
(příklad 9)
<Directory "C:/Program Files/Apache Group/Apache/htdocs/members">
<Limit GET POST>
order deny, allow
deny allow
allow from 123.456.777.77,123.456.789.
require group admin
AuthType Basic
AuthName Spravci
AuthUserFile "C:/Program Files/Apache Group/auth/user-file.txt"
AuthGroupFile "C:/Program Files/Apache Group/auth/group-file.txt"
</Limit>
</Directory>
Pokud vám některý z těchto příkladů nechodí, pak si zkontrolujte, zda máte všechny odkazy na adresáře a soubory v uvozovkách.
Příště si ukážeme co můžeme změnit pomocí konfiguračního souboru srm.conf
Pokud máte jakékoliv dotazy, či připomínky můžete je sdělit na tuto adresu: erik@email.cz
Související články:
Konfigurace serveru Apache poprvéJak nainstalovat server Apache na Unix/LinuxInstalace Apache na Windows 95/98/NTPopis serveru Apache a jeho možností