Szia,

a pop3 proxyban ez elég egyszerű, mert amúgy is parsolja a usernevet:

class UserPolicyPop3Proxy(Pop3Proxy):
    def config(self):
        Pop3Proxy.config(self)
        self.banned_users = ("alma", "korte")
        self.request["PASS"] = (POP3_REQ_POLICY, self.checkUser)

    def checkUser(self, command):
        if self.username in self.banned_users:
            proxyLog(self, "pop3.policy", 3, "User administratively prohibited; username='%s'", self.username)
            self.response_param = "User administratively prohibited."
            return POP3_REQ_REJECT
        return POP3_REQ_ACCEPT

Az SMTP sokkal bonyolultabb, de ha PLAIN auth történik, akkor kezelhető az alábbi proxyval

import base64

class UserPolicySmtpProxy(SmtpProxy):
    def config(self):
        SmtpProxy.config(self)
        self.banned_users = ("alma", "korte", "test")
        self.request["AUTH"] = (SMTP_REQ_POLICY, self.checkUser)

    def checkUser(self, cmd, param):
        if param[:5] != "PLAIN":
            self.error_code = "550"
            self.error_info = "Only PLAIN authentication is supported."
            return SMTP_REQ_REJECT
        base64str = param[6:]
        try:
            plain = base64.b64decode(base64str)
        except TypeError, e:
            proxyLog(self, SMTP_ERROR, 3, "Unable to decode PLAIN auth request; req='%s', error='%s'", (base64str, e) )
            return SMTP_REQ_REJECT
        try:
            (empty, username, password) = plain.split('\0')
        except ValueError,e:
            proxyLog(self, SMTP_ERROR, 3, "Unable to parse PLAIN auth request; req='%s', error='%s'", (plain, e) )
            return SMTP_REQ_REJECT
        if username in self.banned_users:
            proxyLog(self, SMTP_POLICY, 3, "User administratively prohibited; username='%s'", username)
            self.error_info = "User administratively prohibited."
            return SMTP_REQ_REJECT
        return SMTP_REQ_ACCEPT

Erre gondoltál?

Üdv,
Balint


On 12/11/2013 09:51 AM, Tamas Barina wrote:
Sziasztok,

Van valamai ilyesmire lehetoseg itt:

Pop3, smtp:
Ha a username != valaki1, valaki2 akkor rejectelje a kapcsolatot?


Tamas Barina



_______________________________________________
zorp-hu mailing list
zorp-hu@lists.balabit.hu
https://lists.balabit.hu/mailman/listinfo/zorp-hu