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 [2018/01/26 17:12] – [Rewrite] niccolodoc:appunti:linux:sa:apache [2021/12/03 10:08] (current) – [Apache 2.4] niccolo
Line 134: Line 134:
 AuthType Basic AuthType Basic
 AuthName "Area protetta" AuthName "Area protetta"
 +AuthBasicProvider file
 AuthUserFile /etc/apache2/htpasswd AuthUserFile /etc/apache2/htpasswd
 +#Require user username1 username2
 Require valid-user Require valid-user
 </file> </file>
Line 167: 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 277: Line 290:
      AuthBasicAuthoritative Off      AuthBasicAuthoritative Off
      AuthUserFile /dev/null      AuthUserFile /dev/null
-     Require user niccolo angela+     Require user niccolo mario
 </Directory> </Directory>
 </file> </file>
Line 289: Line 302:
 ===== Controllo di accesso su indirizzo IP ===== ===== Controllo di accesso su indirizzo IP =====
  
-FIXME La sintassi per Apache 2.4 con il modulo **mod_authz_core** è cambiata! Vedere **[[http://httpd.apache.org/docs/2.4/mod/mod_authz_core.html|Apache Module mod_authz_core]]**+==== Apache 2.4 ==== 
 + 
 +La sintassi per Apache 2.4 con il modulo **mod_authz_core** è cambiata! Vedere **[[http://httpd.apache.org/docs/2.4/mod/mod_authz_core.html|Apache Module mod_authz_core]]**. Un esempio base: 
 + 
 +<file> 
 +<Directory /var/www/private_dir> 
 +Require ip 185.32.54.97 185.12.76.143 
 +</Directory> 
 +</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 ====
  
 Per consentire l'accesso ad una directory solo a determinati indirizzi IP: Per consentire l'accesso ad una directory solo a determinati indirizzi IP:
Line 308: 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 493: 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:
Line 512: Line 590:
 ===== Apache 2.2 VirtualHost con PHP5 FastCGI e suEXEC ===== ===== Apache 2.2 VirtualHost con PHP5 FastCGI e suEXEC =====
  
-FIXME Questa configurazione è obsoleta per **Debian 9 Stretch**, dove conviene usare il pacchetto **php-fpm**.+FIXME Questa configurazione è obsoleta per **Debian 9 Stretch**, dove conviene usare il pacchetto **php-fpm** (vedi sopra).
  
 Caratteristiche richieste: Caratteristiche richieste:
doc/appunti/linux/sa/apache.1516983123.txt.gz · Last modified: 2018/01/26 17:12 by niccolo