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
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
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
Posting Komentar