B1GMail 7 und ejabberd

    • B1GMail 7 und ejabberd

      Hallo Sebijk, ich betreibe seit geraumer Zeit einen Freemail Service und biete mit deinem Plugin auch ein Jabber Konto (Openfire) an. Da ich mit Openfire aber aus verschiedenen Gründen unzufrieden bin (nur eine Domain möglich, Transports, regelmäßige Abstürze) möchte ich gerne auf eJabberd umsteigen. eJabberd ist bereits auf meinem Debian Server installiert und ich habe versucht mit dem Perl script, das du im B1GMail Forum gepostet hast, eine Brücke zur Mail-Service-Datenbank herzustellen. Leider funktioniert der Login aber nicht. Hast du vielleicht ein wenig Zeit um mir da weiter zu helfen?

      Meine Jabber Adresse lautet martinooo@jabber.se

      Danke!
    • Hallo und danke für die Antwort! Ich kopiere jetzt einfach mal ein paar Fehlermeldungen, die ich unter /var/log/ejabberd/ejabberd.log gefunden habe:

      Source Code

      1. =ERROR REPORT==== 2011-07-29 12:20:00 ===
      2. C(<0.247.0>:extauth:80) : normal
      3. =ERROR REPORT==== 2011-07-29 12:20:00 ===
      4. C(<0.246.0>:extauth:80) : normal
      5. =ERROR REPORT==== 2011-07-29 12:20:00 ===
      6. C(<0.248.0>:extauth:80) : normal


      Brainfuck Source Code

      1. =ERROR REPORT==== 2011-07-29 12:29:38 ===
      2. ** State machine <0.495.0> terminating
      3. ** Last event in was {xmlstreamelement,
      4. {xmlelement,"auth",
      5. [{"xmlns","urn:ietf:params:xml:ns:xmpp-sasl"},
      6. {"mechanism","PLAIN"},
      7. {"xmlns:ga",
      8. "http://www.google.com/talk/protocol/auth"},
      9. {"ga:client-uses-full-bind-result","true"}],
      10. [{xmlcdata,
      11. <<"TWFyc2NoaWVAbncuYW0ATWFyc2NoaWUATnVyZGVyQnZC">>}]}}
      12. ** When State == wait_for_feature_request
      13. ** Data == {state,{socket_state,tls,
      14. {tlssock,#Port<0.420>,#Port<0.431>},
      15. <0.494.0>},
      16. ejabberd_socket,#Ref<0.0.0.9220>,"2998458565",
      17. {sasl_state,"jabber","domain1.com",[],
      18. #Fun<ejabberd_c2s.1.131268646>,
      19. #Fun<ejabberd_c2s.2.94886151>,undefined,
      20. undefined},
      21. c2s,c2s_shaper,false,true,false,true,
      22. [{certfile,"/etc/ejabberd/ejabberd.pem"}],
      23. false,undefined,[],"domain1.com",[],undefined,
      24. {0,nil},
      25. {0,nil},
      26. {0,nil},
      27. {0,nil},
      28. {dict,0,16,16,8,80,48,
      29. {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],
      30. []},
      31. {{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],
      32. []}}},
      33. undefined,undefined,undefined,false,
      34. {userlist,none,[]},
      35. unknown,unknown,
      36. {{95,223,106,34},1517},
      37. []}
      38. ** Reason for termination =
      39. ** {badarg,[{extauth,call_port,2},
      40. {ejabberd_auth,'-check_password_with_authmodule/3-fun-0-',4},
      41. {lists,dropwhile,2},
      42. {ejabberd_auth,check_password_with_authmodule,3},
      43. {cyrsasl_plain,mech_step,2},
      44. {cyrsasl,server_step,2},
      45. {ejabberd_c2s,wait_for_feature_request,2},
      46. {p1_fsm,handle_msg,10}]}
      Display All


      Brainfuck Source Code

      1. =ERROR REPORT==== 2011-07-29 12:30:12 ===
      2. ** State machine <0.497.0> terminating
      3. ** Last event in was {xmlstreamelement,
      4. {xmlelement,"auth",
      5. [{"xmlns","urn:ietf:params:xml:ns:xmpp-sasl"},
      6. {"mechanism","PLAIN"},
      7. {"xmlns:ga",
      8. "http://www.google.com/talk/protocol/auth"},
      9. {"ga:client-uses-full-bind-result","true"}],
      10. [{xmlcdata,<<"AG9pbmlnMgAxajU0cDExXl4=">>}]}}
      11. ** When State == wait_for_feature_request
      12. ** Data == {state,{socket_state,tls,
      13. {tlssock,#Port<0.434>,#Port<0.436>},
      14. <0.496.0>},
      15. ejabberd_socket,#Ref<0.0.0.9230>,"3370550956",
      16. {sasl_state,"jabber","domain1.com",[],
      17. #Fun<ejabberd_c2s.1.131268646>,
      18. #Fun<ejabberd_c2s.2.94886151>,undefined,
      19. undefined},
      20. c2s,c2s_shaper,false,true,false,true,
      21. [{certfile,"/etc/ejabberd/ejabberd.pem"}],
      22. false,undefined,[],"domain1.com",[],undefined,
      23. {0,nil},
      24. {0,nil},
      25. {0,nil},
      26. {0,nil},
      27. {dict,0,16,16,8,80,48,
      28. {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],
      29. []},
      30. {{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],
      31. []}}},
      32. undefined,undefined,undefined,false,
      33. {userlist,none,[]},
      34. unknown,unknown,
      35. {{92,192,78,219},58583},
      36. []}
      37. ** Reason for termination =
      38. ** {badarg,[{extauth,call_port,2},
      39. {ejabberd_auth,'-check_password_with_authmodule/3-fun-0-',4},
      40. {lists,dropwhile,2},
      41. {ejabberd_auth,check_password_with_authmodule,3},
      42. {cyrsasl_plain,mech_step,2},
      43. {cyrsasl,server_step,2},
      44. {ejabberd_c2s,wait_for_feature_request,2},
      45. {p1_fsm,handle_msg,10}]}
      Display All


      Brainfuck Source Code

      1. =ERROR REPORT==== 2011-07-29 12:30:17 ===
      2. ** State machine <0.499.0> terminating
      3. ** Last event in was {xmlstreamelement,
      4. {xmlelement,"auth",
      5. [{"xmlns","urn:ietf:params:xml:ns:xmpp-sasl"},
      6. {"mechanism","PLAIN"},
      7. {"xmlns:ga",
      8. "http://www.google.com/talk/protocol/auth"},
      9. {"ga:client-uses-full-bind-result","true"}],
      10. [{xmlcdata,<<"AG9pbmlnMgAxajU0cDExXl4=">>}]}}
      11. ** When State == wait_for_feature_request
      12. ** Data == {state,{socket_state,tls,
      13. {tlssock,#Port<0.438>,#Port<0.440>},
      14. <0.498.0>},
      15. ejabberd_socket,#Ref<0.0.0.9240>,"2381454046",
      16. {sasl_state,"jabber","domain1.com",[],
      17. #Fun<ejabberd_c2s.1.131268646>,
      18. #Fun<ejabberd_c2s.2.94886151>,undefined,
      19. undefined},
      20. c2s,c2s_shaper,false,true,false,true,
      21. [{certfile,"/etc/ejabberd/ejabberd.pem"}],
      22. false,undefined,[],"domain1.com",[],undefined,
      23. {0,nil},
      24. {0,nil},
      25. {0,nil},
      26. {0,nil},
      27. {dict,0,16,16,8,80,48,
      28. {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],
      29. []},
      30. {{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],
      31. []}}},
      32. undefined,undefined,undefined,false,
      33. {userlist,none,[]},
      34. unknown,unknown,
      35. {{92,192,78,219},58585},
      36. []}
      37. ** Reason for termination =
      38. ** {badarg,[{extauth,call_port,2},
      39. {ejabberd_auth,'-check_password_with_authmodule/3-fun-0-',4},
      40. {lists,dropwhile,2},
      41. {ejabberd_auth,check_password_with_authmodule,3},
      42. {cyrsasl_plain,mech_step,2},
      43. {cyrsasl,server_step,2},
      44. {ejabberd_c2s,wait_for_feature_request,2},
      45. {p1_fsm,handle_msg,10}]}
      Display All


      Zur Info, ich nutze einen Debian Server, habe ejabberd eingerichtet und drei Domains eingetragen. Aktuell verwende ich domain1.com und domain2.com für den Freemail Dienst. Der Jabber-Server läuft über domain3.com (die es nicht beim Freemail Dienst gibt). Um zu testen ob die Brücke funktioniert, habe ich versucht mich mit einer meiner E-Mail Adressen am Jabber Server anzumelden (leider ohne Erfolg).
    • Ich habe die original cfg Datei nur dahingehend abgeändert (mit nano per SSH), dass ich die Domains eingetragen habe:

      Source Code

      1. %% Hostname
      2. {hosts, ["domain1.com", "domain2.com", "domain3.com"]}.


      Dann habe ich die standard Login-Methode ausgeklammert

      Source Code

      1. %% {auth_method, internal}.


      Und auf das Script verwiesen

      Source Code

      1. %%
      2. %% Authentication using external script
      3. %% Make sure the script is executable by ejabberd.
      4. %%
      5. {auth_method, external}.
      6. {extauth_program, "/etc/ejabberd/bridge.pl"}.


      bridge.pl habe ich mit dem User ejabberd erstellt und ausführbar gemacht.
    (c) 2004-2018 Home of the Sebijk.com