Etiqueta directory i autenticació

Altres directives Apache #

  • Per indicar els privilegis que es pot tenir dintre un directori, es fa servir les directives següents (que poden anar dintre un directiva o bé trobar-se a un fitxer de text ".htaccess" que estigui gravat al directori on volem accedir):

  • Options: Indica accions que es poden realitzar al directori. Com ara:

  • Indexes: Permet veure el llistat del directori si no hi ha fitxer index.html

  • MultiViews: Per mostrar contingut negociat entre servidor i client (complex d'explicar, poseu-ho per defecte).

  • FollowSymLinks: Permet seguir un hiperenllaç quan es pica a sobre.

  • AllowOverride: Indica quines directives es poden sobreescriure si al directori es troba un fitxer anomenat .htaccess que contingui text amb definició de directives a dintre.

  • None: Indicaria que encara que el fitxer .htaccess existeix, no es tindrà en compte.

  • Options=Indexes,Multiviews (indicaria que es permet sobreescriure les opcions Indexes i Multiviews). Normalment posarem "None" i no deixarem el control del lloc virtual al propietari del directori (que és el que passa si posem "AllowOverride all" o deixem alguna directiva que es pugui sobreescriure).

  • Order: Indica l'ordre en que s'avaluen les línies que comencen per Deny o Allow. Ex: deny,allow (primer avalua les deny i després les allow).

    • Allow,Deny Primer, totes les directives Allow són evaluades; al menys una ha de coincidir, o la petició serà rebutjada. Després, totes les directives Deny són avaluades. Si alguna coincideix, la petició serà rebutjada. Al final, qualsevol pertició que no coincideixi amb una directiva Allow o Deny serà denegada per defecte.
    • Deny,Allow Primer, totes les directives Deny són evaluades; si alguna coincideix, la petició serà denegada a no ser que també coincideixi amb una directiva Allow. Qualsevol petició que no coincideixi amb alguna directiva Allow or Deny serà permesa.
  • Deny: Denegar accés des de les adreces que es posin al "from". Ex: Deny from all (no permet accés des de cap adreça).

  • Allow: Permetre accés de de les adreces que es posin al "from". Ex: Allow from 127.0.0.0/255.0.0.0 192.168.0.1/255.255.255.0

Autoritzar un directori #

Creació dels fitxers #

  • Bàsicament, es tracta de crear un fitxer d'usuaris amb passwords. al directori on volem crear el fitxer, per exemple a /usr/local/apache/passwd
$roger@roger-desktop:~$ sudo htpasswd -c secret usuari

[sudo] password for roger:
New password:
Re-type new password:
Adding password for user usuari

roger@roger-desktop:~$ cat secret
usuari:$apr1$Ovsvd5mg$3A7xY44qPFvINpjqFjyHN1
  • Si volem crear més usuaris, pels següents usuaris NO posem el paràmetre -c a htpasswd.
  • I de posar dintre el directori que volem protegir:

Configuració #

  • Tota la configuració ha d'estar entre les etiquetes directory
  • ex:
<Directory "/var/www/html/dir">

...

</Directory>
  • Primer especifiquems que utilitza autenticació i la frase que ens sortirà a l'alerta
AuthType Basic
AuthName "Aquesta zona està restringida, es requereix usuari i password"
  • Especifiquem que utilitzarem autenticació per fitxer i on es troba
AuthBasicProvider file
AuthUserFile /usr/local/apache/passwd/secret
  • [OPCIONAL] si volem utilitzar grups haurim de tenir un fitxer amb una linea per grup amb el format nomgrup1: usuari1 usuari2 ... i especificar el path del fitxer al directory amb el paràmetre
AuthGroupFile /usr/local/apache/passwd/group
  • [OPCIONAL] al utilitzar grups podria ser que necessitem activar el modul authz_groupfile
a2enmod authz_groupfile
  • Finalment hauriem d'escollir si volem autenticar un usuari concret, tots els usuaris del fitxers de contrasenyes o tots els que pertanyin a un grup concret amb el paràmetre respectiu:
Require user roger
Require valid-user
Require group nomgrup1

Indexes: Llistar directoris #

  • Sempre s'ha de posar dintre de Directory

  • Amb - no es mostra la carpeta i amb + (o res) si

  • Mostrar

<Directory /var/www/html>
  Options +Indexes
</Directory>
  • No mostrar
<Directory /var/www/html>
  Options -Indexes
</Directory>