Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
netadmin:filtrage-web-squidguard [2017/12/29 14:15] – créée yoann | netadmin:filtrage-web-squidguard [2024/07/07 10:17] (Version actuelle) – yoann | ||
---|---|---|---|
Ligne 3: | Ligne 3: | ||
====== Filtrage du web avec SquidGuard ====== | ====== Filtrage du web avec SquidGuard ====== | ||
- | ===== Installation du proxy ===== | + | Squidguard est un plugin de filtrage d'URL à associer au programme squid. Il faut installer et paramétrer le proxy squid en premier lieu. La procédure est détaillé dans le wiki [[netadmin: |
- | Squidguard est un plugin de filtrage d'URL à associer au programme squid. Il faut installer et paramétrer le proxy squid en premier lieu. | ||
- | |||
- | <code bash> | ||
- | $ sudo apt-get install squid | ||
- | </ | ||
- | |||
- | ===== Configuration de squid ===== | ||
- | |||
- | Editer le fichier **/ | ||
- | |||
- | On définit ci-dessous un réseau local **lan** auquel on donnera le droit d’accès. | ||
- | < | ||
- | acl lan src 192.168.0.0/ | ||
- | </ | ||
- | |||
- | Avant la directive d' | ||
- | | ||
- | < | ||
- | http_access allow lan | ||
- | http_access deny all | ||
- | </ | ||
- | |||
- | ===== Contrôle du service ===== | ||
- | |||
- | Le démarrage/ | ||
- | |||
- | < | ||
- | $ sudo service squid3 restart | ||
- | </ | ||
- | |||
- | Pour prendre en compte les modifications du fichier de configuration sans arrêter le service: | ||
- | |||
- | <code bash> | ||
- | $ sudo squid3 -k reconfigure | ||
- | </ | ||
===== Filtrage ===== | ===== Filtrage ===== | ||
Ligne 77: | Ligne 42: | ||
</ | </ | ||
- | Lorsque une ressource destination non autorisée est demandée, la directive **redirect** est utilisée par squiGuard. Des fichiers cgi d' | + | Lorsque une ressource destination non autorisée est demandée, la directive **redirect** est utilisée par squiGuard. |
+ | |||
+ | Ci dessous les variables disponibles lors de la redirection: | ||
+ | |||
+ | ^ %a | Adresse IP du client. | ||
+ | ^ %i | Identifiant utilsateur (RFC931, LDAP or mySQL) ou " | ||
+ | ^ %n | nom de domaine du client ou " | ||
+ | ^ %p | URI de la requête | | ||
+ | ^ %s | source group du client ou " | ||
+ | ^ %t | target group: la destination évaluée or " | ||
+ | ^ %u | URL | | ||
- | |||
- | |||
===== Script de mise à jour des listes ===== | ===== Script de mise à jour des listes ===== | ||
Ligne 89: | Ligne 63: | ||
- | ===== Rendre le proxy transparent ===== | ||
- | |||
- | Le mode transparent permet de filtrer les postes clients sans configuration spécifique coté client. Il a cependant ces limites notamment avec **https**. Le filtrage transparent ne fonctionnera pas pour tous les sites en https qui considéreront une attaque "man in the middle" | ||
- | |||
- | ==== Configurer squid ==== | ||
- | |||
- | Activer le mode transparent en modifiant le fichier de configuration de squid3: | ||
- | |||
- | < | ||
- | http_port 3128 transparent | ||
- | </ | ||
- | |||
- | Modifier la configuration du système pour autoriser le routage de paquets. La procédure est décrite dans le wiki [[netadmin: | ||
- | |||
- | |||
- | ==== Règles iptables ==== | ||
- | |||
- | Dans les règles présentées ci-dessous: | ||
- | * **lan** est le nom de l' | ||
- | * **wan** est le nom de l' | ||
- | * **192.168.0.254** est l' | ||
- | |||
- | |||
- | Règles de bypass du flux https | ||
- | |||
- | <code bash> | ||
- | iptables -t filter -A FORWARD -m state --state RELATED, | ||
- | iptables -t filter -A FORWARD -i lan -p tcp --dport 443 -j ACCEPT | ||
- | iptables -t nat -A POSTROUTING -o wan -j SNAT --to-source 192.168.0.254 | ||
- | </ | ||
- | |||
- | Règle de NAT rendant squid transparent: | ||
- | < | ||
- | iptables -t nat -A PREROUTING -i lan -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.254: | ||
- | iptables -t nat -A PREROUTING -i wan -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128 | ||
- | </ | ||
===== Configuration des clients ===== | ===== Configuration des clients ===== | ||
Ligne 160: | Ligne 98: | ||
* http:// | * http:// | ||
* http:// | * http:// | ||
+ | * http:// | ||
+ | * https:// | ||
+ | * https:// |