[zorp-hu] Re: [tproxy] tproxy 2.6.10+

Balazs Scheidler bazsi at balabit.hu
Thu Jun 23 21:04:31 CEST 2005


On Thu, 2005-06-23 at 20:17 +0200, ago at lsc.hu wrote:
> szia,
> 
> > Pontositok, mert asszem eleg nagy butasagot kerdeztem... :(
> nem kérdeztél butaságot. Amit leírsz egy élő dolog.
> 
> > Szoval adott 1 fw ahol a Zorp csucsul, mogotte
> > n darab webszerver. A szerverek mas-mas domaineket szolgalnak ki.
> A megoldás nem az amit leírsz, hanem az, hogy vagy a tűzfal /etc/hosts
> fileban legyen benne az a belső címe a www.domain1.hu stb. gépeknek és
> akkor a zorp a névfeloldás alapján tudja majd, hogy merre irányítsa a
> csomagot. Sima HTTP-val működik, mindenfajta különösebb varázslat nélkül
> (bár egy ideje már csak copyzom az ilyen beállításokat, egyszer kell vele
> "megszenvedni"). "Gond" ott lesz, ha HTTPS-t is akarsz, azt is meg lehet
> oldani, de akkor egymás mellék kell stackelni a proxykat, a
> SideStackChainer-rel. A listaarchívumban volt már bőven hivatkozás rá.
> 
> > hanem DNS alapjan visszaadott IP-t hasznalja?
> na most ,ez alapján van DNS. Akkor viszont nem privát címeken vannak a
> webszerverek? Teszem azt a .129-es gép a tűzfal, ami routerként funciónál
> a .130,.131 astb. végű gépek előtt? Vagy egy belső DNS-ed van? Mert akkor
> a resolv.conf-ban kellene elsődleges névkiszolgálónak azt beállítanod.
> Vagy a fentebb említett /etc/hosts fájl is megoldás, ha kevés szerver van.
> 100%-ig korrekt persze a DNS.

3.0.5-ben mar van un. Resolver interface, bar meg csak experimental jelleggel, 
valoszinuleg 3.1-ben egy csoppet valtozni fog. Annak az a lenyege, hogy egy 
fuggetlen objektum oldja fel a celcimet, ami alapbol DNS, de akar sajat modszerrel 
is megoldhatja a nev->IP lekepezest. Pl:

mostanival kompatibilis mukodes:

Service("http", HttpProxy, 
	router=InbandRouter(),
	resolver=DNSResolver())

kicsit erdekesebb:

class HashResolver(AbstractResolver):
	def __init__(self, host_map):
		AbstractResolver.__init__(self)
		self.host_map = host_map

	def resolve(self, host, port):
		if self.host_map.has_key(host):
			return SockAddrInet(self.host_map[host], port)
		return None

Ezek utan:

Service("http", HttpProxy, 
	router=InbandRouter(),
	resolver=HashResolver({'www.alma.hu': '1.2.3.4', 
				'www.korte.hu': '4.5.6.7'}))

Ami varhato 3.1-ben az az, hogy a Resolver-bol is "policy" lesz, mint a 
NATPolicy vagy az AuthPolicy, azaz  nevvel letrehozott objektum lesz, 
amire a Service-nel mar csak hivatkozni kell, azaz kb igy:

ResolverPolicy('web', HashResolver({'www.alma.hu': '1.2.3.4', 
				'www.korte.hu': '4.5.6.7'})

Service("http", HttpProxy, 
	router=InbandRouter(),
	resolver_policy='web')

Igy tobb service-bol lehet majd egyszeruen ugyanarra hivatkozni.

-- 
Bazsi



More information about the zorp-hu mailing list