Strumenti Utente

Strumenti Sito


software:apache

Apache

Tips utili

sicurezza

aggiungere in fondo ad apache2.conf

ServerSignature Off
ServerTokens Prod

per evitare che vengano visualizzate informazioni dettagliate sul SO e sulla versione di apache

inoltre

Server Side Includes (SSI) è una semplice tecnica di scripting lato server che si basa su direttive inserite direttamente nei file HTML, che vengono processate dal web server prima restituire l’output completo. Il supporto ad SSI consente di eseguire codice sul server semplicemente attraverso l’upload di un file HTML, ed è pertanto un potenziale vettore d’attacco. Pertanto, a meno che il sito o l’applicazione web non ne facciano esplicito uso, si consiglia di disattivare il supporto ad SSI con la direttiva:

Options -Includes

Un'altro accorgimento per la sicurezza riguarda la possibilità di abilitare solo l'https e non la porta 80.
per farlo occorre intervenire sul file /etc/apache2/ports.conf e commentare la riga Listen 80
e poi abilitare il modulo ssl

a2enmod ssl

e riavviare apache
a questo punto il server dovrebbe rispondere solo sulla porta 443

Virtual host

io ho fatto così:
creo una directory in /var/www
Il nome della directory, per mia scelta, corrisponde al nome del dominio i cui dati dovranno essere contenuti proprio da questa directory.

mkdir /var/www/pippo

e assegno ad essa i diritti in modo tale che l'utente di Apache (www-data) possa accedere alla directory appena creata

chown www-data:www-data /var/www/pippo

poi vado a creare un file di configurazione nel seguente modo

vi /etc/apache2/sites-enabled/pippo
/etc/apache2/sites-enabled/pippo
<VirtualHost *:80>
 ServerAdmin pippo@pippo.it
 ServerName www.pippo.it
 DocumentRoot /var/www/pippo/
 Errorlog /var/log/errorpippo.log
 Customlog /var/log/custpippo.log common
 
</VirtualHost>

Questa è la configurazione base per poter avere un secondo dominio sullo stesso server web con contenuti diversi da altro dominio.
E' possibile fare un paio di modifiche per avere sullo stesso server per questo secondo dominio di prova anche un'area riservata protetta da password. Per ottenere ciò è necessario creare un file che per comodità metteremo in /etc/apache2/sites-enabled/pippo/ contenente i nomi utente e le password che occorrono per l'autenticazione:

/etc/apapche2/sites-enabled/.pippo
prova:$apr1$XMJ3Y9hO$g1vTD0Rx7WXsRmpmoq/951
stefano:$apr1$HRdOA9HB$ryiNj6Sm.CFTHvKpRZnAt1

in sostanza è stato inserito il nome in chiaro e l'hash in md5 della password
Poi dobbiamo aggiungere le seguenti righe al precedente file /etc/apache/sites-enabled/pippo:

 <directory /var/www/pippo/riservata>
  AuthName "Inserire i dati di login"
  AuthType basic
  AuthUserFile /etc/apache2/sites-enabled/.pippo
  Require valid-user stefano,prova
</directory>

ed ottenere quindi di seguito il file completo

/etc/apache2/sites-enabled/pippo
<VirtualHost *:80>
 ServerAdmin pippo@pippo.it
 ServerName www.pippo.it
 DocumentRoot /var/www/pippo/
 Errorlog /var/log/errorpippo.log
 Customlog /var/log/custpippo.log common
 
 <directory /var/www/pippo/riservata>
  AuthName "Inserire i dati di login"
  AuthType basic
  AuthUserFile /etc/apache2/sites-enabled/.pippo
  Require valid-user stefano,prova
 </directory>
 
</VirtualHost>

Applicazioni

Di seguito il collegamento ad un'app in php da utilizzare qui per fare il whois di un sito o di un ip
http://risorsalibera.org/phpwhois/example.php

Moduli

Per abilitare un moduli in apache usare il comando a2enmod nome modulo, es:

a2enmod rewrite

poi riavviare il server apache

Monitor

Alcune info utili sul monitoraggio di Apache.
Qui però ho fatto un copia incolla da un vecchio articolo che si riferiva la vecchio demone httpd.

E' possibile monitorare il funzionamento di Apache con diversi strumenti.

Log di Apache
Sono il primo posto dove indagare in caso di problemi. Generalmente vengono scritti in una directory tipo /var/log/httpd, comunque nel file di configurazione la loro posizione è definita con le direttive AccessLog e ErrorLog.
Con la direttiva LogLevel è possibile modificare il livello di logging.

Opzioni di invocazione
httpd -V Mostra i parametri usati in fase di configurazione
httpd -l Mostra i moduli compilati direttamente nel file httpd.
httpd -L Mostra le direttive che possono essere usate con i moduli direttamente compilati.
httpd -t Esegue un test sulla configurazione di Apache.

Server-status e Server-info
Sono container speciali che permettono di visualizzare direttamente via web informazioni:
http://www.sito.com/server-status/ - Mostra lo stato del server.
http://www.sito.com/server-info/ - Mostra informazioni sulla configurazione usata e i moduli presenti.

Comandi di Sistema
ps -adef | grep httpd - Elenco dei processi Apache in esecuzione
netstat -natup - Elenco delle connessioni di rete in ascolto e attive.
ldd /usr/sbin/httpd - Mostra le librerie condivise usate dal binario indicato.
strace -p PID - Traccia le system call del processo indicato.
lsof | grep httpd - Visualizza tutti i file aperti dal processo httpd

- - il tutto preso da openskill

http://openskill.info/topic.php?ID=59

appunti vari

studio fatto in occasione dell wiki di odroid minimal jessie

ho fatto solo tzdata perchè ho sempre lavorato da ssh

root@odroid-jessie:~# cat /etc/debian_version 8.2 root@odroid-jessie:~# uname -s -r -m -o Linux 3.10.80 armv7l GNU/Linux

root@odroid-jessie:~# uname -s -r -m -o Linux 3.10.96 armv7l GNU/Linux

root@odroid-jessie:~# apt-get dist-upgrade Reading package lists… Done Building dependency tree Reading state information… Done Calculating upgrade… Done The following NEW packages will be installed:

linux-headers-3.10.96 linux-image-3.10.96

The following packages will be upgraded:

linux-headers-armhf-odroid-c1 linux-image-armhf-odroid-c1

2 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. Need to get 18.4 MB of archives. After this operation, 82.9 MB of additional disk space will be used. Do you want to continue? [Y/n] Y Get:1 http://oph.mdrjr.net/meveric/ all/c1 linux-image-3.10.96 armhf 3.10.96-20160321-C1 [11.7 MB]

root@odroid-jessie:~# apt-get install apache2
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  apache2-bin apache2-data apache2-utils libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libexpat1 libldap-2.4-2 liblua5.1-0 libsasl2-2
  libsasl2-modules-db libsqlite3-0 libxml2 mime-support perl perl-modules
Suggested packages:
  www-browser apache2-doc apache2-suexec-pristine apache2-suexec-custom perl-doc libterm-readline-gnu-perl libterm-readline-perl-perl make libb-lint-perl
  libcpanplus-dist-build-perl libcpanplus-perl libfile-checktree-perl liblog-message-simple-perl liblog-message-perl libobject-accessor-perl  
Recommended packages:
  ssl-cert libsasl2-modules xml-core file rename libarchive-extract-perl libmodule-pluggable-perl libpod-latex-perl libterm-ui-perl libtext-soundex-perl
  libcgi-pm-perl libmodule-build-perl libpackage-constants-perl
The following NEW packages will be installed:
  apache2 apache2-bin apache2-data apache2-utils libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libexpat1 libldap-2.4-2 liblua5.1-0 libsasl2-2
  libsasl2-modules-db libsqlite3-0 libxml2 mime-support perl perl-modules
0 upgraded, 18 newly installed, 0 to remove and 0 not upgraded.
Need to get 7,916 kB of archives.
After this operation, 33.7 MB of additional disk space will be used.
Do you want to continue? [Y/n] 
Get:1 http://ftp.debian.org/debian/ jessie/main libsasl2-modules-db armhf 2.1.26.dfsg1-13+deb8u1 [65.4 kB]
Get:2 http://security.debian.org/ jessie/updates/main libexpat1 armhf 2.1.0-6+deb8u2 [61.5 kB] 
Get:3 http://ftp.debian.org/debian/ jessie/main libsasl2-2 armhf 2.1.26.dfsg1-13+deb8u1 [97.5 kB]
Get:4 http://ftp.debian.org/debian/ jessie/main libldap-2.4-2 armhf 2.4.40+dfsg-1+deb8u2 [195 kB]
Get:5 http://ftp.debian.org/debian/ jessie/main libsqlite3-0 armhf 3.8.7.1-1+deb8u1 [384 kB]
Get:6 http://ftp.debian.org/debian/ jessie/main libxml2 armhf 2.9.1+dfsg1-5+deb8u1 [717 kB]
Get:7 http://ftp.debian.org/debian/ jessie/main perl-modules all 5.20.2-3+deb8u4 [2,546 kB]                                                                          
Get:8 http://ftp.debian.org/debian/ jessie/main perl armhf 5.20.2-3+deb8u4 [2,056 kB]                                                                                
Get:9 http://ftp.debian.org/debian/ jessie/main mime-support all 3.58 [36.0 kB]                                                                                      
Get:10 http://ftp.debian.org/debian/ jessie/main libapr1 armhf 1.5.1-3 [80.6 kB]                                                                                     
Get:11 http://ftp.debian.org/debian/ jessie/main libaprutil1 armhf 1.5.4-1 [78.2 kB]                                                                                 
Get:12 http://ftp.debian.org/debian/ jessie/main libaprutil1-dbd-sqlite3 armhf 1.5.4-1 [17.6 kB]                                                                     
Get:13 http://ftp.debian.org/debian/ jessie/main libaprutil1-ldap armhf 1.5.4-1 [16.7 kB]                                                                            
Get:14 http://ftp.debian.org/debian/ jessie/main liblua5.1-0 armhf 5.1.5-7.1 [84.9 kB]                                                                               
Get:15 http://ftp.debian.org/debian/ jessie/main apache2-bin armhf 2.4.10-10+deb8u4 [918 kB]                                                                         
Get:16 http://ftp.debian.org/debian/ jessie/main apache2-utils armhf 2.4.10-10+deb8u4 [195 kB]                                                                       
Get:17 http://ftp.debian.org/debian/ jessie/main apache2-data all 2.4.10-10+deb8u4 [162 kB]                                                                          
Get:18 http://ftp.debian.org/debian/ jessie/main apache2 armhf 2.4.10-10+deb8u4 [205 kB]                                                                             
Fetched 7,916 kB in 35s (226 kB/s)                                                                                                                                   
Selecting previously unselected package libsasl2-modules-db:armhf.
(Reading database ... 44150 files and directories currently installed.)
Preparing to unpack .../libsasl2-modules-db_2.1.26.dfsg1-13+deb8u1_armhf.deb ...
Unpacking libsasl2-modules-db:armhf (2.1.26.dfsg1-13+deb8u1) ...
Selecting previously unselected package libsasl2-2:armhf.
Preparing to unpack .../libsasl2-2_2.1.26.dfsg1-13+deb8u1_armhf.deb ...
Unpacking libsasl2-2:armhf (2.1.26.dfsg1-13+deb8u1) ...
Selecting previously unselected package libldap-2.4-2:armhf.
Preparing to unpack .../libldap-2.4-2_2.4.40+dfsg-1+deb8u2_armhf.deb ...
Unpacking libldap-2.4-2:armhf (2.4.40+dfsg-1+deb8u2) ...
Selecting previously unselected package libsqlite3-0:armhf.
Preparing to unpack .../libsqlite3-0_3.8.7.1-1+deb8u1_armhf.deb ...
Unpacking libsqlite3-0:armhf (3.8.7.1-1+deb8u1) ...
Selecting previously unselected package libxml2:armhf.
Preparing to unpack .../libxml2_2.9.1+dfsg1-5+deb8u1_armhf.deb ...
Unpacking libxml2:armhf (2.9.1+dfsg1-5+deb8u1) ...
Selecting previously unselected package perl-modules.
Preparing to unpack .../perl-modules_5.20.2-3+deb8u4_all.deb ...
Unpacking perl-modules (5.20.2-3+deb8u4) ...
Selecting previously unselected package perl.
Preparing to unpack .../perl_5.20.2-3+deb8u4_armhf.deb ...
Unpacking perl (5.20.2-3+deb8u4) ...
Selecting previously unselected package mime-support.
Preparing to unpack .../mime-support_3.58_all.deb ...
Unpacking mime-support (3.58) ...
Selecting previously unselected package libapr1:armhf.
Preparing to unpack .../libapr1_1.5.1-3_armhf.deb ...
Unpacking libapr1:armhf (1.5.1-3) ...
Selecting previously unselected package libexpat1:armhf.
Preparing to unpack .../libexpat1_2.1.0-6+deb8u2_armhf.deb ...
Unpacking libexpat1:armhf (2.1.0-6+deb8u2) ...
Selecting previously unselected package libaprutil1:armhf.
Preparing to unpack .../libaprutil1_1.5.4-1_armhf.deb ...
Unpacking libaprutil1:armhf (1.5.4-1) ...
Selecting previously unselected package libaprutil1-dbd-sqlite3:armhf.
Preparing to unpack .../libaprutil1-dbd-sqlite3_1.5.4-1_armhf.deb ...
Unpacking libaprutil1-dbd-sqlite3:armhf (1.5.4-1) ...
Selecting previously unselected package libaprutil1-ldap:armhf.
Preparing to unpack .../libaprutil1-ldap_1.5.4-1_armhf.deb ...
Unpacking libaprutil1-ldap:armhf (1.5.4-1) ...
Selecting previously unselected package liblua5.1-0:armhf.
Preparing to unpack .../liblua5.1-0_5.1.5-7.1_armhf.deb ...
Unpacking liblua5.1-0:armhf (5.1.5-7.1) ...
Selecting previously unselected package apache2-bin.
Preparing to unpack .../apache2-bin_2.4.10-10+deb8u4_armhf.deb ...
Unpacking apache2-bin (2.4.10-10+deb8u4) ...
Selecting previously unselected package apache2-utils.
Preparing to unpack .../apache2-utils_2.4.10-10+deb8u4_armhf.deb ...
Unpacking apache2-utils (2.4.10-10+deb8u4) ...
Selecting previously unselected package apache2-data.
Preparing to unpack .../apache2-data_2.4.10-10+deb8u4_all.deb ...
Unpacking apache2-data (2.4.10-10+deb8u4) ...
Selecting previously unselected package apache2.
Preparing to unpack .../apache2_2.4.10-10+deb8u4_armhf.deb ...
Unpacking apache2 (2.4.10-10+deb8u4) ...
Processing triggers for man-db (2.7.0.2-5) ...
Processing triggers for systemd (215-17+deb8u4) ...
Setting up libsasl2-modules-db:armhf (2.1.26.dfsg1-13+deb8u1) ...
Setting up libsasl2-2:armhf (2.1.26.dfsg1-13+deb8u1) ...
Setting up libldap-2.4-2:armhf (2.4.40+dfsg-1+deb8u2) ...
Setting up libsqlite3-0:armhf (3.8.7.1-1+deb8u1) ...
Setting up libxml2:armhf (2.9.1+dfsg1-5+deb8u1) ...
Setting up perl-modules (5.20.2-3+deb8u4) ...
Setting up perl (5.20.2-3+deb8u4) ...
update-alternatives: using /usr/bin/prename to provide /usr/bin/rename (rename) in auto mode
Setting up mime-support (3.58) ...
Setting up libapr1:armhf (1.5.1-3) ...
Setting up libexpat1:armhf (2.1.0-6+deb8u2) ...
Setting up libaprutil1:armhf (1.5.4-1) ...
Setting up libaprutil1-dbd-sqlite3:armhf (1.5.4-1) ...
Setting up libaprutil1-ldap:armhf (1.5.4-1) ...
Setting up liblua5.1-0:armhf (5.1.5-7.1) ...
Setting up apache2-bin (2.4.10-10+deb8u4) ...
Setting up apache2-utils (2.4.10-10+deb8u4) ...
Setting up apache2-data (2.4.10-10+deb8u4) ...
Setting up apache2 (2.4.10-10+deb8u4) ...
Enabling module mpm_event.
Enabling module authz_core.
Enabling module authz_host.
Enabling module authn_core.
Enabling module auth_basic.
Enabling module access_compat.
Enabling module authn_file.
Enabling module authz_user.
Enabling module alias.
Enabling module dir.
Enabling module autoindex.
Enabling module env.
Enabling module mime.
Enabling module negotiation.
Enabling module setenvif.
Enabling module filter.
Enabling module deflate.
Enabling module status.
Enabling conf charset.
Enabling conf localized-error-pages.
Enabling conf other-vhosts-access-log.
Enabling conf security.
Enabling conf serve-cgi-bin.
Enabling site 000-default.
Processing triggers for libc-bin (2.19-18+deb8u4) ...
Processing triggers for systemd (215-17+deb8u4) ..  

a quanto pare in questa installazione non è stato installato openssl…

ma questo forse non sarebbe neanche necessario,

quello che conta è che devono essere installatai i ssl-cert
e poi probabilmente questi avrebbero comportato anche l'openssl ?

ok! cominciamo a capirci
quindi anche se disabilito con a2dissite tutti i siti… la pagina index html la continuo a visualizzare sempre a meno che la tolga completamente, però mi fa vedere comunque la visualizzazione a directory!!!!! Cioè di default apache mostra la visualizzazione a directory.

direttiva obbligatoria all'interno del blocco virtulhost è:

servername
serveradmin
documentroot

02-06-16

stamattina ho scoperto un altro caos. che c'è differenza a mettere www.nomedominio.it o solo nomedominio.it penso che riguardi il fatto di andare direttamente al virtual host o al server base sito default…. boh?

anzi ho capito che senza il www apache va a leggere automaticamente il default site della DefaultRoot, se non lo trova automaticamente espone il primo in ordine alfabetico tra i vari virtualhost impostati. se disabilito tutto espone in ogni caso il suo primario index.html perchè è il primo che trova partendo dalla radice /var/www. No!!! rettifico l'ordine alfabetico non centra nulla. Se disabilito tutti i site l'apache avviato espone sempre e comunque l'index.html originale che sta in /var/www/html e se tolgo da quella directory il file index.html e lo sposto da un'altra parte in modo che non lo veda, apache espone il listing della directory /var/www/html che è vuota.
Grazie a ulteriori prove ho scoperto che se si costruisce un file sito.conf ma senza il blocco virtualhost e si indica la DocumentRoot su un percorso diverso apache andrà li a prelevare il file index.html o a listare la directory. Quindi in ogni caso apache ha di suo la RootDocument /var/www/html a meno che gliene venga specificata un'altra.

03-06-16

un'altra cosa che ho capito è che se disabilito tutti i siti presenti in site-available quindi avendo vuota site-enabled. Automaticamente funziona tutto quello che c'è da /var/www/html in avanti anche se il 000-defaultsite è disabilitato.
Ma nel momento in cui abilito anche solo uno (ecctto defaultsite) dei siti presenti in available. Il default quindi presente in /var/www/html viene disabilitato.

software/apache.txt · Ultima modifica: 2023/04/17 14:25 (modifica esterna)