Protejarea unui URL din pagina personala

Pe baza unui nume de utilizator si a unei parole

Acest tutorial se adreseaza colegilor care au cont pe serverul nessie.cs.ubbcluj.ro (www.cs.ubbcluj.ro), insa continutul sau ar trebui sa fie aplicabil* pentru orice sistem UNIX/Linux ce foloseste ca server web Apache. Presupunem din start ca aveti deja o pagina personala si setarile necesare pentru a o accesa la adresa: http://www.cs.ubbcluj.ro/~username. Pentru introducerea comenzilor de mai jos trebuie sa va conectati la serverul nessie.cs.ubbcluj.ro cu un client de ssh (recomandabil putty). Liniile care incep cu “$ ” denota comenzi care trebuie introduse la linia de comanda dupa ce v-ati conectat la server (mai putin sirul “$ ” care nu trebuie introdus – el denota in exemplele de fata prompterul interpretorului de comenzi).

Imediat dupa autentificarea in cont, rulati comanda care va afiseaza directorul curent (directorul personal):

Va notati directorul personal, trebuie sa fie de forma: /home/info/bufny, /home/drdmate/miancu/, etc.

Directorul demo avand numele absolut /home/info/bufny/public_html/demo este exportat de serverul web la URL-ul https://www.cs.ubbcluj.ro/~bufny/demo.

In folderul demo creati un fisier numit .htaccess cu editorul dumneavoastra preferat (vi, joe, mcedit, pico, nano). In fisierul .htaccess, daca /home/info/bufny este directorul personal, trebuie sa apara urmatoarele linii:

Observatii:

  • Daca doriti ca serverul web sa genereze o pagina de index cu continutul directorului (lista fisierelor din acest director) decomentati Options Indexes.
  • Daca doriti ca directorul protejat sa fie accesibil doar prin https (secure http) nu si prin http, decomentati linia SSLRequireSSL.
  • In cadrul fisierului .htaccess pot aparea mai multe directive de configurare pe langa cele enumarate mai sus. O alta documentatie este disponibila aici:
    http://httpd.apache.org/docs/2.2/howto/htaccess.html.

Comanda de mai sus va permite sa setati parola pentru utilizatorul user1 cu care se va face autentificare pe folderul dorit (https://www.cs.ubbcluj.ro/~bufny/demo).

Observatii:

  • Daca fisierul /home/info/bufny/.htpasswd exista (verificati simplu cu ls /home/info/bufny/.htpasswd), atunci omiteti paramentrul “-c” din linia de comanda de mai sus. Aceasta optiune creaza un fisier .htpasswd nou si orice pereche (user, parola) stocata anterior in acest fisier se va pierde.
  • Daca mai tarziu doriti sa dati access unui alt utilizator (cu alta parola) puteti folosi comanda:

    pentru a adauga utilizatorul user2 si parola acestuia la fisierul cu parole .htpasswd. De asemenea, user2 trebuie adaugat in fisierul .htaccess in linia directivei Require user:
  • Numele fisierului .htpasswd nu este batut in cuie, puteti folosi orice nume de fiser, puteti crea chiar mai multe astfel de fisiere pentru a va referi la ele din fisiere .htaccess diferite (localizate in subdirectoare diferite ale directorului public_html). Acest lucru este util daca doriti ca pe un director din pagina dumneavoastra sa dati drepturi unui set de utilizatori iar pe alt director altui set.
  • Fisierul .htpasswd trebuie sa se regaseasca in exteriorul directorului public_html (mai sus in structura ierarhica de directoare) mai precis in directorul personal al utilizatorului curent.

Pe baza adresei IP a clientului

Acest mod de access este util daca doriti spre exemplu sa acordati access pentru un anumit URL doar de la calculatoarele cu anumite adrese IP, cum ar fi calculatoare localizate in reteaua din Campus. Presupunem ca ati parcurs prima parte a materialului de mai sus si ca sunteti familiarizat cu rolul si locatia fisierului .htaccess precum si cu conventiile de notatie folosite in acest material.

Dupa autentificarea in cont folosind un client ssh (spre exemplu putty), rulati comenzile:

In folderul demo creati un fisier numit .htaccess cu editorul dumneavoastra preferat (vi, joe, mcedit, pico, nano). In fisierul .htaccess, pentru ca URL-ul http://www.cs.ubbcluj.ro/~username/demo sa fie accesibil doar din Campus trebuie sa apara urmatoarele linii:

Va rog sa-mi semnalati orice eroare, inexactitate sau posibila imbunatatire a acestui material prin e-mail la .

* In functie de drepturile date pe directoarele public_html ale utilizatorilor din cadrul fisierului global de configurare Apache (httpd.conf).