Sziasztok, volt nekem zorp 2.0.2-vel egy jol mukodo konfigom most a 2.0.7-et nem igazan akar mukdoni az inband roteres resz lebutitottam a proxy-t addig, hogy csak egy egyszeru server cim hozzarendeles legyen de ez sem kaar igazan mukodni....ha megtennetek, hogy raneztek, mi lehet a gond az nagyon jo lenne... kovetkezo van 2.4.20-as kernel tproxy-val policy.py class TESTHTTP(HttpProxy): def config(self): HttpProxy.config(self) self.session.server_address = SockAddrInet("192.168.1.101", 80) def setServerAddress(self, host, port): pass . . Service("test_http", TESTHTTP, router=InbandRouter(), snat=ForgeClientSourceNAT()) Listener(SockAddrInet(IP_OUT,51082), "test_http") A kovetkezot varnam el ettol a konfigtol, hogy a ra iranyulo osszes http kerest iranyitsa a 192.168.1.101-es gephez az 80-as portra de nem igazan akarja megcsinalni.....tudom, hogy ezt egyszeruebbn is lehet, de nekm majd az inband routerre lesz szuksegem, de mar itt ennel az egyszru dolognal elakad a dolog ;( a syslog-ot csatoltam... Udv, Istvan
2004-02-25, sze keltezéssel 14:54-kor Ifj. Darvas Istvan ezt írta:
Sziasztok,
volt nekem zorp 2.0.2-vel egy jol mukodo konfigom most a 2.0.7-et nem igazan akar mukdoni az inband roteres resz
lebutitottam a proxy-t addig, hogy csak egy egyszeru server cim hozzarendeles legyen de ez sem kaar igazan mukodni....ha megtennetek, hogy raneztek, mi lehet a gond az nagyon jo lenne...
kovetkezo van 2.4.20-as kernel tproxy-val
policy.py class TESTHTTP(HttpProxy): def config(self): HttpProxy.config(self) self.session.server_address = SockAddrInet("192.168.1.101", 80)
def setServerAddress(self, host, port): pass
. . Service("test_http", TESTHTTP, router=InbandRouter(), snat=ForgeClientSourceNAT()) Listener(SockAddrInet(IP_OUT,51082), "test_http")
hmm.. ennek valoban mennie kellene, viszont a logban nem latom a kapcsolodas tenyet, itt hianyolok nehany uzenetet: Feb 25 14:43:10 centaury Test[28117]: (Zorp@Centaury/test_http:0/http): sending request and headers, copying request data; Feb 25 14:43:10 centaury Test[28117]: (Zorp@Centaury/test_http:0/http): exiting keep-alive loop; Feb 25 14:43:10 centaury Test[28117]: (Zorp@Centaury/test_http:0/http): An error occurred, serving error file; filename='/usr/share/zorp/http/connecterror.html' nem lehet, hogy nem ugyanilyen session-id-vel de van itt meg nehany erdekes uzenet? esetleg Python backtrace? -- Bazsi PGP info: KeyID 9AF8D0A9 Fingerprint CD27 CFB0 802C 0944 9CFD 804E C82C 8EB1
Sziasztok,
hmm.. ennek valoban mennie kellene, viszont a logban nem latom a kapcsolodas tenyet, itt hianyolok nehany uzenetet:
Feb 25 14:43:10 centaury Test[28117]: (Zorp@Centaury/test_http:0/http): sending request and headers, copying request data; Feb 25 14:43:10 centaury Test[28117]: (Zorp@Centaury/test_http:0/http): exiting keep-alive loop; Feb 25 14:43:10 centaury Test[28117]: (Zorp@Centaury/test_http:0/http): An error occurred, serving error file; filename='/usr/share/zorp/http/connecterror.html'
nem lehet, hogy nem ugyanilyen session-id-vel de van itt meg nehany erdekes uzenet? esetleg Python backtrace?
Hat csinltam egy verbose 9-es logot es az osszes test-es sort beletettem tekintett nelkul a session id-re Udv, Istvan
2004-02-25, sze keltezéssel 17:28-kor Ifj. Darvas Istvan ezt írta:
Sziasztok,
hmm.. ennek valoban mennie kellene, viszont a logban nem latom a kapcsolodas tenyet, itt hianyolok nehany uzenetet:
Feb 25 14:43:10 centaury Test[28117]: (Zorp@Centaury/test_http:0/http): sending request and headers, copying request data; Feb 25 14:43:10 centaury Test[28117]: (Zorp@Centaury/test_http:0/http): exiting keep-alive loop; Feb 25 14:43:10 centaury Test[28117]: (Zorp@Centaury/test_http:0/http): An error occurred, serving error file; filename='/usr/share/zorp/http/connecterror.html'
nem lehet, hogy nem ugyanilyen session-id-vel de van itt meg nehany erdekes uzenet? esetleg Python backtrace?
Hat csinltam egy verbose 9-es logot es az osszes test-es sort beletettem tekintett nelkul a session id-re
megvan a gond. a setServerAddress-sel terjel vissza TRUE ertekkel, igy ugyanis most None-t adsz vissza, ami 'sikertelen'-t jelent. -- Bazsi PGP info: KeyID 9AF8D0A9 Fingerprint CD27 CFB0 802C 0944 9CFD 804E C82C 8EB1
Sziasztok,
megvan a gond. a setServerAddress-sel terjel vissza TRUE ertekkel, igy ugyanis most None-t adsz vissza, ami 'sikertelen'-t jelent.
Nos az a helyzet, hogy ezzel megoldodott ;)) De ezt honnan kellett volna nekem tudni ;)) ennyi van benne a proxy.py-ben ;)) ----------- def setServerAddress(self, host, port): # resolve host, port and store it in session.server_address # may raise an exception if self.session.server_address_inband: try: ip = getHostByName(host) self.session.server_address = SockAddrInet(ip, port) except IOError: proxyLog(self, CORE_ERROR, 3, "Error resolving hostname; host='%s'" % host) return FALSE return TRUE ------------ ezt elemezgettem es eddig jo volt a simaval ;)) most mitol valtozott meg? es ez hol van benne a log-ban amit kuldtem? Csak azert kerdem, hogy legkozelebb amator kerdesekkel ne terheljelek benneteket (megjegyzem ugyis foglak ;) Udv, Istvan
Sziasztok, Az elozo level storno..... Bocs a spam-ert. Elolvastam meg egyszer a pssl.py-t ;) Mar megy Udv, Istvan
2004-02-26, cs keltezéssel 23:30-kor Ifj. Darvas Istvan ezt írta:
Sziasztok,
megvan a gond. a setServerAddress-sel terjel vissza TRUE ertekkel, igy ugyanis most None-t adsz vissza, ami 'sikertelen'-t jelent.
Nos az a helyzet, hogy ezzel megoldodott ;)) De ezt honnan kellett volna nekem tudni ;))
hat a setServerAddress override-olasa elegge belepiszkit a Zorp altal elkepzelt dolgokba (mondhatni a setServerAddress egy 'internal' interface), amit lehet ugyan modositani, de ott kell lebegjen egy "Don't mess with this unless you know what you are doing" Amugy termeszetsen a C-s forrasbol tudtam meg, hogy mit var el, viszont nem hiszem, hogy ez az utobbi idoben valtozott volna, de megnezem a CVS logjainkat... Tenyleg valtozott, meghozza 2003-04-30-an, ezzel a ChangeLog-gal: * lib/proxy.c (z_proxy_connect_server_event): handle the returned value by setServerAddress and propagate the possible error condition to the proxy (fixed bugzilla id: 1032) Ez amugy a 2.0.3.1-es valtozatban volt eloszor benne. Megnezem a 1032-es hibat... Igen, sikertelen nevfeloldas utan csunya python traceback-ek jottek a logba, ezt javitottam ki. -- Bazsi PGP info: KeyID 9AF8D0A9 Fingerprint CD27 CFB0 802C 0944 9CFD 804E C82C 8EB1
Sziasztok,
hat a setServerAddress override-olasa elegge belepiszkit a Zorp altal elkepzelt dolgokba (mondhatni a setServerAddress egy 'internal' interface), amit lehet ugyan modositani, de ott kell lebegjen egy "Don't mess with this unless you know what you are doing"
Igazabol azt szeretnem csinalni, hogy van nekm 2 gepem is, es az egyik gep a domain1.hu-t szolgalja ki, a masik gep meg a domain2.hu-t es ezek tuzfal mogott vannak. Ha jon a keres https-en, akkor belenezve itt is a forgalomba el tudjam donteni egy inband routerrel, hogy hova kuldjem a csomagokat. HTTP mar megy, de a HTTPS-es nem ;( , mert nem igazan ertem, hogy hogyan tudnek requestet ellnorzni a HTTPS-nek a pssl proxy-jaba agyazott http proxy-ban ;) Ezzel probalkoztam, de ez nem jo ;) class TESTHTTPS(PsslProxy): class EmbeddedHttp(HttpProxy): def config(self): HttpProxy.config(self) self.request["GET"] = (HTTP_REQ_POLICY,self.filterURL) self.request["POST"] = (HTTP_REQ_POLICY,self.filterURL) domain2_url = re.compile('domain1.hu') def filterURL(self, method, url, version): if (self.domain2_url.search(url)): self.session.server_address = SockAddrInet("192.168.2.101", 443) return HTTP_REQ_ACCEPT return HTTP_REQ_ACCEPT def config(self): PsslProxy.config(self) self.client_need_ssl = TRUE self.client_cert = "/etc/zorp/cert/zorp.crt" self.client_key = "/etc/zorp/cert/zorp.key" self.client_verify_type = SSL_VERIFY_NONE self.server_need_ssl = TRUE self.server_key = "/etc/zorp/cert/https/serv.key" self.server_cert = "/etc/zorp/cert/https/serv.crt" self.server_verify_type = SSL_VERIFY_NONE self.stack_proxy = self.EmbeddedHttp self.session.server_address = SockAddrInet("192.168.1.101", 443) def setServerAddress(self, host, port): return TRUE En ugy gondolkodta, de buiztosan rosszul ;( hogy ha default erteknek a pssl-ben megadom az 1.101-et es belenezve a http proxyval a forgalomba, megtalaom a domain2-t, akkor a cimet kicserelve a proxy-ban mar megisoldottam az iranyitast ;) Szoval a kerdesem az lenne, hogy ezt hogyan kell megcsinalni? Udv, Istvan
2004-02-27, p keltezéssel 11:48-kor Ifj. Darvas Istvan ezt írta:
Sziasztok,
hat a setServerAddress override-olasa elegge belepiszkit a Zorp altal elkepzelt dolgokba (mondhatni a setServerAddress egy 'internal' interface), amit lehet ugyan modositani, de ott kell lebegjen egy "Don't mess with this unless you know what you are doing"
Igazabol azt szeretnem csinalni, hogy van nekm 2 gepem is, es az egyik gep a domain1.hu-t szolgalja ki, a masik gep meg a domain2.hu-t es ezek tuzfal mogott vannak. Ha jon a keres https-en, akkor belenezve itt is a forgalomba el tudjam donteni egy inband routerrel, hogy hova kuldjem a csomagokat.
HTTP mar megy, de a HTTPS-es nem ;( , mert nem igazan ertem, hogy hogyan tudnek requestet ellnorzni a HTTPS-nek a pssl proxy-jaba agyazott http proxy-ban ;)
Szoval a kerdesem az lenne, hogy ezt hogyan kell megcsinalni?
termeszetesen egymas melle stackelessel (mert olyat is lehet). Tehat a Pssl-ben HTTP-vel az a problema, hogy a Pssl elobb becsatlakozik a szerverhez, mint ahogy elinditja a beagyazott proxyjat, tehat a HTTP mar mindenkeppen tul keson van. A megoldas valahogy igy nez ki: Service('https', DecryptPsslProxy, router=InbandRouter(), chainer=SideStackChainer(HttpProxy, chainer=SideStackChainer(CryptPsslProxy))) azaz az elso Pssl egy feloldalas SSL, ami a kliens oldalon SSL-es, a szerver oldalan cleartext, ez dekodolja a forgalmat, majd amikor a szerverhez akarna kapcsolodni elindul a HttpProxy, ami amikor a szerverhez akar kapcsolodni akkor elinditja a masik iranyba kodolo SSL-t (kliens oldalon cleartext, szerver oldalon SSL) Ha a szervered igazabol nem SSL-t beszel a tuzfal mogott, akkor a masodik (encryptalo SSL) elhagyhato. -- Bazsi PGP info: KeyID 9AF8D0A9 Fingerprint CD27 CFB0 802C 0944 9CFD 804E C82C 8EB1
Sziasztok, Nos felig meddig mukodik a dolog. Amig az inband router annyi, hogy rendeljen hozza csak egy server adresst az siman mukodik.
Service('https', DecryptPsslProxy, router=InbandRouter(), chainer=SideStackChainer(HttpProxy, chainer=SideStackChainer(CryptPsslProxy)))
Nos felig meddig mukodik a dolog. Amig az inband router annyi, hogy rendeljen hozza csak egy server adresst az siman mukodik. Viszont, amikor a HttpProxy-t atirom, hogy legyen benne a dontesi folyamat class TESTHTTPS(HttpProxy): def config(self): HttpProxy.config(self) self.session.server_address = SockAddrInet("192.168.1.101", 443) self.request["GET"] = (HTTP_REQ_POLICY, self.filterURL) self.request["POST"] = (HTTP_REQ_POLICY, self.filterURL) def setServerAddress(self, host, port): return TRUE domain2_url = re.compile('domain2.hu') def filterURL(self, method, url, version): if (self.domain2_url.search(url)): self.session.server_address = SockAddrInet("192.168.2.101", 443) return HTTP_REQ_ACCEPT return HTTP_REQ_ACCEPT . . . Service('https', DecryptPsslProxy, router=InbandRouter(), chainer=SideStackChainer(TESTHTTPS, chainer=SideStackChainer(CryptPsslProxy))) Akkor is a deafult 1.101-hez iranyit, holott ugye a ha a request-ben a elkapja a domain2.hu-t akkor meg kene valtoztatnia a server cimet es a setServer meg beallitana azt a vegen. Valamit valszeg felreertelmeztem, abban amit irtal, egy kicsit lehetne pontositani, hogy hol kene a szerver cimet megvaltoztatnom? Udv, Istvan
2004-02-27, p keltezéssel 15:05-kor Ifj. Darvas Istvan ezt írta:
Sziasztok,
Nos felig meddig mukodik a dolog. Amig az inband router annyi, hogy rendeljen hozza csak egy server adresst az siman mukodik.
Service('https', DecryptPsslProxy, router=InbandRouter(), chainer=SideStackChainer(HttpProxy, chainer=SideStackChainer(CryptPsslProxy)))
Nos felig meddig mukodik a dolog. Amig az inband router annyi, hogy rendeljen hozza csak egy server adresst az siman mukodik.
Viszont, amikor a HttpProxy-t atirom, hogy legyen benne a dontesi folyamat
class TESTHTTPS(HttpProxy): def config(self): HttpProxy.config(self) self.session.server_address = SockAddrInet("192.168.1.101", 443)
self.request["GET"] = (HTTP_REQ_POLICY, self.filterURL) self.request["POST"] = (HTTP_REQ_POLICY, self.filterURL)
def setServerAddress(self, host, port): return TRUE
domain2_url = re.compile('domain2.hu')
def filterURL(self, method, url, version): if (self.domain2_url.search(url)): self.session.server_address = SockAddrInet("192.168.2.101", 443) return HTTP_REQ_ACCEPT return HTTP_REQ_ACCEPT . . . Service('https', DecryptPsslProxy, router=InbandRouter(), chainer=SideStackChainer(TESTHTTPS, chainer=SideStackChainer(CryptPsslProxy)))
Akkor is a deafult 1.101-hez iranyit, holott ugye a ha a request-ben a elkapja a domain2.hu-t akkor meg kene valtoztatnia a server cimet es a setServer meg beallitana azt a vegen.
Valamit valszeg felreertelmeztem, abban amit irtal, egy kicsit lehetne pontositani, hogy hol kene a szerver cimet megvaltoztatnom?
elvileg sehol. a Http proxy alapbol atadja a setServerAddress-nek a kivant szerver cimet, akkor is ha transzparens modban van. Csak arra kell figyelni, hogy a ket gep nevet fel tudja oldani a tuzfal (/etc/hosts), valamint arra, hogy a szolgaltatast ne engedd vissza a net fele, mert akkor proxynak lehet hasznalni a tuzfalat. ennek elvileg mukodnie kell(ene) :) -- Bazsi PGP info: KeyID 9AF8D0A9 Fingerprint CD27 CFB0 802C 0944 9CFD 804E C82C 8EB1
Sziasztok,
ennek elvileg mukodnie kell(ene) :)
A helyzet az, hogy nem tudom mit csinltam delutan, de valoban mukodik ;) nem iditottam ujra az instance-t vagy csak elgepeltem, de most amikor logokat akartam gyartani, ment rendesen ;)) nem tudtam produklani a problemat ;) Szoval akkor szokas szerint nyujtod a kisujjad bekapom az egesz kezed alapon az lenne a kerdesem, hogy hogyan tudnek ket kulonbozo certificatot szolgaltatni a kliens oldalon? Ezt azert kene megtenni, hogy a certben a site cim egyzzen az internet cimmel, hogy csak 1 csunya x legyn, amikor felugrik az explorer. Udv, Istvan
2004-02-27, p keltezéssel 20:39-kor Ifj. Darvas Istvan ezt írta:
Sziasztok,
ennek elvileg mukodnie kell(ene) :)
A helyzet az, hogy nem tudom mit csinltam delutan, de valoban mukodik ;) nem iditottam ujra az instance-t vagy csak elgepeltem, de most amikor logokat akartam gyartani, ment rendesen ;)) nem tudtam produklani a problemat ;)
Szoval akkor szokas szerint nyujtod a kisujjad bekapom az egesz kezed alapon az lenne a kerdesem, hogy hogyan tudnek ket kulonbozo certificatot szolgaltatni a kliens oldalon? Ezt azert kene megtenni, hogy a certben a site cim egyzzen az internet cimmel, hogy csak 1 csunya x legyn, amikor felugrik az explorer.
ezt sajnos nem lehet, az SSL handshake korabban fejezodik be, mint hogy tudjad a HTTP keresben levo hostnevet. Ha kulonbozo certet akarsz, akkor mas IP vagy porton kell futtatni. -- Bazsi PGP info: KeyID 9AF8D0A9 Fingerprint CD27 CFB0 802C 0944 9CFD 804E C82C 8EB1
Szasztok, Ugyan ezt az atiranyitast, hogyan tudnam megcsinalni HTTPS-en......ezt eddig meg nem probaltam, de jo lenne vegulis ;) Ez nem igazan akart mukdoni. Gondolom ez total rossz... Esetleg egy szep peldat ha visszairnatok, az nagyon jo lenne. Marmint nekem. class TESTHTTPS(PsslProxy): class EmbeddedHttp(HttpProxy): def config(self): HttpProxy.config(self) HttpProxy.session.server_address = SockAddrInet("192.168.1.101",443) def setServerAddress(self, host, port): return TRUE def config(self): PsslProxy.config(self) self.client_need_ssl = TRUE self.client_cert = "/etc/zorp/cert/ssl.crt" self.client_key = "/etc/zorp/cert/ssl.key" self.client_verify_type = SSL_VERIFY_NONE self.server_need_ssl = TRUE self.server_key = "/etc/zorp/cert/https/ssl.key" self.server_cert = "/etc/zorp/cert/https/ssl.crt" self.server_verify_type = SSL_VERIFY_NONE self.stack_proxy = self.EmbeddedHttp Udv, Istvan
2004-02-27, p keltezéssel 02:07-kor Ifj. Darvas Istvan ezt írta:
Szasztok,
Ugyan ezt az atiranyitast, hogyan tudnam megcsinalni HTTPS-en......ezt eddig meg nem probaltam, de jo lenne vegulis ;)
Ez nem igazan akart mukdoni. Gondolom ez total rossz... Esetleg egy szep peldat ha visszairnatok, az nagyon jo lenne. Marmint nekem.
class TESTHTTPS(PsslProxy): class EmbeddedHttp(HttpProxy): def config(self): HttpProxy.config(self) HttpProxy.session.server_address = SockAddrInet("192.168.1.101",443)
itt inkabb self.session.server_address = SockAddrInet(...) kellene. Meg tudod mondani, hogy mit szeretnel pontosan? Mert a fenti bar mukodhet, de nem tul szep megoldas ...
def setServerAddress(self, host, port): return TRUE
def config(self): PsslProxy.config(self) self.client_need_ssl = TRUE self.client_cert = "/etc/zorp/cert/ssl.crt" self.client_key = "/etc/zorp/cert/ssl.key" self.client_verify_type = SSL_VERIFY_NONE self.server_need_ssl = TRUE self.server_key = "/etc/zorp/cert/https/ssl.key" self.server_cert = "/etc/zorp/cert/https/ssl.crt" self.server_verify_type = SSL_VERIFY_NONE self.stack_proxy = self.EmbeddedHttp
-- Bazsi PGP info: KeyID 9AF8D0A9 Fingerprint CD27 CFB0 802C 0944 9CFD 804E C82C 8EB1
Sziasztok,
nem lehet, hogy nem ugyanilyen session-id-vel de van itt meg nehany erdekes uzenet? esetleg Python backtrace?
Hogyan tudnek "Python backtrace"-t csinalni? ;) Udv, Istvan
participants (2)
-
Balazs Scheidler
-
Ifj. Darvas Istvan