Kedves Lista! Az augusztusi Zsiga problema, nalam nem akar megoldodni: Telepitettem egy ubuntu 8.04.3 LTS-t, megfoltoztam a kernelt es az iptables-t, hasznalom az ubuntu sajat zorp csomagjat:
uname -a Linux ujfal 2.6.24-24-386 #1 Fri Sep 18 09:10:11 CDT 2009 i686 GNU/Linux
iptables -V iptables v1.4.0
zorpctl version Zorp 3.0.8 Revision: Compile-Date: Mar 21 2007 22:51:55 Config-Date: 2007/03/21 Trace: off Debug: off IPOptions: off IPFilter-Tproxy: off Netfilter-Tproxy: on Netfilter-Linux22-Fallback: on Linux22-Tproxy: off Conntrack: on
Zorplib 3.0.6.4.2 Revision: devel@balabit.hu--zorp-1/zorp-lib--mainline--3.0--patch-116 Compile-Date: Jun 21 2006 01:01:55 Trace: off MemTrace: off Caps: on Debug: off StackDump: on A README-kben talalhato egyszeru test rendszert szeretnem megvalositani:
cat policy.py from Zorp.Core import * from Zorp.Http import *
Zorp.firewall_name = 'z' InetZone("inter", "0.0.0.0/0", inbound_services=["io_http"], outbound_services=[]) InetZone("intra", "172.16.0.0/16", inbound_services=[], outbound_services=["io_http"]) class MyHttpProxy(HttpProxy): def config(self): HttpProxy.config(self) self.transparent_mode = 1 log("http",2,"S: %s C: %s" % (self.session.server_address.ip_s, self.session.client_address.ip_s)) def i2o_http(): Service("io_http", MyHttpProxy, InbandRouter()) Listener(SockAddrInet("a.b.c.d", 50080), "io_http", transparent=TRUE)
cat iptables.conf *mangle :PREROUTING ACCEPT [0:0] :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] :DIVERT - [0:0] -A PREROUTING -p tcp -m socket -j DIVERT -A PREROUTING -j LOG --log-prefix "TPROXY: " -A PREROUTING -p tcp -m tcp --dport 80 -j TPROXY --on-port 50080 --on-ip a.b.c.d --tproxy-mark 0x1/0x1 -A DIVERT -j LOG --log-prefix "DIVERT: " -A DIVERT -j MARK --set-mark 0x1 -A DIVERT -j ACCEPT COMMIT *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -j LOG --log-prefix "INPUT: " COMMIT
a.b.c.d a tuzfal intranet feloli ip cime.
ip rule list 0: from all lookup local 32765: from all fwmark 0x1/0x1 lookup 100 32766: from all lookup main 32767: from all lookup default
elinditottam a zorpot:
strace -o log -f zorpctl start i2o_http
a log socket resze:
grep setso log 4492 setsockopt(14, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
a zorp figyel az 50080-as porton:
netstat -a | grep 50080 tcp 0 0 a.b.c.d:50080 *:* LISTEN
elinditok egy kapcsolatot a kliensen a 80-as porton: client>telnet x.y.z.w 80 cliensen a tcpdump: client>tcpdump -i eth0 -vvv -t port 80 tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes IP (tos 0x10, ttl 64, id 57778, offset 0, flags [DF], proto TCP (6), length 60) e.f.g.h.49665 > x.y.z.w.http: S, cksum 0x2baa (correct), 886293896:886293896(0) win 5840 <mss 1460,sackOK,timestamp 3089466 0,nop,wscale 6> IP (tos 0x10, ttl 64, id 57779, offset 0, flags [DF], proto TCP (6), length 60) e.f.g.h.49665 > x.y.z.w.http: S, cksum 0x1ff2 (correct), 886293896:886293896(0) win 5840 <mss 1460,sackOK,timestamp 3092466 0,nop,wscale 6> IP (tos 0x10, ttl 64, id 57780, offset 0, flags [DF], proto TCP (6), length 60) e.f.g.h.49665 > x.y.z.w.http: S, cksum 0x0882 (correct), 886293896:886293896(0) win 5840 <mss 1460,sackOK,timestamp 3098466 0,nop,wscale 6> a serveren pedig ezt latom: server>grep 'DPT=80' /var/log/messages Sep 30 04:37:26 fal kernel: [ 4034.309881] TPROXY: IN=eth1 OUT= MAC=00:1f:c6:2f:66:03:00:1d:72:13:9f:46:08:00 SRC=e.f.g.h DST=x.y.z.w LEN=60 TOS=0x10 PREC=0x00 TTL=64 ID=57778 DF PROTO=TCP SPT=49665 DPT=80 WINDOW=5840 RES=0x00 SYN URGP=0 Sep 30 04:37:29 fal kernel: [ 4037.305958] TPROXY: IN=eth1 OUT= MAC=00:1f:c6:2f:66:03:00:1d:72:13:9f:46:08:00 SRC=e.f.g.h DST=x.y.z.w LEN=60 TOS=0x10 PREC=0x00 TTL=64 ID=57779 DF PROTO=TCP SPT=49665 DPT=80 WINDOW=5840 RES=0x00 SYN URGP=0 Sep 30 04:37:35 fal kernel: [ 4043.300099] TPROXY: IN=eth1 OUT= MAC=00:1f:c6:2f:66:03:00:1d:72:13:9f:46:08:00 SRC=e.f.g.h DST=x.y.z.w LEN=60 TOS=0x10 PREC=0x00 TTL=64 ID=57780 DF PROTO=TCP SPT=49665 DPT=80 WINDOW=5840 RES=0x00 SYN URGP=0 (e.f.g.h a client ip cime, az x.y.z.w a cel gep ip cime) azaz ugyanaz a bajom, mint Bazsinak, a zorp nem kapja meg a csomagokat, de nalam az --on-ip kapcsolo nem oldja meg a problemat. lehet, hogy a verziok nem felcserelhetok, de ezzel kapcsolatban nem talalok semmi infot (sajnos a zorp-gpl kicsit elhanyagolt, pl: Zorp Tutorial Version 1.0.4 22th April, 2005, http://www.balabit.hu/network-security/gpl/tutorial/) mit neztem el, mit kell valtoztatnom, hogy a csomagok megerkezzenek a zorp-hoz? Minden segitseget elore is koszonok, tusi
On Wed, 2009-09-30 at 09:52 +0200, Gabor E. Tusnady wrote:
Kedves Lista!
Az augusztusi Zsiga problema, nalam nem akar megoldodni:
Telepitettem egy ubuntu 8.04.3 LTS-t, megfoltoztam a kernelt es az iptables-t, hasznalom az ubuntu sajat zorp csomagjat:
uname -a Linux ujfal 2.6.24-24-386 #1 Fri Sep 18 09:10:11 CDT 2009 i686 GNU/Linux
iptables -V iptables v1.4.0
zorpctl version Zorp 3.0.8 Revision: Compile-Date: Mar 21 2007 22:51:55 Config-Date: 2007/03/21 Trace: off Debug: off IPOptions: off IPFilter-Tproxy: off Netfilter-Tproxy: on Netfilter-Linux22-Fallback: on Linux22-Tproxy: off Conntrack: on
Zorplib 3.0.6.4.2 Revision: devel@balabit.hu--zorp-1/zorp-lib--mainline--3.0--patch-116 Compile-Date: Jun 21 2006 01:01:55 Trace: off MemTrace: off Caps: on Debug: off StackDump: on
A README-kben talalhato egyszeru test rendszert szeretnem megvalositani:
cat policy.py from Zorp.Core import * from Zorp.Http import *
Zorp.firewall_name = 'z'
InetZone("inter", "0.0.0.0/0", inbound_services=["io_http"], outbound_services=[])
InetZone("intra", "172.16.0.0/16", inbound_services=[], outbound_services=["io_http"])
class MyHttpProxy(HttpProxy): def config(self): HttpProxy.config(self) self.transparent_mode = 1 log("http",2,"S: %s C: %s" % (self.session.server_address.ip_s, self.session.client_address.ip_s))
def i2o_http(): Service("io_http", MyHttpProxy, InbandRouter()) Listener(SockAddrInet("a.b.c.d", 50080), "io_http", transparent=TRUE)
cat iptables.conf *mangle :PREROUTING ACCEPT [0:0] :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] :DIVERT - [0:0] -A PREROUTING -p tcp -m socket -j DIVERT -A PREROUTING -j LOG --log-prefix "TPROXY: " -A PREROUTING -p tcp -m tcp --dport 80 -j TPROXY --on-port 50080 --on-ip a.b.c.d --tproxy-mark 0x1/0x1 -A DIVERT -j LOG --log-prefix "DIVERT: " -A DIVERT -j MARK --set-mark 0x1 -A DIVERT -j ACCEPT COMMIT *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -j LOG --log-prefix "INPUT: " COMMIT
a.b.c.d a tuzfal intranet feloli ip cime.
ip rule list 0: from all lookup local 32765: from all fwmark 0x1/0x1 lookup 100 32766: from all lookup main 32767: from all lookup default
elinditottam a zorpot:
strace -o log -f zorpctl start i2o_http
a log socket resze:
grep setso log 4492 setsockopt(14, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
itt az a gond, hogy a zorp nem hivja meg az IP_TRANSPARENT opciot. a 3.0.8 ugyanis ezt meg nem tudta. a Zsiga ujabb verziot hasznalt, es ott szerepelt is a 0x13-as setsockopt. Egy ilyet hianyolok: 11195 setsockopt(12, SOL_IP, 0x13 /* IP_??? */, [1], 4) = 0 A 3.0-as branchben nincs benne ez a tamogatas, a 3.1-ben viszont igen. -- Bazsi
Koszonom a gyors valaszt. Hogyan tudok 3.1-es zorpot feltenni? Sajnos nem vagyok debian guru, es a debian csomagkezelojet nem nagyon ismerem. Ezt csinaltam: betettem az /etc/apt/sources.list-be, hogy #zorp from balabit deb http://www.balabit.hu/downloads/files/zorp/zorp-os/ 3.1 zorp-gpl zorp-os common-gpl common-gpl-dev main zorp-os-dev zorp-os-extra aztan mondtam egy apt-get update-et, de ezt valaszolta: W: GPG error: http://www.balabit.hu 3.1 Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 3BDAF86D2AA28252 W: You may want to run apt-get update to correct these problems gugliztam, de nem talalok megoldast. Hogyan tudhatnam meg hol van a public key, es hogyan tudom az apt-get-et ravenni, hogy hasznalja? tusi On Wed, 2009-09-30 at 10:59 +0200, Balazs Scheidler wrote:
a log socket resze:
grep setso log 4492 setsockopt(14, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
itt az a gond, hogy a zorp nem hivja meg az IP_TRANSPARENT opciot. a 3.0.8 ugyanis ezt meg nem tudta. a Zsiga ujabb verziot hasznalt, es ott szerepelt is a 0x13-as setsockopt.
Egy ilyet hianyolok:
11195 setsockopt(12, SOL_IP, 0x13 /* IP_??? */, [1], 4) = 0
A 3.0-as branchben nincs benne ez a tamogatas, a 3.1-ben viszont igen.
Hi All! On Wed, 2009-09-30 at 14:59 +0200, Gabor E. Tusnady wrote:
aztan mondtam egy apt-get update-et, de ezt valaszolta: W: GPG error: http://www.balabit.hu 3.1 Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 3BDAF86D2AA28252 W: You may want to run apt-get update to correct these problems
Ezek csak warning-ok, ettol meg elmeletileg hasznalja.
Kedves Lista! Bocsanat, hogy ujbol eloveszem ezt a szalat, de csak most lett idom ujbol foglalkozni vele.
itt az a gond, hogy a zorp nem hivja meg az IP_TRANSPARENT opciot. a 3.0.8 ugyanis ezt meg nem tudta. a Zsiga ujabb verziot hasznalt, es ott szerepelt is a 0x13-as setsockopt.
Egy ilyet hianyolok:
11195 setsockopt(12, SOL_IP, 0x13 /* IP_??? */, [1], 4) = 0
A 3.0-as branchben nincs benne ez a tamogatas, a 3.1-ben viszont igen.
feltettem a 3.1-es zorpot:
zorpctl version Zorp 3.1.15 Revision: devel@balabit.hu--zorp-1/zorp-core--mainline--3.1--patch-735 Compile-Date: Aug 22 2008 12:02:23 Config-Date: 2008/08/22 Trace: off Debug: off IPOptions: off IPFilter-Tproxy: off Netfilter-Tproxy: on Netfilter-Linux22-Fallback: on Linux22-Tproxy: off
libzorpll 3.1.8.4 Revision: devel@balabit.hu--zorp-1/zorp-lib--mainline--3.1--patch-254 Compile-Date: Sep 11 2008 15:27:31 Trace: off MemTrace: off Caps: on Debug: off StackDump: on minden mas ugyanaz, a strace logjaban mar szerepel a setsockopt(12, SOL_IP, 0x13 /* IP_??? */, [1], 4) = 0 sor is de a DIVERT chain-t meg mindig nem eri el egy csomag sem. Hogyan tudnam kideriteni, mit, hol rontottam el. Esetleg tud valaki mukodo zorp gpl-es konfigot mutatni, meg megadni, milyen debian verziot, milyen zorp-pal, milyen kernellel hasznal? Minden segitseget elore is koszonok. tusi
On Fri, Dec 18, 2009 at 01:02:16PM +0100, Gabor E. Tusnady wrote:
feltettem a 3.1-es zorpot:
zorpctl version Zorp 3.1.15 Revision: devel@balabit.hu--zorp-1/zorp-core--mainline--3.1--patch-735 Compile-Date: Aug 22 2008 12:02:23 Config-Date: 2008/08/22 Trace: off Debug: off IPOptions: off IPFilter-Tproxy: off Netfilter-Tproxy: on Netfilter-Linux22-Fallback: on Linux22-Tproxy: off
# zorpctl version Zorp 3.1.15c Revision: devel@balabit.hu--zorp-1/zorp-core--update--3.1.15--patch-7 Compile-Date: Jul 30 2009 10:41:59 Config-Date: 2009/07/30 Trace: off Debug: off IPOptions: off IPFilter-Tproxy: off Netfilter-Tproxy: on Netfilter-Linux22-Fallback: on Linux22-Tproxy: off
libzorpll 3.1.8.4 Revision: devel@balabit.hu--zorp-1/zorp-lib--mainline--3.1--patch-254 Compile-Date: Sep 11 2008 15:27:31 Trace: off MemTrace: off Caps: on Debug: off StackDump: on
libzorpll 3.1.8.4 Revision: devel@balabit.hu--zorp-1/zorp-lib--mainline--3.1--patch-254 Compile-Date: Jul 28 2009 13:38:50 Trace: off MemTrace: off Caps: on Debug: off StackDump: on Erdekes, de van kulonbseg mind a kettonel.
de a DIVERT chain-t meg mindig nem eri el egy csomag sem.
Hogyan tudnam kideriteni, mit, hol rontottam el. Esetleg tud valaki mukodo zorp gpl-es konfigot mutatni, meg megadni, milyen debian verziot, milyen zorp-pal, milyen kernellel hasznal?
A kernel 2.6.30-1, de hogy melyik kzorp verzio van benne, azt most nem tudnam megmondani. A Debian verzioja 5.0.3 (Lenny). A zorp konfigjaban nincs elteres a 3.0-s sorozathoz kepest, a csomagszuroben viszont van. -- Udvozlettel Zsiga
Kedves Lista, Zsiga tanacsara megprobaltam ezt a rendszert letrehozni:
A kernel 2.6.30-1, de hogy melyik kzorp verzio van benne, azt most nem tudnam megmondani. A Debian verzioja 5.0.3 (Lenny). A zorp konfigjaban nincs elteres a 3.0-s sorozathoz kepest, a csomagszuroben viszont van.
cat /etc/debian_version 5.0.3
iptables -V iptables v1.4.6
uname -a Linux fal 2.6.32-trunk-amd64 #1 SMP Sat Dec 26 17:13:29 UTC 2009 x86_64 GNU/Linux
zorpctl --version Zorp 3.1.15c Revision: devel@balabit.hu--zorp-1/zorp-core--update--3.1.15--patch-7 Compile-Date: Jan 3 2010 22:56:39 Config-Date: 2010/01/03 Trace: off Debug: off IPOptions: off IPFilter-Tproxy: off Netfilter-Tproxy: on Netfilter-Linux22-Fallback: on Linux22-Tproxy: off
libzorpll 3.1.8.4 Revision: devel@balabit.hu--zorp-1/zorp-lib--mainline--3.1--patch-254 Compile-Date: Jan 3 2010 22:50:06 Trace: off MemTrace: off Caps: on Debug: off StackDump: off
cat /etc/zorp/policy.py from Zorp.Core import * from Zorp.Plug import * from Zorp.Http import *
Zorp.firewall_name = 'fal' InetZone("intra", "172.16.0.0/16", inbound_services=[], outbound_services=["web"]) InetZone("inter", "0.0.0.0/0", inbound_services=["web"], outbound_services=[]) class MyHttpProxy(HttpProxy): def config(self): HttpProxy.config(self) self.transparent_mode = 1 log("http",2,"S: %s C: %s" % (self.session.server_address.ip_s, self.session.client_address.ip_s)) def web(): Service("web", MyHttpProxy, InbandRouter()) Listener(SockAddrInet("172.16.0.254", 50080), "web", transparent=TRUE)
cat /etc/iptables.conf.in *mangle :PREROUTING ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :DIVERT - -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu -A PREROUTING -p tcp -m socket -j LOG --log-prefix "SOCKET forgalom: " -A PREROUTING -p tcp -m socket -j DIVERT -A PREROUTING -p tcp --dport 80 -j LOG --log-prefix "PREROUTING forgalom: " -A PREROUTING -p tcp --dport 80 -j TPROXY --tproxy-mark 0x1/0x1 --on-ip 172.16.0.254 --on-port 50080 -A DIVERT -j LOG --log-prefix "DIVERT forgalom: " -A DIVERT -j MARK --set-mark 1 -A DIVERT -j ACCEPT COMMIT *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -j LOG --log-prefix "INPUT forgalom: " COMMIT
strace -f -o /tmp/zorp.log zorpctl start grep setsock /tmp/zorp.log 2336 setsockopt(10, SOL_IP, 0x2c0a /* IP_??? */, "\0\0\0\0\0\0\0\3\0\0\0\0"..., 12) = -1 ENOPROTOOPT (Protocol not available) 2336 setsockopt(10, SOL_IP, 0x2c0a /* IP_??? */, "\0\0\0\0\0\0\0\2\0\0\0\0"..., 12) = -1 ENOPROTOOPT (Protocol not available) 2336 setsockopt(12, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0 2336 setsockopt(12, SOL_IP, 0x13 /* IP_??? */, [1], 4) = 0
grep forgalom /var/log/syslog: Jan 10 21:26:30 fal kernel: [ 2990.633514] INPUT forgalom: IN=eth1 OUT= MAC=00:1f:c6:2f:66:03:00:1d:72:13:9f:46:08:00 SRC=172.16.7.52 DST=172.16.0.254 LEN=61 TOS=0x00 PREC=0x00 TTL=64 ID=55896 DF PROTO=UDP SPT=51853 DPT=53 LEN=41 Jan 10 21:26:30 fal kernel: [ 2990.633647] INPUT forgalom: IN=eth1 OUT= MAC=00:1f:c6:2f:66:03:00:1d:72:13:9f:46:08:00 SRC=172.16.7.52 DST=172.16.0.254 LEN=61 TOS=0x00 PREC=0x00 TTL=64 ID=55897 DF PROTO=UDP SPT=51853 DPT=53 LEN=41 Jan 10 21:26:32 fal kernel: [ 2992.663343] PREROUTING forgalom: IN=eth1 OUT= MAC=00:1f:c6:2f:66:03:00:1d:72:13:9f:46:08:00 SRC=172.16.7.52 DST=217.20.130.97 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=23999 DF PROTO=TCP SPT=34234 DPT=80 WINDOW=5840 RES=0x00 SYN URGP=0
tehat meg mindig nem jutnak el a csomagok a DIVERT chain-ig. pedig ott az --on-ip kapcsolo... Tud valaki valami otletet, tanacsot adni, mit nezzek, mit valtoztassak, hogy vegre mukodesre birjam a zorpot? Koszonom, tusi
participants (4)
-
Balazs Scheidler
-
Gabor E. Tusnady
-
Kosa Attila
-
SZALAY Attila