Monday, August 6, 2012

Mail Server Postfix, Dovecot dan SSL Berbasis Slackware

Beberapa hari terakhir ini sebenarnya cukup melelahkan juga, dapat project membangun mail server hingga memaksa saya sibuk Googling sana-sini hanya untuk mencari artikel dan forum yang berkaitan dengan mail server berbasis slackware dengan Postfix, Dovecot dengan autentifikasi SSL.

Cukup sulit juga, apalagi bila saya perhatikan sangat sedikit sekali artikel yang membahas mail server Slackware yang saya temui karena sebagian besar artikel dan forum yang ada kebanyakan membahas masalah mail server berbasis Debian, Ubuntu dan Redhat.

Terlebih lagi, berdasarkan beberapa artikel yang saya baca Slackware tidak mendukung PAM. Jadi untuk menggunakan SSL pada mail server yang akan kita buat harus menginstall Cyrus terlebih dahulu.

Akhirnya setelah oprek sana-sini dengan arahan artikel dan dokumentasi berikut :

https://www.zulius.com/how-to/set-up-postfix-with-a-remote-smtp-relay-host/
http://www.postfix.org/SASL_README.html
http://wiki.dovecot.org/HowTo/PostfixAndDovecotSASL
http://wiki1.dovecot.org/HowTo/DovecotLDAPostfixAdminMySQL
http://library.linode.com/email/postfix/dovecot-mysql-debian-6-squeeze 

Dan beruntung, saat ini Dovecot sudah mendukung SSL hingga saya tidak perlu lagi menggunakan Cyrus untuk dapat membuat mail server Slackware dengan SSL.

Konfigurasi Dovecot sebagai berikut :

dovecot.conf

protocols = imap imaps pop3 pop3s
log_timestamp = "%Y-%m-%d %H:%M:%S "
mail_location = maildir:/home/vmail/%d/%n/Maildir


ssl = yes
ssl_cert_file = /etc/postfix/smtpd.cert
ssl_key_file = /etc/postfix/smtpd.key
ssl_ca_file = /etc/ssl/certs/cacert.org.pem

ssl_verify_client_cert = yes
ssl_cipher_list = ALL:!LOW:!SSLv2
verbose_ssl = yes

namespace private {
    separator = .
    prefix = INBOX.
    inbox = yes
}


protocol pop3 {
   pop3_uidl_format = %08Xp%08Xu

}

auth default {
       mechanisms = plain login

       
       passdb sql {
           args = /usr/local/etc/dovecot-sql.conf
      }

      
      userdb sql {
           args = /usr/local/etc/dovecot-sql.conf
      }

    
      socket listen {
           master {
                 path = /var/run/dovecot/auth-master
                 mode = 0600
                 user = postfix
                 group = postfix
          }
    

         client {
               path = /var/run/dovecot/auth-client
              mode = 0660
              user = postfix
              group = postfix
        }
     }      

}

Berikut konfigurasi Postfix yang saya gunakan agar mail server dapat bekerja dengan SSL dan menggunakan relay host dengan SMTP ISP yang saya gunakan selebihnya adalah konfigurasi default.

main.cf

myhostname = host.domain.tld
mydomain = domain.tld
myorigin = $mydomain

inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost

mynetworks = 192.168.1.0/24, 192.168.2.0/24, 127.0.0.0/8
relayhost = [your.isp.smtp]
alias_maps = hash:/etc/postfix/aliases
alias_database = hash:/etc/postfix/aliases

home_mailbox = Maildir/

virtual_mailbox_domains         =

proxy:mysql:$config_directory/mysql_virtual_domains_maps.cf
virtual_mailbox_base            = /home/vmail
virtual_mailbox_maps            = proxy:mysql:$config_directory/mysql_virtual_mailbox_maps.cf
virtual_alias_maps              = proxy:mysql:$config_directory/mysql_virtual_alias_maps.cf
virtual_mailbox_limit_maps      = proxy:mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf
virtual_minimum_uid             = 5000
virtual_uid_maps                = static:5000
virtual_gid_maps                = static:5000
virtual_transport               = virtual
dovecot_destination_recipient_limit = 1
 

smtpd_sasl_auth_enable          = yes
smtp_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sasl_path                 = /var/run/dovecot/auth-client
smtp_sasl_password_maps     = hash:/etc/postfix/sasl_passwd
smtpd_tls_security_level = may
smtpd_tls_CAfile                = /etc/ssl/certs/cacert.org.pem
smtpd_tls_cert_file             = /etc/postfix/smtpd.cert
smtpd_tls_key_file              = /etc/postfix/smtpd.key
smtp_tls_security_level        = may
smtpd_delay_reject = yes
smtpd_tls_received_header       = yes
smtpd_tls_ask_ccert             = yes
smtpd_tls_loglevel              = 3
tls_random_source               = dev:/dev/urandom
smtpd_helo_required             = yes
disable_vrfy_command            = yes
smtpd_always_send_ehlo = yes


smtpd_recipient_restrictions =
        permit_mynetworks
        permit_sasl_authenticated
        reject_unauth_destination
        permit

smtpd_client_restrictions =
    permit_mynetworks
    permit_sasl_authenticated
    permit

smtpd_data_restrictions =
        reject_unauth_pipelining,
        reject_multi_recipient_bounce,
        permit


Sempat merepotkan juga karena tahap awal percobaan selalu menghasilkan error seperti ini :

554 5.7.1 : Client host rejected: Access denied

Ternyata setelah konfirmasi dan dibantu oleh pihak ISP, akhirnya mail server bisa bekerja dengan relay host SMTP milik ISP.

No comments: