|
Skydda
webbsidor
Lärarutbildningens UNIX-baserade webbserver (Apache) gör
det möjligt att skydda webbsidor. Skyddet är på
katalognivå vilket innebär att man låser en katalog
och endast den som har rätt nyckel (användarnamn och lösenord)
ges tillträde till katalogens innehåll. Skyddet gäller
även underliggande kataloger.
Två
filer
Skyddet byggs upp av två textfiler. Filen som fungerar som
lås heter .htaccess (observera
punkten) och i denna fil sätter man villkoren för hur
en katalog skall skyddas.
Den andra filen heter .htpasswd
och avgör vilka som har tillgång till den skyddade katalogen.
Filen innehåller en lista på användarnamn och krypterade
lösenord.
Genom särskilda inställningar i webbservern
är det varken möjligt att, med hjälp av en webbläsare,
se eller ladda ned .htaccess- eller .htpasswd-filer.
Exempel
på en .htaccess-fil
En typisk .htaccess-fil kan se ut så här:
|
AuthName "Hemliga saker"
AuthType Basic
AuthUserFile /sokvag/pa/servern/.htpasswd
Require valid-user
|
|
AuthName anger vilken text som skall visas
i samband med inloggningen. Denna hjälper användaren att
ange rätt användarnamn och lösen. Skyddar man flera
kataloger kan man använda samma AuthName för samtliga.
En användare som loggat in i någon av de skyddade katalogerna
kommer då åt de övriga utan att behöva fylla
i sitt användarnamn och lösen igen (förutsatt att
användaren har behörighet till alla kataloger).
AuthType Basic gör så att webbläsarens
standardiserade login-ruta kommer upp.
AuthUserFile
måste vara den fullständiga sökvägen till .htpasswd-filen.
Denna fil behöver inte ligga i samma katalog som själva
.htaccess-filen. Flera .htaccess-filer kan använda samma .htpasswd-fil.
Har du en användare på IMLs studentserver anger du sökvägen enligt följande:
/home/students/CAS-username_first_letter/CAS-username/public/http/.htpasswd
Exempel (.htpasswd och .htaccess i samma katalog)
/home/students/a/abcdef01/public/http/skyddad/.htpasswd
Require valid-user innebär att det behövs
ett giltigt användarnamn och lösenord för att logga
in.
Exempel
på en .htpasswd-fil
Nedan ser du ett exempel på hur innehållet i en .htpasswd-fil
kan se ut. Filen består av en eller flera rader med text på
formen:
användarnamn:krypteratlösenord
Det krypterade lösenordet skapas automatiskt
(se nedan). I detta exempel är det användarnamnen
castafiore, krollspell och alcazar som har rättighet att logga
in.
castafiore:jw4OyDQ5MhEL2
krollspell:wcZ8d5hTLWizc
alcazar:pm0ytd7IjLavg |
|
Hur skapar man filerna
och ger dem rätt filändelse?
De båda filerna skapar man enkelt med hjälp av en texteditor,
exemplevis Notepad (SkrivText på Macintosh). På Macintosh
kan du spara filen med rätt namn direkt. I Windows däremot
stöter man på problem. Ger man filen namnet .htaccess
med hjälp av Notepad kommer programmet själv att lägga
till filändelsen .txt så att filnamnet blir .htaccess.txt.
Försöker man sedan ändra filnamnet i Windows-miljön
kommer man att mötas av ett felmeddelande som säger
att filen måste ha ett namn (.htaccess räknas som en
filändelse av Windows). Istället kan man använda
sig av ett FTP-program (t ex Ws-FTP) och ändra filnamnet
med hjälp av programmets inbyggda Rename-funktion.
Ser
du inte filändelserna på din dator måste du ställa
in Windows så att dessa visas. Hur du gör detta ser du
om du klickar här.
Innehållet i de båda filerna skapas enklast
med IML htpasswd Generator. Det är ett webbaserat verktyg
som kan användas för att kryptera lösenord. Ange
användarnamn och lösenord (i klartext) och klicka därefter
på Submit. Tänk på att både användarnamn
och lösenord är teckenkänsliga (dvs det är skillnad
på stora och små bokstäver). En resultatsida visar
nu koden för .htpasswd-filen (användarnamn samt krypterat
lösenord) samt även en enkel .htaccess-fil. Markera och
kopiera den visade informationen och klistra in i dina textfiler.
Fler användare skapas enkelt genom att använda verktyget
en gång till.
IML
htpasswd Generator
Publicera filerna
på servern
När sedan de båda filerna är
skapade är det dags att ladda upp dem på webbservern.
.htaccess-filen läggs i den katalog som skall skyddas och .htpasswd
i den katalog som anges i sökvägen (AuthUserFile)
i .htaccess-filen. Kontrollera sedan att det fungerar som du tänkt
dig.
Fler funktioner med
.htaccess
Allow/Deny
Om man själv ofta behöver komma åt
innehållet i den katalog man valt att skydda kan det vara
bekvämt att inte behöva logga in varenda gång. Då
kan man göra något av följande tillägg i .htaccess-filen:
allow from ip-nummer |
Här kan man ange sitt eget ip-nummer |
allow from 130.239 |
De ip-nummer som börjar med 130.239 kan
se kataloginnehållet utan att logga in. |
allow from lh.umu.se |
Datorer registrerade i domänen behöver
inte logga in |
|
Allow from ger automatisk tillgång till den
skyddade katalogen och dess innehåll, givet att man uppfyller
villkoren som skrivs efter kommandot.
Används Allow i kombination med Require valid-user
måste .htaccess-filen också innehålla raden:
Satisfy
any
Lägger man in den raden kommer man in om man
antingen har rätt användarnamn/lösenord eller uppfyller
villkoren bestämda med Allow.
Vill man istället stänga ute ett eller
flera ip-nummer eller datorer med ett visst domännamn kan man
byta ut Allow mot Deny (de går också att använda
i kombination med varandra). En användare av en "förbjuden"
dator kommer då aldrig att ges möjlighet att logga in.
Vill man fullständigt låsa en katalog kan man skriva:
deny from ip-nummer |
Angivet ip-nummer kommer inte åt katalogen
och dess innehåll |
deny from 130.239 |
De ip-nummer som börjar med 130.239 kommer
inte in |
deny from lh.umu.se |
Datorer registrerade i domänen kommer
inte in |
deny from all |
Stänger ute samtliga datorer. |
|
Lägg till Satisfy any
om så behövs.
Kommentarer
Kommentarer i .htaccess-filen kan man göra
genom att börja en ny rad med tecknet #, t ex:
# Min skyddande fil
Redirect
.htaccess kan också användas för
att skicka vidare användare till en annan adress. Denna funktion
motsvarar Refresh-funktionen som finns i html, men fungerar bättre
då ingen sida behöver laddas om. Funktionen skrivs på
formen:
RedirectMatch gammaladress nyadress
Till exempel:
RedirectMatch /~username/index.html
/~username/new/index.html
eller
RedirectMatch /~username/index.html
http://www.newhost.com/index.html
|