{"id":76,"date":"2017-10-31T00:20:00","date_gmt":"2017-10-31T00:20:00","guid":{"rendered":"https:\/\/linuxadmin.melberi.com\/uncategorized\/cyrus-imap-configuration-with-ldap"},"modified":"2017-10-31T06:59:38","modified_gmt":"2017-10-31T06:59:38","slug":"cyrus-imap-with-ldap-config","status":"publish","type":"post","link":"https:\/\/www.melberi.com\/linuxadmin\/imap\/cyrus-imap-with-ldap-config","title":{"rendered":"Cyrus Imap Configuration (With LDAP support)"},"content":{"rendered":"<div dir=\"ltr\" style=\"text-align: left;\">\n<h2><u><b>Step by step configuration of Cyrus imap.<\/b><\/u><\/h2>\n<p>Install cyrus imap and supporting packages using yum.<\/p>\n<p>&nbsp;<\/p>\n<div class=\"MsoNormal\"><b>Step I<\/b><\/div>\n<div class=\"MsoNormal\"><\/div>\n<div class=\"MsoNormal\"><b>Enable logging <\/b><\/div>\n<div class=\"MsoNormal\">by adding the following lines to \/etc\/syslog.conf:<\/div>\n<div class=\"MsoNormal\"><\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">local6.debug\u00a0\u00a0\u00a0 \/var\/log\/imapd.log<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">auth.debug\u00a0\u00a0\u00a0\u00a0\u00a0 \/var\/log\/auth.log<\/div>\n<div class=\"MsoNormal\"><\/div>\n<div class=\"MsoNormal\">Create the log files<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">#touch \/var\/log\/imapd.log \/var\/log\/auth.log<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">#service syslog restart<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\"><\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">&gt;<\/div>\n<div class=\"MsoNormal\" style=\"background-color: white;\"><b>Step II<\/b><\/div>\n<div class=\"MsoNormal\" style=\"background-color: white;\"><\/div>\n<div class=\"MsoNormal\" style=\"background-color: white;\">Create the file &#8220;\/etc\/imapd.conf&#8221;.<\/div>\n<div class=\"MsoNormal\" style=\"background-color: white;\"><\/div>\n<div class=\"MsoNormal\" style=\"background-color: white;\"><\/div>\n<div class=\"MsoNormal\" style=\"background-color: white;\">Sample file<\/div>\n<div class=\"MsoNormal\" style=\"background-color: white;\"><\/div>\n<div class=\"MsoNormal\" style=\"background-color: white;\"><\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">configdirectory: \/var\/lib\/imap<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">partition-default: \/var\/spool\/imap<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">admins: cyrus root<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">sievedir: \/var\/lib\/imap\/sieve<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">sendmail: \/usr\/sbin\/sendmail<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">hashimapspool: true<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">sasl_pwcheck_method: saslauthd<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">#sasl_auxprop_plugin: sasldb<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">sasl_mech_list: PLAIN<\/div>\n<p>&nbsp;<\/p>\n<div class=\"MsoNormal\" style=\"background-color: white;\"><\/div>\n<div class=\"MsoNormal\" style=\"background-color: white;\"><\/div>\n<div class=\"MsoNormal\"><b>Step III<\/b><\/div>\n<div class=\"MsoNormal\"><\/div>\n<div class=\"MsoNormal\"><\/div>\n<div class=\"MsoNormal\"><\/div>\n<div class=\"MsoNormal\"><\/div>\n<div class=\"MsoNormal\">Create the following directories<\/div>\n<div class=\"MsoNormal\"><\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">#cd \/var\/lib<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">#mkdir imap (if this dir is already there means no need to create)<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">#chown cyrus:mail imap<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">#chmod 750 imap<\/div>\n<div class=\"MsoNormal\"><\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">#cd \/var\/spool<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">#mkdir imap (if this dir is already there means no need to create)<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">#chown cyrus:mail imap<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">#chmod 750 imap<\/div>\n<div class=\"MsoNormal\"><\/div>\n<div class=\"MsoNormal\"><\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">#su &#8211; cyrus<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">#cd \/usr\/lib\/cyrus-imapd<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">#.\/mkimap<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">#cd \/var\/lib\/imap<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">#chattr +S user quota user\/* quota\/*<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">#chattr +S \/var\/spool\/imap \/var\/spool\/imap\/*<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">#exit<\/div>\n<div class=\"MsoNormal\"><\/div>\n<div class=\"MsoNormal\"><\/div>\n<div class=\"MsoNormal\"><b>Step VI<\/b><\/div>\n<div class=\"MsoNormal\"><\/div>\n<div class=\"MsoNormal\">Add the following lines to the &#8220;\/etc\/services&#8221; file if they aren&#8217;t already there:<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">pop3\u00a0\u00a0\u00a0\u00a0\u00a0 110\/tcp<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">imap\u00a0\u00a0\u00a0\u00a0\u00a0 143\/tcp<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">imsp\u00a0\u00a0\u00a0\u00a0\u00a0 406\/tcp<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">acap\u00a0\u00a0\u00a0\u00a0\u00a0 674\/tcp<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">imaps\u00a0\u00a0\u00a0\u00a0 993\/tcp<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">pop3s\u00a0\u00a0\u00a0\u00a0 995\/tcp<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">kpop\u00a0\u00a0\u00a0\u00a0\u00a0 1109\/tcp<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">sieve\u00a0\u00a0\u00a0\u00a0 2000\/tcp<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">lmtp\u00a0\u00a0\u00a0\u00a0\u00a0 2003\/tcp<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">fud\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 4201\/udp<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\"><\/div>\n<div class=\"MsoNormal\"><\/div>\n<div class=\"MsoNormal\"><b>Step V<\/b><\/div>\n<div class=\"MsoNormal\"><b>Configuring the Master Process<\/b><\/div>\n<div class=\"MsoNormal\"><\/div>\n<p>&nbsp;<\/p>\n<div class=\"MsoNormal\">Choose a configuration from the master\/conf directory:<\/div>\n<div class=\"MsoNormal\">small.conf<\/div>\n<div class=\"MsoNormal\">bare-bones server supporting IMAP and POP<\/div>\n<div class=\"MsoNormal\">normal.conf<\/div>\n<div class=\"MsoNormal\">server supporting IMAP, POP, the SSL wrapped versions, and the Sieve script management protocol<\/div>\n<div class=\"MsoNormal\">prefork.conf<\/div>\n<div class=\"MsoNormal\">The same configuration as above, but with some preforked processes for faster processing.<\/div>\n<div class=\"MsoNormal\">backend-cmu.conf<\/div>\n<div class=\"MsoNormal\">Our configuration (for Murder Backend \/ typical IMAP servers)<\/div>\n<div class=\"MsoNormal\">frontend-cmu.conf<\/div>\n<div class=\"MsoNormal\">Our configuration (for Murder Frontend servers)<\/div>\n<div class=\"MsoNormal\">To use normal.conf, do:<\/div>\n<div class=\"MsoNormal\"><\/div>\n<div class=\"MsoNormal\">#cp \/usr\/share\/doc\/cyrus-imapd-x.x.x\/conf\/normal.conf\u00a0 \/etc\/cyrus.conf<\/div>\n<div class=\"MsoNormal\"><\/div>\n<div class=\"MsoNormal\">Optionally, you can edit \/etc\/cyrus.conf to disable or enabling certain services, or to tune the number of preforked copies. Be sure not to remove the entries that are labeled required.<\/div>\n<div class=\"MsoNormal\"><\/div>\n<div class=\"MsoNormal\"><b>Step VI<\/b><\/div>\n<div class=\"MsoNormal\"><\/div>\n<div class=\"MsoNormal\"><b>Configuring Cyrus with OpenSSL<\/b><\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\"><\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">#openssl req -new -nodes -out req.pem -keyout key.pem<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">#openssl rsa -in key.pem -out new.key.pem<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">#openssl x509 -in req.pem -out ca-cert -req<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">-signkey new.key.pem -days 999<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\"><\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">#cp new.key.pem \/etc\/pki\/cyrus-imapd\/server.pem (or)<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\"><\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">#cat ca-cert &gt;&gt; \/etc\/pki\/cyrus-imapd\/server.pem<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\"><\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">#chown cyrus:mail \/etc\/pki\/cyrus-imapd\/server.pem<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">#chmod 600 \/etc\/pki\/cyrus-imapd\/server.pem # Your key should be protected<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\"><\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">#echo tls_ca_file: \/etc\/pki\/cyrus-imapd\/server.pem &gt;&gt; \/etc\/imapd.conf<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">#echo tls_cert_file: \/etc\/pki\/cyrus-imapd\/server.pem &gt;&gt; \/etc\/imapd.conf<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">#echo tls_key_file: \/etc\/pki\/cyrus-imapd\/server.pem &gt;&gt; \/etc\/imapd.conf<\/div>\n<div class=\"MsoNormal\"><\/div>\n<div class=\"MsoNormal\"><b>Start saslauthd and imap<\/b>:<\/div>\n<div class=\"MsoNormal\"><\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">#service saslauthd start<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">#service cyrus-imapd start<\/div>\n<div class=\"MsoNormal\"><\/div>\n<div class=\"MsoNormal\"><b>Add an SASL password for cyrus to \/etc\/sasldb2<\/b><\/div>\n<div class=\"MsoNormal\"><\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">#saslpasswd2 cyrus<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">#chown cyrus:mail \/etc\/sasldb2<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\"><\/div>\n<div class=\"MsoNormal\"><b>Create mailboxes to match the user accounts<\/b><\/div>\n<div class=\"MsoNormal\"><b>\u00a0<\/b><\/div>\n<div class=\"MsoNormal\">(username1, username2, username3 in this example):<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">#cyradm &#8211;user cyrus localhost<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\"><\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">localhost&gt; cm user.username1<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">localhost&gt; cm user.username2<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">localhost&gt; cm user.username3<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">localhost&gt; exit<\/div>\n<div class=\"MsoNormal\"><\/div>\n<div class=\"MsoNormal\"><\/div>\n<div class=\"MsoNormal\"><\/div>\n<div class=\"MsoNormal\"><b>Step VII<\/b><\/div>\n<div class=\"MsoNormal\"><b>Implementing Cyrus on Redhat with an LDAP backend<\/b><\/div>\n<div class=\"MsoNormal\"><\/div>\n<div class=\"MsoNormal\"><\/div>\n<div class=\"MsoNormal\">Note: It is assumed that you already have an LDAP backend capable of authenticating via uid and userPassword attributes. This does not need to be on the same box as the cyrus imap server. It should have a valid &#8220;cyrus&#8221; user though.<\/div>\n<div class=\"MsoNormal\">Note: if you are happy without LDAP authentication, you may skip to the cyradm section below.<\/div>\n<div class=\"MsoNormal\"><b>Edit \/etc\/imapd.conf &#8211; ensure sasl_pwcheck_method is set to saslauthd<\/b>. That&#8217;s right. EVEN though you will be using pam!<\/div>\n<div class=\"MsoNormal\"><b>Edit \/etc\/sysconfig\/saslauthd, and add the line MECH=&#8221;pam&#8221; <\/b><\/div>\n<div class=\"MsoNormal\">Edit \/etc\/pam.d\/imap (and pop if you wish to run that). It should only contain the following lines:<\/div>\n<div class=\"MsoNormal\"><b>auth\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 sufficient\u00a0\u00a0 \/lib\/security\/pam_ldap.so<\/b><\/div>\n<div class=\"MsoNormal\"><b>account\u00a0\u00a0\u00a0\u00a0 sufficient\u00a0\u00a0 \/lib\/security\/pam_ldap.so<\/b><\/div>\n<div class=\"MsoNormal\">Edit \/etc\/openldap\/ldap.conf and add the following lines:<\/div>\n<div class=\"MsoNormal\">Note: Please see below regarding whether to modify \/etc\/openldap\/ldap.conf or \/etc\/ldap.conf<\/div>\n<div class=\"MsoNormal\">host\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 your.ldap.server<\/div>\n<div class=\"MsoNormal\">base\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ou=Your-Account-Container,dc=your,dc=domain,dc=components<\/div>\n<div class=\"MsoNormal\">scope\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 sub<\/div>\n<div class=\"MsoNormal\">pam_login_attribute\u00a0 uid<\/div>\n<div class=\"MsoNormal\">Ensure saslauthd and cyrus-imapd are set to start at boot time (chkconfig saslauthd on &amp;&amp; chkconfig cyrus-imapd on).<\/div>\n<div class=\"MsoNormal\">Start both services (service saslauthd start &amp;&amp; service cyrus-imapd start).<\/div>\n<div class=\"MsoNormal\">That&#8217;s it &#8211; you can now create mailboxes, and auth to them using your LDAP accounts.<\/div>\n<div class=\"MsoNormal\"><\/div>\n<div class=\"MsoNormal\"><b>Configuring the Mail Transfer Agent<\/b><\/div>\n<div class=\"MsoNormal\"><\/div>\n<div class=\"MsoNormal\">Edit \/etc\/mail\/sendmail.mc<\/div>\n<div class=\"MsoNormal\"><\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">DAEMON_OPTIONS(`Port=smtp, Name=MTA&#8217;)dnl<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">DAEMON_OPTIONS(`Port=smtps, Name=TLSMTA, M=s&#8217;)dnl<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\"><\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">MAILER(`local&#8217;)<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">MAILER(procmail)dnl<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">MAILER(smtp)dnl<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">define(`CYRUSV2_MAILER_ARGS&#8217;, `FILE \/var\/lib\/imap\/socket\/lmtp&#8217;)dnl<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">define(`confLOCAL_MAILER&#8217;,`cyrusv2&#8242;)<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">define(`CYRUS_MAILER_FLAGS&#8217;,`A5@w&#8217;)<\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\">MAILER(`cyrusv2&#8242;)<\/div>\n<div class=\"MsoNormal\"><\/div>\n<div class=\"MsoNormal\"><\/div>\n<div class=\"MsoNormal\"><b>Edit \/etc\/mail\/access<\/b><\/div>\n<div class=\"MsoNormal\"><\/div>\n<div class=\"MsoNormal\"><b>Restart Sendmail and cyrus-imapd services<\/b><\/div>\n<div class=\"MsoNormal\"><\/div>\n<div class=\"MsoNormal\"><b>#service sendmail restrt<\/b><\/div>\n<div class=\"MsoNormal\"><b>#service cyrus-imapd restart<\/b><\/div>\n<div class=\"MsoNormal\"><b>\u00a0<\/b><\/div>\n<div class=\"MsoNormal\"><b>Detailed configuration files of cyrus.conf, imapd.conf and sendmail.mc are posted separately.<\/b><\/div>\n<div class=\"MsoNormal\"><\/div>\n<div class=\"MsoNormal\"><\/div>\n<div class=\"MsoNormal\"><\/div>\n<div class=\"MsoNormal\" style=\"background-color: #cccccc;\"><\/div>\n<p>&nbsp;<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Step by step configuration of Cyrus imap. Install cyrus imap and supporting packages using yum. &nbsp; Step I Enable logging by adding the following lines to \/etc\/syslog.conf: local6.debug\u00a0\u00a0\u00a0 \/var\/log\/imapd.log auth.debug\u00a0\u00a0\u00a0\u00a0\u00a0&#8230; <a href=\"https:\/\/www.melberi.com\/linuxadmin\/imap\/cyrus-imap-with-ldap-config\">Read more &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[128,90,93,101],"tags":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.melberi.com\/linuxadmin\/wp-json\/wp\/v2\/posts\/76"}],"collection":[{"href":"https:\/\/www.melberi.com\/linuxadmin\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.melberi.com\/linuxadmin\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.melberi.com\/linuxadmin\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.melberi.com\/linuxadmin\/wp-json\/wp\/v2\/comments?post=76"}],"version-history":[{"count":2,"href":"https:\/\/www.melberi.com\/linuxadmin\/wp-json\/wp\/v2\/posts\/76\/revisions"}],"predecessor-version":[{"id":532,"href":"https:\/\/www.melberi.com\/linuxadmin\/wp-json\/wp\/v2\/posts\/76\/revisions\/532"}],"wp:attachment":[{"href":"https:\/\/www.melberi.com\/linuxadmin\/wp-json\/wp\/v2\/media?parent=76"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.melberi.com\/linuxadmin\/wp-json\/wp\/v2\/categories?post=76"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.melberi.com\/linuxadmin\/wp-json\/wp\/v2\/tags?post=76"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}