Alles wat u moet weten over Apache Basic-autorisatie. Apache-hulpprogramma's installeren. Controle van de werking van het .htaccess-bestand op de server

Wanneer u een webserver instelt, zijn er vaak delen van de site waartoe u de toegang wilt beperken. Webapplicaties bieden vaak hun eigen authenticatie- en autorisatiemethoden, maar de webserver zelf kan worden gebruikt om de toegang te beperken als deze ontoereikend of niet beschikbaar zijn.

In deze handleiding laten we zien hoe u activa met een wachtwoord kunt beveiligen op een Apache-web server draait op Ubuntu 14.04.

Vereisten

Om aan de slag te gaan, heeft u toegang nodig tot een Ubuntu 14.04-serveromgeving. U hebt een niet-rootgebruiker met sudo-rechten nodig om beheerderstaken uit te voeren. Om te leren hoe u zo'n gebruiker kunt aanmaken, volgt u onze .

Installeer het Apache Utilities-pakket

Om het bestand te maken waarin de wachtwoorden worden opgeslagen die nodig zijn om toegang te krijgen tot onze beperkte inhoud, zullen we een hulpprogramma gebruiken met de naam htpasswd. Dit is te vinden in het apache2-utils-pakket in de Ubuntu-repository's.

Update de lokale pakketcache en installeer het pakket door deze opdracht te typen. We zullen van deze gelegenheid gebruik maken om ook de Apache2-server te pakken voor het geval deze nog niet op de server is geïnstalleerd:

  • sudo apt-get-update
  • sudo apt-get install apache2 apache2-utils

Maak het wachtwoordbestand

We hebben nu toegang tot de opdracht htpasswd. We kunnen dit gebruiken om een ​​wachtwoordbestand te maken dat Apache kan gebruiken om gebruikers te authenticeren. We zullen een verborgen maken bestand voor dit doel heet .htpasswd in onze /etc/apache2 configuratiemap.

De eerste keer dat we dit hulpprogramma gebruiken, moeten we de optie -c toevoegen om het opgegeven bestand te maken. We specificeren een gebruikersnaam (sammy in dit voorbeeld) aan het einde van de opdracht om een ​​nieuw item in het bestand te maken:

  • sudo htpasswd -c /etc/apache2/.htpasswd sammy

U wordt gevraagd een wachtwoord voor de gebruiker op te geven en te bevestigen.

Laat het argument -c weg voor eventuele extra gebruikers die u wilt toevoegen:

  • sudo htpasswd /etc/apache2/.htpasswd another_user

Als we de inhoud van het bestand bekijken, kunnen we voor elk record de gebruikersnaam en het gecodeerde wachtwoord zien:

  • cat /etc/apache2/.htpasswd
sammy:$apr1$lzxsIfXG$tmCvCfb49vpPFwKGVsuYz. een andere_gebruiker:$apr1$p1E9MeAf$kiAhneUwr.MhAE2kKGYHK.

Configureer Apache-wachtwoordverificatie

Nu we een bestand hebben met onze gebruikers en wachtwoorden in een formaat dat Apache kan lezen, moeten we Apache configureren om dit bestand te controleren voordat onze beveiligde inhoud wordt weergegeven. We kunnen dit op twee verschillende manieren doen.

De eerste optie is om de Apache-configuratie te bewerken en onze wachtwoordbeveiliging toe te voegen aan het virtuele hostbestand. Dit levert over het algemeen betere prestaties op, omdat hierdoor de kosten van het lezen van gedistribueerde configuratiebestanden worden vermeden. Als u deze optie heeft, wordt deze methode aanbevolen.

Als u niet over de mogelijkheid beschikt om het virtuele hostbestand te wijzigen (of als u al .htaccess-bestanden voor andere doeleinden gebruikt), kunt u de toegang beperken met behulp van een .htaccess-bestand. Apache gebruikt .htaccess`-bestanden om het mogelijk te maken dat bepaalde configuratie-items worden ingesteld binnen een bestand in een inhoudsmap. Het nadeel is dat Apache deze bestanden opnieuw moet lezen bij elk verzoek waarbij de map betrokken is, wat de prestaties kan beïnvloeden.

Kies hieronder de optie die het beste bij uw wensen past.

Toegangscontrole configureren binnen de virtuele hostdefinitie

Begin met het openen van het virtuele hostbestand waaraan u een beperking wilt toevoegen. Voor ons voorbeeld gebruiken we het bestand 000-default.conf dat de standaard virtuele host bevat die is geïnstalleerd via het apache-pakket van Ubuntu:

  • sudo nano

Binnenin, met de opmerkingen verwijderd, zou het bestand er ongeveer zo uit moeten zien:

/etc/apache2/sites-enabled/000-default.conf

Authenticatie gebeurt per map. Om authenticatie in te stellen, moet u zich richten op de map die u wilt beperken met een blok. In ons voorbeeld beperken we de gehele documentroot, maar u kunt deze lijst aanpassen zodat deze zich alleen richt op een specifieke map binnen de webruimte:

/etc/apache2/sites-enabled/000-default.conf

ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog $(APACHE_LOG_DIR)/error.log CustomLog $(APACHE_LOG_DIR)/access.log gecombineerd

Geef binnen dit directoryblok aan dat we basisauthenticatie willen instellen. Kies voor AuthName een realmnaam die aan de gebruiker wordt weergegeven wanneer om referenties wordt gevraagd. Gebruik de AuthUserFile-instructie om Apache naar het wachtwoordbestand te verwijzen dat we hebben gemaakt. Ten slotte hebben we een geldige gebruiker nodig om toegang te krijgen tot deze bron, wat betekent dat iedereen die zijn identiteit kan verifiëren met een wachtwoord toegang krijgt tot:

/etc/apache2/sites-enabled/000-default.conf

ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog $(APACHE_LOG_DIR)/error.log CustomLog $(APACHE_LOG_DIR)/access.log gecombineerd AuthType Basis AuthName "Beperkte inhoud" AuthUserFile /etc/apache2/.htpasswd Vereist geldige gebruiker

Sla het bestand op en sluit het als u klaar bent. Start Apache opnieuw om uw wachtwoordbeleid te implementeren:

  • sudo service apache2 opnieuw opstarten

De map die u hebt opgegeven, moet nu met een wachtwoord zijn beveiligd.

Toegangscontrole configureren met .htaccess-bestanden

Als u in plaats daarvan wachtwoordbeveiliging wilt instellen met behulp van .htaccess-bestanden, moet u beginnen met het bewerken van het hoofdconfiguratiebestand van Apache om .htaccess-bestanden toe te staan:

  • sudo nano /etc/apache2/apache2.conf

Vind de blok voor de map /var/www die de documentroot bevat. Schakel de .htaccess-verwerking in door de AllowOverride-instructie binnen dat blok te wijzigen van "Geen" in "Alles":

/etc/apache2/apache2.conf

. . . Opties Indexen FollowSymLinks AllowOverride All Vereist alles toegekend . . .

Sla het bestand op en sluit het als u klaar bent.

Vervolgens moeten we een .htaccess-bestand toevoegen aan de map die we willen beperken. In onze demonstratie beperken we de volledige documentroot (de hele website) die is gebaseerd op /var/www/html , maar u kunt dit bestand in elke map plaatsen waartoe u de toegang wilt beperken:

  • sudo nano /var/www/html/.htaccess

Geef in dit bestand aan dat we basisauthenticatie willen instellen. Kies voor AuthName een realmnaam die aan de gebruiker wordt weergegeven wanneer om referenties wordt gevraagd. Gebruik de AuthUserFile-instructie om Apache naar het wachtwoordbestand te verwijzen dat we hebben gemaakt. Ten slotte hebben we een geldige gebruiker nodig om toegang te krijgen tot deze bron, wat betekent dat iedereen die zijn identiteit kan verifiëren met een wachtwoord toegang krijgt tot:

/var/www/html/.htaccess

AuthType Basis AuthName "Beperkte inhoud" AuthUserFile /etc/apache2/.htpasswd Vereist geldige gebruiker

Sla het bestand op en sluit het. Start de webserver opnieuw op om alle inhoud in of onder de map met een wachtwoord te beveiligen met het .htaccess-bestand:

  • sudo service apache2 opnieuw opstarten

Bevestig de wachtwoordverificatie

Probeer toegang te krijgen tot uw beperkte inhoud in een webbrowser om te bevestigen dat uw inhoud is beveiligd. U zou een gebruikersnaam en wachtwoordprompt moeten zien die er als volgt uitziet:

Als u de juiste inloggegevens invoert, krijgt u toegang tot de inhoud. Als u de verkeerde inloggegevens invoert of op "Annuleren" klikt, ziet u de foutpagina "Ongeautoriseerd":

Conclusie

U zou nu alles moeten hebben wat u nodig heeft om basisauthenticatie voor uw site in te stellen. Houd er rekening mee dat wachtwoordbeveiliging moet worden gecombineerd met SSL-codering, zodat uw inloggegevens behouden blijven zijn niet in platte tekst naar de server verzonden. Om te leren hoe u een zelfondertekend SSL-certificaat kunt maken voor gebruik met Apache, volgt u . Voor meer informatie over het installeren van een commercieel certificaat volgt u.

Wanneer u uw eigen website beheert, zijn er waarschijnlijk gebieden waartoe u de toegang voor bezoekers wilt beperken. Webapplicaties hebben hun eigen authenticatie- en autorisatiemethoden, maar de webserver zelf kan worden gebruikt om toegang te weigeren als andere methoden ontoereikend of niet beschikbaar zijn.

In dit artikel leert u hoe u wachtwoordverificatie instelt op een Apache-webserver die draait op Ubuntu 16.04.

Vereisten

Zorg ervoor dat u toegang heeft voordat u doorgaat met de volgende stappen Ubuntu-server 16.04.

Voor het voltooien van de instructies heeft u ook het volgende nodig:

  • een gebruiker die sudo-opdrachten op uw server kan uitvoeren;
  • Apache-webserver;
  • een site waarop een SSL-certificaat is geïnstalleerd (bijvoorbeeld Let’s Encrypt).

Als je al het bovenstaande hebt, log dan in op de server als gebruiker met sudo-rechten en ga verder met de eerste stap.

Stap 1: installeer het pakket met Apache-hulpprogramma's

Je hebt een hulpprogramma nodig met de naam htpasswd, dat deel uitmaakt van het apache2-utils-pakket. Het wordt gebruikt om het bestand te maken, evenals de gebruikersnaam en wachtwoorden die zullen worden gebruikt om toegang te krijgen tot de beperkte weergave gewone gebruikers inhoud.

Voer de volgende opdrachten in:

$ sudo apt-get update $ sudo apt-get install apache2-utils

Stap 2: maak een bestand met wachtwoorden

Nu kunt u de opdracht htpasswd gebruiken. Als u dit gebruikt, moet u een bestand maken met wachtwoorden die Apache zal gebruiken om gebruikers te authenticeren. Voor deze doeleinden moet u een verborgen bestand maken met de naam .htpasswd in de instellingenmap /etc/apache2.

De eerste keer dat u dit hulpprogramma gebruikt, moet u de schakeloptie -c aan de opdracht toevoegen om het opgegeven bestand te maken. Ook aan het einde van de opdracht moet u de gebruikersnaam opgeven ( sinatra V in dit voorbeeld) - dit is nodig om een ​​nieuw item in het bestand te maken:

$ sudo htpasswd -c /etc/apache2/.htpasswd sinatra

Er wordt gevraagd om een ​​wachtwoord en bevestiging voor de aangemaakte gebruiker.

Als u nog andere gebruikers wilt toevoegen (bijvoorbeeld another_user), gebruikt u hetzelfde commando, maar zonder de schakeloptie -c:

$ sudo htpasswd /etc/apache2/.htpasswd another_user

Kijk naar de inhoud van dit bestand:

$ cat /etc/apache2/.htpasswd

U ziet voor elk item de gebruikersnaam en het gecodeerde wachtwoord:

Uitvoer sinatra:$apr1$.0CAabqX$rb8lueIORA/p8UzGPYtGs/ another_user:$apr1$fqH7UG8a$SrUxurp/Atfq6j7GL/VEC1

Stap 3: Stel wachtwoordverificatie in op Apache

Je hebt nu een bestand met gebruikersnamen en wachtwoorden in een formaat dat Apache kan lezen.

De volgende stap is het configureren van Apache om dit bestand te controleren wanneer het op het punt staat toegang te verlenen tot beschermde inhoud. U kunt dit op twee manieren doen: rechtstreeks in het virtuele hostbestand van de site, of door .htaccess-bestanden toe te voegen aan de mappen waartoe u de toegang wilt beperken.

Over het algemeen is het beter om de eerste optie te gebruiken, dat wil zeggen een virtueel hostbestand gebruiken. Als u echter niet-geprivilegieerde gebruikers de mogelijkheid wilt geven om hun eigen toegangsbeperkingen te beheren, versiebeheerbeperkingen op dezelfde manier af te dwingen als op de site, of webapplicaties te hebben die .htaccess al voor andere doeleinden gebruiken, wilt u misschien dit doen ga met de laatste manieren.

Dat wil zeggen: kies het pad op basis van uw vereisten.

Pad 1 (bij voorkeur): autorisatie configureren via virtuele gastheer

De eerste manier is bewerken Apache-instellingen en voeg wachtwoordbeveiliging toe aan de virtuele host. Dit zal ook de prestaties verbeteren, omdat het de noodzaak elimineert om gedistribueerde instellingenbestanden te lezen. Dit pad vereist toegang tot instellingen, wat niet altijd beschikbaar is, maar als je toegang hebt, verdient dit pad de voorkeur.

Open om te beginnen het virtuele hostbestand waartoe u de toegang wilt beperken. Bijvoorbeeld binnen deze handleiding Het bestand 000-default.conf zal worden gebruikt, dat de standaard virtuele host bevat die is geïnstalleerd met behulp van het Apache-pakket op Ubuntu.

$ sudo nano /etc/apache2/sites-enabled/000-default.conf

Binnenin ziet het bestand met regels zonder commentaar er ongeveer zo uit:

Authenticatie is gebaseerd op mappen. Om authenticatie in te stellen, moet u de map waartoe u de toegang wilt weigeren in een blok plaatsen . In het onderstaande voorbeeld wordt de toegang tot de hoofdmap van het document geweigerd, maar u kunt een specifieke map selecteren:

ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog $(APACHE_LOG_DIR)/error.log CustomLog $(APACHE_LOG_DIR)/access.log gecombineerd

Geef in het mapblok op dat u basisverificatie wilt instellen. Voor de kolom AuthName moet u de naam selecteren die aan de gebruiker wordt weergegeven bij het opvragen van authenticatiegegevens. In de kolom AuthUserFile moet u het bestand opgeven met het wachtwoord dat eerder is gemaakt, zodat Apache het kan vinden. U heeft ook een geldige gebruiker nodig die toegang heeft tot de gegevens; met andere woorden, iedereen die zijn identiteit kan bevestigen met behulp van een wachtwoord, krijgt toegang tot de directory.

ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog $(APACHE_LOG_DIR)/error.log CustomLog $(APACHE_LOG_DIR)/access.log gecombineerd AuthType Basis AuthName "Beperkte inhoud" AuthUserFile /etc/apache2/.htpasswd Vereist geldige gebruiker

Na het bewerken slaat u het bestand op en sluit u het.

Voordat u de server opnieuw opstart, controleert u de instellingen met de volgende opdracht:

$ sudo apache2ctl configtest

Als alles in orde is en u Syntax OK ziet, start u de server opnieuw op zodat het nieuwe wachtwoordvereiste toegangsbeleid van kracht wordt. Om dit te doen, voert u de volgende opdrachten in:

Nu is de map die u eerder hebt aangewezen met een wachtwoord beveiligd.

Apache kan .htaccess-bestanden gebruiken om toegang te geven tot bepaalde instellingen die u kunt instellen via de inhoudsmap. Omdat Apache bij elk verzoek dat deze bestanden bevat, toegang krijgt tot de inhoud van deze bestanden deze catalogus, wat een negatieve invloed kan hebben op de prestaties, verdient de eerste manier de voorkeur, maar als u al .htaccess-bestanden gebruikt, of als u niet-geprivilegieerde gebruikers nodig heeft om zelfstandig toegangsbeperkingen te kunnen beheren, dan is in dit geval het gebruik van .htaccess-bestanden duidelijk en logisch.

Om de wachtwoordbeveiliging met behulp van .htaccess-bestanden te activeren, opent u de hoofdconfiguratie Apache-bestand:

$ sudo nano /etc/apache2/apache2.conf

Zoek vervolgens het blok voor de map /var/www, die de hoofdmap van het document bevat. Schakel ondersteuning voor .htaccess-bestanden in door de waarde van de AllowOverride-richtlijn te wijzigen van "None" in "All" - in dit geval zal de server alle richtlijnen van het .htaccess-bestand toestaan:

. . . Opties Indexen FollowSymLinks AllowOverride All Vereist alles toegekend . . .

Hierna slaat u het bestand op en sluit u het.

Nu moet u een .htaccess-bestand toevoegen aan de map waartoe u de toegang wilt beperken. In deze zelfstudie wordt bijvoorbeeld de toegang geweigerd tot de volledige hoofdmap van het document (dat wil zeggen de hele site), die zich op /var/www/html bevindt, maar u kunt dit bestand in elke gewenste map plaatsen. om de toegang te beperken tot:

$ sudo nano /var/www/html/.htaccess

Geef in dit bestand op dat u basisverificatie wilt instellen. Voor de kolom AuthName moet u de naam selecteren die aan de gebruiker wordt weergegeven bij het opvragen van authenticatiegegevens. In de kolom AuthUserFile moet u het bestand opgeven met het wachtwoord dat eerder is gemaakt, zodat Apache het kan vinden. U heeft ook een geldige gebruiker nodig die toegang heeft tot de gegevens; met andere woorden, iedereen die zijn identiteit kan bevestigen met behulp van een wachtwoord, krijgt toegang tot de directory:

AuthType Basis AuthName "Beperkte inhoud" AuthUserFile /etc/apache2/.htpasswd Vereist geldige gebruiker

Sla het bestand op en sluit het. Start de server opnieuw op zodat alle wijzigingen met betrekking tot de wachtwoordbeveiliging van de geselecteerde map van kracht worden. Gebruik vervolgens de systemctl-statusopdracht om er zeker van te zijn dat het opnieuw opstarten succesvol was:

$ sudo systemctl herstart apache2 $ sudo systemctl status apache2

Stap 4: controleer op authenticatiebescherming

Om er zeker van te zijn dat uw gegevens beschermd zijn, probeert u deze in een browser te openen. U zou een venster moeten krijgen waarin om uw gebruikersnaam en wachtwoord wordt gevraagd, dat er ongeveer zo uit zal zien:

Als u de juiste gegevens invoert, krijgt u de gevraagde gegevens te zien. Als u onjuiste gegevens invoert of op Annuleren klikt, ziet u een foutpagina (Niet geautoriseerd), die aangeeft dat toegang wordt geweigerd aan niet-geverifieerde gebruikers:


Conclusie

Als u alle stappen in deze handleiding heeft voltooid, beschikt uw site nu over basisauthenticatie. Vergeet echter andere manieren niet om u te beschermen tegen ongeautoriseerde toegang tot uw gegevens, zoals SSL-certificaten en het gebruik van SSH.

Als u meer dan één persoon binnen wilt laten, moet u een groepsbestand maken waarin groepsnamen worden gekoppeld aan een lijst met gebruikers in die groep. De indeling van dit bestand is vrij eenvoudig en u kunt het maken met uw favoriete editor. De inhoud van het bestand ziet er als volgt uit:

Groepsnaam: rbowen dpitts sungo rshersey

Dat is slechts een lijst met de leden van de groep in een lange rij, gescheiden door spaties.

Om een ​​gebruiker toe te voegen aan uw reeds bestaande wachtwoordbestand, typt u:

htpasswd /usr/local/apache/passwd/passwordsdpitts

U krijgt hetzelfde antwoord als voorheen, maar het wordt aan het bestaande bestand toegevoegd, in plaats van dat er een nieuw bestand wordt gemaakt. (Het is de -c die ervoor zorgt dat er een nieuw wachtwoordbestand wordt gemaakt).

Mod_auth_basic en mod_authz_host die wat meer informatie bevatten over hoe dit allemaal werkt. De richtlijn kan ook helpen bij het vereenvoudigen van bepaalde authenticatieconfiguraties.

De verschillende cijfers die door Apache worden ondersteund voor authenticatiegegevens worden uitgelegd in Wachtwoordcoderingen.

En misschien wil je de Access Control howto bekijken, waarin een aantal gerelateerde onderwerpen worden besproken.

Het beveiligen van een website met behulp van de Apache-server zelf is een van de eenvoudigste en tegelijkertijd redelijk betrouwbare methoden. In dit geval hoeft u uw beveiligingsstrategie niet grondig door te denken, te ontwerpen en in code te implementeren. Bovendien om te creëren goed systeem de verdediging moet ter zake over voldoende kwalificaties beschikken. Door de ingebouwde bescherming van de Apache WEB-server te gebruiken, vereenvoudigt u uw taak aanzienlijk: u hoeft alleen maar een eenvoudige reeks acties uit te voeren en uw site is voldoende beschermd. In dit artikel worden de stappen en acties die u moet ondernemen gedetailleerd beschreven. En aan het einde van het artikel zullen er voorbeelden zijn van .htaccess-bestanden.

Basisauthenticatie

Dit artikel bespreekt de eenvoudigste en betaalbare manier beveiliging - basisauthenticatie.

Opmerking

Authenticatie is het proces waarbij wordt geverifieerd dat iemand is wie hij of zij zegt te zijn. Meestal omvat de verificatie het invoeren van een gebruikersnaam en wachtwoord.

Laten we eens kijken hoe basisauthenticatie werkt.
Wanneer een bezoeker een beveiligde map bezoekt, reageert de Apache-server op het verzoek met een header met code 401 (401-authenticatie vereist header). De browser van de bezoeker accepteert de 401-header en geeft een venster weer met velden voor het invoeren van een gebruikersnaam en wachtwoord. Na het invoeren van de gebruikersnaam en het wachtwoord worden deze gegevens teruggestuurd naar de server, die controleert of de gebruikersnaam aanwezig is speciale lijst en het wachtwoord is correct. Als alles klopt, krijgt de bezoeker toegang tot de bron. Samen met de header wordt een speciale naam, de scope genaamd, naar de browser verzonden. De browser slaat niet alleen de gebruikersnaam en het wachtwoord op in het cachegeheugen, zodat deze bij elk verzoek worden doorgegeven, maar ook de reikwijdte. Dankzij dit wordt het invoeren van de naam en het wachtwoord in de beveiligde map slechts één keer uitgevoerd. Anders zouden ze bij elk verzoek aan de beschermde map moeten worden ingevoerd. Het cachen van authenticatieparameters (naam, wachtwoord, bereik) gebeurt doorgaans slechts binnen één sessie.

Opmerking

Bij basisauthenticatie De gebruikersnaam en het wachtwoord worden naar het netwerk verzonden open vorm gedurende de gehele sessie wanneer de bezoeker met de beveiligde map werkt. Een hacker kan deze informatie onderscheppen met behulp van netwerkanalysator pakketjes. Dit type authenticatie mag niet worden gebruikt waar echte bescherming commercieel waardevolle informatie.

Opmerking

De Apache WEB-server ondersteunt een ander type beveiliging: digest-authenticatie. Tijdens de digest-authenticatie wordt het wachtwoord niet in gewone tekst verzonden, maar als een hashcode berekend met behulp van het MD5-algoritme. Daarom kan het wachtwoord niet worden onderschept bij het scannen van verkeer. Maar om digest-authenticatie te gebruiken, moet je helaas een speciale module op de server installeren: mod_auth_digest. En dit valt alleen binnen de bevoegdheid van het serverbeheer. Bovendien werd digest-authenticatie tot voor kort niet door alle typen browsers ondersteund.

Websitebescherming eenvoudig gemaakt

Om de site te beschermen, moet u de volgende reeks acties uitvoeren: maak een bestand met wachtwoorden, kopieer het naar de server, maak een .htaccess-bestand en kopieer het ook naar de server.
Om bescherming te organiseren die je nodig hebt.

  1. WEB-site en FTP-toegang daartoe.
  2. Rechten om .htpaccess-bestanden te maken en de beveiliging hiermee te organiseren.
  3. Hulpprogramma voor het genereren van wachtwoorden htpasswd.exe

Controle van de werking van het .htaccess-bestand op de server

Om te controleren of u rechten heeft om de beveiliging te organiseren met behulp van .htaccess-bestanden, maakt u een tekstbestand met de naam .htaccess (het eerste teken is een punt, er is geen extensie).

Opmerking

Het is handig om .htaccess-bestanden te maken met behulp van de ingebouwde editor in de shells Far, WindowsCommander, TotalCommander, enz., evenals in de Kladblok-editor.

Opmerking

Zodat het notitieblok niet automatisch vervangt txt-extensie Selecteer in het dialoogvenster Opslaan in de vervolgkeuzelijst “Bestandstype” de optie “Alle bestanden”.


Rijst..htaccess-bestanden opslaan in Kladblok

De werking van .htaccess controleren

AuthType Basis
AuthName beheerder
geldige gebruiker vereisen

Herschrijf vervolgens via FTP-toegang het .htaccess-bestand op de site, in de map die u wilt beschermen.

Opmerking

Het effect van .htaccess-bestanden strekt zich niet alleen uit tot de map waarin het bestand zich bevindt, maar ook tot alle submappen die op een lager niveau liggen.

Open vervolgens deze map via uw browser. Als u de beheerdersmap beschermt en het .htaccess-bestand daar hebt herschreven, moet u dit controleren om te controleren adresbalk browser de volgende URL: http://www.mysite.ru/admin/.

Als u hierna wordt gevraagd uw gebruikersnaam en wachtwoord in te voeren, zoals in de onderstaande afbeelding, is de test geslaagd en kunt u doorgaan met het beschermen van de directory.

Rijst. Login- en wachtwoordinvoervenster


Als je alles goed hebt gedaan, maar het wachtwoordinvoervenster niet verschijnt, betekent dit dat de serverinstellingen je verbieden .htaccess-bestanden te gebruiken om mappen te beschermen. Om dit probleem op te lossen, moet u contact opnemen met de serverbeheerder of een ander type bescherming gebruiken.
Zodra is vastgesteld dat de .htaccess-bestanden werken, moet u het testbestand dat u zojuist hebt geschreven van de site verwijderen.

Opmerking

Als u om de een of andere reden het .htaccess-bestand niet kunt verwijderen, maak dan een leeg .htaccess-bestand en vervang dit door het bestand op de server.

Een bestand maken met wachtwoorden.htpasswd

Het wachtwoordbestand wordt gemaakt door het hulpprogramma htpasswd.exe. Als u de Apache WEB-server op uw machine hebt geïnstalleerd, dan dit hulpprogramma bevindt zich in de map met geïnstalleerd Apache-eat in een submap bak.

Opmerking

Als Apache niet is geïnstalleerd, kunt u het hulpprogramma htpasswd.exe downloaden via de link: .

Om met het hulpprogramma htpasswd.exe te kunnen werken, hebt u een opdrachtregelinterface nodig. Programma's zoals Far, WindowsCommander, etc. hebben een opdrachtregelinterface. Hier zullen we kijken naar het werken met de opdrachtregel met behulp van het cmd-hulpprogramma, dat wordt meegeleverd met Windows 2000/XP, enz.
Klik "Start" -> "Uitvoeren", voer dit in de invoerregel in cmd en druk op OK. Er wordt een CMD-hulpprogramma geopend.

Rijst. CMD-hulpprogrammavenster


Vervolgens moet u naar de map gaan waar het hulpprogramma htpasswd.exe zich bevindt. Laten we zeggen dat de Apache-server is geïnstalleerd in de map c:/Apache2, voer vervolgens de opdracht in de opdrachtregel in: cd../../apache2/bin en druk op enter.


Je bent verhuisd naar de map met: Apache2in. Nu moet u een opdracht geven om een ​​bestand met een wachtwoord te maken. Typ het volgende in de opdrachtregel:

Htpasswd -cm .htpasswd beheerder

  • -cm zijn de schakelaars voor het hulpprogramma. Toets c - geeft aan dat het nodig is om een ​​nieuw bestand met wachtwoorden aan te maken. Als er al een bestand met dezelfde naam bestaat, wordt dit overschreven. Sleutel m - bepaalt de codering met behulp van het MD5-algoritme.
    .htpasswd - naam van het wachtwoordbestand (u kunt elke naam gebruiken).
    admin - de naam van de bezoeker die toegang krijgt tot het beperkte gedeelte van de site.

Als reactie hierop wordt u gevraagd een wachtwoord in te voeren en dit te herhalen. Als alles correct is, verschijnt aan het einde de volgende melding: Wachtwoord toevoegen voor gebruikersbeheerder. En in de map c: Apache2in zal er een bestand .htpasswd staan, dat een regel zal bevatten met de gebruikersnaam en de hashcode van zijn wachtwoord. Om een ​​andere gebruiker aan hetzelfde .htpasswd-bestand toe te voegen, verwijdert u de schakeloptie -c uit de startopdracht van het hulpprogramma htpasswd.exe

Htpasswd -m .htpasswd beheerder


Opmerking

Als er geen bestand met wachtwoorden is aangemaakt, is het mogelijk dat sommige hulpprogrammasleutels niet worden ondersteund in uw besturingssysteem. Soms wordt de m-toets bijvoorbeeld niet ondersteund. In dit geval moet u htpasswd -c .htpasswd admin invoeren
Om de sleutels en parameters van het hulpprogramma te bekijken, typt u htpasswd.exe /? U krijgt een beschrijving van de interface.

Het wachtwoordbestand is dus gemaakt. Nu moet je het op de server herschrijven. Het is ten zeerste aan te raden om bestanden met wachtwoorden boven de hoofdmap van de site te plaatsen, waar bezoekers geen toegang toe hebben.
Als dit niet mogelijk is, moeten bestanden met wachtwoorden worden beveiligd. Dit kan gedaan worden met behulp van .htaccess-bestanden. Om bestanden met wachtwoorden te beschermen, maakt u een bestand met de regels die in de volgende lijst worden weergegeven.

Bestandsbeveiliging.htpasswd


ontkennen van iedereen

En plaats het in de map waar uw wachtwoordbestand zich bevindt. Bezoekers van de site hebben er nu geen toegang meer toe.
Het wachtwoordbestand is aangemaakt en is beveiligd tegen ongeautoriseerde toegang. Nu moet u een .htaccess-bestand maken dat in de beschermde map zal worden gebruikt.

Het .htaccess-bestand maken

De volgende richtlijnen kunnen worden gebruikt om een ​​directory te beschermen:

  • AuthType - Het type authenticatie dat moet worden gebruikt. Voor basisauthenticatie moet deze richtlijn worden ingesteld op: Basic
    AuthName - De naam van het verificatiebereik. Tekst die de bezoeker helpt te begrijpen waar hij toegang probeert te krijgen. Er kan bijvoorbeeld worden geschreven: "Privézone. Alleen voor beheerder!"
    AuthUserFile - pad naar het wachtwoordbestand (.htpasswd).
    AuthGroupFile - pad naar het groepsbestand, als dit bestaat.
    Vereisen - Een of meer vereisten waaraan moet worden voldaan om toegang te krijgen tot een beperkt gebied.

Voorbeeld .htaccess-bestand

AuthType Basis



groepsbeheerders nodig

De richtlijnen AuthUserFile en AuthGroupFile moeten in meer detail worden beschreven. Ze bevatten absolute paden naar de overeenkomstige bestanden vanaf de serverroot.

Aandacht!

Relatieve paden zal niet werken!

U kunt het pad vanaf de serverroot achterhalen door het serverbeheer te vragen, of u kunt proberen het zelf te achterhalen. Om dit te doen, voert u de functie phpinfo() uit. Er verschijnt een paarse tabel op het scherm. De waarde van het absolute pad vanaf de serverroot kan worden bekeken in de variabelen: doc_root, open_basedir, DOCUMENT_ROOT.
De Require-richtlijn bepaalt wie toegang krijgt tot een beperkt gebied. Bijvoorbeeld,

  • vereisen geldige gebruiker - toegang is toegestaan ​​voor alle geverifieerde gebruikers
  • vereist gebruiker admin alex mango - alleen bezoekers met de namen admin, alex, mango hebben toegang. Uiteraard moeten ze geauthenticeerd zijn.
    AuthName "Privézone. Alleen voor beheerder!"
    AuthUserFile /usr/host/mijnsite/.htpasswd
    geldige gebruiker vereisen

    Alleen toegang voor admin- en rootgebruikers

    AuthType Basis
    AuthName "Privézone. Alleen voor beheerder!"
    AuthUserFile /usr/host/mijnsite/.htpasswd
    vereist gebruikersbeheerder root

    Alleen toegang voor gebruikers uit de beheerdersgroep

    AuthType Basis
    AuthName "Privézone. Alleen voor beheerder!"
    AuthUserFile /usr/host/mijnsite/.htpasswd
    AuthGroupFile /usr/host/mijnsite/group
    groepsbeheerders nodig

    Alleen toegang tot het private.zip-bestand wordt geweigerd


    AuthType Basis
    AuthName "Privézone. Alleen voor beheerder!"
    AuthUserFile /usr/host/mijnsite/.htpasswd
    geldige gebruiker vereisen