Sziasztok, On 01/26/2011 01:58 PM, Barina Tamas wrote:
Sziasztok,
kernel: 2.6.32-5-amd64 Debian 6.0 alapkernel root@fw:/etc/zorp# lsmod | grep TPROXY xt_TPROXY 1329 0 nf_defrag_ipv4 1139 2 nf_conntrack_ipv4,xt_TPROXY x_tables 12845 8 ipt_LOG,xt_limit,xt_tcpudp,xt_state,iptable_nat,xt_multiport,ip_tables,xt_TP ROXY nf_tproxy_core 1549 1 xt_TPROXY,[permanent]
Ezek szerint az a megoldás nem működik a zorpnál, hogy a külső ip címen figyel és ő beküldi a belső gépnek?
De, működik, csak a tproxyt kicsit konfigurálni kell.
Ezért nem használtam hozzá semmilyen iptables + tproxy dolgot. (Csupan annyit, hogy a dmz-ből kilásson.)
Az upstream kernelben (és így a Debian kernelben is) olyan tproxy van, ami némi konfigurációt igényel. Ami nálad nem működik az az, hogy ha kiküld egy csomagot spoofolt forráscímmel, akkor az arra érkező válaszok is visszajussanak a Zorpig. Sajnos ez ez upstream tproxyban már nem működik out-of-the-box, mindenképpen kell hozzá egy policy routing szabály és egy extra iptables szabály. Röviden összefoglalva arról van szó, hogy van egy 'socket' match, ami minden olyan csomagra matchel, ami egy, a hoston nyitott socketet címez (tehát ez matchelni fog például a fent említett válaszcsomagokra). Ezt a 'socket' matchet használhatjuk arra, hogy az ilyen csomagokat mindenképpen lokálisan routolunk policy routinggal, hogy az a Zorphoz jusson. Tehát valami ilyesmi minimális iptables ruleset és policy routing kell ahhoz, hogy a tproxy minimálisan működjön: # iptables -t mangle -N DIVERT # iptables -t mangle -A PREROUTING -p tcp -m socket -j DIVERT # iptables -t mangle -A DIVERT -j MARK --set-mark 1 # iptables -t mangle -A DIVERT -j ACCEPT # ip route add local 0.0.0.0/0 dev lo table 100 # ip rule add fwmark 1 lookup 100 Részletesebb infókat itt találhatsz: http://wiki.squid-cache.org/Features/Tproxy4 http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob_plai... -- KOVACS Krisztian