Membangun mail server dengan Postfix Bagian ke-1

tux

Postfix merupakan program opensource Mail Transfer Agent (MTA) atau program pengirim email dimana default MTA untuk operating system unix/linux, memiliki kemampuan untuk menjadi program pengirim email yang cepat, mudah dikelola dan aman.

Pada kesempatan kali ini, mailserver yang akan dibangun menggunakan system operasi Fedora Core 6, dan pada saat instalasi paket-paket yang digunakan adalah
1. Mysql-5.0.27.
2. Postfix-2.4.1.
3. Courier-authlib-0.55.
4. Courier-imap-4.0.2.
5. Postfixadmin-2.1.0.

Tindakan pertama yang harus dilakukan. lakukan penambahan di file
#vim /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.0.100 mailserver.intra.net mailserver

Instalasi Mysql

# yum -y install MySQL-python libdbi-dbd-mysql mysql-connector-odbc mysql-devel mysql-server pam_mysql perl-DBD-MySQL php-mysql

Jika sudah selesai, lakukan testing dan aktifkan service mysql

#chkconfig mysqld on
#service mysqld start
#mysql -h localhost -u root -p [tanpa password]

Instalasi Postfix

1. Membuat user dan Group
# groupadd -r postfix
# useradd -r -g postfix -d /no/where -s /no/shell postfix
# groupadd -r postdrop

2. Untuk instalasi Postfix ini, saya lebih memilih untuk melakukan instalasi dari paket source tar.gz.

# tar -zxvf Postfix-2.4.1.tar.gz
# cd postfix-2.4.1
# make makefiles ‘CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -I/usr/include/sasl’ ‘AUXLIBS=-L/usr/lib/mysql -lmysqlclient -lz -lm -L/usr/lib’

#make && make install

Letak direktori akan ditentukan, sebaiknya ikuti default saja, dan lakukan enter saja setiap kali ditanya mengenai lokasi folder.

Pastikan tidak ada error pada saat proses instalasi postfix ini, jika tidak ada error, maka akan terbentuk folder /etc/postfix dan file-file main.cf dan master.cf

3. Lakukan perubahan di main.cf hasilnya seperti berikut ini.
myhostname = mailserver.intra.net
mydomain = intra.net
inet_interfaces = all
mydestination = localhost, localhost.$mydomain
alias_maps = hash:/etc/postfix/aliases
alias_database = hash:/etc/postfix/aliases

Tambahkan perintah berikut ini.

virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_quota_maps.cf
virtual_mailbox_base = /usr/local/virtual
virtual_transport = virtual
virtual_uid_maps = static:33333
virtual_gid_maps = static:33333
virtual_minimum_uid = 33333
virtual_create_maildirsize = yes

Untuk mengetahui uid dan gid, lakukan perintah berikut ini.
#id postfix
uid=33333(postfix) gid=33333(postfix) groups=33333(postfix)

Pastikan dalam file master.cf terdapat baris berikut ini.
virtual unix – n n – – virtual

Membuat Direktori Virtual

Lakukan perintah berikut ini.

#mkdir /usr/local/virtual
#chown -R postfix.postfix /usr/local/virtual
#chmod -R 751 /usr/local/virtual

Membuat file konfigurasi yang tersimpan dalam /etc/postfix/

#touch mysql_virtual_alias_maps.cf
#vim mysql_virtual_alias_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = alias
select_field = goto
where_field = address

#touch mysql_virtual_domains_maps.cf
#vim mysql_virtual_domains_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = domain
select_field = description
where_field = domain

#touch mysql_virtual_mailbox_maps.cf
#vim mysql_virtual_mailbox_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = mailbox
select_field = maildir
where_field = username

#touch mysql_virtual_quota_maps.cf
#vim mysql_virtual_quota_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = mailbox
select_field = maildir
where_field = quota

Bersambung ke sini

Regards
Adi Maulana

16 responses to “Membangun mail server dengan Postfix Bagian ke-1

  1. mas… saya ikutin langkah2 setup postfix + courier authlib n imap…
    udah sampai postfix start..
    mmm… saya bingung nambah usernya ? apakah pakai vmail / postfix admin ?
    apakah tidak ada script sql untuk create database postfix dan tabel2nya…
    saya liat masih kosong tuh
    thx

  2. Saya create usernya menggunakan postfixadmin

    Regards
    Adi Maulana

  3. Hehehe…mantab mas tutorial nya.
    Nanti saya coba di rumah.

    Mas, minta ijin untuk me-link artikel ini ke blog saya.

    Terima kasih.

  4. Silahkan mas Nuragus.

    Dengan senang hati 🙂

    Terima kasih
    Adi Maulana

  5. pas jalanin #make && make install,

    ada error

    gcc -Wmissing-prototypes -Wformat -DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -I/usr/include/sasl -g -O -I. -DLINUX2 -c alldig.c
    make: gcc: Command not found
    make: *** [alldig.o] Error 127
    make: *** [update] Error 1

    knapa ya ?
    what should i do ?
    makasii mas adi

  6. Mas Raharjo,

    Dari informasi ini “make: gcc: Command not found”, seolah-olah system tidak mengenal GCC, bisa tolong di cek dulu, apakah gcc sudah di install ?.
    jika pake redhat/fedora/centos, bisa di cek dengan peritah rpm -qa | grep gcc.

    Terima kasih
    Adi Maulana

  7. maksii mas,…
    maaf klo terlalu nubie, saya nyobain fedora 7 mas….

    # rpm -qa | grep gcc
    libgcc-4.1.2-12

    ……
    makasii

  8. saya coba buka file makefiles.
    dan isinya sperti ni :

    SYSTYPE = LINUX2
    AR = ar
    ARFL = rv
    RANLIB = ranlib
    SYSLIBS = -L/usr/lib/mysql -lmysqlclient -lz -lm -L/usr/lib -ldb
    CC = gcc $(WARN) -DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -I/usr/include/sasl
    OPT = -O
    DEBUG = -g
    AWK = awk
    STRCASE =
    EXPORT =
    AUXLIBS = -L/usr/lib/mysql -lmysqlclient -lz -lm -L/usr/lib
    CCARGS = gcc $(WARN) -DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -I/usr/include/sasl
    OPT = -O
    DEBUG = -g
    WARN = -Wall -Wno-comment -Wformat -Wimplicit -Wmissing-prototypes \
    -Wparentheses -Wstrict-prototypes -Wswitch -Wuninitialized \
    -Wunused
    …………
    …………

    adakah sesuatu yang aneh ???

  9. Mas Raharjo,

    Gcc lom di install, install dulu aja, pake yum juga boleh, #yum -y install gcc.

    saya saya mah ga mengubah apapun di file “makefiles”, jadi bikin default aja yaaa.

    adi maulana

  10. siap,
    udah di install gcc ….. dan udah bisa install postfix. makasii mas …

    nanya lagi ….

    setelah saya masukin .main.cf
    ……………
    virtual_transport = virtual
    virtual_uid_maps = static:33333
    virtual_gid_maps = static:33333
    virtual_minimum_uid = 33333
    virtual_create_maildirsize = yes
    …………

    aku cek
    # id postfix
    uid=499(postfix) gid=498(postfix) groups=498(postfix) context=root:system_r:unconfined_t:SystemLow-SystemHigh

    kok ga uid=33333 ….. ???

  11. Mas Raharjo,

    Id Postfix setiap PC berbeda-beda, dan ga harus sama. pasti informasi di atas ga di baca yaa…

    adi maulana

  12. mas mbuatnya files ini gima? koko gak bisa

    make makefiles ‘CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -I/usr/include/sasl’ ‘AUXLIBS=-L/usr/lib/mysql -lmysqlclient -lz -lm -L/usr/lib’

    sebelumnya sori. coz ni baru belajar mail server perdana

  13. mas…..bisa minta tunjukkin cara konfigurasi postfix pada redhat?coz mau buat tugas akhir……:)

  14. Pingback: Delivery Temporarily Suspended: Connect To 127.0.0.1[127.0.0.1]: « Adi Maulana

  15. koq saya gak bisa login ke squirrelmail ya

    ERROR: IMAP server closed the connection.
    Server responded:* BYE Temporary problem, please try again later

    truss di /var/log/maillog nya :

    [root@ns postfix]# tail /var/log/maillog
    Dec 15 18:07:31 ns postfix/smtpd[6855]: fatal: open database /etc/postfix/aliases.db: No such file or directory
    Dec 15 18:07:32 ns postfix/master[7946]: warning: process /usr/libexec/postfix/smtpd pid 6855 exit status 1
    Dec 15 18:07:32 ns postfix/master[7946]: warning: /usr/libexec/postfix/smtpd: bad command startup — throttling
    Dec 15 18:07:53 ns imapd: Connection, ip=[::ffff:127.0.0.1]
    Dec 15 18:07:53 ns imapd: LOGOUT, ip=[::ffff:127.0.0.1], rcvd=30, sent=470
    Dec 15 18:07:59 ns imapd: Connection, ip=[::ffff:127.0.0.1]
    Dec 15 18:07:59 ns authdaemond: ldap_simple_bind_s failed: Can’t contact LDAP server
    Dec 15 18:07:59 ns authdaemond: ldap_simple_bind_s failed: Can’t contact LDAP server
    Dec 15 18:07:59 ns imapd: LOGIN FAILED, user=tes@bageur.web.id, ip=[::ffff:127.0.0.1]
    Dec 15 18:07:59 ns imapd: authentication error: Input/output error

    knp ya kira2 ?

  16. mas, postfixadminku gak mau login. padahal aq da konfigurasi sesuai referensinya mas. ada solusi gak mas? terus cara tau klo mysql da konek ma dengan postfixadmin gimana ya?

    thank’s before!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s