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/postfix
- 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
ports
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:
# adduser [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
ports
.
- 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 virtual
nya:
# 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
ports
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
ports
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
ports
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
ports
:
# 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