Zoeken op website

Hoe u webmappen met een wachtwoord kunt beveiligen in Nginx


Managers van webprojecten moeten hun werk vaak op de een of andere manier beschermen. Vaak vragen mensen hoe ze hun website met een wachtwoord kunnen beveiligen terwijl deze nog in ontwikkeling is.

In deze zelfstudie laten we u een eenvoudige, maar effectieve techniek zien hoe u een met een wachtwoord beveiligde webmap kunt gebruiken wanneer u Nginx als webserver uitvoert.

Als u een Apache-webserver gebruikt, kunt u onze handleiding raadplegen voor het beveiligen van een webmap met een wachtwoord:

  1. Wachtwoordbeveiliging van webmappen in Apache

Vereisten

Om de stappen in deze zelfstudie te voltooien, heeft u het volgende nodig:

  • Nginx-webserver geïnstalleerd
  • Root-toegang tot de server

Stap 1: Maak een gebruiker en wachtwoord aan

1. Om onze webdirectory met een wachtwoord te beveiligen, moeten we het bestand maken dat onze gecodeerde gebruikersnaam en wachtwoord bevat.

Wanneer u Apache gebruikt, kunt u het hulpprogramma “htpasswd” gebruiken. Als u dat hulpprogramma op uw systeem hebt geïnstalleerd, kunt u deze opdracht gebruiken om het wachtwoordbestand te genereren:

htpasswd -c /path/to/file/.htpasswd username

Wanneer u deze opdracht uitvoert, wordt u gevraagd een wachtwoord in te stellen voor de bovenstaande gebruiker, waarna het .htpasswd-bestand in de opgegeven map wordt aangemaakt.

2. Als u dat hulpprogramma niet heeft geïnstalleerd, kunt u het .htpasswd-bestand handmatig maken. Het bestand moet de volgende syntaxis hebben:

username:encrypted-password:comment

De gebruikersnaam die u gaat gebruiken, hangt van u af. Kies wat u maar wilt.

Het belangrijkste onderdeel is de manier waarop u het wachtwoord voor die gebruiker genereert.

Stap 2: Genereer een gecodeerd wachtwoord

3. Gebruik de geïntegreerde “crypt”-functie van Perl om het wachtwoord te genereren.

Hier is een voorbeeld van dat commando:

perl -le 'print crypt("your-password", "salt-hash")'

Een voorbeeld uit het echte leven:

perl -le 'print crypt("#12Dfsaa$fa", "1xzcq")'

Open nu een bestand en plaats uw gebruikersnaam en de gegenereerde tekst in de tekenreeks, gescheiden door een puntkomma.

Hier is hoe:

vi /home/tecmint/.htpasswd

Voer uw gebruikersnaam en wachtwoord in. In mijn geval ziet het er zo uit:

tecmint:1xV2Rdw7Q6MK.

Sla het bestand op door op “Esc” te drukken, gevolgd door “:wq”.

Stap 3: Update de Nginx-configuratie

4. Open en bewerk nu het Nginx-configuratiebestand dat is gekoppeld aan de site waaraan u werkt. In ons geval gebruiken we het standaardbestand op:

vi /etc/nginx/conf.d/default.conf       [For CentOS based systems]
OR
vi /etc/nginx/nginx.conf                [For CentOS based systems]


vi /etc/nginx/sites-enabled/default     [For Debian based systems]

In ons voorbeeld beveiligen we de hoofdmap van nginx met een wachtwoord, namelijk: /usr/share/nginx/html.

5. Voeg nu de volgende twee regels toe onder het pad dat u wilt beschermen.

auth_basic "Administrator Login";
auth_basic_user_file /home/tecmint/.htpasswd;

Sla nu het bestand op en start Nginx opnieuw op met:

systemctl restart nginx
OR
service nginx restart

6. Kopieer en plak nu dat IP-adres in uw browser, waarna u om een wachtwoord wordt gevraagd:

Dat is het! Uw hoofdwebdirectory is nu beveiligd. Als u de wachtwoordbeveiliging op de site wilt verwijderen, verwijdert u eenvoudigweg de twee regels die u zojuist aan het .htpasswd-bestand hebt toegevoegd of gebruikt u de volgende opdracht om de toegevoegde gebruiker uit een wachtwoordbestand te verwijderen.

htpasswd -D /path/to/file/.htpasswd username