[zorp-hu] zorp 3.3.6 + libzorpll 3.3.0.12 + Debian 6.0

KOVACS Krisztian hidden at balabit.hu
2011. Jan. 26., Sze, 16:48:02 CET


Sziasztok,

On 01/26/2011 01:58 PM, Barina Tamas wrote:
> Sziasztok,
>
> kernel: 2.6.32-5-amd64
> Debian 6.0 alapkernel
> root at 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_plain;f=Documentation/networking/tproxy.txt;hb=HEAD

-- 
KOVACS Krisztian


További információk a(z) zorp-hu levelezőlistáról