Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 03/10/2008, à 12:27

Funix

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-linux.php?ref=proxy&page=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

#!/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


FUNIX - https://www.funix.org
Mettez un pingouin dans votre PC
Blog - https://olivier.hoarau.org

Hors ligne

#2 Le 23/11/2008, à 12:06

Fozzy

Re : Proxy transparent avec iptables/squid/squidGuard

en laissant tomber l'authentification puisque les deux ne sont pas compatibles.

comment ça pas compatible ?
c'est vrai ? J'ai justement l'intention d'installer un ubuntu server pour faire un filtrage adapté aux personnes se connectant (soit mes enfants, soit moi)
quelqu'un peut confirmer ?:|

Hors ligne