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 05/01/2021, à 23:30

Roguntu

[RESOLU] Squid plusieurs ports et plusieurs gateway

Bonjour,
J'ai installé squid3 et lu pas mal de trucs mais je n'ai pas trouvé de tuto qui m'aident vraiment.

j'ai besoin de configurer un serveur proxy squid connecté à 3 réseaux et eventuellement plus par la suite (usb2..3..):
eth0 (réseau local RJ45) 192.168.0.3 => gateway 192.168.0.1
eth1 (Modem LTE usb) 192.168.8.100 => gateway 192.168.8.1
usb0 (Modem LTE usb) 192.168.42.133 => gateway 192.168.42.129

Mon proxy écoute sur eth0 les port 3128 et 3129
Il redirige les requêtes du port 3128 sur eth1
et redirige les requêtes du port 3129 sur usb0

Je sais même pas si c'est faisable seulement avec squid ou si il faudra aussi créer des règles dans IP table ou autres?
Toute aide est la bienvenue.
Merci

Roguntu

Dernière modification par Roguntu (Le 07/01/2021, à 22:47)

Hors ligne

#2 Le 07/01/2021, à 22:45

Roguntu

Re : [RESOLU] Squid plusieurs ports et plusieurs gateway

Qui cherche trouve!
Je me suis basé sur le Github de dmegyesi
Merci à lui

Il faut donc bien utiliser iptables
Au cas ou ça intéresse quelqu'un voici ma solution

Le proxy
La config de squid
/etc/squid/squid.conf

acl localnet src 0.0.0.1-0.255.255.255	# RFC 1122 "this" network (LAN)
acl localnet src 10.0.0.0/8		# RFC 1918 local private network (LAN)
acl localnet src 100.64.0.0/10		# RFC 6598 shared address space (CGN)
acl localnet src 169.254.0.0/16 	# RFC 3927 link-local (directly plugged) machines
acl localnet src 172.16.0.0/12		# RFC 1918 local private network (LAN)
acl localnet src 192.168.0.0/16		# RFC 1918 local private network (LAN)
acl localnet src fc00::/7       	# RFC 4193 local private network range
acl localnet src fe80::/10      	# RFC 4291 link-local (directly plugged) machines

acl SSL_ports port 443
acl Safe_ports port 80		# http
acl Safe_ports port 21		# ftp
acl Safe_ports port 443		# https
acl Safe_ports port 70		# gopher
acl Safe_ports port 210		# wais
acl Safe_ports port 1025-65535	# unregistered ports
acl Safe_ports port 280		# http-mgmt
acl Safe_ports port 488		# gss-http
acl Safe_ports port 591		# filemaker
acl Safe_ports port 777		# multiling http
acl CONNECT method CONNECT

http_access deny !Safe_ports

http_access deny CONNECT !SSL_ports



http_port 192.168.0.3:3128 name=3128
http_port 192.168.0.3:3129 name=3129


acl USB0 myportname 3128 src 192.168.0.0/24
http_access allow USB0
tcp_outgoing_address 192.168.8.100 USB0

acl USB1 myportname 3129 src 192.168.0.0/24
http_access allow USB1
tcp_outgoing_address 192.168.42.133 USB1

# USB0 & USB1 Sont juste des noms

Voilà pour squid

Le routing

Ensuite ajouter ces 2 lignes à la fin du fichier:
/etc/iproute2/rt_tables

1 FORUSB0
2 FORUSB1

Créer un fichier, par exemple:
iptable_proxy_rules
et sauvegarder

ip rule add from 192.168.8.0/24 table FORUSB0
ip rule add from 192.168.42.0/24 table FORUSB1

ip route add default via 192.168.8.1 dev eth1 table FORUSB0
ip route add default via 192.168.42.129 dev usb0 table FORUSB1

ip rule add fwmark 3128 table FORUSB0
ip rule add fwmark 3129 table FORUSB1

iptables -A OUTPUT -t mangle -s 192.168.8.100 -j MARK --set-mark 3128
iptables -A OUTPUT -t mangle -s 192.168.42.133 -j MARK --set-mark 3129

puis dans un terminal lancer

source iptable_proxy_rules

Je suis pas sur si il faut redémarer un service pour iptable, j'ai donc redémaré ma machine avant de lancer

source iptable_proxy_rules

Test
Depuis une autre machine sur le réseau local

$ curl --proxy http://192.168.0.3:3128 https://ifconfig.me
14.20.152.125
$ curl --proxy http://192.168.0.3:3129 https://ifconfig.me
166.195.234.17

Recap



# ip route
default via 192.168.0.1 dev eth0 proto dhcp src 192.168.0.3 metric 202 
default via 192.168.8.1 dev eth1 proto dhcp src 192.168.8.100 metric 204 
default via 192.168.42.129 dev usb0 proto dhcp src 192.168.42.133 metric 205 
192.168.0.0/24 dev eth0 proto dhcp scope link src 192.168.0.3 metric 202 
192.168.8.0/24 dev eth1 proto dhcp scope link src 192.168.8.100 metric 204 
192.168.42.0/24 dev usb0 proto dhcp scope link src 192.168.42.133 metric 205 
# netstat -plant
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 192.168.0.3:3128        0.0.0.0:*               LISTEN      684/(squid-1)       
tcp        0      0 192.168.0.3:3129        0.0.0.0:*               LISTEN      684/(squid-1)       

Hors ligne