16
PROXY SQUID-SQARD procédure

PROXY SQUID-SQARDquentinbry.sitew.fr/fs/procedures2/cnxxg-Bry_quentin_procedure_squid_squidguard.pdfSquid-SquidGuard Quentin BRY Guide de Procédure Page 3 sur 15 CFSA-AFTEC Version

  • Upload
    others

  • View
    13

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PROXY SQUID-SQARDquentinbry.sitew.fr/fs/procedures2/cnxxg-Bry_quentin_procedure_squid_squidguard.pdfSquid-SquidGuard Quentin BRY Guide de Procédure Page 3 sur 15 CFSA-AFTEC Version

PROXY SQUID-SQARD procédure

Page 2: PROXY SQUID-SQARDquentinbry.sitew.fr/fs/procedures2/cnxxg-Bry_quentin_procedure_squid_squidguard.pdfSquid-SquidGuard Quentin BRY Guide de Procédure Page 3 sur 15 CFSA-AFTEC Version

Squid-SquidGuard Quentin BRY Guide de Procédure Page 1 sur 15 CFSA-AFTEC Version 1.0 – 05/02/2015 Mairie de Saint Jean de la Ruelle

Tableau d’évolution

Version Date Description Rédacteur Approbateur 0.0 08/12/2014 Ecriture du document Quentin BRY Thierry

MARTINS

1.0 05/02/2015 1ère version Quentin BRY Thierry MARTINS

Page 3: PROXY SQUID-SQARDquentinbry.sitew.fr/fs/procedures2/cnxxg-Bry_quentin_procedure_squid_squidguard.pdfSquid-SquidGuard Quentin BRY Guide de Procédure Page 3 sur 15 CFSA-AFTEC Version

Squid-SquidGuard Quentin BRY Guide de Procédure Page 2 sur 15 CFSA-AFTEC Version 1.0 – 05/02/2015 Mairie de Saint Jean de la Ruelle

Sommaire

Tableau d’évolution ............................................................................................................................ 1

I) PROXY SQUID ................................................................................................................................... 3

a) Mise en place d’une adresse IP statique et iptables: .................................................................. 3

b) Installation de squid3 .................................................................................................................. 4

c) Créer acl : ..................................................................................................................................... 4

d) Fichier squid.conf ........................................................................................................................ 5

e) iptables proxy transparent .......................................................................................................... 7

II) SQUIDGUARD : ................................................................................................................................ 8

a) Ajouter des catégories dans squidguard : ................................................................................... 9

b) Redirection .................................................................................................................................. 9

c) Créer base de données : .............................................................................................................. 9

III) Whitelist .................................................................................................................................... 10

IV) Les Logs ...................................................................................................................................... 11

a) Rotation des logs ....................................................................................................................... 11

V) Automatisation de la mise à jours de la base de données de SquidGuard ................................... 12

VI) Proxy Https ................................................................................................................................ 14

Page 4: PROXY SQUID-SQARDquentinbry.sitew.fr/fs/procedures2/cnxxg-Bry_quentin_procedure_squid_squidguard.pdfSquid-SquidGuard Quentin BRY Guide de Procédure Page 3 sur 15 CFSA-AFTEC Version

Squid-SquidGuard Quentin BRY Guide de Procédure Page 3 sur 15 CFSA-AFTEC Version 1.0 – 05/02/2015 Mairie de Saint Jean de la Ruelle

I) PROXY SQUID

a) Mise en place d’une adresse IP statique et iptables:

Nano /etc/network/interfaces #eth0

auto eth0

allow-hotplug eth0

iface eth0 inet static

address 192.168.2.162

netmask 255.255.255.0

network 192.168.2.0

broadcast 192.168.2.255

gateway 192.168.2.1

Ajout de la seconde carte (coté LAN) :

#eth1

auto eth1

allow-hotplug eth1

iface eth1 inet static

address 192.168.32.1

netmask 255.255.255.0

network 192.168.32.0

broadcast 192.168.32.255

Mettre les iptables au démarrage:

Update-rc.d network-manager remove => pour supprimer network-manager

Update-rc.d mes_iptables_vides.sh defaults

Page 5: PROXY SQUID-SQARDquentinbry.sitew.fr/fs/procedures2/cnxxg-Bry_quentin_procedure_squid_squidguard.pdfSquid-SquidGuard Quentin BRY Guide de Procédure Page 3 sur 15 CFSA-AFTEC Version

Squid-SquidGuard Quentin BRY Guide de Procédure Page 4 sur 15 CFSA-AFTEC Version 1.0 – 05/02/2015 Mairie de Saint Jean de la Ruelle

b) Installation de squid3

apt-get update & upgrade

apt-cache search squid3 & squidguard

apt-get install squid3 & squidguard

history => voir l’historique des commandes

Ou history |grep « nom de la commande »

Règles iptables => iptables –L –v

On rajoute la ligne suivante permettant d'autoriser les connexions entrantes à destination du port

3128 pour le réseau 192.168.32.0/24 dans /etc/init.d/mes_iptables_vides.sh

iptables -t filter -A INPUT -p tcp --dport 3128 -s 192.168.32.0/24 -j ACCEPT

Fichier de conf squid => /etc/squid3/squid.conf

Mv /etc/squid3/squid.conf /etc/squid3/squid.conf.origin

Enlever les commentaires du fichier squid.conf.origin =>

cat squid.conf.origin |egrep -v -e ‘^[[:blank :]]*#|^$’ > squid.conf

c) Créer acl :

Acl LAN src 192.168.32.0/24

Acl admin src 192.168.32.10

Acl blockdomain dstdomain .facebook.com .facebook.fr .nba.com

Acl blockregex url_regex jeu

http_access allow admin

http_access deny blockdomain

http_access deny blockregex

http_access allow LAN

Afficher processus :

ps –aux | grep squid

Page 6: PROXY SQUID-SQARDquentinbry.sitew.fr/fs/procedures2/cnxxg-Bry_quentin_procedure_squid_squidguard.pdfSquid-SquidGuard Quentin BRY Guide de Procédure Page 3 sur 15 CFSA-AFTEC Version

Squid-SquidGuard Quentin BRY Guide de Procédure Page 5 sur 15 CFSA-AFTEC Version 1.0 – 05/02/2015 Mairie de Saint Jean de la Ruelle

Recharger fichier squid :

service squid3 restart ou reload

Afficher fichier de log squid

tail –f /var/log/squid3/access.log

Indiquer serveur proxy mozilla etc.

Option /avancé /réseau indiquez adresse eth1 (32.254) et port 3128

Vider cache = ctrl + maj + supp

Vérifier qu’il n’est pas inscrit rc0.d rc1.d…

Logformat

Modifier fichier squid.conf.origin recherchez 4eme logformat (ctrl + w) => TAG : logformat

Changer format heure fichier de log

logformat squid %tl.%03tu %6tr %>a %Ss/%03>Hs %<st %rm %ru %un %Sh/%<A %mt

d) Fichier squid.conf

acl LAN src 192.168.32.0/24

acl admin src 192.168.32.10

acl blockdomain dstdomain .facebook.com .nba.com

acl blockregex url_regex jeu

acl manager proto cache_object

acl localhost src 127.0.0.1/32 ::1

acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1

acl SSL_ports port 443

acl Safe_ports port 80 # http

acl Safe_ports port 21 # ftp

acl Safe_ports port 443 # https

Page 7: PROXY SQUID-SQARDquentinbry.sitew.fr/fs/procedures2/cnxxg-Bry_quentin_procedure_squid_squidguard.pdfSquid-SquidGuard Quentin BRY Guide de Procédure Page 3 sur 15 CFSA-AFTEC Version

Squid-SquidGuard Quentin BRY Guide de Procédure Page 6 sur 15 CFSA-AFTEC Version 1.0 – 05/02/2015 Mairie de Saint Jean de la Ruelle

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 CONNECT method CONNECT

http_access allow admin

http_access deny blockdomain

http_access deny blockregex

http_access allow LAN

http_access allow manager localhost

http_access deny manager

http_access deny !Safe_ports

http_access deny CONNECT !SSL_ports

http_access allow localhost

http_access deny all

http_port 3128

coredump_dir /var/spool/squid3

refresh_pattern ^ftp: 1440 20% 10080

refresh_pattern ^gopher: 1440 0% 1440

refresh_pattern -i (/cgi-bin/|\?) 0 0% 0

refresh_pattern. 0 20% 4320

Page 8: PROXY SQUID-SQARDquentinbry.sitew.fr/fs/procedures2/cnxxg-Bry_quentin_procedure_squid_squidguard.pdfSquid-SquidGuard Quentin BRY Guide de Procédure Page 3 sur 15 CFSA-AFTEC Version

Squid-SquidGuard Quentin BRY Guide de Procédure Page 7 sur 15 CFSA-AFTEC Version 1.0 – 05/02/2015 Mairie de Saint Jean de la Ruelle

e) iptables proxy transparent

a) iptables

iptables –t nat –A PREROUTING –i $LAN_IF –p tcp --dport 80 -j REDIRECT --to-port 3128

#PROXY

iptables -A OUTPUT -o $WAN_IF -p TCP --sport 3128 -j ACCEPT

iptables -A INPUT -i $WAN_IF -p TCP --dport 3128 -j ACCEPT

iptables -A OUTPUT -o $LAN_IF -p TCP --sport 3128 -j ACCEPT

b) squid

Ajouter transparent à coté 3128

Page 9: PROXY SQUID-SQARDquentinbry.sitew.fr/fs/procedures2/cnxxg-Bry_quentin_procedure_squid_squidguard.pdfSquid-SquidGuard Quentin BRY Guide de Procédure Page 3 sur 15 CFSA-AFTEC Version

Squid-SquidGuard Quentin BRY Guide de Procédure Page 8 sur 15 CFSA-AFTEC Version 1.0 – 05/02/2015 Mairie de Saint Jean de la Ruelle

II) SQUIDGUARD :

SquidGuard.conf et squidguard.conf.default :

Différencier 2 fichiers :

Commande :

apropos compare

diff « chemin fichier 1 » « chemin fichier 2 »

Enlever les commentaires du fichier (voir commande cat |egrep squid.conf)

Télécharger blacklist:

wget ftp://ftp.univ-tlse1.fr/pub/reseau/cache/squidguard_contrib/blacklists.tar.gz

Et le décompresser dans /var/lib/squidguard/db (tar –xzf)

Pour voir les noms des catégories aller dans /var/lib/squidguard/db/blacklists/global_usage

Pour localiser un programme :

Commande : wish « nom du programme »

Modifier le fichier squid.conf pour activer squidguard :

cache_dir ufs /var/spool/squid3 1024 256 256

cache_mem 128 MB

maximum_object_size 15 MB

url_rewrite_program /usr/bin/squidGuard -c /etc/squidguard/squidGuard.conf

Page 10: PROXY SQUID-SQARDquentinbry.sitew.fr/fs/procedures2/cnxxg-Bry_quentin_procedure_squid_squidguard.pdfSquid-SquidGuard Quentin BRY Guide de Procédure Page 3 sur 15 CFSA-AFTEC Version

Squid-SquidGuard Quentin BRY Guide de Procédure Page 9 sur 15 CFSA-AFTEC Version 1.0 – 05/02/2015 Mairie de Saint Jean de la Ruelle

a) Ajouter des catégories dans squidguard :

dest audio-video {

domainlist blacklists/audio-video/domains

urllist blacklists/audio-video/urls

}

En début de fichier :

Src admin {

Ip 192.168.32.20

Src LAN {

Ip 192.168.32.0/24

b) Redirection

Créer dans acl (squidguard):

LAN {

Pass !audio-video any

Redirect http://google.fr

}

Donner les droits à l’utilisateur proxy

Chown –R proxy:proxy blacklists en étant dans le chemin /var/lib/squidguard/db

c) Créer base de données :

su proxy

squidGuard –C all –d => -d pour voir les erreurs

Page 11: PROXY SQUID-SQARDquentinbry.sitew.fr/fs/procedures2/cnxxg-Bry_quentin_procedure_squid_squidguard.pdfSquid-SquidGuard Quentin BRY Guide de Procédure Page 3 sur 15 CFSA-AFTEC Version

Squid-SquidGuard Quentin BRY Guide de Procédure Page 10 sur 15 CFSA-AFTEC Version 1.0 – 05/02/2015 Mairie de Saint Jean de la Ruelle

III) Whitelist

Si je veux autoriser seulement certains sites dans un domaine bloqué, comme par exemple

youtube.com et deezer.com, vous devez créer un fichier « domains.diff dans le dossier du domaine

bloqué (ici var/lib/squidguard/db/audio-video).

Ensuite, modifier ce fichier et ajoutez-y les 2 sites à débloquer en ajoutant un tiret devant eux.

Ex : -youtube.com

-deezer.com

Ensuite, il suffit de taper la commande « squidGuard –u » pour mettre à jour les bases de données

sans toucher aux fichiers contenant les domaines.

Enfin, tapez la commande « squid3 –k reconfigure ».

Page 12: PROXY SQUID-SQARDquentinbry.sitew.fr/fs/procedures2/cnxxg-Bry_quentin_procedure_squid_squidguard.pdfSquid-SquidGuard Quentin BRY Guide de Procédure Page 3 sur 15 CFSA-AFTEC Version

Squid-SquidGuard Quentin BRY Guide de Procédure Page 11 sur 15 CFSA-AFTEC Version 1.0 – 05/02/2015 Mairie de Saint Jean de la Ruelle

IV) Les Logs

Pour squid3 : /var/log/squid3 il y a le fichier access.log qui contient les connexions des utilisateurs et

le fichier cache.log qui liste le fonctionnement du mode cache.

Pour squidGuard : /var/log/squid/ il y a le fichier SquidGuard.log qui suit les états de fonctionnement

de squidGuard et ses bases de données.

a) Rotation des logs

D’un point de vue légal, il faut stocker les fichiers de logs pendant un an.

Nous allons donc mettre en place une rotation des logs sur 366 jours (années bissextiles).

Pour cela, il faut modifier le fichier squid.conf et y ajouter la ligne suivante :

logfile_rotate 366

Ensuite, il faut effectuer une rotation des logs tous les jours, pour cela il faut créer un script dans

/root/cron.daily/ (pour tous les jours) que l’on nommera rotate.sh.

Mais pour nos tests nous allons le mettre dans /etc/init.d/ pour une rotation des logs toutes les 30

minutes.

Dans ce fichier, écrivez ceci :

squid3 –k rotate (cela permet la rotation des logs)

Il nous faut maintenant rendre ce script exécutable avec la commande « chmod 770 rotate.sh »(à

exécuter dans le dossier contenant le script).

Nous allons maintenant mettre en place la tâche planifiée dans le fichier etc/crontab/ Ajoutez la

ligne suivante :

/30 * * * * root /etc/init.d/rotate.sh

Votre rotation des logs est opérationnelle.

Page 13: PROXY SQUID-SQARDquentinbry.sitew.fr/fs/procedures2/cnxxg-Bry_quentin_procedure_squid_squidguard.pdfSquid-SquidGuard Quentin BRY Guide de Procédure Page 3 sur 15 CFSA-AFTEC Version

Squid-SquidGuard Quentin BRY Guide de Procédure Page 12 sur 15 CFSA-AFTEC Version 1.0 – 05/02/2015 Mairie de Saint Jean de la Ruelle

V) Automatisation de la mise à jours de la base de

données de SquidGuard

Pour automatiser la mise à jour des blacklists SquidGuard, il faut mettre en place le script suivant :

#!/bin/sh

# INITIALISATION DES VARIABLES

blacklisturl1=ftp://ftp.univ-

tlse1.fr/pub/reseau/cache/squidguard_contrib/blacklists.tar.gz

blacklistfile1=blacklists.tar.gz

blacklistdir=/var/lib/squidguard/db/

result=1

detail=""

# TELECHARGEMENT DES BLACKLISTS

cd $blacklistdir

rm $blacklistfile1

wget $blacklisturl1

# SI TELECHARGEMENT OK

if [ -f "$blacklistfile1" ]

then

# ARRET DE SQUID

/etc/init.d/squid3 stop

sleep 10

nbre_deamon=`ps aux|grep -e squid3|wc -l`

if [ $nbre_deamon -eq 1 ]

then

detail="$detail Arrêt deamon Squid3 OK.\n"

else

detail="$detail Erreur arrêt deamon Squid3.\n"

result=0

fi

# MISE EN PLACE 1ERE BLACKLIST

if [ -f "$blacklistfile1" ]

then

rm -R ./blacklists_old

mv ./blacklists ./blacklists_old

tar xvzf $blacklistfile1

detail="$detail Téléchargement fichier $blacklistfile1 OK.\n"

else

result=0

detail="$detail Erreur téléchargement fichier $blacklistfile1.\n"

fi

# GENERATION DES FICHIERS DB

/usr/bin/squidGuard -C all -d

# RECHERCHE DU NOMBRE DE FICHIER DB GENERE

find /var/lib/squidguard/db/blacklists/ -name "*.db" -print > db.txt

find /var/lib/squidguard/db/BL/ -name "*.db" -print >> db.txt

find /var/lib/squidguard/db/mylists/ -name "*.db" -print >> db.txt

nbre_DB=`cat db.txt|wc -l`

Page 14: PROXY SQUID-SQARDquentinbry.sitew.fr/fs/procedures2/cnxxg-Bry_quentin_procedure_squid_squidguard.pdfSquid-SquidGuard Quentin BRY Guide de Procédure Page 3 sur 15 CFSA-AFTEC Version

Squid-SquidGuard Quentin BRY Guide de Procédure Page 13 sur 15 CFSA-AFTEC Version 1.0 – 05/02/2015 Mairie de Saint Jean de la Ruelle

list_DB=`cat db.txt`

# RECHERCHE DU NOMBRE DE FICHIERS DB A GENERER STIPULE DANS SQUIDGUARD.CONF

nbre_DB_conf=`cat /etc/squidguard/squidGuard.conf |grep -E

"^[^#](domainlist|urllist)"

|wc -l`

# TEST ERREUR DE GENERATION FICHIERS DB

if [ $nbre_DB_conf -eq $nbre_DB ]

then

detail="$detail Génération des fichiers DB OK.\n"

else

detail="$detail Erreur de génération des fichiers DB.\n"

fi

# DROITS SUR LES FICHIERS DE BLACKLISTS

chown -R proxy:proxy $blacklistdir

# REDEMERRAGE DE SQUID

/etc/init.d/squid3 start

sleep 10

nbre_deamon=`ps aux|grep -e squid3|wc -l`

if [ $nbre_deamon -gt 1 ]

then

detail="$detail Démarrage deamon Squid3 OK.\n"

else

detail="$detail Erreur démarrage deamon Squid3.\n"

result=0

fi

nbre_deamon=`ps aux|grep -e squidGuard|wc -l`

if [ $nbre_deamon -gt 1 ]

then

detail="$detail Démarrage module SquidGuard OK.\n"

else

detail="$detail Erreur démarrage module SquidGuard.\n"

result=0

fi

Ensuite, placer ce script dans le dossier /etc/cron.daily/ pour qu’il s’exécute tous les jours.

Page 15: PROXY SQUID-SQARDquentinbry.sitew.fr/fs/procedures2/cnxxg-Bry_quentin_procedure_squid_squidguard.pdfSquid-SquidGuard Quentin BRY Guide de Procédure Page 3 sur 15 CFSA-AFTEC Version

Squid-SquidGuard Quentin BRY Guide de Procédure Page 14 sur 15 CFSA-AFTEC Version 1.0 – 05/02/2015 Mairie de Saint Jean de la Ruelle

VI) Proxy Https

Pour mettre en place le proxy HTTPS Transparent il faut recompiler squid3 en y ajoutant une

directive :

- On commence par installer les outils de compilation :

apt-get install devscripts build-essential fakeroot libssl-dev

- On télécharge ensuite les sources de squid3 :

apt-get source squid3

- On installe ensuite les dépendances pour la compilation :

apt-get build-rep squid3

- On édite les règles de compilation :

nano /debian/rules

- On rajoute la directive --enable-ssl \

- On compile ensuite squid3 : ./configure puis debuild –us –uc –b

- On installe ensuite les paquets avec dpkg -i squid3_*.deb squid3-common_*.deb

- Il nous faut ensuite générer les certificats auto-signés obligatoire pour l’utilisation de HTTPS :

On crée le dossier accueillant les certificats dans /etc/squid3 avec mkdir ssl

On se place dans le dossier /etc/squid3/ssl

On crée d’abord la clé privée : openssl genrsa -des3 -out privkey.pem 2048

On crée ensuite notre certificat CA privé :

openssl req -new -x509 -days 3650 -key privkey.pem -out cacert.pem

- Il nous faut maintenant définir les paramètres d’écoutes pour le protocole HTTPS dans

squid3, pour cela il faut rajouter, dans le fichier /etc/squid3/squid.conf la ligne :

https_port 3139 transparent cert=/etc/squid3/ssl/cacert.pem

key=/etc/squid3/ssl/privkey_noPwd.pem (tout sur la même ligne)

On redémarre ensuite squid3 : /etc/init.d/squid3 restart

Page 16: PROXY SQUID-SQARDquentinbry.sitew.fr/fs/procedures2/cnxxg-Bry_quentin_procedure_squid_squidguard.pdfSquid-SquidGuard Quentin BRY Guide de Procédure Page 3 sur 15 CFSA-AFTEC Version

Squid-SquidGuard Quentin BRY Guide de Procédure Page 15 sur 15 CFSA-AFTEC Version 1.0 – 05/02/2015 Mairie de Saint Jean de la Ruelle

Test :

Sur notre poste client, nous vérifions qu’aucun paramètre proxy n’est renseigné.

Nous essayons ensuite de nous rendre sur un site web devant étre bloqué par squidguard , par

exemple https://deezer.com.

Il faut obligatoirement accepter les erreurs de certificat puisque nous disposons seulement d’un

certificat auto-signé qui n’est donc pas légitime.

Nous constatons que nous sommes bien redirigés vers https://google.fr

Nous essayons ensuite de se rendre sur un site non bloqué par squidguard , par exemple

https://secure.fnac.com

Nous constatons que des erreurs de chargement du style CSS existent.

Pour corriger ces erreurs il faut se rendre dans les paramètres d’IE –-> Onglet avancé, puis dans le

bandeau déroulant se rendre dans la section sécurité puis décocher : Signaler les incohérences

d’adresses de certificats*

Les sites non bloqués seront donc désormais chargés correctement.