[zorp-hu] Zorp smtp, pop3 check username

Kovács Bálint kovacs.balint at balabit.hu
2013. Dec. 12., Cs, 11:33:03 CET


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 at lists.balabit.hu
> https://lists.balabit.hu/mailman/listinfo/zorp-hu
>

--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: http://lists.balabit.hu/pipermail/zorp-hu/attachments/20131212/de386e0c/attachment.htm 


További információk a(z) zorp-hu levelezőlistáról