Apach_e és una aplicació que ens permet implementar un servidor web. _Apache disposa de les següents característiques:
- És un software multiplataforma i de codi obert.
- És modular: es pot adaptar a diferents entorns i necessitats activant només les funcionalitats necessàries en cada cas.
- Com a conseqüència de la seva modularitat és també extensible . Es poden desenvolupar o afegir nous mòduls per a suportar nous llenguatges, noves connexions amb bases de dades..
Configuració bàsica servidor apache
El nom del fitxer de configuració del servei apache és apache2.conf . L'ubicació d'aquest fitxer és la carpeta /etc/apache2. El fitxer _apache2.conf es complementa en la configuració dels llocs webs habilitats. Per defecte, el sistema inclou dos llocs webs: 000-default.conf i default-ssl.conf . Aquests dos llocs webs contenen la configuració per defecte per un lloc web sense xifratge (http) o per un lloc web utilitzant el xifratge de dades default-ssl.conf.
Llocs virtuals
Un lloc virtual fa referència a una aplicació web: conjunt de pàgines web. El servidor apache permet allotjar múltiples aplicacions web en un mateix servidor. Un dels paràmetres de configuració basics per a crear un nou lloc web és el DocumentRoot, que indica la ubicació del directori on està ubicada l'aplicació web. El valor d'aquest paràmetre en la configuració per defecte és /var/www/html pel lloc default i la mateixa carpeta pel lloc default-ssl . Amb aquesta configuració, una plana web ubicada en aquest directori podrà ser accedida de forma xifrada o no xifrada. Quan es crea el lloc virtual també s'especifica quina és el port que cal utilitzar per accedir al lloc virtual. Si el port especificat és diferent del 80 o 443, que ja estan habilitats per defecte, caldrà incloure el nou port en el fitxer ports.conf.
Autoritzacions
Una aplicació web està formada per un conjunt de directoris o carpetes. No sempre tots els directoris d'una aplicació web són públics, sinó que es defineixen alguns directoris privats. Encara que l'usuari s'hagi autentificat a l'aplicació es pot donar el cas que no tingui permissos per accedir a determinats directoris. Cal no confondre l'autentificació de l'aplicació web amb l'autentificació del servidor web. El primer tipus d'autentificació és una autentificació implementada per l'aplicació: l'aplicació accedeix a una base de dades pròpia per a comprovar si la informació introduïda (usuari i password) és correcte. En canvi, quan l'autentificació la realitza el servei web, es tracta d'una autentificació de sistema i, per tant, l'usuari haurà d'estar donat d'alta dins el sistema.
Creació usuaris
Per a crear un usuari web disposem d'una comanda especial pròpia de l'aplicació Apache: htpasswd . Amb aquesta comanda podem crear usuaris que tindran accés exclusiu a través d'un navegador web. D'aquesta forma no es barrejen els usuaris propis del sistema linux amb els usuaris que utilitzen el servidor com a servidor de planes web.
El format de la instrucció htpasswd és:
htpasswd [-c] [-D] passwdfile username
Tot i que no obligat, com a mesura de seguretat extra es recomanda que el nom del fitxer (passwdfile) sigui ocult. Per tant, el nom del fitxer haurà de començar per un .
els arguments -c i -D són opcionals. La seva funció és:
-c : crea el fitxer de passwords. Si el fitxer ja existeix , el seu contingut serà eliminat. Si el fitxer no existeix és obligatori indicar aquest argument per tal que es crei el fitxer. -D : utilitzem -D per a eliminar l'usuari especificat
htpasswd -c .web maria # Crea l'usuari web de nom "maria" . Guarda la informació en un fitxer ocult de nom ".web".
htpasswd -D .web maria # Elimina l'usuari "maria" del fitxer .web "
Podeu veure tots els arguments de la comanda htpasswd possibles executant la comanda man htpasswd
man htpasswd
Configuració accessos
Per a configurar els accessos el primer que cal fer és verificar que els mòduls d'autorització estan habilitats.

Quan es configuren els accessos podem crear la configuració en un fitxer .htaccess o bé directament en els fitxers de configuració d'Apache. Primer crearem la configuració directament en el lloc web i a continuació veurem com podem incloure la configuració en un fitxer .htaccess
A continuació es mostra una configuració bàsica per a configurar l'autentificació en l'arrel del lloc web creat per defecte per apache2. Cal tenir en compte que el directori arrel del lloc web pot ser diferent segons el sistema operatiu utilitzat o la versió del sistema operatiu o de la pròpia aplicació Apache
<Directory "/var/www/html">
AuthName "Servidor web privat" # Text descriptiu
AuthType Basic # Tipus d'autentificació bàsica. Hi ha diferents tipus d'autentificació però ens limitarem a l'autentificació de tipus bàsic
AuthBasicProvider file # Com es fa l'autentificació. En el nostre cas indiquem que es farà a través d'un fitxer (creat mitjançant la comanda htpasswd)
AuthUserFile "/var/www/html/.users" # Ubicació del fitxer on hi ha els usuaris. Per tant, puc tenir diferents fitxers per a diferents llocs webs (o compartir-los)
Require valid-user # Com es fa l'autentificació . Si s'especifica valid-user, cal introduir un dels usuaris continguts en el fitxer
</Directory>
Directiva autentificació Require
De les directives per a configurar l'accés a un directori cal fer èmfasis en la directiva Require , ja que aquesta ens permet diferents opcions que poden agilitzar la gestió i manteniment dels usuaris del nostre lloc web. Els valors permesos per aquesta directiva són:
- valid-user: tots els usuaris donats d'alta en el fitxer especificat mitjançant la directiva AuthUserFile tenen accés al lloc web o al directori especificat del lloc web.
- user: llista d'usuaris que tenen accés al recurs. Separarem els noms dels usuaris mitjançant un espai. Els usuaris especificats només podran accedir al recurs si están inclosos en el fitxer especificat per la directiva AuthUserFile
- group: grups d'usuaris que tenen accés al recurs. Podem indicar més d'un grup separant-los mitjançant espais. Per a definir cal crear un fitxer que contingui els diferents grups amb els diferents usuaris associats a cada grup. El format d'aquest fitxer és: nomgrup: usuari1 [usuari2] ... . Cal especificar cada nom de grup en una línia diferent . Per a especificar l'ubicació del fitxer de grups utilitzarem la directiva: AuthGroupFile.
- ip: tots els clients especificats en el rang d'adreces IP poden accedir al lloc web. Així, per exemple, Require ip 172.20 permet la connexió a tots els clients entre les direccions IP 172.20.0.1 fins a la 172.20.255.254. Podem indicar més d'un rang d'IP separant-les mitjançant un espai.
<Directory "/var/www/html">
AuthName "Servidor web privat"
AuthType Basic
AuthBasicProvider file
# Cal especificar tant el fitxer d'usuaris com el fitxer de grups per habilitar l'autentificació a través de grups.
AuthUserFile "/var/www/html/.users"
AuthGroupFile "/var/www/html/.groups" # Cal habilitar el mòdul d'autentificació de grups
Require group admin
</Directory>
Contingut fitxer .groups
admin: anna
Habilitar autentificació per directoris
Amb el fitxer .htaccess podem configurar el servei en base al directori on està ubicat l'arxiu.
Per tal que el servei Apache utilitzi la configuració dels fitxers .htaccess cal que la directiva AllowOverride estigui habilitada. En el nostre cas, com que només volem poder sobreescriure la configuració d'autentificació utilitzarem el valor AuthConfig com a valor associat al paràmetre AllowOverride. Una altra opció seria escollir l'opció All tot i que aquesta podria permetre configuracions no necessàries per a la nostra finalitat. En el cas d'utilitzar el valor ALL com a opció per a la directiva AllowOverride és important no incloure aquesta en el directori arrel de l'aplicació Apache.

La directiva AllowOverride s'aplicarà a tots els subdirectoris de /var/www. En la següent imatge es mostra el contingut del fitxer .htaccess per a configurar l'autentificació dels usuaris utilitzant grups.

df