Topologi
Pengenalan Mail Server
Mail server adalah sebuah layanan yang digunakan untuk mengirim dan menerima email. Komponen mail server ada 3, sebagai berikut:
- Mail Transfer Agent (MTA) adalah sebuah server yang bertanggung jawab untuk mengirim dari mail server pengirim sampai ke mail server penerima. Contoh sendmail dan postfix.
- Mail Delivery Agent (MDA) adalah sebuah server yang bertanggung jawab untuk menangani email masuk.
- Mail User Agent (MUA) adalah aplikasi yang berinteraksi langsung dengan end user untuk mengirim dan menerima email. Contoh thunderbird.
Protokol mail server:
- Outgoing Server (SMTP).
- Incoming Server (POP3,IMAP).
Langkah Langkah Membuat Mail Server
Setup Hostname FQDN
srv |
root@srv:~# nano /etc/hosts…………………127.0.0.1 localhost127.0.0.1 srv141.11.25.133 mail.solusiber.com mail…………………root@srv:~# hostnamectl set-hostname mailroot@srv:~# systemctl restart systemd-hostnamed |
Setelah itu logout dan login lagi. Verifikasi hostname dan fqdn.
root@mail:~# hostnamectl Static hostname: mail Icon name: computer-vm Chassis: vm Machine ID: 78df73bcb011409e840cce92b6b40e6d Boot ID: 4e919149624d4de4ab89593cc9b179c8 Virtualization: kvm Operating System: Debian GNU/Linux 11 (bullseye) Kernel: Linux 5.10.0-23-amd64 Architecture: x86-64root@mail:~# hostname -fmail.solusiber.com |
Buat DNS Record
Buat dns record yang mengarah ke mail server.
Type | Name | Content | Priority | TTL |
A | solusiber.com | 141.11.25.133 | Auto | |
A | 141.11.25.133 | Auto | ||
MX | solusiber.com | mail.solusiber.com | 5 | Auto |
TXT | solusiber.com | v=spf1 mx ip4:141.11.25.133 ~all | Auto | |
TXT | _dmarc | v=DMARC1; p=reject; rua=mailto:rua@solusiber.com; ruf=mailto:ruf@solusiber.com; sp=none; fo=1; adkim=s; aspf=s | Auto | |
TXT | DKIM | Akan digenerate nanti dengan opendkim | Auto |
Dari record diatas sebenarnya ada tambahan lagi yaitu record PTR, untuk membuat PTR Record kalian harus request ke penyedia layanan vps atau isp dengan open ticket. Sedikit penjelasan tentang spf, dkim dan dmarc.
- SPF (Sender Policy Framework): Memverifikasi bahwa email berasal dari server yang diotorisasi oleh domain pengirim. DNS domain mengandung daftar server yang diizinkan, dan penerima memeriksa apakah email berasal dari salah satu server ini.
- DKIM (DomainKeys Identified Mail): Menyematkan tanda tangan kriptografis ke header email. Penerima dapat memverifikasi tanda tangan ini dengan kunci publik yang dipublikasikan di DNS domain pengirim, memastikan integritas dan keaslian email.
- DMARC (Domain-based Message Authentication, Reporting, and Conformance): Menggabungkan SPF dan DKIM untuk memberi petunjuk pada penerima bagaimana menangani email yang gagal verifikasi (misalnya, menolak atau mengkarantina email). DMARC juga memungkinkan pengirim untuk menerima laporan tentang email yang dikirim dengan domain mereka.
Instalasi Cerbot
root@mail:~# apt install -y certbot |
Lalu generate ssl certificate.
root@mail:~# certbot certonly –standalone -d mail.solusiber.com |
Untuk letak certificate yang digenerate ada di direktori ‘/etc/letsencrypt/live/mail.solusiber.com’.
Instalasi OpenDKIM
Install opendkim dan generate key.
root@mail:~# apt install -y opendkim opendkim-toolsroot@mail:~# mkdir /etc/opendkimroot@mail:~# opendkim-genkey -D /etc/opendkim/ –domain solusiber.com –selector defaultroot@mail:~# cat /etc/opendkim/default.txtdefault._domainkey IN TXT ( “v=DKIM1; h=sha256; k=rsa; “”p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1T+DuNQiNHdpZx94m6CqsQt8dPj7Q8Hz4D/FMyN78U444CmW680exrXceyE9TxyzQN9fXlS3c5toAhoN1mKHvbge1cJ2/8Q15kGo32kBGnqV5xGWaTVWxSCiVtJm5uNH/xMZ2EDjGQe9UVrHZ/idtwH0etwrlVv3A7Jg7zN1iIUNgh7VEmnOipygPbTfsZqdMhA8RGesY1Y6vc” “Cw1SIE2MZ+ViJ9lOt8uIv9jwCNXVRweag9HNAIujZ0Rx7tMjua9cLanS1dTsOZpR4i9Pbj1nHUEhzTfA6vc2toIuGAsdQM6Uohe4jx7Y7VVjtnGUGxW2/8gTG5UGNJa0I21cnn8wIDAQAB” ) ; —– DKIM key default for solusiber.com |
Salin isi file default.txt dan tambahkan ke dns record seperti gambar dibawah ini (tanpa tanda petik “ yang saya block kuning.
Ubah owner dari direktori ‘/etc/opendkim’.
root@mail:~# chown -R opendkim:opendkim /etc/opendkim |
Buat konfigurasi di file ‘/etc/opendkim.conf’ seperti dibawah ini.
root@mail:~# nano /etc/opendkim.conf…………………Syslog yesSyslogSuccess yesLogWhy yesCanonicalization relaxed/simpleMode svOversignHeaders FromUserID opendkim:opendkimUMask 002Socket inet:8891@localhostPidFile /run/opendkim/opendkim.pidTrustAnchorFile /usr/share/dns/root.keyExternalIgnoreList refile:/etc/opendkim/TrustedHostsKeyTable refile:/etc/opendkim/KeyTableSigningTable refile:/etc/opendkim/SigningTableSignatureAlgorithm rsa-sha256AutoRestart yesAutoRestartRate 10/1h………………… root@mail:~# nano /etc/opendkim/TrustedHosts…………………solusiber.com………………… root@mail:~# cat /etc/opendkim/KeyTable…………………default._domainkey.solusiber.com solusiber.com:mail:/etc/opendkim/default.private………………… root@mail:~# cat /etc/opendkim/SigningTable…………………*@solusiber.com default._domainkey.solusiber.com………………… |
Setelah itu restart service opendkim.
root@mail:~# systemctl restart opendkim |
Cek di situs https://dmarcian.com/dkim-inspector pastikan valid.
Instalasi Postfix
root@mail:~# apt install -y postfix sasl2-bin |
Pada bagian postfix configuration pilih Internet Site, pada System Mail Name masukkan nama domain.
Lalu konfigurasi file dari ‘/usr/share/postfix/main.cf.dist’ ke ‘/etc/postfix/main.cf’. Pastikan konfigurasinya disesuaikan seperti dibawah ini.
root@mail:~# cp /usr/share/postfix/main.cf.dist /etc/postfix/main.cfroot@mail:~# nano /etc/postfix/main.cf…………………compatibility_level = 2command_directory = /usr/sbindaemon_directory = /usr/lib/postfix/sbindata_directory = /var/lib/postfixmail_owner = postfixmyhostname = mail.solusiber.commydomain = solusiber.commyorigin = $mydomaininet_interfaces = allmydestination = $myhostname, localhost.$mydomain, localhost, $mydomainlocal_recipient_maps = unix:passwd.byname $alias_mapsunknown_local_recipient_reject_code = 550mynetworks_style = subnetmynetworks = 127.0.0.0/8, 0.0.0.0/0alias_maps = hash:/etc/aliasesalias_database = hash:/etc/aliaseshome_mailbox = Maildir/smtpd_banner = $myhostname ESMTPdebugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5sendmail_path = /usr/sbin/postfixnewaliases_path = /usr/bin/newaliasesmailq_path = /usr/bin/mailqsetgid_group = postdropinet_protocols = ipv4disable_vrfy_command = yessmtpd_helo_required = yesmessage_size_limit = 10240000smtpd_sasl_type = dovecotsmtpd_sasl_path = private/authsmtpd_sasl_auth_enable = yessmtpd_sasl_security_options = noanonymoussmtpd_sasl_local_domain = $myhostnamesmtpd_recipient_restrictions = permit_mynetworks, permit_auth_destination, permit_sasl_authenticated, rejectsmtpd_client_restrictions = permit_mynetworks, reject_unknown_client_hostname, permitsmtpd_sender_restrictions = permit_mynetworks, reject_unknown_sender_domain, reject_non_fqdn_sendersmtpd_helo_restrictions = permit_mynetworks, reject_unknown_hostname, reject_non_fqdn_hostname, reject_invalid_hostname, permitsmtpd_use_tls = yessmtp_tls_security_level = encryptsmtp_tls_mandatory_protocols = !SSLv2, !SSLv3smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3smtpd_tls_cert_file = /etc/letsencrypt/live/mail.solusiber.com/fullchain.pemsmtpd_tls_key_file = /etc/letsencrypt/live/mail.solusiber.com/privkey.pemsmtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scacheheader_checks = regexp:/etc/postfix/list_unsub_header………………… |
Lalu edit file ‘/etc/postfix/master.cf’. Hilankan comment pada line berikut.
root@mail:~# nano /etc/postfix/master.cf…………………submission inet n – y – – smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yessmtps inet n – y – – smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes………………… |
Restart service postfix.
root@mail:~# systemctl restart postfix |
Instalasi Dovecot
root@mail:~# apt install -y dovecot-{core,pop3d,imapd} |
Edit file ‘/etc/dovecot/dovecot.conf’. Uncomment pada bagian berikut.
root@mail:~# nano /etc/dovecot/dovecot.conf…………………listen = *………………… |
Edit file ‘/etc/dovecot/conf.d/10-auth.conf’. Uncomment pada bagian berikut.
root@mail:~# nano /etc/dovecot/conf.d/10-auth.conf…………………disable_plaintext_auth = noauth_mechanisms = plain login………………… |
Edit file ‘/etc/dovecot/conf.d/10-mail.conf’. Uncomment pada bagian berikut.
root@mail:~# nano /etc/dovecot/conf.d/10-mail.conf…………………mail_location = maildir:~/Maildir………………… |
Edit file ‘/etc/dovecot/conf.d/10-master.conf’. Uncomment pada bagian berikut.
root@mail:~# nano /etc/dovecot/conf.d/10-master.conf………………… unix_listener /var/spool/postfix/private/auth { mode = 0666 user = postfix group = postfix }………………… |
Edit file ‘/etc/dovecot/conf.d/10-ssl.conf’. Uncomment pada bagian berikut.
root@mail:~# nano /etc/dovecot/conf.d/10-master.conf…………………ssl = yesssl_cert = </etc/letsencrypt/live/mail.solusiber.com/fullchain.pemssl_key = </etc/letsencrypt/live/mail.solusiber.com/privkey.pem………………… |
Buat direktori ‘Maildir/’ di masing” user dan restart service dovecot.
root@mail:~# maildirmake.dovecot /etc/skel/Maildir/root@mail:~# systemctl restart dovecot |
Membuat User Mail
Buat user postmaster, achmad dan alif.
root@mail:~# adduser postmasterroot@mail:~# adduser achmadroot@mail:~# adduser alif |
Verifikasi Mail Server
Login Menggunakan Protokol IMAP
Login Menggunakan Protokol POP3
Uji Coba Kirim Email
Kirim email dari user achmad@solusiber.com ke alif@solusiber.com begitu juga sebaliknya, pastikan email masuk.
Kirim email dari user achmad@solusiber.com ke alifnuxerid@gmail.com begitu juga sebaliknya, pastikan email masuk.
Tes Score Email
Buka situs https://www.mail-tester.com lalu kirim email menggunakan akun solusiber.com dan cek mendapatkan score berapa, tujuan dari mail tester ini adalah untuk tuning mail server, semakin besar score yang didapatkan semakin bagus.
Untuk mail server saya mendapatkan score 9/10. Klik tanda yang berwarna kuning atau merah untuk melihat konfigurasi yang kurang atau yang harus di tuning.
Tertarik mengikuti training di ID-Networkers? Kami menyediakan berbagai pilihan training yang bisa kamu ikuti, klik disini untuk info lengkapnya.
Penulis : Achmad Alif Nasrulloh