[zorp-hu] snmp
Balazs Scheidler
bazsi@balabit.hu
Mon, 20 Jan 2003 14:35:25 +0100
On Mon, Jan 20, 2003 at 01:46:39PM +0100, HOLTZL Peter wrote:
> > Ez azt jelenti, hogy van kilatasban? Ha igen, mikorra varhato?
>
> Kerdes jo. A fejlesztok biztos tudjak a valszt. (megkerdeztem: majd
> lesz, ez a valsz)
>
> > 2-es Zorphoz egy UDP-s peldat tudnal mutatni? A kernelbe kell
> > valami "trukkos" dolog, mint a 2.2-es sorozatnal az udp-patch?
>
> Nincs trukk, ugyanugy kell, mint a tcp:) A 2.2-esben az udp patch is
> csak a ForgeClientSourceNAT hasznalatahoz kellett!
Listener helyett Receiver kell, valahogy igy:
def udp():
Service('snmp', PlugProxy)
Receiver(SockAddrInet('192.168.0.1', 50163), 'snmp')
ha nagy mennyisegu snmp forgalom elkepzelheto, akkor erdemes bekapcsolni a
plug masodlagos kapcsolat lehetoseget, ami azt jelenti, hogy nem minden
session indit szalat, egy szallal tobb kapcsolat is lekezelheto. Ezt
valahogy igy lehet:
class SNMPProxy(PlugProxy):
def config(self):
PlugProxy.config(self)
self.secondary_mask = 0xC
self.secondary_sessions = 100
Ezek kozul a secondary mask egy bitmask, ami megadja, hogy mely sessionok
kerulhetnek ugyanabba a plugba. Itt a funkcio leirasa (ez a nalad levo
peldanynal valoszinuleg meg nincs dokumentalva):
Secondary sessions
Plug supports several sessions in the same proxy instance (e.g. in
the same thread), effectively reusing proxy instances. As new
sessions enter the proxy via a fastpath, using secondary sessions
might decrease firewall load significantly.
When a new connection is accepted, Zorp looks for the appropriate
proxy instance which is willing to accept secondary sessions. If
there is none, a new proxy instance is started. An already running
proxy instance is appropriate if it is willing to accept secondary
channels and the criteria about secondary sessions set by the
administrator match.
The critera in plug is set by the 'secondary_mask' attribute,
consult the attribute documentation for more details.
Es itt vannak az attributumok:
secondary_sessions -- [INTEGER:10:RW:R] The number of
possible secondary sessions within
a single plug instance.
secondary_mask -- [INTEGER:0:RW:R] an integer
specifying which properties of an
established session is marked
important. If all important
properties match, a secondary
session is handled by this plug
proxy given the new session would
not exceed 'secondary_sessions'.
This is a bitfield with the
following interpretation: bit 0
means source address, bit 1 means
source port, bit 2 means
destination address, bit 3 means
destination port.
A 0xC ertek nagyjabol azt jelenti, hogy ha ugyanarra a gepre, ugyanarra a
portra iranyulo keres van barmelyik belso halozati gep eseten ugyanarra a
plugra kerul. Arra vigyazz, hogy a masodlagos kapcsolatok nem erintik a
Python-t, ezert nem szamitanak a Pythonban megadott access control tenyezok
(zona, stb)
Igazabol ha SNMP forgalom pontosan egy korbehatarolhato geprol erkezik, ahol
meg tudsz bizni a gep forras IP-jeben (merthogy UDP-nel az konnyen
hamisithato), akkor nem kell szenvedni a masodlagos kapcsolatokkal, ha
viszont nem, akkor konnyen eldugithatjak a tuzfaladat. (azon mondjuk lehet
segiteni egy max_instances= Service parameterrel.)
--
Bazsi
PGP info: KeyID 9AF8D0A9 Fingerprint CD27 CFB0 802C 0944 9CFD 804E C82C 8EB1