#1 Le 05/01/2021, à 22: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, à 21:47)
Hors ligne
#2 Le 07/01/2021, à 21: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