Salut à tous,
J'ai un problème un peu bizarre sur squid 3.1.23 sur centos 6.9, a savoir que c'est un squid transparent avec une règle de redirection iptables pour rediriger tout le 80 sur 3128. J'ai des fois des problème de blocage du aux file descriptors max atteint. Ces problème sont générés par des boucles (visible dans les log du cache squid) de ce style:
2018/06/25 10:35:41| WARNING: Forwarding loop detected for:
GET / HTTP/1.1
User-Agent: Microsoft Office/16.0 ( 16.0.9328; Pro)
Accept: application/vnd.ms-nexus-rules-v13+xml
X-MS-Collection-Policy: ExternalRestrictive, Heartbeat
X-MS-Process-Session-Id: {2364B2E2-6F5B-4D1D-9DBA-B2962A584B4D}
Accept-Encoding: gzip, deflate
Host: 192.168.0.1:3128
Pragma: no-cache
Via: 1.1 exemple.domain.fr (squid/3.1.23), 1.1 exemple.domain.fr (squid/3.1.23), 1.1 exemple.domain.fr (s
quid/3.1.23), 1.1 exemple.domain.fr (squid/3.1.23), 1.1 exemple.domain.fr (squid/3.1.23), 1.1 exemple.dom
ain.fr (squid/3.1.23), 1.1 exemple.domain.fr (squid/3.1.23), 1.1 exemple.domain.fr (squid/3.1.23), 1.1 exampl
e.domin.fr (squid/3.1.23)
X-Forwarded-For: 192.168.0.39, 192.168.0.1, 192.168.0.1, 192.168.0.1, 192.168.0.1, 192.168.0.1, 192.168.0.1, 192.168.
0.1, 192.168.0.1
Cache-Control: max-age=259200
Connection: keep-alive
Ici le problème vient donc de l'ip 192.168.0.39! et encore c'est une petite boulce des fois yen a des centaines!
Ces boucles viennent apparemment de virus/malware, mais en regardant dans les log access.log et cache en même temps je me rends compte que c'est quand un client se connecte directement en web par exemple sur le port du squid, ici 192.168.0.1:3128, même quand je le fais de mon poste ça crée la boucle qui fait bien entendu monter en flèche les file descriptors et peut atteindre la limite à un moment donné...
Sans ça squid marche tout à fait normalement, mais je trouve que c'est quand même une faille... même en augmentant les files descriptors, si deux trois personnes s'amusent à faire ça c'est le plantage temporaire assuré...J'ai vu sur le net que normalement la règle iptables a faire lorsque le routeur et squid sont sur le même serveur (mon cas) c'est celle ci:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
Et j'avais celle là:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.1:3128
J'ai essayé la première, squid marche pareil, et même faille.... Est ce que cela vous parle?
Merci d'avance et bonne journée !
Partager