Protejarea directoarelor și fișierelor pe un site, server web – Apache cu htpasswd

Pentru a proteja un director accesibil prin interfața web, serverul web Apache ne oferă o posibilitate ușoară de adăgua un layer de securitate în plus.

Pentru a proteja cu utilizator (user) și parolă un director, prima dată trebuie să cream un fișier ascuns cu denumirea .htpasswd care trebuie să conțină un nume de utilizator și o parolă criptată. Acest fișier poate fi generat printr-o simplă comandă în linux, sau folosind o unealtă web online, – în caz dacă nu avem acces ssh la server, ci de exemplu, avem doar un cont de găzduire care poate fi accesat doar print-run panou de administrare sau FTP.

1. Generare fișier .htaccess din lina de comandă

htpasswd -c /var/www/site.com/.htpasswd numeutilizator

Explicații:

  • htpasswd – comanda cu care generaăm fișierul și parola
  • -c = create
  • /var/www/site.com/.htpasswd – directorul unde fișierul va fi creat (trebuie specificat calea absolută dacă nu ne aflăm tocmai în directorul unde vrem să creăm fișierul .htpasswd
  • numeutilizator = un nume de utilizator nou, la alegere

2. Protejarea directorului – script de adăugat în fișierul .htaccess

În directorul ales de noi pe care vrem să protejăm cu parolă, trebuie să creeăm sau să modificăm, dacă există deja, fișierul .htaccess.

DirectoryIndex .index.php
AuthType Basic
AuthName “Director proteja prin parola”
AuthUserFile /var/www/site.com/.htpasswd
Require valid-user

Explicații: 

  • Important: AuthUserFile /var/www/site.com/.htpasswd – aici introducem calea absolută către fișierul htpasswd creat anterior

3. Protejarea unui fișier fără să protejăm tot directorul în care se află fișierul

<Files wp-login.php>
AuthUserFile /var/www/.htpasswd
AuthName “Fisier Privat”
AuthType Basic
require user utilizator ales
</Files>

Explicații:

  • Scriptul de mai sus trebuie introdus tot în fișierul .htacces
  • Regulile de mai sus protejează fișierul wp-login.php din frameworkul WordPress, un fișier care foarte des este atacat cu atacuri de tip BruteForece – pentru a ghici o parolă cu care se poate intra în panoul de administrare
  • Este recomandat în același timp să folosim pe server și un program, care detectează atacurile BruteForce, (adică dacă cineva printr-un mod automatizat încearcă să ghicească o parolă, și apar multe nereușite de la o adresă de ip, atunci programul să închidă conexiunea serverului cu adresa de ip a atacatorului. Un astfel de protecție oferă de exemplu programul fail2ban, despre care puteți citi mai mult aici.