Mail Server Menggunakan Postfix

by: budsz (  budsz@indofreebsd.or.id  )   1. Disabling sendmail system/sendmail binary. - Disabling via startup script: # vim /etc/rc.conf s...

by: budsz ( budsz@indofreebsd.or.id )
 
1. Disabling sendmail system/sendmail binary.
- Disabling via startup script:
# vim /etc/rc.conf
sendmail_enable="NONE"
sendmail_flags="-L sm-mta -bd -q30m"
sendmail_submit_enable="NO"
sendmail_submit_flags="-L sm-mta -bd -q30m -ODaemonPortOptions=Addr=localhost"
sendmail_outbound_enable="NO"
sendmail_outbound_flags="-L sm-queue -q30m"
sendmail_msp_queue_enable="NO"
sendmail_msp_queue_flags="-L sm-msp-queue -Ac -q30m"

- Disable sendmail binary:
# mv /usr/sbin/sendmail /usr/sbin/sendmail.old
# chmod 0 /usr/sbin/sendmail.old
# mv /usr/bin/mailq /usr/bin/mailq.old
# chmod 0 /usr/bin/mailq.old
# mv /usr/bin/newaliases /usr/bin/newaliases.old
# chmod 0 /usr/bin/newaliases.old

Catatan: Jika melakukan "build world" (Update src system), maka
wajib melakukan update file2 binary postfix tersebut.

2. Download postfix dari salah satu mirror, atau silahkan gunakan ports
system untuk *BSD class.

# links http://www.postfix.org/download.html
# whereis postfix
postfix: /usr/ports/mail/postfix

- Ada beberapa pilihan versi yg hendak anda pakai silahkan sesuaikan
dengan kebutuhan anda.

# ls -d /usr/ports/mail/postfix*
/usr/ports/mail/postfix /usr/ports/mail/postfix20
/usr/ports/mail/postfix-current /usr/ports/mail/postfixadmin
/usr/ports/mail/postfix1

- Jika akan menginstall postfix -CURRENT version (Version sekarang):
# cd /usr/ports/mail/postfix-current
# make ; make install ; make clean

- Jika versi yg anda inginkan 2X gunakan cara ini:
# cd /usr/ports/mail/postfix20
# make ; make install ; make clean

- Kalo mendownload secara manual silahkan gunakan cara ini:
# mkdir /usr/local/src
# cd /usr/local/src/
# fetch http://www.mirrorspace.org/postfix/official/postfix-2.1.6.tar.gz
# tar zxvf postfix-2.1.6.tar.gz
# ls README*
# ls INSTALL*

Silahkan baca2 dulu :-). Tapi saya sarankan menggunakan port untuk
memudahkan instalasinya.

3. Installasi postfix & configurasi postfix.
- Buat username dan group untuk daemon postfix:
# adduser [Untuk interaktif menu] atau,
# man pw(8)
# pw groupadd postdrop
# pw useradd postfix -s /sbin/nologin -g postdrop -d /nonexistent

Jika berniat untuk membangun mailserver support virtual bisa
langsung anda create user/group yg mengurus keperluan itu:
# dduser [Untuk interaktif menu] atau,
# man pw(8)
# pw groupadd virtual
# pw useradd virtual -g virtual -d /home/virtual

- Edit file /etc/postfix/main.cf jika installasi dilakukan dari
tarball, confdir berada di /usr/local/etc/postfix/main.cf jika dilakukan
lewat port.

- Sunting isi dari file2 diatas:
myhostname = example.com
mydestination = $myhostname, localhost.$mydomain
mynetworks = 127.0.0.0/8
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
home_mailbox = Maildir/

Untuk "myhostname" isi hostname yg FQDN, biasanya nama domain yg
digunakan adalah domain yg nge-handle postfix ini berjalan.
Isi "mydestination" dengan domain target anda biasanya domain local
saja. Isi IP Address/block IP Address (Penggunaan netmask atau prefix)
di "mynetworks" yg anda perbolehkan konek dari LAN anda dipisahkan
dengan tanda "coma".

- Untuk menangkal spammer biasanya digunakan:
maps_rbl_domains = relays.ordb.org
smtpd_helo_restrictions = reject_maps_rbl, permit_mynetworks

- Menolak domain sender yang tidak mempunyai record A atau MX:
smtpd_sender_restrictions = reject_unknown_sender_domain

Untuk custom memilih sender yang akan direject sesuai dengan
kebutuhan bisa diapply via database hash sebagai contoh:
check_sender_access hash:/etc/postfix/sender_access

- Untuk kebutuhan aliasing bisa menggunakan database hash:
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

- Format/type yg dipilih untuk mbox email adalah:
home_mailbox = Maildir/

- Edit untuk keperluan virtual domain:
Untuk keperluan isi type "mailbox_transport" dengan virtual.
mailbox_transport = virtual

Untuk virtual domain silahkan anda isi path yg sesuai dengan home
basenya. Parameter ini digunakan untuk menyimpan seluruh email2 yg
akan dihandle di mesin ini.
virtual_mailbox_base = /home/virtual

Map database yg digunakan untuk keperluan ini, silahkan isi sesuai
dengan rencana anda dimana akan diletakannya.
virtual_mailbox_maps = hash:/etc/postfix/virtual

Isi dengan UID/GID dari user shell virtual, kita check dulu user
virtualnya:
# id virtual
uid=1000(virtual) gid=100(virtual) groups=100(virtual)

Isikan UID/GID-nya di main.cf.
virtual_uid_maps = static:1000
virtual_gid_maps = static:100
virtual_create_maildirsize = yes

Biar support quota Maildir untuk user virtual.
virtual_mailbox_limit_maps = hash:/etc/postfix/vquota
virtual_mailbox_limit_override = yes

- Tambahan untuk postfix biar bisa menggunakan/terintegrasi dengan amavis antivirus scanner
content_filter = vscan:

Dan jangan lupa tambahkan baris di /etc/postfix/master.cf:
vscan unix - n n - 10 pipe user=vscan
argv=/usr/sbin/amavis ${sender} ${recipient}
localhost:10025 inet n - n - - smtpd -o content_filter=

Untuk konfigurasi lainnya biarkan default saja.

- Kemudian bikin email alias yang akan mengurusi hal-hal yang berkaitan dengan urusan teknis
(ganti email @example.com sesuai dengan konfigurasi yang anda inginkan):
# echo "postfix: root" > /etc/aliases
# echo "root : hostmaster@example.com " >> /etc/aliases
# echo "mailer-daemon : mailer-daemon@example.com " >> /etc/aliases
# echo "postmaster : someone@example.com " >> /etc/aliases
etc...

- Generate database yg baru dari file aliases :
# newaliases

- Jalankan daemon postfix :
# /usr/sbin/postfix start # Dari tarball instalasi.
# echo "/usr/sbin/postfix start" >> /etc/rc.local

Untuk port biasanya terbentuk file "postfix.sh", sunting dulu file
ini untuk lebih bagusnya:
# /usr/local/etc/rc.d/postfix.sh start # Dari port instalasi.

- Jika emang tidak ada masalah biasanya postfix daemon langsung jalan,
ada baiknya check saja:
# tail -f /var/log/maillog
Nov 20 02:31:49 example postfix/postfix-script: starting the Postfix mail system
Nov 20 02:31:49 example postfix/master[2031]: daemon started -- version 2.1.6

- Bikin virtual domain yg akan anda handle, dan sebelomnya bikin
folder "example.com" di /home/virtual
# mkdir /home/virtual/example.com
# vim /etc/postfix/virtual
example.com Yeah....

Create user atas nama domain example.com:
user@example.com example.com/user/

Build file tersebut menjadi hash database:
# postmap /etc/postfix/virtual

- Biar support quota user Maildir. Edit file /etc/postfix/vquota
user@example.com 1024000
# postmap /etc/postfix/vquota

Biasanya dengan cara dikirim email atas nama user tersebut, maka secara otomatis akan
terbentuk folder di /home/virtual/example.com/user.

4. Install tpop3d
- Download source tpop3d dan install tpop3d
# cd /usr/local/src
# fetch http://www.ex-parrot.com/~chris/tpop3d/tpop3d-1.4.2.tar.gz
# fetch http://www.ex-parrot.com/~chris/tpop3d/tpop3d-1.4.2-auth-flatfile-broken.patch
# tar -zxvf tpop3d-1.4.2.tar.gz
# cd tpop3d-1.4.2
# patch -p0 < ../tpop3d-1.4.2-auth-flatfile-broken.patch
# ./configure --help | more
# ./configure --enable-auth-flatfile --enable-mbox-maildir
# make ; make install

Atau menggunakan port system:
# cd /usr/ports/mail/tpop3d
# make ; make install ; make clean

- Buat file /etc/tpop3d.conf isinya :
listen-address: IP_ADDRESS_HERE
log-facility: local6
mailbox: maildir:/home/virtual/$(domain)/$(local_part)
auth-flatfile-enable: yes
auth-flatfile-passwd-file: /etc/virtual/$(domain)/passwdPOP3
auth-flatfile-mail-user: virtual
auth-flatfile-mail-group: virtual
append-domain: yes
log-bad-passwords: yes

- Jalankan tpop3d daemon:
# /usr/local/sbin/tpop3d
# echo "/usr/local/sbin/tpop3d" >> /etc/rc.local

atau via *.sh script di /usr/local/etc/rc.d/

- Create file /etc/virtual/example.com/passwdPOP3 untuk menyimpan account POP3:
# mkdir /etc/virtual
# mkdir /etc/virtual/example.com
# cd /etc/virtual/example.com
# htpasswd -c -s passwdPOP3 user

5. Installing Courier-IMAP
- Download source courier-imap & install courier.
# fetch http://www.courier-mta.org/beta/imap/courier-imap-1.7.1.20030319.tar.bz2
# tar -jxvf courier-imap-1.7.1.20030319.tar.bz2
# cd courier-imap-1.7.1.20030319
# ./configure --help | more
# ./configure --enable-workarounds-for-imap-client-bugs --disable-root-check
# make ; make install

Atau menggunaan port system:
# /usr/ports/mail/courier-imap
# make ; make install

- Configurasi courier-imap, standard kita pake module "authuserdb"
saja, module yg lainnya kita hapus saja:
# rm -rf /usr/lib/courier-imap/libexec/authlib/*
# cp authlib/authuserdb /usr/lib/courier-imap/libexec/authlib/
# cp /usr/lib/courier-imap/etc/imapd.dist /usr/lib/courier-imap/etc/imapd
# cp /usr/lib/courier-imap/etc/imapd-ssl.dist /usr/lib/courier-imap/etc/imapd-ssl

- Edit file yg diperlukan:
# vim usr/lib/courier-imap/etc/imapd
ADDRESS=0 menjadi ADDRESS=IP_ADDRESS_YG_DIGUNAKAN
AUTHMODULES="authdaemon" menjadi AUTHMODULES="authuserdb"

- Starup script:
# echo "/usr/lib/courier-imap/libexec/imapd.rc start" >> /etc/rc.local

atau, via *.sh kl dari port system di /usr/local/etc/rc.d/.

- Membuat user account imap:
# mkdir /etc/userdb
# chmod 700 /etc/userdb
# userdb -f /etc/userdb/example.com user@example.com set \
home=/home/virtual/example.com/user \
mail=/home/virtual/example.com/user uid=1000 gid=100
# userdbpw -md5 | userdb -f /etc/userdb/example.com \
user@example.com set imappw
# makeuserdb

6. Installing Squirrelmail
- Download sourcenya:
# fetch http://umn.dl.sf.net/sourceforge/squirrelmail/squirrelmail-1.2.11.tar.gz
# tar -zxvf squirrelmail-1.2.11.tar.gz
# cd squirrelmail-1.2.11

Atau dengan sistem port:
# cd /usr/ports/mail/squirrelmail
# make ; make install

- Asalkan sudah terinstall Apache web server dan PHP anda tinggal
copy paste saja ke directory browse-nya.

PS: Untuk versi2 yg dibutuhkan silahkan terlebih dahulu baca
manual2 yg terkait di directory "squirrelmail-1.2.11".

7. Script untuk memudahkan pengerjaan membuat account email, anda bisa custom/modif
sesuai dengan kebutuhan anda:

#!/bin/sh
# Adding user and quota email in virtual/vquota files.
domain="example.com"
vquota="10240000"
echo "Masukan login : "
read login

echo "$login@$domain $domain/$login/" >> /etc/postfix/virtual
echo "$login@$domain $vquota" >> /etc/postfix/vquota

# Rebuild database postfix.
/usr/sbin/postmap /etc/postfix/virtual
/usr/sbin/postmap /etc/postfix/vquota
/usr/sbin/postmap /etc/postfix/sender_access

# Adduser dan password untuk imap.
adduserargument="-f /etc/userdb/$domain $login@$domain set
home=/home/virtual/$domain/$login mail=/home/virtual/$domain/$login
uid=1021 gid=1021"

userdb $adduserargument
passwdargument="-f /etc/userdb/$domain $login@$domain set imappw"
userdbpw -md5 | userdb $passwdargument
makeuserdb

COMMENTS

Name

Application Support,19,database server,1,Desktop/XWindow,1,DNS Server,2,Email Server,3,Firewall,1,FTP Server,2,General,2,IPFilter,1,Kernel,2,Networking,8,Proxy Server,4,Security,6,Tips and Trick,5,Web Server,2,
ltr
item
IndoFreeBSD: Mail Server Menggunakan Postfix
Mail Server Menggunakan Postfix
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxjwrr3lS8GiqpoC9C7HhsKTnw7HXD5eBQVlxQIr5bCNfKjTnoxtNSso27pyRsLncpWtcxhy-IhtPY_1qnBoOk-Af8W4HLErMfeBUS9IZDjORPt-CJW7EIAJYS5gS_SY4RFvBTw058vU_l/s1600/Postfix_logo.png
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxjwrr3lS8GiqpoC9C7HhsKTnw7HXD5eBQVlxQIr5bCNfKjTnoxtNSso27pyRsLncpWtcxhy-IhtPY_1qnBoOk-Af8W4HLErMfeBUS9IZDjORPt-CJW7EIAJYS5gS_SY4RFvBTw058vU_l/s72-c/Postfix_logo.png
IndoFreeBSD
https://www.indofreebsd.or.id/2015/02/mail-server-menggunakan-postfix.html
https://www.indofreebsd.or.id/
http://www.indofreebsd.or.id/
http://www.indofreebsd.or.id/2015/02/mail-server-menggunakan-postfix.html
true
1901051463523757307
UTF-8
Loaded All Posts Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS PREMIUM CONTENT IS LOCKED STEP 1: Share to a social network STEP 2: Click the link on your social network Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy Table of Content