User Tools

Site Tools


doc:appunti:linux:sa:apache

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
doc:appunti:linux:sa:apache [2020/04/24 18:09] – [Autenticazione Base] niccolodoc:appunti:linux:sa:apache [2021/12/03 10:08] (current) – [Apache 2.4] niccolo
Line 169: Line 169:
 </FilesMatch> </FilesMatch>
 </file> </file>
 +
 +È possibile creare una **eccezione all'autenticazione** in una sottodirectory, creando un file **.htaccess** del tipo:
 +
 +<file>
 +# Allows any user to see this directory without authentication.
 +Require all granted
 +
 +# For Apache < 2.4
 +#Satisfy any
 +</file>
 +
 ===== Autenticazione Digest ===== ===== Autenticazione Digest =====
  
Line 300: Line 311:
 </Directory> </Directory>
 </file> </file>
 +
 +Per delegare completamente il controllo di accesso ad un file **.htaccess** è necessario mettere la direttiva **AllowOverride All** nella configurazione di Apache, qualcosa del genere:
 +
 +<file>
 +<Directory /var/www/html/private>
 +    Options -Indexes
 +    AllowOverride All
 +</Directory>
 +</file>
 +
 +Quindi il file **.htaccess** potrà includere direttive del tipo:
 +
 +<file>
 +<IfModule authz_core_module>
 +    <RequireAny>
 +        Require host host.rigacci.org
 +        Require ip 111.111.222.222
 +    </RequireAny>
 +</IfModule>
 +</file>
 +
 +Oltre alla direttiva **RequireAny** che richiede che sia soddisfatta almeno una delle condizioni (operatore **OR**), esiste la direttiva **RequireAll** che implica l'operatore **AND** per tutte le condizioni.
  
 ==== Apache 2.2 ==== ==== Apache 2.2 ====
Line 320: Line 353:
 ^ Allow from 10.1.0.0/255.255.0.0         | Network/netmask pair  | ^ Allow from 10.1.0.0/255.255.0.0         | Network/netmask pair  |
 ^ Allow from 10.1.0.0/16                  | Network/nnn CIDR specification  | ^ Allow from 10.1.0.0/16                  | Network/nnn CIDR specification  |
 +
 +===== Verifica combinata username o indirizzo IP =====
 +
 +Con questa configurazione di **Apache 2.4** si consente l'accesso a determinati **indirizzi IP** oppure con **autenticazione** su htpasswd. Le clausole **Require** possono essere combinate anche in altro modo, ad esempio **%%<RequireAll>%%** se si desidera che siano vere entrambe. Il **SSLRequireSSL** evita che la pagina sia richiesta via HTTP con possibilità di sniffing della password:
 +
 +<file>
 +<Directory "/privatedir">
 +    SSLRequireSSL
 +    # Athenticate on htpasswd file.
 +    AuthType Basic
 +    AuthName "Area privata"
 +    AuthBasicProvider file
 +    AuthUserFile /etc/apache2/htpasswd
 +    <RequireAny>
 +        Require user niccolo
 +        Require ip 127.0.0.0/8 ::1 192.168.3.2
 +    </RequireAny>
 +</Directory>
 +</file>
 +
 +Se si opta per la configurazione tramite file **.htaccess**, la sintassi da utilizzare è la stessa, ma si deve dare l'opportuno **AllowOverride**:
 +
 +<file>
 +<Directory "/var/www/html/privatedi">
 +    AllowOverride AuthConfig Limit
 +</Directory>
 +</file>
  
 ===== Logging degli errori PHP ===== ===== Logging degli errori PHP =====
Line 505: Line 565:
 pm.min_spare_servers = 1 pm.min_spare_servers = 1
 pm.max_spare_servers = 3 pm.max_spare_servers = 3
 +
 +;php_admin_flag[display_errors] = off
 +;php_admin_flag[log_errors] = on
 +;php_admin_value[error_log] = /var/log/php/www.virtualhost.it/php_error.log
 </file> </file>
 +
 +Nell'esempio sopra ci sono tre righe (commentate) con **impostazioni PHP** specifiche **solo per questo VirtualHost**. Attenzione che la directory dove creare il file di log deve essere scrivibile dall'utente e/o dal gruppo con cui viene eseguito il pool (nell'esempio sopra sono **vh-user** e **vh-group** rispettivamente).
  
 Nella configurazione del VirtualHost si dichiara quale pool sarà usato: Nella configurazione del VirtualHost si dichiara quale pool sarà usato:
doc/appunti/linux/sa/apache.1587744599.txt.gz · Last modified: 2020/04/24 18:09 by niccolo