Page MenuHomePhorge

Guam in Winterfell requires STARTTLS on SSL port
Closed, ResolvedPublic

Description

# rpm -qv guam
guam-0.8-12.1.el7.kolab_wf.x86_64

Configuration

/etc/guam/sys.config:

%% Example configuration for Guam.
[
    {
        kolab_guam, [
            {
                imap_servers, [
                    {
                        imaps, [
                            { host, "127.0.0.1" },
                            { port, 9993 },
                            { tls, true }
                        ]
                    }
                ]
            },
            {
                listeners, [
                    {
                        imap, [
                            { port, 143 },
                            { imap_server, imaps },
                            {
                                rules, [
                                    { filter_groupware, [] }
                                ]
                            },
                            {
                                tls_config, [
                                    { certfile, "/etc/pki/cyrus-imapd/cyrus-imapd.pem" }
                                ]
                            }
                        ]
                    },
                    {
                        imaps, [
                            { port, 993 },
                            { implicit_tls, true },
                            { imap_server, imaps },
                            {
                                rules, [
                                    { filter_groupware, [] }
                                ]
                            },
                            {
                                tls_config, [
                                    { certfile, "/etc/pki/cyrus-imapd/cyrus-imapd.pem" }
                                ]
                            }
                        ]
                    }
                ]
            }
        ]
    },

Expected Result

  1. Implicit TLS is used against 127.0.0.1:9993

Result

  1. Explicit TLS is used, but implicit TLS port does not expose STARTTLS capability, while Guam or #eimap requires it.
2016-06-17 12:11:08 =ERROR REPORT====
** Generic server <0.309.0> terminating 
** Last message in was {server_hello,[{capabilities,<<"IMAP4rev1 LITERAL+ ID ENABLE AUTH=PLAIN AUTH=LOGIN SASL-IR">>},{server_id,<<"kolab.example.org Cyrus IMAP 2.5.8.12-Kolab-2.5.8-13.1.el7.kolab_wf server ready">>}]}
** When Server state == {state,{sslsocket,{gen_tcp,#Port<0.1853>,tls_connection,<0.115.0>},<0.389.0>},<0.93.0>,[{certfile,"/etc/pki/cyrus-imapd/cyrus-imapd.pem"}],true,true,[{host,"127.0.0.1"},{port,9993},{tls,true}],[],[{kolab_guam_rule_filter_groupware,{state,undefined,<<>>,false,<<>>,[<<"LIST">>,<<"list">>,<<"XLIST">>,<<"xlist">>,<<"LSUB">>,<<"lsub">>]}}],<0.391.0>,undefined,undefined}
** Reason for termination == 
** {badarg,[{binary,match,[[{capabilities,<<"IMAP4rev1 LITERAL+ ID ENABLE AUTH=PLAIN AUTH=LOGIN SASL-IR">>},{server_id,<<"kolab.example.org Cyrus IMAP 2.5.8.12-Kolab-2.5.8-13.1.el7.kolab_wf server ready">>}],<<"STARTTLS">>],[]},{kolab_guam_session,ensure_hello_does_not_have_starttls,1,[{file,"src/kolab_guam_session.erl"},{line,307}]},{kolab_guam_session,handle_info,2,[{file,"src/kolab_guam_session.erl"},{line,75}]},{gen_server,try_dispatch,4,[{file,"gen_server.erl"},{line,615}]},{gen_server,handle_msg,5,[{file,"gen_server.erl"},{line,681}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,240}]}]}
2016-06-17 12:11:08 =CRASH REPORT====
  crasher:
    initial call: kolab_guam_session:init/1
    pid: <0.309.0>
    registered_name: []
    exception exit: {{badarg,[{binary,match,[[{capabilities,<<"IMAP4rev1 LITERAL+ ID ENABLE AUTH=PLAIN AUTH=LOGIN SASL-IR">>},{server_id,<<"kolab.example.org Cyrus IMAP 2.5.8.12-Kolab-2.5.8-13.1.el7.kolab_wf server ready">>}],<<"STARTTLS">>],[]},{kolab_guam_session,ensure_hello_does_not_have_starttls,1,[{file,"src/kolab_guam_session.erl"},{line,307}]},{kolab_guam_session,handle_info,2,[{file,"src/kolab_guam_session.erl"},{line,75}]},{gen_server,try_dispatch,4,[{file,"gen_server.erl"},{line,615}]},{gen_server,handle_msg,5,[{file,"gen_server.erl"},{line,681}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,240}]}]},[{gen_server,terminate,7,[{file,"gen_server.erl"},{line,826}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,240}]}]}
    ancestors: [<0.93.0>,kolab_guam_sup,<0.88.0>]
    messages: []
    links: [<0.93.0>,<0.391.0>]
    dictionary: []
    trap_exit: true
    status: running
    heap_size: 987
    stack_size: 27
    reductions: 760
  neighbours:
    neighbour: [{pid,<0.391.0>},{registered_name,[]},{initial_call,{eimap,init,['Argument__1']}},{current_function,{gen_fsm,loop,7}},{ancestors,[<0.309.0>,<0.93.0>,kolab_guam_sup,<0.88.0>]},{messages,[]},{links,[<0.309.0>]},{dictionary,[]},{trap_exit,false},{status,waiting},{heap_size,1598},{stack_size,10},{reductions,3221}]
2016-06-17 12:11:08 =SUPERVISOR REPORT====
     Supervisor: {<0.93.0>,kolab_guam_listener}
     Context:    child_terminated
     Reason:     {badarg,[{binary,match,[[{capabilities,<<"IMAP4rev1 LITERAL+ ID ENABLE AUTH=PLAIN AUTH=LOGIN SASL-IR">>},{server_id,<<"kolab.example.org Cyrus IMAP 2.5.8.12-Kolab-2.5.8-13.1.el7.kolab_wf server ready">>}],<<"STARTTLS">>],[]},{kolab_guam_session,ensure_hello_does_not_have_starttls,1,[{file,"src/kolab_guam_session.erl"},{line,307}]},{kolab_guam_session,handle_info,2,[{file,"src/kolab_guam_session.erl"},{line,75}]},{gen_server,try_dispatch,4,[{file,"gen_server.erl"},{line,615}]},{gen_server,handle_msg,5,[{file,"gen_server.erl"},{line,681}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,240}]}]}
     Offender:   [{pid,<0.309.0>},{id,session},{mfargs,{kolab_guam_session,start_link,undefined}},{restart_type,temporary},{shutdown,1000},{child_type,worker}]

Details

Ticket Type
Task