informatique:logiciels:squid
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| informatique:logiciels:squid [2009/02/06 10:13] – créée pteu | informatique:logiciels:squid [2021/09/24 08:10] (current) – [Désactiver le cache] pteu | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | {{tag> | ||
| - | ======Squid====== | + | ======Squid |
| - | Squid est un proxy libre. | + | {{ : |
| - | Il se peut qu'il ne se lance pas pour cause de : | + | [[http:// |
| - | FATAL: Could not determine fully qualified hostname. Please set ' | + | [[http://www.squidguard.org/ |
| - | A ce moment-là il faut, comme indiqué, compléter ''/ | + | =====Installation du couple Squid + Squidguard===== |
| - | visible_hostname | + | Installation : |
| + | <code bash> | ||
| + | aptitude install squidguard | ||
| + | </code> | ||
| - | En l' | + | ====Config |
| - | Il faut maintenant permettre à votre IP d' | + | Réduction du fichier de conf de Squid, un peu trop verbeux : |
| + | <code bash> | ||
| + | cd /etc/squid/ | ||
| + | mv squid.conf | ||
| + | grep -Ev '^$|^[[:blank: | ||
| + | </ | ||
| - | | + | Personnalisation du squid.conf : |
| - | http_access allow my_lan | + | <code bash> |
| - | [..] | + | # timestamp des logs avec la date " |
| - | # And finally deny all other access | + | logformat squid %tl.%03tu %6tr %>a %Ss/ |
| - | | + | # permettre aux IPs e notre LAN de sortir ! |
| + | acl localnet | ||
| + | http_access allow localnet | ||
| + | </ | ||
| + | |||
| + | Les connexions HTTPS utilisent la méthode connect et sont permises par les directives: | ||
| + | <code bash> | ||
| + | acl SSLPort 443 4443 8443 | ||
| + | acl CONNECT method CONNECT | ||
| + | http_access allow CONNECT SSLPort | ||
| + | </ | ||
| + | |||
| + | Ajout gestion du FTP (à ajuster selon la conf en place): | ||
| + | <code bash> | ||
| + | acl SSL_ports port 21 | ||
| + | acl ftp proto FTP | ||
| + | http_access allow ftp | ||
| + | </ | ||
| + | |||
| + | Tester la conf de Squid et relancer le service si OK : | ||
| + | <code bash> | ||
| + | squid -k parse | ||
| + | systemctl reload squid | ||
| + | </ | ||
| + | |||
| + | ====Ajout de Squidguard==== | ||
| + | |||
| + | Editer le fichier dsuid.conf : | ||
| + | <code bash> | ||
| + | # conf squidguard | ||
| + | url_rewrite_program / | ||
| + | url_rewrite_children 4 | ||
| + | </ | ||
| + | |||
| + | Copier le template de page d' | ||
| + | <code bash> | ||
| + | gunzip / | ||
| + | mv / | ||
| + | chown www-data: | ||
| + | chmod +x / | ||
| + | </ | ||
| + | |||
| + | Télécharger et installer des blacklistes : | ||
| + | <code bash> | ||
| + | cd / | ||
| + | wget ftp:// | ||
| + | tar xzf blacklists.tar.gz | ||
| + | chown -R proxy:proxy blacklists | ||
| + | cd blacklists | ||
| + | |||
| + | # vérifier le contenu de ce qu'on vient de télécharger : | ||
| + | ls -l | ||
| + | </ | ||
| + | |||
| + | Configurer les blacklistes " | ||
| + | <code bash> | ||
| + | dbhome / | ||
| + | logdir / | ||
| + | src localnet { | ||
| + | ip 192.168.0.0/ | ||
| + | } | ||
| + | dest porn { | ||
| + | urllist | ||
| + | domainlist | ||
| + | expressionlist | ||
| + | } | ||
| + | acl { | ||
| + | localnet { | ||
| + | pass !porn any | ||
| + | } | ||
| + | default { | ||
| + | pass local none | ||
| + | redirect http:// | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Compiler les blacklistes | ||
| + | <code bash> | ||
| + | su proxy | ||
| + | squidGuard -C all | ||
| + | |||
| + | # Vérification : | ||
| + | tail -f / | ||
| + | </ | ||
| + | |||
| + | |||
| + | =====En vrac===== | ||
| + | |||
| + | On peut aussi tuner les paramètres suivants (toujours dans le même fichier) : | ||
| + | <code bash> | ||
| + | # numéro du port d' | ||
| + | http_port 3128 | ||
| + | # taille du cache en mémoire vive | ||
| + | # (attention le cache est perdu lors d'un squid reload/ | ||
| + | cache_mem 8 MB | ||
| + | # format, emplacement et taille du cache sur le disque | ||
| + | # ici 100 MB de cache dans le fichier / | ||
| + | # 16 et 256 correspondent au nombre de dossiers niveau 1 et niveau 2 utilisés pour le cache | ||
| + | cache_dir ufs / | ||
| + | </ | ||
| + | |||
| + | ====Proxy transparent==== | ||
| + | |||
| + | Pour créer un proxy transparent, | ||
| + | <code bash> | ||
| + | iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-dest proxyhost: | ||
| + | iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-dest proxyhost: | ||
| + | </ | ||
| + | Cela redirige toutes les requêtes HTTP et HTTPS vers le proxy Squid de manière transparente. | ||
| + | |||
| + | |||
| + | =====Tips===== | ||
| + | |||
| + | | ||
| + | * afficher les timestamp des logs au format //human readable// : | ||
| + | <code bash> | ||
| + | cat access.log | perl -p -e ' | ||
| + | |||
| + | # ou avec le très bon viewer de logs ccze : | ||
| + | cat access.log | ccze -CA | ||
| + | |||
| + | # ou modifiant le logformat dans le fichier de conf de squid (/ | ||
| + | logformat squid %tl.%03tu %6tr %>a %Ss/ | ||
| + | </ | ||
| + | |||
| + | ====Lenteur au redémarrage==== | ||
| + | |||
| + | Squid est long à redémarrer car il attend que les sockets se ferment d' | ||
| + | <code bash squid.conf> | ||
| + | shutdown_lifetime 10 seconds | ||
| + | </ | ||
| + | ====Debug==== | ||
| + | |||
| + | Pour [[https:// | ||
| + | |||
| + | Pour débugguer les ACLs (section 28) : | ||
| + | <code bash squid.conf> | ||
| + | debug_options 28,9 | ||
| + | </ | ||
| + | Redémarrer le service pour activer l' | ||
| + | |||
| + | ====Désactiver le cache==== | ||
| + | |||
| + | Pour désactiver le cache il suffit, soit de bloquer le cache avec l'ACL : | ||
| + | <code bash> | ||
| + | cache deny all | ||
| + | </ | ||
| + | ... soit de commenter les directives '' | ||
| + | =====Erreurs===== | ||
| + | |||
| + | Il se peut qu'il ne se lance pas avec l' | ||
| + | <code bash> | ||
| + | FATAL: Could not determine fully qualified hostname. Please set ' | ||
| + | </ | ||
| + | |||
| + | A ce moment-là il faut compléter le fichier de configuration ''/ | ||
| + | <code bash> | ||
| + | visible_hostname < | ||
| + | </ | ||
| + | |||
| + | |||
| + | =====Ressources===== | ||
| + | |||
| + | * http:// | ||
informatique/logiciels/squid.1233915227.txt.gz · Last modified: 2013/10/14 20:55 (external edit)