[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