Zoeken op website

Hoe u webmappen in Apache met een wachtwoord kunt beveiligen met behulp van het .htaccess-bestand


Wanneer u online projecten beheert, moet u vaak de toegang tot dat project beperken om het tegen de buitenwereld te beschermen. Daar kunnen verschillende redenen voor zijn. U wilt bijvoorbeeld voorkomen dat crawlers van zoekmachines toegang krijgen tot uw site terwijl deze zich nog in de ontwikkelingsfase bevindt.

In deze zelfstudie laat ik u zien hoe u verschillende websitesmappen op de Apache-webserver met een wachtwoord kunt beveiligen. Er zijn veel manieren waarop u dit kunt bereiken, maar we zullen er twee bespreken die het meest worden gebruikt.

De eerste methode configureert de wachtwoordbeveiliging rechtstreeks in het configuratiebestand van Apache, terwijl de tweede methode het .htaccess-bestand gebruikt.

Vereisten

Om wachtwoordbeveiliging voor uw webmappen in te stellen, heeft u het volgende nodig:

  • Een werkende Apache-webserver
  • De AllowOverride AuthConfig richtlijn moet zijn ingeschakeld in het Apache-configuratiebestand.

Stel een Apache-wachtwoordbeveiligde map in

1. Voor deze tutorial beschermen we de hoofdmap van het web /var/www/html. Om die map te beschermen, opent u de configuratie van uw Apache:

---------------- On RedHat/CentOS based systems ----------------
vi /etc/httpd/conf/httpd.conf

---------------- On Debian/Ubuntu based systems ----------------
nano /etc/apache2/sites-available/000-default.conf

2. Zoek de hoofdmap van de Apache Document-map voor /var/www/html en voeg de volgende zaken toe, zoals voorgesteld:

Op Apache 2.2-versie

<Directory /var/www/html> 
Options Indexes Includes FollowSymLinks MultiViews 
AllowOverride All
Order allow,deny
Allow from all 
</Directory>

Op Apache 2.4-versie

<Directory /var/www/html> 
Options Indexes Includes FollowSymLinks MultiViews 
AllowOverride All 
Require all granted 
</Directory>

3. Sla het bestand op en start Apache opnieuw met behulp van de volgende opdracht:

--------------- On Systemd -------------------
systemctl restart httpd         [On RedHat based systems]
systemctl restart apache2       [On Debian based systems]


--------------- On SysV init -----------------
service httpd restart           [On RedHat based systems]
service apache2 restart         [On Debian based systems]

4. Nu zullen we de opdracht htpasswd gebruiken om een gebruikersnaam en wachtwoord voor onze beveiligde map te genereren. Deze opdracht wordt gebruikt om gebruikersbestanden te beheren voor basisauthenticatie.

De algemene syntaxis van de opdracht is:

htpasswd -c filename username

De optie -c specificeert het bestand dat het gecodeerde wachtwoord bewaart en gebruikersnaam specificeert de gebruiker voor de authenticatie.

5. Ons wachtwoordbestand moet zich buiten de webtoegankelijke map van Apache bevinden, zodat het goed beschermd is. Voor dat doel zullen we een nieuwe map aanmaken:

mkdir /home/tecmint

6. Daarna zullen we onze gebruikersnaam en wachtwoord genereren die in die map worden opgeslagen:

htpasswd -c /home/tecmint/webpass tecmint

Zodra u deze opdracht uitvoert, moet u twee keer een wachtwoord invoeren voor onze nieuwe gebruiker "tecmint":

Daarna moeten we ervoor zorgen dat Apache het bestand “webpass” kan lezen. Voor dat doel moet u de eigendom van dat bestand wijzigen met de volgende opdracht:

---------------- On RedHat/CentOS based systems ----------------
chown apache: /home/tecmint/webpass
chmod 640 /home/tecmint/webpass
---------------- On Debian/Ubuntu based systems ----------------
chown www-data /home/tecmint/webpass
chmod 640 /home/tecmint/webpass

7. Op dit punt zijn onze nieuwe gebruiker en wachtwoord klaar. Nu moeten we Apache vertellen dat hij een wachtwoord moet aanvragen bij toegang tot onze beoogde map. Maak daartoe een bestand aan met de naam .htaccess in /var/www/html:

vi /var/www/html/.htaccess

Voeg daarin de volgende code toe:

AuthType Basic
AuthName "Restricted Access"
AuthUserFile /home/tecmint/webpass
Require user tecmint

8. Sla nu het bestand op en test uw installatie. Open uw browser en voer uw IP-adres of domeinnaam in de webbrowser in, bijvoorbeeld:

http://ip-address

Er moet om uw gebruikersnaam en wachtwoord worden gevraagd:

Voer de gebruikersnaam en het wachtwoord in die u hebt ingesteld om door te gaan naar uw pagina.

extra notities

Als u gedeelde hosting gebruikt, heeft u waarschijnlijk geen toegang tot het Apache-configuratiebestand. De meeste hostingbedrijven hebben echter standaard de optie 'AllowOverride All' ingeschakeld. Dit betekent dat u alleen de gebruikersnaam en het wachtwoord hoeft te genereren en vervolgens de map hoeft te selecteren die u wilt beschermen. Dit verlicht uw taak aanzienlijk.

Conclusie

Ik hoop dat je deze tutorial nuttig vond en je helpt je doel te bereiken. Als u vragen of opmerkingen heeft, aarzel dan niet om deze in het onderstaande gedeelte te plaatsen.