Setup Postfix untuk Relay dengan Auth Sasl di debian 8 dan 9 untuk outgoing

Terkadang kita harus menyiapkan smtp cadangan jika suatu saat ada masalah pada pengiriman (outgoing) mail server kita bermasalah untuk pengiriman / outgoing kita tinggal me relay outging mail server kita ke smtp yang kita bangun ini di vps atau yang lain, karena smtp punya isp pun kadang terkena rbl
Setup Postfix dengan SMTP-AUTH melalui SASL2 dengan otentikasi terhadap sasldb dan auxprop di chroot ()
Pastikan postfix terinstall dengan benar dan sudah bisa mengirim dengan benar,

1. install package
# apt-get install sasl2-bin libsasl2-modules

2. Create a file /etc/postfix/sasl/smtpd.conf:
pwcheck_method: auxprop
auxprop_plugin: sasldb

mech_list: plain login

3. Siapkan proses saslauthd terpisah untuk digunakan dari Postfix  
# cp /etc/default/saslauthd /etc/default/saslauthd-postfix
dan edit
START=yes
DESC="SASL Auth. Daemon for Postfix"
NAME="saslauthd-postf"      # max. 15 char.
# Option -m sets working dir for saslauthd (contains socket)
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"        # postfix/smtp in chroot()


Direktori / run / saslauthd dengan symlink ke / var / spool / postfix / var / run / saslauthd

# rm -rf /run/saslauthd
# ln -s /var/spool/postfix/var/run/saslauthd   /run/saslauthd 

 
Buat subdirektori yang diperlukan di direktori chroot postfix:
# dpkg-statoverride --add root sasl 710 /var/spool/postfix/var/run/saslauthd

Tambahkan user "postfix"  ke grup "sasl":
# adduser postfix sasl 

Restart saslauthd: 
# service saslauthd  restart
 

4. Postfix butuh /etc/sasldb2 untuk jalan di chroot environment, solution tambahan sasldb2 ke init script startup untuk debian 7 dan 8
Tambahkan etc/sasldb2 kedalam /etc/init.d/postfix, dalam variable FILES :
menjadi seperti ini

FILES="etc/localtime etc/services etc/resolv.conf etc/hosts \
     etc/host.conf etc/nsswitch.conf etc/nss_mdns.config etc/sasldb2"


Untuk debian 9 untuk sinkron sasldb2 file ke postfix dengan default chroot jail

# ln /etc/sasldb2 /var/spool/postfix/etc/

5. Tambah sasl parameter di posfix
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_security_options = noanonymous
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
smtpd_sasl_path = /etc/postfix/sasl



6.Restart Postfix karene reload kurang optimal
# service postfix restart
# systemctl daemon-reload


7. tambah user, cek user dan ganti passwd sasl
# saslpasswd2 -c -u domainku.com billy

cek user list
# sasldblistusers2
[email protected]: userPassword

ganti passwd
# saslpasswd2 billy@domainku.com                                           
Password:
Again (for verification):


hapus user 
saslpasswd2 -d -u domainku.com billy

8. Test
# telnet localhost 25
Trying ::1...
Connected to localhost.
Escape character is '^]'.
220 debian ESMTP Postfix (Debian/GNU)
ehlo debian
250-debian
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH DIGEST-MD5 NTLM CRAM-MD5 PLAIN LOGIN
250-AUTH=DIGEST-MD5 NTLM CRAM-MD5 PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

9. arahkan smtp relay mail server ke postfix ini untuk outgoing dengan auth user sasl yang telah di buat, silahkan kirm email dan cek log file nya

Oct 12 14:09:28 smtp postfix/smtpd[17214]: A9E54617: client=unknown[10.10.0.123], sasl_method=DIGEST-MD5, [email protected]
Oct 12 14:09:28 smtp postfix/cleanup[17219]: A9E54617: message-id=<[email protected]>
Oct 12 14:09:28 smtp postfix/qmgr[17101]: A9E54617: from=<[email protected]>, size=2816, nrcpt=1 (queue active)
Oct 12 14:09:28 smtp postfix/smtpd[17214]: disconnect from unknown[10.10.0.123]
Oct 12 14:09:35 smtp postfix/smtp[17220]: A9E54617: to=<[email protected]>, delay=6.5, delays=0.01/0.01/5.8/0.67, dsn=2.0.0, status=sent (250 2.0.0 w9C79xlR025959-w9C79xlS025959 Message accepted for delivery)
Oct 12 14:09:35 smtp postfix/qmgr[17101]: A9E54617: removed


10. Custome tambah port misal port 2525 modif file master.cf yang ada di /etc/postfix/master.cf
cari
smtp      inet  n       -       -       -       -       smtpd
tambahkan
2525     inet  n       -       -       -       -       smtpd


untuk enable port 587 bisa di enable kan submissionport 587

11. meningkatkan security
Hanya ip mail server yang akses relay ini.
ip tables
-A INPUT -p tcp -m tcp -s 123.123.123.10 --dport 2525 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 25 -j DROP
-A INPUT -j DROP

kira begini topologinya



Jangan lupa tambahkan transport_maps di /etc/postfix/main.cf untuk mengatur jalur bouncing biar tidak lewat jalur mx karena biasa nya sudah ada anti spam (terpisah dari mail server ) bisa cloud / dedicated servece yang biasa nya akan sedikit terganjal karena di anggap pihak lain yang mengirim bouncing dengan memakai domain kita, dengan trasport map / mail routing  bouncing akan di kirim kebali langsung ke mail server

transport_maps = hash:/etc/postfix/transport

bikin file /etc/postfix/transport:

domainku.com  smtp:[mail.domainku.com]
domainku.net  smtp:[123.123.123.123]

atau bisa seperti ini
domainku.com  smtp:[mail.domainku.com]:2525
domainku.net  smtp:[123.123.123.123]:2525

 # postmap /etc/postfix/transport

Tambahkan fail2ban sasl untuk menghentikan brute force attack

Setup Postfix untuk incoming Relay domain di debian 8

sumber https://wiki.debian.org/PostfixAndSASL

Salam

Komentar

Postingan populer dari blog ini

Cloudflared argo tunnel zero trust service on Mikrotik

Migrasi zimbra ke zimbra dengan rsync

Squid Proxy ssl bump untuk transparent HTTPS #2