Guide Open Source

GUIDE E MANUALI DEL MONDO LINUX E CMS

Guide Open Source

GUIDE E MANUALI DEL MONDO LINUX E CMS

Guide Open Source

GUIDE E MANUALI DEL MONDO LINUX E CMS

Filtro su Squid Proxy Web

Questo HOWTO descrive come proteggere gli utenti della rete di casa / piccola impresa da contenuti discutibili di internet con l’aiuto di proxy HTTP. Il nostro obiettivo è quello di impostare un server gratuito basato su Linux in esecuzione calamari e distribuire l’applicazione su di esso risparmio di banda, velocizzare l’accesso web e blocco file web ossessivo e potenzialmente illegali e dannosi del filtro web.

In questo tutorial si assume che tale ambiente di rete è costituito da un router di livello di SOHO che distribuisce senza fili Wi-Fi, diversi computer desktop e portatili, iPads e alcuni telefoni cellulari intelligenti come illustrato nel seguente diagramma di rete.

Network Diagramm

 

Configurare Linux CentOS 6.2 su Server Proxy

Il nostro server proxy sarà costruito utilizzando la versione gratuita di CentOS Linux 6.2. È anche possibile utilizzare Linux RedHat 6.2 con abbonamento a pagamento di voi necessità garantito il livello di supporto per i server.

Al fine di installare CentOS Linux, vai a http://mirror.centos.org/centos/6/isos/i386/ e scaricare il file di immagine di CentOS-6.2-i386-minimal.iso. Masterizzarlo su un CD di ricambio, inserire nell’unità CD-ROM del server e accenderlo.

La procedura di installazione accettando le impostazioni predefinite o le parti obbligatorie dell’installazione secondo le vostre esigenze di personalizzazione. Configurare hostname della macchina come “proxy” e root password come “P@ssw0rd” (senza virgolette). Attendere che l’installazione è completa e quindi riavviare il sistema.

La versione installata di CentOS solitamente non dispone di connettività di rete abilitata per impostazione predefinita. Al fine di consentire l’accesso di rete abbiamo bisogno di eseguire le seguenti operazioni.

  1. Assegnare un indirizzo IP statico 192.168.1.2 con maschera di rete 255.255.255.0al nostro server proxy modificando startup script /etc/sysconfig/network-scripts/ifcfg-eth0Aprirla e aggiungere queste righe:
    BOOTPROTO=static
    NETMASK=255.255.255.0
    IPADDR=192.168.1.2
    ONBOOT=yes
  2. Impostare le impostazioni del gateway predefinito nel file di configurazione /etc/sysconfig/network aggiungendo questa riga:
    GATEWAY=192.168.1.1
  3. Regolare le impostazioni di risoluzione DNS in /etc/resolv.conf aggiungendo l’indirizzo IP del server DNS che viene eseguito sul router:
    nameserver 192.168.1.1

Riavviare il sottosistema di rete digitando

/etc/init.d/network restart

nella directory principale terminale o semplicemente riavviando il server. Dopo il riavvio, verificare che la rete funzioni correttamente digitando nel terminale (non dovrebbero esserci eventuali errori nelle uscite su questi comandi):

$ ping -c 3 192.168.1.1
$ nslookup Google.it

Prima di fare qualsiasi ulteriore installazione che si raccomanda di aggiornare il sistema appena installato con le ultime patch di sicurezza che possano essere venuti fuori dopo ISO è stato rilasciato. Quindi digitare

yum update 

nel terminale principale e riavviare il server dopo l’aggiornamento completa.

 

Configurare Squid Proxy Server

Utilizzeremo Squid come caching e filtro proxy che gira sul nostro Server Proxy. Al fine di installare la versione di calamari che viene fornito con il tipo di distribuzione CentOS 6,2

yum install squid

nella directory principale terminal. Calamari e tutti i relativi pacchetti e le dipendenze sono scaricate da Internet e installate automaticamente.

Rendere il servizio proxy Squid avviare automaticamente al boot del sistema digitando

  chkconfig squid on

Riavviare il server o solo avviare Squid per la prima volta manualmente con

service squid start

L’unica cosa da fare è quello di consentire agli utenti esterni da nostro accesso rete domestica calamari. Aprire Configurazione file /etc/squid/squid.conf e aggiungere la seguente riga:

visible_hostname proxy

Inoltre verifica che siano presenti nel file di configurazione http_access allow localnet e acl localnet src 192.168.0.0/16 .

Riavviare Squid digitando

service squid restart

Verificare che il calamaro viene eseguito correttamente puntando il browser dell’utente all’indirizzo IP del Server Proxy (192.168.1.2) e surf ad alcuni dei tuoi siti Web preferiti.

Nota: potrebbe essere necessario regolare le impostazioni del firewall in CentOS per lasciare che gli utenti si connettono alla porta 3128 sul Server Proxy proxy. Utilizzare i comandi di system-config-firewall-tui o iptables per farlo. Una buona idea sarebbe quella di consentire l’accesso anche alla porta 80 come useremo questa porta per la gestione della sicurezza del contenuto QuintoLabs tramite interfaccia utente Web come descritto più avanti.

 

QuintoLabs contenuto di sicurezza di installazione

Il passo successivo è installare Content Security per calamari da QuintoLabs (fanno riferimento ad esso come qlproxy ulteriormente nel testo). Per chi non lo sapesse, sicurezza del contenuto di QuintoLabs è un demone/URL rewriter ICAP che si integra con proxy server Squid esistenti e fornisce funzionalità per disinfettare traffico web passando in casa interna del filtro contenuto ricco / rete aziendale. Può essere utilizzato per bloccare il download di file illegali o potenzialmente dannosi, rimuovere pubblicità fastidiose, impedire l’accesso a diverse categorie di siti web e bloccare risorse con contenuti espliciti (cioè vietare contenuti espliciti e adulto).

NOTE: there are other tools except qlproxy that have almost the same functionality. Some of the well-known are SquidGuard (SG) and DansGuardian (DG). While these tools are ok from the theoretical perspective you need to install them both to get the same functionality as qlproxy. SG runs as URL Rewriter and DG is even as a separate proxy itself. It also does not support SMP processing relying on resource ineffective process-per-connection server model leading to exploded requirements on e.g. URL block database. It is also a problem to tie SG and DG together as they have different configuration directives and largely independent of each other forcing the admin to look into two different places when he needs to adjust only one filtering policy.

We will use version 2.0 of qlproxy that was released this month. The most prominent feature of that release is a policy based web filtering when users of the proxy are organized into several groups with different levels of strictness.

By default qlproxy comes with three polices preinstalled. Strict policy contains web filter settings put on maximum level and is supposed to protect minors and K12 students from inappropriate contents on the Internet. Relaxed policy blocks only excessive advertisements and was supposed to be used by network administrators, teachers and all those who do not need filtered access to web but would like to evade most ads. The last group is default and contains less restrictive web filtering settings suitable for normal web browsing without explicitly adult contents shown.

The good thing about this is that you are free to design the policies yourself it you find the predefined policies not suitable for your network environment.

Anyway, in order to install Content Security 2.0 we have to get the CentOS / RedHat RPM package manually from QuintoLabs web site at http://www.quintolabs.com/qlicap_download.php and upload the package to the Proxy Server using scp. Another way is to type the following commands in the root terminal of the Proxy Server directly (as one line):

# curl http://quintolabs.com/qlproxy/binaries/2.0.0/qlproxy-2.0.0-bb01d.i386.rpm>qlproxy-2.0.0-bb01d.i386.rpm

After download completes (approx. 21Mb) run the following command to install the downloaded package and all its dependencies (note the package comes in i386 flavor but yum takes care of correct installation on x86_64 architectures):

# yum localinstall qlproxy-2.0.0-bb01d.i386.rpm

The yum installation manager will run for a while and the program will be installed into /opt/quintolabs/qlproxy (binaries), /var/opt/quintolabs/qlproxy (various logs and content filtering databases) and /etc/opt/quintolabs/qlproxy(configuration).

NOTE: this howto assumes you have SELinux disabled on your machine. For specific notes considering SELinux based installation of qlproxy see their web site and sample SELinux policy installed in /opt/quintolabs/qlproxy/usr/share/selinux. In order to disable SELinux set SELINUX=disabled in /etc/selinux/config and reboot.

 

Integrate Squid And Content Security

QuintoLabs Content Security may be integrated with Squid in two different ways – as ICAP server and as URL rewriter. It is recommended to use ICAP integration as it gives access to all HTTP traffic passing through Squid and allows qlproxy to perform full request and response filtering (ICAP is supported in Squid version 3 and up).

The README file in /etc/opt/quintolabs/qlproxy folder contains detailed instructions on how to perform integration with Squid on different platforms (Debian, Ubuntu, RedHat and even Windows). To integrate it with Squid running on CentOS we need to add the following lines to /etc/squid/squid.conf configuration file:

icap_enable on
icap_preview_enable on
icap_preview_size 4096
icap_persistent_connections on
icap_send_client_ip on
icap_send_client_username on
icap_service qlproxy1 reqmod_precache bypass=0 icap://127.0.0.1:1344/reqmod
icap_service qlproxy2 respmod_precache bypass=0 icap://127.0.0.1:1344/respmod
adaptation_access qlproxy1 allow all
adaptation_access qlproxy2 allow all

Riavviare Squid digitando

service squid restart 

e provare a fare surf i tuoi siti web preferiti e vedere quanti annunci vengono bloccati. Un altro test utile è quello di visitare il sito di web di eicar.com e tenta di scaricare un virus eicar.com artificiale del campione per verificare che i file *. com sono bloccati dal filtro download.

Installazione di default di sicurezza del contenuto è abbastanza usabile, fuori dalla scatola, ma al fine di adattarlo per le nostre esigenze di rete descritti più presto dovremo eseguire alcune modifiche alla configurazione, come descritto di seguito (tutti i percorsi sono relativi a/etc/opt / quintolabs/qlproxy/politiche):

  1. Mettere tutti gli utenti normali in Strict criteri di filtro aggiungendo gli indirizzi IP (o nomi utente se il vostro calamari esegue l’autenticazione) per il file di strict/members.conf .
  2. Mettere tutti gli utenti di potere in rilassato criteri di filtro aggiungendo gli indirizzi IP o i nomi utente nel file di relaxed/members.conf .
  3. Abilitare le sottoscrizioni di AdBlock estese per bloccare gli annunci di inglese, tedesco e russo nel file di configurazione blocks_ads.conf per entrambi i criteri. Anche bloccare comune web motori di rilevamento di uncommenting EasyPrivacy sottoscrizione negli stessi file.
  4. Aumentare il livello di criteri euristici blocchi adulti ad “alta” nel file strict/block_adult_sites.conf . Anche se può provocare falsi di blocco eccessivo c’è sempre la possibilità di aggiungere in modo non corretto bloccato sito all’elenco delle eccezioni.
  5. Il modulo UrlBlock che utilizza comunità sviluppato database di domini categorizzati in modo non corretto inserisce blogspot.com in una categoria adult… pertanto lo aggiungeremo all’elenco delle eccezioni di una politica rilassata in relaxed/exceptions.conf di essere in grado di leggere il Blog.
  6. Sapendo che worm, Trojan e altri malware spesso software correlati connettersi al mondo da indirizzi IP numerici invece normali hostname, metteremo un magico regexp url = http://\d+\.\d+\.\d+\.\d+/.* in strict/block_sites_by_name.conf file per bloccare l’accesso a siti web di IP.

Ora eseguire un comando di riavvio per fare qlproxyd demone ricaricare la configurazione

/etc/init.d/qlproxy restart

 

Programma di installazione Web UI di sicurezza del contenuto con Apache

QuintoLabs Content Security contiene una minima interfaccia utente Web che consente di visualizzare la configurazione corrente del programma, visualizzare i report dei registri di attività e programma di utilizzo da un host remoto utilizzando il browser preferito. Interfaccia utente Web è scritto utilizzando Framework Python Django e si integra con Apache utilizzando mod_wsgi distribuiti in ambiente virtualizzato di Python (per ridurre le dipendenze del pacchetto).

Per installare Apache digitare quanto segue nel terminale di root

yum install httpd

Fare Apache servizio automatico all’avvio del sistema digitando

chkconfig httpd on

Riavviare il computer o solo avviare Apache per la prima volta manualmente digitando

service httpd start

Quindi è possibile installare moduli aggiuntivi di Apache e Python digitando nel terminale di root:

# yum install mod_wsgi python-setuptools
# easy_install virtualenv
# cd /var/opt/quintolabs/qlproxy/www
n # virtualenv – qlproxy_django no-site-packages
# ./qlproxy_django/bin/easy_install django = = 1.3.1

Integrazione dell’interfaccia utente Web con Apache aggiungendo le seguenti righe al file di configurazione /etc/httpd/httpd.conf:

<VirtualHost *:80>
    ServerName proxy.lan
    ServerAdmin webmaster@proxy.lan

    LogLevel info
    ErrorLog /var/log/httpd/proxy.lan-error.log
    CustomLog /var/log/httpd/proxy.lan-access.log combined

    # aliases to static files (must come before the mod_wsgi settings)
    Alias /static/ /var/opt/quintolabs/qlproxy/www/qlproxy/static/
    Alias /redirect/ /var/opt/quintolabs/qlproxy/www/qlproxy/redirect/

    # mod_wsgi settings
    WSGIDaemonProcess proxy.lan display-name=%{GROUP}
    WSGIProcessGroup proxy.lan        
    WSGIScriptAlias / /var/opt/quintolabs/qlproxy/www/qlproxy/qlproxy.wsgi
    <Directory /var/opt/quintolabs/qlproxy/www/qlproxy>
        Order deny,allow
        Allow from all
    </Directory>
</VirtualHost>

Aggiungere la seguente riga per il /etc/httpd/conf.d/wsgi.conf di lasciare il mod_wsgi eseguito in modalità demone:

WSGISocketPrefix /var/run/wsgi

Nota: se si ottiene la pagina di errore “Accesso negato”, cercando di accedere a http://localhost quindi controllare se SELinux autorizzazioni potrebbero impedire l’accesso a /var/opt/quintolabs/qlproxy/www/qlproxy/ directory per processo httpd.

Dopo il riavvio di Apache passare a http://192.168.1.2/qlproxy per vedere il programma di configurazione, log e report generati.

 

Curriculum

L’unica cosa rimasta è per indirizzare gli utenti di rete al Server Proxy. Ci sono diverse possibilità per farlo automaticamente (si pensi WPAD) ma per i test a fini configurazione manuale dei proxy dovrebbe essere più che sufficiente. Quindi puntare il browser al proxy al 192.168.1.4 porta 3128, surf ad alcuni siti web preferiti e Vedi la differenza – indirizzi IP negli URL vengono bloccati, siti con contenuti esplicitamente adulti sono proibiti. L’utilizzo di RAM e CPU sul server è minima, esperienza di navigazione è accettabile. Sistema viene aggiornato automaticamente una volta al giorno per il più recente elenco di blocco di URL e le sottoscrizioni AdBlock e richiede una manutenzione aggiuntiva minima.

Per ulteriori informazioni, vedere le risorse seguenti:

  • http://www.CentOS.org
  • http://www.squid-cache.org
  • http://www.quintolabs.com/qlicap_info.php
  • http://issues.quintolabs.com/Trac/quintolabs_qlicap/wiki/QlicapDocs

Piaciuto l'articolo? Condividilo sui social!

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn
Share on whatsapp
WhatsApp