Proxy Server con filtraggio della navigazione su Debian Jessie: differenze tra le versioni

m
compatibilità riservata a Jessie - guida passo-passo
m (compatibilità riservata a Jessie - guida passo-passo)
 
(13 versioni intermedie di 3 utenti non mostrate)
Riga 1: Riga 1:
{{Versioni compatibili|ONLY|Jessie}}
== Introduzione ==
== Introduzione ==
In diversi contesti di rete, si pensi ad esempio ad una rete LAN aziendale o ai laboratori informatici di scuole medie inferiori, può essere importante implementare un sistema il più possibile automatico per il controllo e il filtraggio di alcuni contenuti web considerati dall'amministratore inappropriati al contesto. Si considerino a titolo di esempio le seguenti necessità:
In diversi contesti di rete, si pensi ad esempio ad una rete LAN aziendale o ai laboratori informatici di scuole medie inferiori, può essere importante implementare un sistema il più possibile automatico per il controllo e il filtraggio di alcuni contenuti web considerati dall'amministratore inappropriati al contesto. Si considerino a titolo di esempio le seguenti necessità:
Riga 30: Riga 31:
Nel resto della guida supporremo che le due schede di rete siano così configurate:
Nel resto della guida supporremo che le due schede di rete siano così configurate:
<pre>
<pre>
# ETH1 - Connessa a LAN
# ETH0 - Connessa a LAN
allow-hotplug eth0
allow-hotplug eth0
iface eth0 inet static
iface eth0 inet static
Riga 39: Riga 40:
     dns-nameservers 8.8.4.4 8.8.8.8
     dns-nameservers 8.8.4.4 8.8.8.8


# ETH0 - Connessa a INTERNET
# ETH1 - Connessa a INTERNET
allow-hotplug eth1
allow-hotplug eth1
iface eth1 inet dhcp
iface eth1 inet dhcp
Riga 159: Riga 160:
con contenuto:
con contenuto:
<pre>
<pre>
# La porta di Squid
Abilito la modalità trasparente
http_port 3128 transparent
http_port 3128 transparent


# Se si modifica la linea seguente occorre lanciare:
# Definisco le LAN locali
# squid3 -f /etc/squid3/squid.conf -z
acl localnet1 src 192.168.1.0/24
# per ricostruire la cache
acl localnet2 src 192.168.2.0/24
cache_dir ufs /var/spool/squid3 1024 256 256
acl localnet3 src 10.59.0.0/16
 
# I Log
cache_mgr info@miodominio.org
cache_access_log /var/log/squid3/access.log common
cache_log /var/log/squid3/cache.log
cache_store_log /var/log/squid3/store.log
cache_swap_log /var/log/squid3/cache_swap.log
emulate_httpd_log on
 
# Configuro l'autenticazione su OpenLDAP
# Abilitare le righe seguenti solo se si intende utilizzare
# un server LDAP per l'autenticazione degli utenti
#auth_param basic program /usr/lib/squid3/squid_ldap_auth -b "ou=Users,dc=dominio,dc=local" -f "uid=%s" -h 127.0.0.1
#auth_param basic children 25
#auth_param basic realm Squid proxy Server
#auth_param basic credentialsttl 2 hours
 
# Configurazione minima raccomandata
#acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl localhost src 127.0.0.1/255.255.255.255
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 22 # SSH


acl CONNECT method CONNECT
acl CONNECT method CONNECT


# Richiedo l'autenticazione LDAP per proseguire nella navigazione
# Abilito alla navigazione le LAN locali
#acl ldapauth proxy_auth REQUIRED
http_access allow localnet1
#acl authenticated proxy_auth REQUIRED
http_access allow localnet2
http_access allow localnet3
http_access allow localhost
always_direct allow all


# Definizione delle reti
# Se si modifica la linea seguente occorre lanciare:
acl lan_eth src 192.168.10.0/255.255.255.0
# squid3 -f /etc/squid3/squid.conf -z
acl lan_wifi src 192.168.1.0/255.255.255.0
# per ricostruire la cache
cache_dir aufs /var/spool/squid3 50000 16 256


# Autorizzo o no la navigazione
# I Log
http_access allow localhost
#cache_mgr info@miodominio.org
http_access allow lan_eth
#cache_access_log /var/log/squid3/access.log common
http_access allow lan_wifi
#cache_log /var/log/squid3/cache.log
http_access deny all
#cache_store_log /var/log/squid3/store.log
 
#cache_swap_log /var/log/squid3/cache_swap.log
# Attivo Squidguard
# Direttive per navigazione anonima
redirect_program /usr/bin/squidGuard -c /etc/squid3/squidGuard.conf
#request_header_access Referer deny all
redirect_children 5
#request_header_access X-Forwarded-For deny all
#request_header_access Via deny all
#request_header_access Cache-Control deny all


# Imposto l'hostname del Proxy server
# Imposto il nome del Proxy
visible_hostname firewall
visible_hostname firewall
forwarded_for off
</pre>
Il proxy così configurato non fa altro che controllare le classi degli indirizzi autorizzati alla navigazione, ma a noi serve qualcosa in più... Prima di configurare un primo filtro, però, decommentiamo la riga per attivare il proxy trasparente nel nostro script <code>firebox.sh</code>:
<pre>
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
</pre>
</pre>
Il proxy così configurato non fa altro che controllare le classi degli indirizzi autorizzati alla navigazione, ma a noi serve qualcosa in più...
Riavviamo il nostro script e prepariamoci a verificarne il funzionamento. Se da un client della rete proviamo a navigare su internet, agendo sulla console del nostro gateway dovremmo vederne i log:
<pre>
# tail -f /var/log/squid3/access.log
1104854410.086    159 192.168.10.50 TCP_MISS/302 469 GET \
http://www.google.com/ - DIRECT/216.239.59.104 text/html
1104854410.217    128 192.168.10.50 TCP_MISS/200 1459 GET \
http://www.google.it/ - DIRECT/216.239.59.99 text/html
1104854410.397    180 192.168.10.50 TCP_MISS/200 9022 GET \
http://www.google.it/intl/it/images/logo.gif - DIRECT/216.239.59.99 image/gif
1104854415.196    200 192.168.10.50 TCP_MISS/200 1459 GET \
http://www.google.it/ - DIRECT/216.239.59.99 text/html
1104854415.271    74 192.168.10.50 TCP_REFRESH_HIT/304 235 GET \
http://www.google.it/intl/it/images/logo.gif - DIRECT/216.239.59.99 text/html
</pre>
Perfetto! Il nostro proxy server è entrato correttamente in funzione.  


=== Il filtro SquidGuard ===
=== Il filtro SquidGuard (OPZIONALE)===
Cominciamo con installare SquidGuard, un programma che ci permette di filtrare i tipi di siti web autorizzati e di impostare la navigazione in funzione delle fasce orarie stabilite.
Cominciamo con installare SquidGuard, un programma che ci permette di filtrare i tipi di siti web autorizzati e di impostare la navigazione in funzione delle fasce orarie stabilite.
<pre>
<pre>
Riga 234: Riga 229:
# wget http://www.shallalist.de/Downloads/shallalist.tar.gz
# wget http://www.shallalist.de/Downloads/shallalist.tar.gz
# tar xzf shallalist.tar.gz
# tar xzf shallalist.tar.gz
# chown -R proxy:proxy blacklists
# chown proxy:proxy -R /var/lib/squidguard/db/
# ln -s /etc/squidguard/squidGuard.conf /etc/squid3/squidGuard.conf
# ln -s /etc/squidguard/squidGuard.conf /etc/squid3/squidGuard.conf
# squidGuard -d -c /etc/squid3/squidGuard.conf -C all
# cd BL
# squidGuard -d -b -C all
</pre>
</pre>
A questo punto possiamo crearci il nostro file di configurazione personalizzato per SquidGuard:
A questo punto possiamo crearci il nostro file di configurazione personalizzato per SquidGuard:
Riga 410: Riga 406:
Installiamo DansGuardian:
Installiamo DansGuardian:
<pre>
<pre>
# apt-get install dansguardian
# apt-get install dansguardian unrar-free
</pre>
</pre>
Il file principale di configurazione è <code>/etc/dansguardian/dansguardian.conf</code>. Apportiamovi alcune modifiche:
Il file principale di configurazione è <code>/etc/dansguardian/dansguardian.conf</code>. Apportiamovi alcune modifiche:
Riga 489: Riga 485:
=== Le blacklist ===
=== Le blacklist ===
Per far funzionare al meglio il nostro DansGuardian abbiamo bisogno ancora di una cosa: un insieme di blacklist preconfezionato e diviso in categorie. Il migliore (e anche quello consigliato dagli autori di DansGuardian) è l'elenco scaricabile da URL Blacklist. Si noti che il download non è gratuito e che, prima di sottoscrivere un abbonamento, abbiamo diritto ad un solo download di prova. Purtroppo non sono a conoscenza di altre backlist compatibili con DansGuardian e altrettanto valide.
Per far funzionare al meglio il nostro DansGuardian abbiamo bisogno ancora di una cosa: un insieme di blacklist preconfezionato e diviso in categorie. Il migliore (e anche quello consigliato dagli autori di DansGuardian) è l'elenco scaricabile da URL Blacklist. Si noti che il download non è gratuito e che, prima di sottoscrivere un abbonamento, abbiamo diritto ad un solo download di prova. Purtroppo non sono a conoscenza di altre backlist compatibili con DansGuardian e altrettanto valide.
Scarichiamo delle blacklists aggiornate dal sito: [http://urlblacklist.com/?sec=download URL Blacklist]:
Se volete utilizzarlo, potete scaricare il file delle blacklists aggiornate dal sito: [http://urlblacklist.com/?sec=download URL Blacklist]:
<pre>
<pre>
# tar -xzf bigblacklist.tar.gz
# tar -xzf bigblacklist.tar.gz
Riga 495: Riga 491:
# chown -R root:root /etc/dansguardian/lists
# chown -R root:root /etc/dansguardian/lists
</pre>
</pre>
Così facendo abbiamo scompattato il file scaricato dentro la directory <code>/etc/dansguardian/lists</code>; verrà creata una sottodirectory chiamata blacklists contenente tutte le liste, immediatamente utilizzabili.
'''In alternativa''' è possibile utilizzare lo stesso file delle blacklist di SquidGuard:
<pre>
# cd /tmp
# wget http://www.shallalist.de/Downloads/shallalist.tar.gz
# tar xzf shallalist.tar.gz
# cd BL
# mv * /etc/dansguardian/lists/blacklists
</pre>
Così facendo abbiamo scompattato il file scaricato dentro la directory <code>/etc/dansguardian/lists/blacklists</code>, contenente tutte le liste, immediatamente utilizzabili.
<br/>
<br/>
Per rendere attive le blacklist scaricate dobbiamo aprire i files bannedsitelist e bannedurllist e decommentare le categorie di siti che intendiamo filtrare.
Per rendere attive le blacklist scaricate dobbiamo aprire i files bannedsitelist e bannedurllist e decommentare le categorie di siti che intendiamo filtrare.
Riga 595: Riga 599:
[[Categoria:Altri servizi di rete]]
[[Categoria:Altri servizi di rete]]
[[Categoria:Network tools]]
[[Categoria:Network tools]]
[[Categoria: Proxy]]
3 581

contributi