.htaccess en .htpasswd

.htaccess en .htpasswd

Met behulp van een .htaccess bestand kunt u onder andere toegang tot uw site regelen.
Er zijn nog andere opties. Meer info vindt u op de officiële pagina van Apache:
https://httpd.apache.org/docs/2.4/howto/htaccess.html
Er bestaat ook een test tool om de werking van uw .htaccess file uit te proberen:
https://htaccess.madewithlove.be/

Afscherming op basis van ip-adres of gebruikersnaam is slechts een lichte vorm van beveiliging.
Probeer het gebruik van htpasswd zo veel mogelijk te vermijden.
Gebruik liever CAS.
Zie https://helpdesk.ugent.be/webhosting/cas.php
Hoogst gevoelige informatie dient bovendien volledig geëncrypteerd te worden afgebakend (enkel bereikbaar via https://).

Het afschermen van directories op basis van ip-adres

Let op: de bestanden dienen aangemaakt te worden via de utf8 encoding.
Gebruik bij voorkeur een editors met meer mogelijkheden zoals Notepad++, Atom, Brackets e.a..
Als u Kladblok / Notepad gebruikt: kies de juiste encoding.
Zie deze pagina over Notepad op Windows 10.

De naam van het bestand is .htaccess (vooraan staat een punt).

Voor de afscherming op basis van ip-adres plaatst u het .htaccess bestand in de directory welke u wenst af te schermen.
Staat dat bestand op het hoogste niveau, in de WWW folder, dan geldt dit voor de volledige site.

.htaccess (toelaten van een ip-adres)

Require ip 157.193.49.81

.htaccess (toelaten van meedere ip-adressen)

# verschillende lijnen met één adres
Require ip 157.193.49.80
Require ip 157.193.49.81
# een lijn met verschillende adressen
Require ip 157.193.49.82 157.193.49.83

.htaccess (toelaten van een volledige ip-range)

# met een netwerk mask
# ugent
Require ip 157.193.0.0/255.255.0.0
# eduroam
Require ip 172.18.0.0/255.255.255.0
# variant door enkel het gemeenschappelijk deel op te geven
Require ip 157.193.1
# dit is vergelijkbaar met
Require ip 157.193.1.0/255.255.255.0

Het afschermen van directories op basis van gebruikers en wachtwoorden

Nogmaals: deze aanpak is niet aangeraden, gebruik CAS.

CAS heeft het voordeel dat u niet zelf wachtwoorden gaat aanmaken en er dus ook niet voor verantwoordelijk bent. Bovendien kan de UGent gebruiker met zijn eigen single-sign-on gegevens inloggen.

Onderstaand .htaccess bestand plaatst u in de te beveiligen directory.

AuthUserFile /www/dienst/gebruikersnaam/.htpasswd
AuthName "Titel_van_het_aanlogscherm"
AuthType Basic
Require valid-user

Studenten vervangen /www/dienst/gebruikersnaam/.htpasswd door /users/beginletter_gebruikersnaam/gebruikersnaam/.htpasswd
Een .htpasswd bestand wordt aangemaakt met het commando 'htpasswd'.
vb.

# htpasswd -c $WWWHOME/.htpasswd gebruikersnaam
OF
# htpasswd -c
/users/beginletter_gebruikersnaam/gebruikersnaam/WWW/.htpasswd
gebruikersnaam

Het .htpasswd bestand bestaat uit een gebruikersnaam en een geëncrypteerd wachtwoord.
U kunt meerdere gebruikers (= meerdere lijnen) toevoegen. Alle volgende gebruikers worden toegevoegd zonder de '-c' optie.
vb.

# htpasswd $WWWHOME/.htpasswd andere_gebruikersnaam

Vb van een .htpasswd bestand

naam_voor_login:T5PkcBiivzBuE
naam_voor_login:h4tMZLf8bva1I
naam_voor_login:z/z5qVcqPNbI.

Het is aan te raden om het htpasswd bestand niet in de WWW directory te plaatsen, maar in de parent directory van die WWW directory (indien wel in de WWW-tree is een vorm van extra afscherming nodig).

Indien het htpasswd bestand in de WWW (of sub-) directory staat, moet u in het .htaccess bestand het volgende toevoegen :

<FilesMatch "^.ht">
require all denied
</FilesMatch>

Dit beschermt .htaccess en .htpasswd (en eender ander bestand dat begint met ".ht") binnen dezelfde directory.

Let op, enkel het htpasswd bestand wordt geëncrypteerd, het versturen van gebruikersnaam en wachtwoord niet! Gebruik dus geen bestaande UGent gebruikersnaam en wachtwoord combinaties!

Om toegang te krijgen tot die WWW directory opent u een SSH (putty) sessie.

Studenten bevinden zich reeds in de parent directory; voor hen zijn onderstaande instructies niet nodig.

Personeelsleden komen met het commando

cd $WWWHOME

in de WWW parent directory terecht.

Als u de directory wil benaderen met winscp, filezilla of andere explorer-achtige tools voert u best eerst in een interactieve sessie het volgende commando uit:

ln -s $WWWHOME wwwhome

Dit moet u slechts 1 keer uitvoeren; het laat u toe de directory te benaderen als de folder "wwwhome".

De parent directory van de WWW in ons voorbeeld is /www/dienst/gebruikersnaam

Voor shares is het parent directory pad /www/_shares/sharename
Het AuthUserFile pad in het .htaccess bestand is dan /www/_shares/sharename/.htpasswd

naam_voor_login:T5PkcBiivzBuE
naam_voor_login:h4tMZLf8bva1I
naam_voor_login:z/z5qVcqPNbI.
top