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