Hot News

Minggu, 05 Juni 2011

Mail server dengan Mandriva


Membangun Mail server dengan mandriva

ok, sekarang kita coba bikin mail server menggunakan distro mandriva

persiapannyannya hanya sedikit ko, yang penting udah install mandriva dan ada koneksi internet (wajib bro…!! sori yang gak punya akses inet)

pasang repository cooker mandriva (wajib) lewat http://easyurpmi.zarb.org, disitu ntar ada pilihan buat menyesuaikan versi mandriva yang dipake. pilih main cooker ama contrib cooker aja. soalnya 2 cooker tsb udah bisa buat bikin mail server.

oh iya, yang kita mo pasang adalah:
postfix
cyrus-sasl
dovecot
squirrelmail
webserver (apache)
openssh-server
openssl
lainnya otomatis lewat urpmi akan terinstall

postfix sebagai MTA, yang akan kita gunakan menggunakan format Maildir, default postfix menggunakan format Mailbox biasa, dan anggapan kita user mail yang akan pake sering kirim attachment yang gede², misal 1Mb. untuk kelebihan dan kekurangan masing-masing format tsb silahkan merujuk ke http://www.reedmedia.net/misc/mail/mailbox-formats.html

cyrus-sasl kita pasang cuman buat nambahin fitur postfix biar bisa menggunakan TLS

dovecot kita gunakan sebagai imap server, soalnya mempunyai ukuran yang kecil dan cepet (mungkin pasangan yang cocok disandingkan dengan postfix), disamping imap server lainnya yang sudah terkenal (uw-imap, courier-imap, cyrus-imap, dll), disamping dovecot gampang mengkonfigurasinya (termasuk dukungan pop3)

squirrelmail, aplikasi webmail yang paling banyak digunakan buat webmail (denger² squirrelmail tu cikal bakalnya YahooMail ya ?)

openssh-server dan openssl biasanya udah includ, gak perlu dijelaskan udah pada tau kekna

mulai install…..

jalankan perintah ini:

urpmi postfix dovecot squirrelmail cyrus-sasl

ikuti saja perintah yang ada layar monitor anda keknya tinggal tekan 1 untuk pilihan default dan tekan Y untuk menyetujui instalasasi aplikasi yang akan digunakan.

ok sekarang anggap aja semua sudah terinstall (mudah kan ??), sekarang tinggal mengkonfigurasi masing-masing aplikasinya.

postfix : edit file /etc/postfix/main.cf
myhostname = mail.server.com
mydomain = server.com
mynetworks = 168.100.189.0/28, 127.0.0.0/8
home_mailbox = Maildir/

konfigurasi diatas cuman contoh aja, dan dengan hanya konfigurasi tersebut postfix sudah bisa dijalankan sebagai MTA atau smtp server , ok kita test

jalankan postfix

/etc/init.d/postfix start atau service postfix start

cek apakah sudah listen port 25 untuk smtp

netstat -pln | grep 25

lakukan pengetesan dengan telnet

telnet localhost 25

jika aplikasi telnet belum ada, silahkan install dengan urpmi (urpmi telnet)

cyrus-sasl : edit file /etc/postfix/sasl/smtpd.conf
pwcheck_method: saslauthd
mech_list: PLAIN LOGIN

mengaktifkan postfix TLS

masuk ke direktori /etc/postfix/
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024
openssl req -new -key smtpd.key -out smtpd.csr

biarkan password challenge kosong
openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
openssl rsa -in smtpd.key -out smtpd.key.unencrypted
mv -f smtpd.key.unencrypted smtpd.key
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650

tambahkan baris ini ke /etc/postfix/main.cf

smtpd_use_tls = yes
#smtpd_tls_auth_only = yes
smtpd_tls_key_file = /etc/postfix/smtpd.key
smtpd_tls_cert_file = /etc/postfix/smtpd.crt
smtpd_tls_CAfile = /etc/postfix/cacert.pem
smtpd_tls_loglevel = 3
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom

kemudian restart postfix (service postfix restart)

dovecot : edit file /etc/dovecot.conf

silahkan utak atik sendiri, soalnya nilai default udah bisa dipake

squirrelmail : edit file /etc/squirrelmail/config.php atau menggunakankan tool /var/www/html/squirrelmail/config/conf.pl

silahkan juga utak atik sendiri

Membuat mailserver menggunakan postfix dan dovecot serta smtp-auth dan TLS, seprti pada tulisan sebelumnya di sini

Untuk syarat umum, mandriva telah tersambung ke cooker, pilih cooker dari http://easyurpmi.zarb.org

Install Postfix dan Dovecot

#urpmi postfix dovecot cyrus-sasl cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-md5 cyrus-sasl-plain

Setelah selesai, sekarang giliran mengkonfigurasi SMTP-AUTH dan TLS

postconf -e ’smtpd_sasl_local_domain =’
postconf -e ’smtpd_sasl_auth_enable = yes’
postconf -e ’smtpd_sasl_security_options = noanonymous’
postconf -e ‘broken_sasl_auth_clients = yes’
postconf -e ’smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination’
postconf -e ‘inet_interfaces = all’
postconf -e ‘mynetworks = 127.0.0.0/8′

Kemudian edit file /usr/lib/sasl2/smtpd.conf

vim /usr/lib/sasl2/smtpd.conf

pwcheck_method: saslauthd
mech_list: plain login

Buat sertifikat untuk TLS

mkdir /etc/postfix/ssl
cd /etc/postfix/ssl/
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024

chmod 600 smtpd.key
openssl req -new -key smtpd.key -out smtpd.csr

openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt

openssl rsa -in smtpd.key -out smtpd.key.unencrypted

mv -f smtpd.key.unencrypted smtpd.key
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650

Selanjutnya mengkonfigurasi Postfix agar menggunakan TLS

postconf -e ’smtpd_tls_auth_only = no’
postconf -e ’smtp_use_tls = yes’
postconf -e ’smtpd_use_tls = yes’
postconf -e ’smtp_tls_note_starttls_offer = yes’
postconf -e ’smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key’
postconf -e ’smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt’
postconf -e ’smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem’
postconf -e ’smtpd_tls_loglevel = 1′
postconf -e ’smtpd_tls_received_header = yes’
postconf -e ’smtpd_tls_session_cache_timeout = 3600s’
postconf -e ‘tls_random_source = dev:/dev/urandom’
postconf -e ’smtpd_sasl_authenticated_header = yes’

Set hostname untuk mail server Postfix

postconf -e ‘myhostname = server1.example.com’

Coba cek konfigurasi Postfix di /etc/postfix/main.cfcat /etc/postfix/main.cf

akan terlihat seperti dibawah ini

queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
mail_owner = postfix
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost
unknown_local_recipient_reject_code = 550
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
debug_peer_level = 2

debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
xxgdb $daemon_directory/$process_name $process_id & sleep 5

sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.3.6/samples
readme_directory = /usr/share/doc/postfix-2.3.6/README_FILES
smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
mynetworks = 127.0.0.0/8
smtpd_tls_auth_only = no
smtp_use_tls = yes
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
smtpd_sasl_authenticated_header = yes
myhostname = server1.example.com

Kemudian start Postfix, saslauthd, dan Dovecot:

/etc/init.d/postfix start
/etc/init.d/saslauthd start
/etc/init.d/dovecot start

Sekarang kita coba tes hasil konfigurasi diatas

telnet localhost 25

setelah berhasil tersambung, ketikkan

ehlo localhost

jika udah ada baris

250-STARTTLS

dan

250-AUTH LOGIN PLAIN

brarti konfigurasi postfix tidak ada kesalahan

Lengkapnya seperti ini

[root@server1 ssl]# telnet localhost 25
Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.
220 server1.example.com ESMTP Postfix
ehlo localhost
250-server1.example.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
quit
221 2.0.0 Bye
Connection closed by foreign host.
[root@server1 ssl]#

Lanjut ke Maildir di Dovecot

edit langsung file /etc/dovecot.conf dan pastikan memberi nilai konfigurasi yang ada sesuai dengan yang diharapkan

misal :
protocols = pop3 pop3s imap imaps

untuk mendefinisikan protokol yang akan digunakan oleh dovecot
default_mail_env = maildir:~/Maildir (for maildir)

atau
default_mail_env = mbox:~/mail:INBOX=/var/mail/%u (for mbox)

untuk menentukan jenis tipe mailbox yang akan digunakan oleh dovecot

Untuk menseting format maildir

Postfix : edit file /etc/postfix/main.cf dan tambahkan nilai
home_mailbox = Maildir/
mailbox_command =

Trus di dovecotnya (file /etc/dovecot.conf)
default_mail_env = maildir:/home/%u/Maildir

Untuk testing dovecotnya
/etc/init.d/dovecot start
telnet localhost pop3
Trying localhost...
Connected to localhost.
Escape character is '^]'.
+OK dovecot ready.

Ok, sip… selesai



Source from here.

Tidak ada komentar:

Posting Komentar