[BSD] bridge és rdr
Gergő, Szakál
szakal.gergo at gmail.com
2007. Feb. 14., Sze, 22:20:04 CET
OK, tehát squid 2.6. Akkor:
Beállítod a squidet, gondolom, ez menni fog.
A bridge egyik interface-ének kell egy IP, mert a proxy fogja továbbküldeni a hozzá beérkezett kéréseket, és ahhoz kell neki egy publikus IP (FIXME?). Az én bridge-em LAN felőli intetrface-e kap IP-t, a WAN felőli kártyán szűröm a csomagokat. A proxyhoz való hozzáférést ACL-el leszabályozhatod, vagy tűzfallal. A squid a publikus IP-n figyeljen (FIXME #2?).
Megadod makróban a PF-nek az inteface-ek nevét (ifconfig a barátod):
int_if=xl0
ext_if=xl1
TCP csomagok átengedéséhez állapottartó szűrés javallott, a makró itt életkönnyítő szereppel bír:
tcp_opts="flags S/SA modulate state"
Meghatározod a belső hálót:
table <intnet>={192.168.0.0/24, 192.168.1.0/24}
(Ezt persze csinálhatod máshogy, én azért írtam így le, hogy értsd, ki kicsoda van az _én_ szabályaimban)
Átírod a packet headert:
rdr on $int_if inet proto tcp from <intnet> to any port {http,https} -> ($int_if) port 3128
Layer2-ben átrouteolod a csomagot:
pass out quick on $ext_if route-to ( lo0 127.0.0.1 ) proto tcp from <intnet> to ($int_if) port 3128 $tcp_opts
Beengedsz minden squid userrel kapcsolatos dolgot (ez utóbbi szabály nem biztos, hogy kell, csak lusta voltam még tesztelni :-D):
pass in quick on $ext_if inet proto tcp from any to ($int_if) user squid $tcp_opts
További info:
http://wiki.dragonflybsd.org/index.cgi/HowtoFilteringBridge
HTH
--
Gergő, Szakál <szakal.gergo at gmail.com>
További információk a(z) BSD levelezőlistáról