Cum să configurați autentificarea prin parolă cu Nginx pe Rocky Linux 9


Ghid Detaliat pentru Implementarea Autentificării cu Parolă pe Nginx în Rocky Linux 9

Nginx, un server web de înaltă performanță și open-source, este ideal pentru a livra atât conținut static, cât și dinamic. Popularitatea sa este notabilă în găzduirea paginilor web și a aplicațiilor web. Autentificarea prin parolă reprezintă o măsură de securitate vitală, solicitând utilizatorilor să se identifice cu un nume și o parolă înainte de a accesa anumite resurse online.

În acest material, vom explora în detaliu cum să configurați autentificarea cu parolă pentru Nginx, pe un sistem Rocky Linux 9. Vom folosi modulul nginx-auth-pam, care permite Nginx să comunice cu PAM (Pluggable Authentication Modules), un sistem de autentificare modular prezent în distribuțiile Linux.

Elemente Necesare Înainte de Începere

  • Un server cu Rocky Linux 9 instalat
  • Un nume de domeniu sau o adresă IP alocată
  • Un editor text, de exemplu vi sau nano

Instalarea Modulului nginx-auth-pam

1. Actualizați lista de pachete:

sudo dnf update

2. Instalați modulul nginx-auth-pam:

sudo dnf install nginx-auth-pam

Configurarea Domeniului de Autentificare (Realm) pentru Nginx

Un realm definește un spațiu de autentificare. Toate locațiile Nginx care folosesc același realm vor partaja aceleași setări de autentificare.

3. Creați un fișier de configurare pentru realm în /etc/nginx/conf.d/:

sudo vi /etc/nginx/conf.d/my-realm.conf

4. Adăugați următoarele linii:

auth_request /auth;
auth_pam "Zona Mea Privată";

  • auth_request /auth; definește adresa URL unde utilizatorii vor fi direcționați pentru autentificare.
  • auth_pam "Zona Mea Privată"; creează un realm numit „Zona Mea Privată” și configurează PAM pentru validarea utilizatorilor.

Crearea Handler-ului pentru Autentificare

5. Creați un fișier de configurare pentru handler în /etc/nginx/conf.d/:

sudo vi /etc/nginx/conf.d/auth.conf

6. Introduceți următoarea configurație:

location /auth {
auth_request_set $auth_status $upstream_status;
error_page 401 =200 /auth-error;
}

location /auth-error {
add_header Content-Type text/plain;
return 401 "Neautorizat";
}

  • location /auth { ... } stabilește un handler care procesează cererile la /auth.
  • auth_request_set $auth_status $upstream_status; stochează codul de stare HTTP al serverului upstream în variabila $auth_status.
  • error_page 401 =200 /auth-error; specifică redirecționarea către /auth-error pentru codul 401 (Neautorizat).
  • location /auth-error { ... } definește handler-ul care returnează un mesaj de eroare cu codul 401.

Configurarea Nginx pentru a Activa Autentificarea

7. Editați fișierul principal de configurare Nginx:

sudo vi /etc/nginx/nginx.conf

8. Localizați secțiunea http {} și adăugați următoarele linii:

auth_http_header Authorization "Bearer";
auth_http_timeout 600s;
include conf.d/*.conf;

  • auth_http_header Authorization "Bearer"; specifică antetul HTTP pentru transmiterea tokenului.
  • auth_http_timeout 600s; setează o limită de timp de 600 de secunde pentru cererile de autentificare.
  • include conf.d/*.conf; include toate fișierele din /etc/nginx/conf.d/.

Verificarea Corectitudinii Configurației

9. Testați configurația Nginx:

sudo nginx -t

În cazul unei configurații valide, veți vedea:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Repornirea Serviciului Nginx

10. Reactivați Nginx pentru ca modificările să intre în vigoare:

sudo systemctl restart nginx

Testarea Autentificării

11. Accesați serverul folosind adresa IP sau numele de domeniu în browser. Veți fi direcționat către o fereastră care solicită introducerea datelor de autentificare. Introduceți numele de utilizator și parola și apăsați „Conectare”.

Concluzii Finale

Ați implementat cu succes autentificarea cu parolă folosind Nginx pe Rocky Linux 9 și modulul nginx-auth-pam. Această metodă protejează website-ul sau aplicația web prin controlul accesului, solicitând autentificarea înainte de a permite accesul la conținut.

Întrebări Frecvente

1. Ce este autentificarea prin parolă?

Autentificarea prin parolă este un mecanism de securitate care cere utilizatorilor să introducă un nume de utilizator și o parolă pentru a avea acces la un site web sau aplicație.

2. De ce este necesară autentificarea prin parolă?

Aceasta protejează aplicația sau site-ul web de acces neautorizat, asigurând că numai utilizatorii validați pot vedea conținutul.

3. Care sunt cerințele preliminare pentru a seta autentificarea?

Ai nevoie de un server cu Rocky Linux 9, un nume de domeniu sau adresă IP, și un editor de text.

4. Cum se instalează modulul nginx-auth-pam?

Actualizează sistemul și folosește comanda sudo dnf install nginx-auth-pam.

5. Cum se creează un realm în Nginx?

Creează un fișier de configurare în /etc/nginx/conf.d/ și adaugă liniile necesare.

6. Cum creez un handler de autentificare?

Creează un fișier de configurare în /etc/nginx/conf.d/ și adaugă configurația necesară.

7. Cum configurez Nginx pentru autentificare?

Editează fișierul principal de configurare Nginx și adaugă instrucțiunile necesare.

8. Cum se verifică configurația?

Rulează comanda sudo nginx -t.

9. Cum repornesc Nginx?

Folosește comanda sudo systemctl restart nginx.

10. Cum se testează autentificarea?

Accesează site-ul web sau aplicația prin browser și introdu datele de autentificare.