Bonsoir à tous,
Après de longues heures de recherches et de tests en tous genres, je me décide à venir vers vous pour tenter de solutionner mon problème.
BOX 192.168.1.1
Linux Proxy 3.2.0-4-amd64 #1 SMP Debian 3.2.65-1+deb7u1 x86_64 GNU/Linux
PROXY/FIREWALL
eth0 192.168.1.101/24 GW 192.168.1.1
eth1 172.16.1.254/24
Linux Mint 17 Qiana 3.13.0-24-generic
MINT
eth0 172.16.1.1/24 GW 172.16.1.254 DNS 192.168.1.1
Après installation et configuration de Squid3 (configuration basique)
dont voici la config:
http_port 3128
visible_hostname Proxy.Test
access_log /var/log/squid3/access.log
shutdown_lifetime 2 seconds
ACL
acl LAN src 172.16.1.0/24
acl banned dstdom_regex "/etc/squid3/banned.txt"
acl domain dstdomain .thecure.com
FILTERS
http_access allow LAN !banned !domain
Je configure également mon browser Firefox pour qu'il passe par le proxy donc 172.16.1.254:3128
Firewall sur stop on autorise tout, activation du routage et du Nat
Tout fonctionne à merveille
Par contre pour que le proxy soit transparent, c'est une autre paire de manches
Je rajoute transparent ( j'ai lu que c'était intercept maintenant?) après le port dans le fichier de configuration de squid3 donc http_port 3128 transparent
Y a-t-il autre chose à rajouter dans le fichier?
Pas de proxy pour Firefox
Activation du firewall
L'ensemble des règles ont été testées et fonctionnent.
Par contre la/les règle(s) au point 12 concernant le proxy ne marche(nt) pas :(
Pas de redirection me semble-t-il!
Merci d'avance pour le temps que vous passerez à m'aider.
Voici la config
!/bin/bash
start() {
echo "- Initialisation du Firewall:"
# Vidage des tables et des regles
iptables -t filter -F
iptables -t filter -X
iptables -t nat -F
iptables -t nat -X
echo "- 01. Remise des regles par defaut: [OK]"
# Interdire toutes les connections entrantes et sortantes
iptables -t filter -P INPUT DROP
iptables -t filter -P OUTPUT DROP
iptables -t filter -P FORWARD DROP
echo "- 02. Interdire toutes les connections entrantes et sortantes: [OK]"
# Autoriser loopback
iptables -t filter -A OUTPUT -o lo -p all -j ACCEPT
iptables -t filter -A INPUT -i lo -p all -j ACCEPT
echo "- 03. Autoriser Loopback: [OK]"
# On drop tout ce qui est invalide
iptables -t filter -A INPUT -m state --state INVALID -j DROP
iptables -t filter -A OUTPUT -m state --state INVALID -j DROP
echo "- 04. Drop tout ce qui est invalide: [OK]"
# Ne pas casser les connection etablies
iptables -t filter -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t filter -A OUTPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t filter -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
echo "- 05. Ne pas casser les connection etablies: [OK]"
# Autoriser SSH
# Max 2 connections possibles
iptables -t filter -A INPUT -p tcp --dport 22 -m connlimit --connlimit-mask 24 --connlimit-above 2 -j REJECT
iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 22 -j ACCEPT
echo "- 06. Autoriser SSH: [OK]"
# Autoriser ICMP -Ping-
iptables -t filter -A FORWARD -p icmp -j ACCEPT
iptables -t filter -A INPUT -p icmp -j ACCEPT
iptables -t filter -A OUTPUT -p icmp -j ACCEPT
# Limite du ping
iptables -t filter -A INPUT -p icmp -m limit --limit 2/s --limit-burst 10 -j ACCEPT
iptables -t filter -A INPUT -p icmp -j REJECT
echo "- 07. Autoriser Icmp: [OK]"
# Autoriser Http et le Https
iptables -t filter -A OUTPUT -p tcp --dport 80 -o eth0 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 443 -o eth0 -j ACCEPT
iptables -t filter -A FORWARD -p tcp --dport 80 -s 172.16.1.1 -o eth0 -j ACCEPT
iptables -t filter -A FORWARD -p tcp --dport 443 -s 172.16.1.1 -o eth0 -j ACCEPT
iptables -t filter -A FORWARD -p tcp --dport 9091 -s 172.16.1.1 -o eth0 -j ACCEPT
echo "- 08. Autoriser Http et Https: [OK]"
# Autoriser DNS
iptables -t filter -A OUTPUT -p udp --dport 53 -o eth0 -j ACCEPT
iptables -t filter -A FORWARD -p udp --dport 53 -o eth0 -j ACCEPT
echo "- 09. Autoriser DNS: [OK]"
# Activation du routage
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "- 10. Activation du routage: [OK]"
# Activation du NAT
#iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 192.168.1.101
echo "- 11. Activation du NAT: [OK]"
# Redirection vers le Proxy
#iptables -t nat -A PREROUTING -s 192.168.1.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
#iptables -t nat -A OUTPUT -p tcp --dport 80 -m owner --gid-owner proxy -j ACCEPT
#iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination 172.16.1.254:3128
echo "- 12. Redirection vers le Proxy Squid3: [OK]"
echo
}
stop() {
echo "- Remise du firewall par defaut:"
# Vidage des tables et des regles
iptables -t filter -F
iptables -t filter -X
iptables -t nat -F
iptables -t nat -X
echo "- 01. Vidage des tables et des regles: [OK]"
# Regles par defaut
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
echo "- 02. Autoriser toutes les connections entrantes et sortantes: [OK]"
# Activation du routage
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "- 03. Activation du routage: [OK]"
# Activation du NAT
#iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 192.168.1.101
echo "- 04. Activation du NAT: [OK]"
echo
}
restart() {
echo "- Redemarrage du firewall:"
echo
stop && sleep 2 && start
echo
echo "- Arret et redemarrage du firewall: [OK]"
echo
}
status() {
echo "- Liste des regles"
iptables -L -v
echo
}
usage() {
echo "Usage: $0 {start|stop|restart|status}"
exit 1
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
status)
status
;;
*)
usage
;;
esac
exit 0
# lu vite fait
Posté par NeoX . Évalué à 2.
j'ai lu vite fait,
ton proxy fonctionne, puisque quand tu le met specifiquement là ou il faut dans la config du navigateur cela fonctionne.
quand il doit etre transparent, il faut que tu renvoie le flux port 80, sur la carte reseau interne (eth1)
vers le port 3128 du proxy
apparemment dans le parefeu start il te manque cette regle
il y a bien une ligne qui y ressemble mais elle est pour
-i eth0
c'est à dire que qui ressort du parefeu par la carte eth0
et toi tu veux que ce soit transparent pour une machine sur le reseau 172.16.1.0/24
# Redirection
Posté par nono14 (site web personnel) . Évalué à 2.
Tout le monde sauf le proxy transparent, sinon ça boucle…
Système - Réseau - Sécurité Open Source - Ouvert à de nouvelles opportunités
# Suite Proxy transparent
Posté par esox . Évalué à 1.
J'ai trouvé une solution à mon problème
Voici ce que j'ai modifié dans la config du firewall
Proxy Squid3
# "Acceptation en input du port 3128"
iptables -t filter -A INPUT -p tcp --dport 3128 -i eth1 -j ACCEPT
# "Redirection du port 80 vers 3128"
iptables -t nat -A PREROUTING -p tcp --dport 80 -s 172.16.1.1 -j DNAT --to 172.16.1.254:3128
et tout fonctionne!
Merci à vous.
esox
[^] # Re: Suite Proxy transparent
Posté par NeoX . Évalué à 2.
simplification et passage à l'echelle :
dans ta ligne PREROUTING, remplace
-s 172.16.1.1
par-i eth1
et ca deviendra alors transparent pour tous les postes du reseau 172.16.1.0/24
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.