RESTRICTIONAREA ACCESULUI PE SITE

Prima data se creeaza fisierul care va stoca parolele utilizatorilor care vor avea acces la site:
apt-update
apt install apache2-utils

Acum se poate folosi comanda htpasswd care creeaza fisierul .htpasswd în /etc/apache2. Pentru primul utilizator se utilizeaza optiunea –c pentru crearea fisierului
htpasswd -c /etc/apache2/.htpasswd user1
Se confirma parola pentru utilizatorul user1 apoi se creeaza parola pentru utilizatorul user2:
htpasswd  /etc/apache2/.htpasswd user2
Continutul fisierului .htpasswd (utilizatorul şi parola criptata) sunt accesibile cu comanda:
cat /etc/apache2/.htpasswd
Output-ul este ceva de genul:

user1:$apr1$lzxsIfXG$tmCvCfb49vpPFwKGVsuYz.
user2:$apr1$p1E9MeAf$kiAhneUwr.MhAE2kKGYHK.

Configurarea accesului restrictionat la site se poate face in doua moduri. Prima optiune este editarea fisierelor de configurare a serverului Apache prin Virtual Host. Cea de-a doua este editarea fisierului .htaccess

Configurarea accesului prin Virtual Host

Se realizeaza prin editarea fisierului 000-default.conf:
nano /etc/apache2/sites-enabled/000-default.conf
Se introduce blocul <Directory „/var/www/html”> …… </Directory> care defineste folderul unde se restrictioneaza aceesul prin parola (/var/www/html). In interiorul blocului se introduc directivele AuthName, AuthUserFile, etc. Fisierul 000-default.conf va avea urmatorul continut:

<VirtualHost *:80>
ServerName domeniu.ro
Redirect permanent / https://domeniu.ro
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
DocumentRoot /var/www/html
</VirtualHost>
<VirtualHost *:443>
ServerName domeniu.ro
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/domeniu.ro/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domeniu.ro/privkey.pem
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory „/var/www/html”>
AuthType Basic
AuthName „Restricted Content”
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
</Directory>
</VirtualHost>

Se salveaza fisierul şi se reporneste serverul Apache:
service apache2 restart

Configurarea accesului prin fisierul .htaccess

Se editeaza fisierul principal de configurare al serverului Apache:
nano /etc/apache2/apache2.conf
Se cauta blocul <Directory> corespunzator folderului /var/www şi se activeaza utilizarea fisierului .htaccess prin schimbarea directivei AllowOverride din None în All:

. . .
<Directory /var/www/>
Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>. . .

Se salveaza şi se inchide fisierul.
Se creeaza fisierul .htaccess în interiorul folderului pentru care se doreste restrictionarea accesului (/var/www/html pentru intregul site):
nano /var/www/html/.htaccess
Se introduce urmatorul continut:

AuthType Basic
AuthName „Restricted Content”
AuthUserFile /etc/apache2/.htpasswd
Require valid-user

Se salveaza fisierul şi se restarteaza serverul Apache:
service apache2 restart