[zorp-hu] Zorp alapok
SZALAY Attila
sasa@pheniscidae.satimex.tvnet.hu
Tue, 2 Oct 2001 23:22:34 +0200
Hi All!
On 2001 Oct 02, MG wrote:
>
> Most nezem ez nem jo pelda, mert ezt az ipchains is tudja. :)
> Szoval egy konkret pelda kellene.
Egy konkret, amde kisse bonyolultabb pelda:
class MyPop3sProxy(PsslProxy):
class MyPop3(Pop3Proxy):
def usercheck(self, command):
if len(self.command_param) == 8:
try:
string.index(self.command_param,"kiscsibe")
return POP3_REQ_ACCEPT
except ValueError:
pass
return POP3_REQ_ABORT
def config(self):
self.request["USER"] = (POP3_REQ_POLICY, self.usercheck)
self.request["APOP"] = (POP3_REQ_REJECT)
self.request["DELE"] = (POP3_REQ_REJECT)
def config(self):
self.client_need_ssl = TRUE
self.client_verify_type = 1
self.stack_proxy = self.MyPop3
self.client_cert = "/etc/zorp/ssl/pop3.cert"
self.client_key = "/etc/zorp/ssl/pop3.key"
Ez egyebkent egy feloldalas Pop3s proxy, azaz a kliens oldalan pop3s
mig a szerver-nek semmit nem kell tudnia az ssl-rol.
Ezen kivul csak es kizarolag a kiscsibe user-t engedjuk be, es
neki sem engedjuk meg a level torleset.
Mas szoval zorp-nal, mint applikacios szintu proxy-nal majd minden
parancsrol eldonthetjuk, hogy atmehet-e vagy nem.
Raadasul, mivel itt egy programozasi nyelv all a rendelkezesunkre,
nem vagyunk kiszolgaltatva az epp aktualis adatoknak sem. (Azaz
felhasznalhatunk korabbi adatokat, vagy eppen rendszeren kivuli
adatokat is, mint pl. az aktualis ido, a gep terheltsege, stb.)
Erre pelda a kovetkezo felallas. Feladat, hogy user nem torolheti
le a levelet olvasatlanul. (Legalabbis a pop3 szerverrol le kell
toltenie a sajat gepere, mielott a szerveren torolne.) Nezzuk
hogyan oldhatjuk ezt meg zorp alatt:
class MyPop3(Pop3Proxy):
def retr(self, command):
self.letoltve[atoi(self.command_param)] = TRUE
return POP3_REQ_ACCEPT
def dele(self, command):
if self.letoltve[atoi(self.command_param)] = TRUE:
return POP3_REQ_ACCEPT
return POP3_REQ_REJECT
def config(self):
self.letoltve = {}
self.request["RETR"] = (POP3_REQ_POLICY, self.retr)
self.request["DELE"] = (POP3_REQ_POLICY, self.dele)
Vagyis csinalunk egy tombot, es ennek a tombnek a megfelelo
elemenek a valtoztatasaval jelezzuk, ha azt a levelet letoltottek,
es csak ebben az esetben engedjuk a torleset.
De megemlithetnem peldanak az egyszeru URL szurest is.
Vagy pl. azt, hogy csinalhatunk (pontosabban keszen kapunk)
olyan Ftp proxyt, ami pl. csak letoltest, mas esetben csak
feltoltest engedelyezi.
Vagy pl. megemlithetem, hogy ftp eseten tud valtani
passziv es aktiv kapcsolat kozott ugy, hogy pl. kifele csak
aktiv _latszik_.
Vagy pl. http-nel tud konvertalni nem proxy kerest
proxy keresre.
stb. A lehetoseg szama vegtelen. :)
--
PGP ID 0x8D143771, /C5 95 43 F8 6F 19 E8 29 53 5E 96 61 05 63 42 D0
GPG ID ABA0E8B2, 45CF B559 8281 8091 8469 CACD DB71 AEFC ABA0 E8B2
An exaggeration is a thruth that has lost its temper -- Kahlil Gibran