[zorp-hu] zorp é s squid

Balazs Scheidler zorp-hu@lists.balabit.hu
Mon, 2 Jun 2003 11:27:06 +0200


On Mon, Jun 02, 2003 at 09:31:54AM +0200, SZALAY Attila wrote:
> Hi!
> 
> On 2003 May 30, Czakó Krisztián wrote:
> > 2003-05-30, p keltezéssel SZALAY Attila ezt írta:
> > > 
> > > A zorp-ban a csatlakozas latszik?
> > 
> > Igen. Ugyan az látszik, mint amikor megy.
> 
> Az adatkapcsolat felvetelekor is?
> Parancsok sorrendje?
> 
> > > tcpdump-al csomagszinten latszik?
> > 
> > Ezt még nem néztem, a levél első felindulásból elkövetett dolog volt :)
> 
> A a zorp latja a kapcsolatot, akkor ez annyira nem problema.
> 
> > Ha már itt vagyunk, lehet valahogy 2.0-ás zorpban limitálni, hogy egy
> > adott IP címről adott időn belül maximum hány kérést szolgálunk ki?
> 
> Beepitett feaute tudtommal nincs, de a listen accept callback-je tokeletesen
> alkalmas a megvalositasra. :)))

csinalhatsz egy custom Listener leszarmazottat, es ott megvalosithato
valahogy igy:

class TimeLimitListener(Listener):
	def accepted(self, stream, client_address, client_local, client_listen):
		if johet_a_kapcsolat:
			Listener.accepted(self, stream, client_address, client_local, client_listen)
		else:
			stream.close()
			return None

a johet_a_kapcsolat valtozo helyere kell ellenorizni, hogy az aktualis
kapcsolat szerinted jo-e vagy sem.

a donteshez termeszetesen felhasznalhatod az osszes parametert
(client_address pl, ami egy SockAddrInet tipus)

a policydban pedig igy hasznalhatod:

def peldany():
	Service('szolgaltatas', ...)
	TimeLimitListener(SockAddrInet('1.2.3.4', 1234), 'szolgaltatas')

-- 
Bazsi
PGP info: KeyID 9AF8D0A9 Fingerprint CD27 CFB0 802C 0944 9CFD 804E C82C 8EB1