URL: https://linuxfr.org/forums/linux-general/posts/proxy-transparent-avec-iptablessquidsquidguard Title: Proxy transparent avec iptables/squid/squidGuard Authors: Funix Date: 2008年10月03日T20:21:25+02:00 Tags: Score: 0 Proxy transparent avec iptables/squid/squidGuard 'lut, J'avais mis en place un filtrage parental sur la base de squid et squidGuard basé sur l'authentification utilisateur comme décrit ici [http://www.funix.org/fr/linux/main-linu](http://www.funix.org/fr/linux/main-linu) ... menu#Squid il se trouve que les minots ont découvert maintenant le moyen de le contourner (facile il suffit de configurer le navigateur avec une connexion directe au net). Du coup maintenant je compte maintenant installer un proxy transparent en laissant tomber l'authentification puisque les deux ne sont pas compatibles. Pour avoir une idée de mon réseau local familial ça donne ça internet <-> livebox 192.168.1.1 <-> routeur 192.168.2.1 <-> eth1(192.168.2.11) serveur eth0(192.168.26.100) <-> eth0 (192.168.26.50) poste client le routeur est là pour pallier aux insuffisances de la livebox notamment en terme de wifi. Le serveur a deux cartes réseau, eth1 connecté au routeur avec l’adresse 192.168.2.11 et eth0 connecté au poste client avec l’adresse 192.168.26.100. Par ailleurs j’ai un portable qui se connecte directement au routeur. Du client le proxy transparent marche nickel, mais pas moyen de le faire fonctionner sur le serveur. Voilà la mon squid.conf (version 2.6) http_port 3128 transparent cache_dir ufs /var/spool/squid 40 16 256 cache_effective_user proxy cache_effective_group proxy hierarchy_stoplist cgi-bin ? acl QUERY urlpath_regex cgi-bin \? no_cache deny QUERY access_log /var/log/squid/access.log squid cache_log /var/log/squid/cache.log cache_store_log /var/log/squid/store.log emulate_httpd_log off dns_timeout 1 minutes dns_nameservers 80.10.246.1 80.10.246.132 redirect_program /usr/local/bin/squidGuard -c /etc/squid/squidGuard.conf redirect_children 5 refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern . 0 20% 4320 acl allowed_hosts src 192.168.26.0/255.255.255.0 acl allowed_hostsbis src 192.168.2.0/255.255.255.0 acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl to_localhost dst 127.0.0.0/8 acl SSL_ports port 443 563 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 22 # ssh acl Safe_ports port 443 563 # https, snews acl Safe_ports port 1863 # msn acl Safe_ports port 1025-65535 # unregistered ports acl purge method PURGE acl CONNECT method CONNECT http_access allow manager localhost http_access deny manager http_access allow purge localhost http_access deny purge http_access deny !Safe_ports http_access allow allowed_hosts http_access allow allowed_hostsbis http_access allow localhost # Interdit tout le reste http_access deny all # Autorise les réponses pour tout le monde (par défaut) http_reply_access allow all # Autorise le protocole icp pour tout le monde (par défaut) icp_access allow all coredump_dir /var/spool/squid et voilà le rc.firewall Code: #!/bin/bash iptables -F iptables -F -t nat # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. modprobe iptable_nat # Turn on IP forwarding echo 1> /proc/sys/net/ipv4/ip_forward echo 1> /proc/sys/net/ipv4/conf/all/rp_filter iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.26.100:3128 #iptables -t nat -p tcp -A POSTROUTING -s 192.168.2.11 --dport 80 -j SNAT --to 192.168.2.11:3128 #iptables -A PREROUTING -s 192.168.2.0/255.255.255.0 -p tcp --dport 80 -j DNAT --to-destination 192.168.2.11:3128 #iptables -t nat -A PREROUTING -s 192.168.26.0/255.255.255.0 -p tcp --dport 80 -j DNAT --to-destination 192.168.26.100:3128 #iptables -t nat -A PREROUTING -d 192.168.2.1 -p tcp --dport 80 -j REDIRECT --to-ports 3128 #iptables -t nat -A PREROUTING -o eth1 -p tcp --dport 80 -j REDIRECT --to-ports 3128 #iptables -t nat -A PREROUTING -s localhost -p tcp --dport 80 -j REDIRECT --to-port 3128 #iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-ports 3128 #iptables -t nat -A PREROUTING -s 192.168.26.0/255.255.255.0 -p tcp --dport 80 -j REDIRECT --to-ports 3128 #iptables -t nat -A PREROUTING -s localhost -p tcp --dport 80 -j REDIRECT --to-port 3128 #iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128 #iptables -t nat -A PREROUTING -d 192.168.2.1 -p tcp --dport 80 -j REDIRECT --to-port 3128 # In the NAT table (-t nat), Append a rule (-A) after routing (POSTROUTING) # which says to MASQUERADE the connection (-j MASQUERADE). iptables -t nat -A POSTROUTING -s 192.168.26.0/24 -j MASQUERADE # Allows forwarding specifically to our LAN iptables -A FORWARD -s 192.168.26.0/24 -j ACCEPT exit 0 En commentaires apparaissent tous mes différents essais. Je sens que le problème vient des règles iptables mais là sérieusement je coince. J'apprécierais si quelqu'un pouvait me dépanner. Olivier

AltStyle によって変換されたページ (->オリジナル) /