GNU/Linux >> Belajar Linux >  >> Debian

Cara Mudah Mengatur Server Mail di Debian 10 Buster dengan iRedMail

Menyiapkan server email Anda sendiri di Linux dari awal sangatlah merepotkan, jika Anda bukan admin server yang ahli. Tutorial ini akan menunjukkan kepada Anda cara menggunakan iRedMail untuk menyiapkan server email berfitur lengkap dengan cepat di Debian 10, menghemat banyak waktu dan sakit kepala.

Apa itu iRedMail?

iRedMail adalah skrip shell yang secara otomatis menginstal dan mengkonfigurasi semua komponen server email yang diperlukan di server Linux/BSD Anda, sehingga menghilangkan instalasi dan konfigurasi manual. Dengan iRedMail, Anda dapat dengan mudah membuat kotak surat tak terbatas dan domain surat tak terbatas di panel admin berbasis web. Kotak surat dapat disimpan di MariaDB/MySQL, database PostreSQL atau OpenLDAP. Berikut adalah daftar perangkat lunak sumber terbuka yang akan diinstal dan dikonfigurasi secara otomatis oleh iRedMail.

  • Server SMTP pascaperbaikan
  • Server IMAP Dovecot
  • Nginx server web untuk melayani panel admin dan email web
  • OpenLDAP, MySQL/MariaDB, atau PostgreSQL untuk menyimpan informasi pengguna
  • Terpesona-baru untuk penandatanganan dan verifikasi DKIM
  • SpamAssassin untuk anti-spam
  • ClamAV untuk antivirus
  • Email web Roundcube
  • Grupware SOGo, menyediakan email web, kalender (CalDAV), kontak (CardDAV), tugas, dan layanan ActiveSync.
  • Fail2ban untuk melindungi SSH
  • pengelola milis mlmmj
  • Pemantauan server Netdata
  • Server kebijakan iRedAPD Postfix untuk daftar abu-abu

Langkah 1:Pilih Penyedia Hosting yang Tepat dan Beli Nama Domain

Untuk menyiapkan server email berfitur lengkap dengan iRedMail, Anda memerlukan server dengan RAM minimal 3 GB, karena setelah penginstalan, server Anda akan menggunakan RAM lebih dari 2 GB.

Sangat disarankan agar Anda menginstal iRedMail pada instalasi bersih Debian 10 server.

Tutorial ini dilakukan pada Kamatera VPS (virtual private server) seharga $9/bulan dengan 1 CPU dan RAM 3GB. Mereka menawarkan uji coba gratis selama 30 hari.

Kamatera adalah pilihan yang sangat baik untuk menjalankan server email karena

  • Mereka tidak memblokir port 25 , sehingga Anda dapat mengirim email tanpa batas (email transaksional dan buletin) tanpa mengeluarkan uang untuk layanan relai SMTP. Kamatera tidak memiliki batasan SMTP. Anda dapat mengirim satu juta email per hari.
  • Alamat IP tidak ada dalam daftar hitam email apa pun . (Setidaknya ini benar dalam kasus saya. Saya memilih pusat data Dallas.) Anda pasti tidak ingin terdaftar di daftar hitam IP Microsoft Outlook yang ditakuti atau daftar hitam spamrat. Beberapa daftar hitam memblokir seluruh rentang IP dan Anda tidak memiliki cara untuk menghapus alamat IP Anda dari daftar hitam semacam ini.
  • Anda dapat mengedit data PTR untuk meningkatkan kemampuan pengiriman email.
  • Mereka memungkinkan Anda mengirim nawala ke pelanggan email Anda dengan tidak batas per jam atau batas harian, apa pun.
  • Anda dapat memesan beberapa alamat IP untuk satu server. Ini sangat berguna bagi orang-orang yang perlu mengirim email dalam jumlah besar. Anda dapat menyebarkan lalu lintas email di beberapa alamat IP untuk mencapai pengiriman email yang lebih baik.

Penyedia VPS lain seperti DigitalOcean memblokir port 25. DigitalOcean tidak akan membuka blokir port 25, jadi Anda perlu menyiapkan relai SMTP untuk mem-bypass pemblokiran, yang dapat dikenakan biaya tambahan. Jika Anda menggunakan Vultr VPS, maka port 25 diblokir secara default. Mereka dapat membuka blokirnya jika Anda membuka tiket dukungan, tetapi mereka dapat memblokirnya lagi kapan saja jika mereka memutuskan aktivitas pengiriman email Anda tidak diizinkan. Vultr sebenarnya dapat memblokir ulang jika Anda menggunakan server mereka untuk mengirim buletin.

Buka situs web Kamatera untuk membuat akun, lalu buat server Anda di dasbor akun Anda.

Saya sarankan mengikuti tutorial yang ditautkan di bawah ini untuk mengatur server VPS Linux Anda dengan benar di Kamatera.

  • Cara Membuat Server VPS Linux di Kamatera

Setelah Anda membuat server, Kamatera akan mengirimi Anda email dengan detail login SSH server. Untuk masuk ke server Anda, Anda menggunakan klien SSH. Jika Anda menggunakan Linux atau macOS di komputer Anda, cukup buka jendela terminal dan jalankan perintah berikut untuk masuk ke server Anda. Ganti 12.34.56.78 dengan alamat IP server Anda.

ssh [email protected]

Anda akan diminta untuk memasukkan kata sandi.

Anda juga memerlukan nama domain. Saya mendaftarkan nama domain saya dari NameCheap karena harganya murah dan mereka memberikan perlindungan privasi whois gratis seumur hidup.

Langkah 2:Membuat Data MX DNS

Data MX menentukan host atau host mana yang menangani email untuk nama domain tertentu. Misalnya, host yang menangani email untuk linuxbabe.com adalah mail.linuxbabe.com . Jika seseorang dengan akun Gmail mengirim email ke [email protected] , maka server Gmail akan meminta data MX dari linuxbabe.com. Ketika mengetahui bahwa mail.linuxbabe.com bertanggung jawab untuk menerima email, kemudian menanyakan catatan A mail.linuxbabe.com untuk mendapatkan alamat IP, sehingga email dapat terkirim.

Anda dapat masuk ke situs web pencatat domain Anda (seperti NameCheap) untuk membuat data DNS.

Di pengelola DNS Anda, buat data MX untuk nama domain Anda. Masukkan @ di bidang Nama untuk mewakili nama domain utama, lalu masukkan mail.your-domain.com di bidang Nilai.

Catatan :Nama host untuk data MX tidak boleh merupakan alias untuk nama lain. Selain itu, sangat disarankan agar Anda menggunakan nama host, daripada alamat IP kosong untuk data MX.

Manajer DNS Anda mungkin meminta Anda memasukkan nilai preferensi (alias nilai prioritas). Itu bisa berupa angka antara 0 dan 65.356. Sejumlah kecil memiliki prioritas lebih tinggi daripada sejumlah besar. Sebaiknya Anda menetapkan nilainya ke 0, sehingga server email ini akan memiliki prioritas tertinggi untuk menerima email. Setelah membuat data MX, Anda juga perlu membuat data A untuk mail.your-domain.com , sehingga dapat diselesaikan ke alamat IP. Jika server Anda menggunakan alamat IPv6, pastikan untuk menambahkan data AAAA.

Petunjuk:Jika Anda menggunakan layanan Cloudflare DNS, Anda tidak boleh mengaktifkan fitur CDN saat membuat catatan A untuk mail.your-domain.com . Cloudflare tidak mendukung proxy SMTP.

Langkah 3:Mengonfigurasi Nama Inang

Masuk ke server Anda melalui SSH, lalu jalankan perintah berikut untuk memperbarui paket perangkat lunak yang ada.

sudo apt update;sudo apt upgrade

Saya sangat menyarankan untuk membuat sudo pengguna untuk mengelola server Anda daripada menggunakan root default pengguna. Jalankan perintah berikut untuk membuat pengguna. Ganti username dengan nama pengguna pilihan Anda.

adduser username

Kemudian tambahkan pengguna ke sudo grup.

adduser username sudo

Kemudian beralih ke pengguna baru.

su - username

Selanjutnya, tetapkan nama domain yang sepenuhnya memenuhi syarat (FQDN) untuk server Anda dengan perintah berikut.

sudo hostnamectl set-hostname mail.your-domain.com

Kami juga perlu memperbarui /etc/hosts file dengan editor teks baris perintah seperti Nano.

sudo nano /etc/hosts

Edit seperti di bawah ini. (Gunakan tombol panah untuk memindahkan kursor dalam file.)

127.0.0.1       mail.your-domain.com localhost

Simpan dan tutup file. (Untuk menyimpan file di editor teks Nano, tekan Ctrl+O , lalu tekan Enter untuk mengkonfirmasi. Untuk menutup file, tekan Ctrl+X .)

Untuk melihat perubahannya, logout dan login kembali, lalu jalankan perintah berikut untuk melihat nama host Anda.

hostname -f

Langkah 4:Menyiapkan Server Mail di Debian 10 dengan iRedMail

Jalankan perintah berikut untuk mengunduh versi terbaru penginstal skrip iRedMail dari repositori Github-nya.

wget https://github.com/iredmail/iRedMail/archive/1.5.1.tar.gz

Ekstrak file yang diarsipkan.

tar xvf 1.5.1.tar.gz

Kemudian cd ke direktori yang baru dibuat.

cd iRedMail-1.5.1/

Tambahkan izin yang dapat dieksekusi ke iRedMail.sh naskah.

chmod +x iRedMail.sh

Selanjutnya, jalankan skrip Bash dengan hak istimewa sudo.

sudo bash iRedMail.sh

Wizard penyiapan server surat akan muncul. Gunakan tombol tab untuk memilih Ya dan tekan Enter.

Layar berikutnya akan meminta Anda untuk memilih jalur penyimpanan email. Anda dapat menggunakan yang default /var/vmail , jadi cukup tekan Enter.

Kemudian pilih apakah Anda ingin menjalankan server web. Sangat disarankan agar Anda memilih untuk menjalankan server web karena Anda memerlukan panel admin berbasis web untuk menambahkan akun email. Juga memungkinkan Anda untuk mengakses webmail Roundcube. Secara default, server web Nginx dipilih, jadi Anda cukup menekan Enter. (Sebuah tanda bintang menunjukkan item yang dipilih.)

Kemudian pilih backend penyimpanan untuk akun email. Pilih salah satu yang Anda kenal. Tutorial ini memilih MariaDB. Tekan tombol panah atas dan bawah dan tekan tombol spasi untuk memilih.

Jika Anda memilih MariaDB atau MySQL, maka Anda perlu mengatur kata sandi root MySQL.

Selanjutnya, masukkan domain email pertama Anda. Anda dapat menambahkan domain email tambahan nanti di panel admin berbasis web. Tutorial ini mengasumsikan bahwa Anda menginginkan akun email seperti [email protected] . Dalam hal ini, Anda harus memasukkan domain-anda.com di sini, tanpa sub-domain. Jangan tekan spasi setelah nama domain Anda. Saya rasa iRedMail akan menyalin karakter spasi bersama dengan nama domain Anda, yang dapat mengakibatkan kegagalan penginstalan.

Selanjutnya, setel sandi untuk administrator domain email.

Pilih komponen opsional. Secara default, 4 item dipilih. Jika Anda ingin memiliki groupware SOGo, pilih dan tekan Enter.

Sekarang Anda dapat meninjau konfigurasi Anda. Ketik Y untuk memulai instalasi semua komponen server email.

Di akhir penginstalan, pilih y untuk menggunakan aturan firewall yang disediakan oleh iRedMail dan memulai ulang firewall.

Sekarang instalasi iRedMail selesai. Anda akan diberi tahu URL webmail, groupware SOGo dan panel admin web dan kredensial login. iRedMail.tips file berisi informasi penting tentang server iRedMail Anda.

Reboot server Debian 10 Anda.

sudo shutdown -r now

Setelah server Anda kembali online, Anda dapat mengunjungi panel admin web.

https://mail.your-domain.com/iredadmin/

Catatan bahwa pada URL di atas, subdirektori untuk mengakses panel admin adalah /iredadmin/ , bukan /iredmail/ . Dan karena menggunakan sertifikat TLS yang ditandatangani sendiri, Anda perlu menambahkan pengecualian keamanan di browser web Anda.

Langkah 5:Menginstal Let's Encrypt TLS Certificate

Karena server email menggunakan sertifikat TLS yang ditandatangani sendiri, pengguna klien email desktop dan pengguna klien email web akan melihat peringatan. Untuk memperbaikinya, kami dapat memperoleh dan memasang sertifikat Let's Encrypt TLS gratis.

Mendapatkan Sertifikat

Pertama, login kembali ke server Anda melalui SSH dan jalankan perintah berikut untuk menginstal klien Let's Encrypt (certbot) di Debian 10.

sudo apt install certbot

iRedMail telah mengonfigurasi pengaturan TLS di host virtual Nginx default, jadi di sini saya sarankan menggunakan plugin webroot, alih-alih plugin nginx, untuk mendapatkan sertifikat. Jalankan perintah berikut. Ganti teks merah dengan data Anda yang sebenarnya.

sudo certbot certonly --webroot --agree-tos --email [email protected] -d mail.your-domain.com -w /var/www/html/

Saat ditanya apakah Anda ingin menerima komunikasi dari EFF, Anda dapat memilih Tidak.

Jika semuanya berjalan dengan baik, Anda akan melihat teks berikut yang menunjukkan bahwa Anda telah berhasil memperoleh sertifikat TLS. Sertifikat dan rantai Anda telah disimpan di /etc/letsencrypt/live/mail.your-domain.com/ direktori.

Gagal Memperoleh Sertifikat TLS

Jika certbot gagal mendapatkan sertifikat TLS, mungkin karena catatan DNS Anda tidak disebarkan ke Internet. Bergantung pada pencatat domain yang Anda gunakan, data DNS Anda mungkin disebarkan secara instan, atau mungkin perlu waktu hingga 24 jam untuk disebarkan. Anda dapat pergi ke https://dnsmap.io, masukkan nama host server email Anda (mail.your-domain.com ) untuk memeriksa propagasi DNS.

Jika certbot gagal mendapatkan sertifikat dan Anda melihat pesan berikut,

Failed authorization procedure. mail.linuxbabe.com (http-01): urn:ietf:params:acme:error:connection :: The server could not connect to the client to verify the domain :: Fetching https://mail.linuxbabe.com/.well-known/acme-challenge/IZ7hMmRE4ZlGW7cXYoq2Lc_VrFzVFyfW6E0pzNlhiOA: Timeout during connect (likely firewall problem)

Mungkin Anda telah menetapkan catatan AAAA untuk mail.your-domain.com , tetapi server web Nginx tidak mendengarkan alamat IPv6. Untuk memperbaiki kesalahan ini, edit /etc/nginx/sites-enabled/00-default.conf berkas

sudo nano /etc/nginx/sites-enabled/00-default.conf

Temukan baris berikut.

#listen [::]:80;

Hapus # karakter untuk mengaktifkan IPv6 untuk host virtual Nginx ini.

listen [::]:80;

Simpan dan tutup file. Kemudian edit host virtual SSL /etc/nginx/sites-enabled/00-default-ssl.conf .

sudo nano /etc/nginx/sites-enabled/00-default-ssl.conf

Tambahkan baris berikut.

listen [::]:443 ssl http2;

Simpan dan tutup file. Kemudian uji konfigurasi Nginx.

sudo nginx -t

Jika pengujian berhasil, muat ulang Nginx agar perubahan diterapkan.

sudo systemctl reload nginx

Jalankan kembali perintah berikut untuk mendapatkan sertifikat TLS. Ganti teks merah dengan data Anda yang sebenarnya.

sudo certbot certonly --webroot --agree-tos --email [email protected] -d mail.your-domain.com -w /var/www/html/

Sekarang Anda seharusnya berhasil mendapatkan sertifikat TLS.

Memasang Sertifikat di Nginx

Setelah mendapatkan sertifikat TLS, mari konfigurasikan server web Nginx untuk menggunakannya. Edit file template SSL.

sudo nano /etc/nginx/templates/ssl.tmpl

Temukan 2 baris berikut.

ssl_certificate /etc/ssl/certs/iRedMail.crt;
ssl_certificate_key /etc/ssl/private/iRedMail.key;

Ganti dengan:

ssl_certificate /etc/letsencrypt/live/mail.your-domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mail.your-domain.com/privkey.pem;

Simpan dan tutup file. Kemudian uji konfigurasi nginx dan muat ulang.

sudo nginx -t

sudo systemctl reload nginx

Kunjungi kembali panel admin iRedMail (https://mail.your-domain.com/iredadmin/ ), browser web Anda tidak akan memperingatkan Anda lagi karena Nginx sekarang menggunakan sertifikat TLS yang valid.

Menginstal Sertifikat TLS di Postfix dan Dovecot

Kita juga perlu mengkonfigurasi server SMTP Postfix dan server IMAP Dovecot untuk menggunakan sertifikat yang diterbitkan Let's Encrypt sehingga klien email desktop tidak akan menampilkan peringatan keamanan. Edit file konfigurasi utama Postfix.

sudo nano /etc/postfix/main.cf

Temukan 3 baris berikut. (baris 95, 96, 97).

smtpd_tls_key_file = /etc/ssl/private/iRedMail.key
smtpd_tls_cert_file = /etc/ssl/certs/iRedMail.crt
smtpd_tls_CAfile = /etc/ssl/certs/iRedMail.crt

Ganti dengan:

smtpd_tls_key_file = /etc/letsencrypt/live/mail.your-domain.com/privkey.pem
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.your-domain.com/cert.pem
smtpd_tls_CAfile = /etc/letsencrypt/live/mail.your-domain.com/chain.pem

Simpan dan tutup file. Kemudian muat ulang Postfix.

sudo systemctl reload postfix

Selanjutnya, edit file konfigurasi utama Dovecot.

sudo nano /etc/dovecot/dovecot.conf

Baik 2 baris berikut. (baris 47, 48)

ssl_cert = </etc/ssl/certs/iRedMail.crt
ssl_key = </etc/ssl/private/iRedMail.key

Ganti dengan:

ssl_cert = </etc/letsencrypt/live/mail.your-domain.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.your-domain.com/privkey.pem

Simpan dan tutup file. Kemudian muat ulang dovecot.

sudo systemctl reload dovecot

Mulai sekarang, pengguna email desktop tidak akan melihat peringatan keamanan.

Langkah 6:Mengirim Email Uji

Masuk ke panel iredadmin dengan akun email postmaster ([email protected]). Dalam Add tab, Anda dapat menambahkan domain atau alamat email tambahan.

Jika Anda melihat kesalahan "tidak ada domain di bawah kendali", silakan merujuk ke artikel ini.

Setelah Anda membuat pengguna, Anda dapat mengunjungi alamat email web Roundcube dan login dengan akun pengguna email baru.

https://mail.your-domain.com/mail/

Sekarang Anda dapat menguji pengiriman dan penerimaan email. Harap perhatikan bahwa Anda mungkin perlu menunggu beberapa menit untuk menerima email karena iRedMail secara default mengaktifkan daftar abu-abu, yang merupakan cara untuk memberi tahu server SMTP pengirim lain untuk mencoba lagi dalam beberapa menit. Baris berikut dalam file log surat /var/log/mail.log menunjukkan daftar abu-abu diaktifkan.

Recipient address rejected: Intentional policy rejection, please try again later;

Menambahkan Ruang Tukar

ClamAV digunakan untuk memindai virus dalam pesan email. ClamAV dapat menggunakan cukup banyak RAM. Jika tidak ada cukup RAM di server Anda, ClamAV tidak akan berfungsi dengan baik, yang akan mencegah server email Anda mengirim email. Anda dapat menambahkan file swap ke server Anda untuk meningkatkan total RAM di server Anda. (Perhatikan bahwa menggunakan ruang swap di server akan menurunkan kinerja server. Jika Anda menginginkan kinerja yang lebih baik, Anda harus meningkatkan RAM fisik daripada menggunakan ruang swap.)

Untuk menambahkan ruang swap di server, pertama, gunakan fallocate perintah untuk membuat file. Misalnya, buat file bernama swapfile dengan kapasitas 1G di sistem file root:

sudo fallocate -l 1G /swapfile

Kemudian pastikan hanya root yang dapat membaca dan menulis.

sudo chmod 600 /swapfile

Format untuk bertukar:

sudo mkswap /swapfile

Keluaran:

Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=0aab5886-4dfb-40d4-920d-fb1115c67433

Aktifkan file swap

sudo swapon /swapfile

Untuk memasang ruang swap pada waktu boot sistem, edit /etc/fstab berkas.

sudo nano /etc/fstab

Tambahkan baris berikut di bagian bawah file ini.

/swapfile    swap    swap     defaults    0   0

Simpan dan tutup file. Kemudian muat ulang systemd dan mulai ulang ClamAV.

sudo systemctl daemon-reload

sudo systemctl restart clamav-daemon

Langkah 7:Memeriksa Apakah Port 25 (keluar) diblokir

ISP atau penyedia hosting Anda tidak akan memblokir koneksi masuk ke port 25 server Anda, yang berarti Anda dapat menerima email dari server email lain. Namun, banyak penyedia ISP/hosting memblokir koneksi keluar ke port 25 server email lain, yang berarti Anda tidak dapat mengirim email.

Jika email Anda tidak sampai ke alamat email Anda yang lain seperti Gmail, jalankan perintah berikut di server email Anda untuk memeriksa apakah port 25 (keluar) diblokir.

telnet gmail-smtp-in.l.google.com 25

Jika tidak diblokir, Anda akan melihat pesan seperti di bawah ini, yang menunjukkan bahwa koneksi berhasil dibuat. (Petunjuk:Ketik quit dan tekan Enter untuk menutup koneksi.)

Trying 74.125.68.26...
Connected to gmail-smtp-in.l.google.com.
Escape character is '^]'.
220 mx.google.com ESMTP y22si1641751pll.208 - gsmtp

Jika port 25 (outbound) diblokir, Anda akan melihat sesuatu seperti:

Trying 2607:f8b0:400e:c06::1a...
Trying 74.125.195.27...
telnet: Unable to connect to remote host: Connection timed out

Dalam hal ini, server SMTP Postfix Anda tidak dapat mengirim email ke server SMTP lainnya. Minta ISP/penyedia hosting Anda untuk membukanya untuk Anda. Jika mereka menolak permintaan Anda, Anda perlu menyiapkan relai SMTP untuk melewati pemblokiran port 25.

Masih Tidak Bisa Mengirim Email?

Jika port 25 (keluar) tidak diblokir, tetapi Anda masih tidak dapat mengirim email dari server email Anda sendiri ke alamat email Anda yang lain seperti Gmail, maka Anda harus memeriksa log email (/var/log/mail.log ).

sudo nano /var/log/mail.log

Misalnya, beberapa orang mungkin melihat baris berikut dalam file.

host gmail-smtp-in.l.google.com[2404:6800:4003:c03::1b] said: 550-5.7.1 [2a0d:7c40:3000:b8b::2] Our system has detected that 550-5.7.1 this message does not meet IPv6 sending guidelines regarding PTR 550-5.7.1 records and authentication. Please review 550-5.7.1 https://support.google.com/mail/?p=IPv6AuthError for more information

Ini berarti server email Anda menggunakan IPv6 untuk mengirim email, tetapi Anda tidak menyiapkan data IPv6. Anda harus pergi ke manajer DNS Anda, atur AAAA rekam untuk mail.your-domain.com , maka Anda harus mengatur PTR record untuk alamat IPv6 Anda, yang dibahas pada langkah 9.

Langkah 8:Menggunakan Klien Email di Komputer atau Perangkat Seluler Anda

Jalankan klien email desktop Anda seperti Mozilla Thunderbird dan tambahkan akun email.

  • Di bagian server masuk, pilih protokol IMAP, masukkan mail.your-domain.com sebagai nama server, pilih port 143 dan STARTTLS. Pilih normal password sebagai metode otentikasi.
  • Di bagian keluar, pilih protokol SMTP, masukkan mail.your-domain.com sebagai nama server, pilih port 587 dan STARTTLS. Pilih normal password sebagai metode otentikasi.

Fail2ban Memblokir Alamat IP Anda Sendiri

Jika Anda membuat kesalahan dan gagal masuk ke server email beberapa kali, layanan Fail2ban di server email mungkin memblokir alamat IP Anda. Anda dapat menambahkan alamat IP Anda ke daftar putih dengan mengedit jail.local berkas.

sudo nano /etc/fail2ban/jail.local

Tambahkan alamat IP Anda sendiri ke daftar abaikan seperti di bawah ini. Ganti 12.34.56.78 dengan alamat IP asli Anda.

ignoreip = 12.34.56.78 127.0.0.1 127.0.0.0/8 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16

Simpan dan tutup file. Kemudian restart Fail2ban.

sudo systemctl restart fail2ban

Langkah 9:Meningkatkan Keterkiriman Email

Untuk mencegah email Anda ditandai sebagai spam, Anda harus menyetel PTR , SPF , DKIM dan DMARC catatan.

Catatan PTR

Catatan penunjuk, atau catatan PTR, memetakan alamat IP ke FQDN (nama domain yang sepenuhnya memenuhi syarat). Ini adalah kebalikan dari catatan A dan digunakan untuk DNS terbalik lookup, yang dapat membantu memblokir spammer. Banyak server SMTP menolak email jika tidak ada catatan PTR yang ditemukan untuk server pengirim.

Untuk memeriksa catatan PTR untuk alamat IP, jalankan perintah ini:

dig -x IP-address +short

atau

host IP-address

Data PTR tidak dikelola oleh pencatat domain Anda. Ini dikelola oleh organisasi yang memberi Anda alamat IP. Karena Anda mendapatkan alamat IP dari penyedia hosting atau ISP Anda, bukan dari pendaftar domain Anda, jadi Anda harus mengatur catatan PTR untuk IP Anda di panel kontrol penyedia hosting Anda, atau tanyakan pada ISP Anda. Nilainya harus menjadi nama host server email Anda:mail.your-domain.com . Jika server Anda menggunakan alamat IPv6, pastikan untuk menambahkan data PTR untuk alamat IPv6 Anda juga.

Untuk mengedit catatan DNS terbalik untuk VPS Kamatera Anda, masuk ke area klien Kamatera, lalu buka tiket dukungan dan beri tahu mereka untuk menambahkan catatan PTR untuk alamat IP server Anda untuk mengarahkan alamat IP ke mail.your-domain.com . Ini tidak nyaman, Anda mungkin berpikir, tetapi ini untuk menjauhkan spammer dari platform, sehingga pengirim email yang sah seperti kami akan memiliki reputasi IP yang bagus.

Catatan SPF

SPF Catatan (Sender Policy Framework) menentukan host atau alamat IP mana yang diizinkan untuk mengirim email atas nama domain. Anda harus mengizinkan hanya server email Anda sendiri atau server ISP Anda untuk mengirim email untuk domain Anda. Di antarmuka pengelolaan DNS Anda, buat data TXT baru seperti di bawah ini.

Penjelasan:

  • TXT menunjukkan ini adalah data TXT.
  • Masukkan @ di bidang nama untuk mewakili nama domain utama.
  • v=spf1 menunjukkan ini adalah data SPF dan versinya adalah SPF1.
  • mx berarti semua host yang tercantum dalam data MX diizinkan mengirim email untuk domain Anda dan semua host lain tidak diizinkan.
  • ~semua menunjukkan bahwa email dari domain Anda hanya boleh berasal dari host yang ditentukan dalam data SPF. Email yang berasal dari host lain akan ditandai sebagai palsu.

Untuk memeriksa apakah data SPF Anda disebarkan ke Internet publik, Anda dapat menggunakan utilitas dig pada mesin Linux Anda seperti di bawah ini:

dig your-domain.com txt

txt opsi memberitahu dig bahwa kami hanya ingin menanyakan data TXT.

Catatan DKIM

DKIM (DomainKeys Identified Mail) menggunakan kunci pribadi untuk menandatangani email yang dikirim dari domain Anda secara digital. Server SMTP penerima memverifikasi tanda tangan dengan menggunakan kunci publik, yang dipublikasikan dalam catatan DNS DKIM.

Skrip iRedMail secara otomatis mengonfigurasi penandatanganan dan verifikasi DKIM untuk server Anda. Satu-satunya yang tersisa untuk dilakukan adalah membuat catatan DKIM di manajer DNS. Jalankan perintah berikut menunjukkan kunci publik DKIM.

sudo amavisd-new showkeys

Kunci publik DKIM ada di dalam tanda kurung.

Kemudian di DNS manager Anda, buat TXT record, masukkan dkim._domainkey di kolom nama. Salin semua yang ada di dalam tanda kurung dan tempel ke bidang nilai. Hapus semua tanda kutip ganda dan jeda baris.

Setelah menyimpan perubahan Anda, jalankan perintah berikut untuk menguji apakah data DKIM Anda benar.

sudo amavisd-new testkeys

Jika catatan DKIM benar, tes akan lulus. Perhatikan bahwa data DKIM Anda mungkin perlu waktu untuk menyebar ke Internet. Bergantung pada pencatat domain yang Anda gunakan, data DNS Anda mungkin disebarkan secara instan, atau mungkin perlu waktu hingga 24 jam untuk disebarkan. Anda dapat pergi ke https://www.dmarcanalyzer.com/dkim/dkim-check/, masukkan dkim sebagai pemilih dan masukkan nama domain Anda untuk memeriksa propagasi data DKIM.

TESTING#1 linuxbabe.com: dkim._domainkey.linuxbabe.com => pass

Data DMARC

DMARC adalah singkatan dari Domain-based Message Authentication, Reporting and Conformance. DMARC dapat membantu menerima server email untuk mengidentifikasi email yang sah dan mencegah nama domain Anda digunakan oleh email spoofing.

Untuk membuat data DMARC, buka pengelola DNS Anda dan tambahkan TXT catatan. Di bidang nama, masukkan _dmarc . Di bidang nilai, masukkan yang berikut ini. (Anda harus membuat alamat email [dilindungi email].)

v=DMARC1; p=none; pct=100; rua=mailto:[email protected]

Data DMARC di atas adalah titik awal yang aman. Untuk melihat penjelasan lengkap tentang DMARC, silahkan cek artikel berikut.

  • Membuat Data DMARC untuk Melindungi Nama Domain Anda Dari Email Spoofing

Langkah 10:Menguji Skor dan Penempatan Email

Setelah membuat data PTR, SPF, DKIM, buka https://www.mail-tester.com . Anda akan melihat alamat email yang unik. Kirim email dari domain Anda ke alamat ini, lalu periksa skor Anda. Seperti yang Anda lihat, saya mendapat nilai sempurna. Dalam hasil pengujian, Anda harus memeriksa apakah data PTR, SPF, dan DKIM Anda valid.

Mail-tester.com hanya dapat menunjukkan skor pengirim kepada Anda. Ada layanan lain bernama GlockApps yang memungkinkan Anda memeriksa apakah email Anda masuk ke kotak masuk atau folder spam penerima, atau ditolak mentah-mentah. Ini mendukung banyak penyedia email populer seperti Gmail, Outlook, Hotmail, YahooMail, iCloud mail, dll

Bagaimana jika Email Anda Ditolak oleh Microsoft Mailbox?

Microsoft tampaknya menggunakan daftar hitam internal yang memblokir banyak alamat IP yang sah. Jika email Anda ditolak oleh Outlook atau Hotmail, Anda harus mengirimkan formulir informasi pengirim. Setelah itu, email Anda akan diterima oleh Outlook/Hotmail.

Bagaimana jika Email Anda Masih Ditandai sebagai Spam?

Saya memiliki lebih banyak tips untuk Anda dalam artikel ini:Bagaimana menghentikan email Anda ditandai sebagai spam. Meskipun akan memakan waktu dan tenaga, email Anda pada akhirnya akan ditempatkan di kotak masuk setelah menerapkan tips ini.

Menambahkan Beberapa Domain Email

Saya menulis artikel ini untuk menunjukkan kepada Anda cara menambahkan beberapa domain email di iRedMail.

Cara Menonaktifkan Daftar Abu-abu

Secara default, iRedMail telah mengaktifkan daftar abu-abu, yang memberi tahu server SMTP pengirim lain untuk mencoba lagi dalam beberapa menit. Ini terutama berguna untuk memblokir spam, tetapi juga menurunkan pengalaman pengguna. Jika Anda lebih suka menonaktifkan daftar abu-abu, ikuti petunjuk di bawah ini.

Tambahkan izin menulis ke /opt/iredapd/settings.py berkas.

sudo chmod 600 /opt/iredapd/settings.py

Kemudian edit file konfigurasi.

sudo nano /opt/iredapd/settings.py

Temukan baris berikut.

plugins = ["reject_null_sender", "wblist_rdns", "reject_sender_login_mismatch", "greylisting", "throttle", "amavisd_wblist", "sql_alias_access_policy"]

Hapus "greylisting" dari daftar. Simpan dan tutup file. Kemudian restart iredapd.

sudo systemctl restart iredapd

Change the configuration file back to read only mode.

sudo chmod 400 /opt/iredapd/settings.py

Enabling SMTPS Port 465

If you are going to use Microsoft Outlook client, then you need to enable SMTPS port 465 in Postfix SMTP server.

Troubleshooting

First, please use a VPS with at least 4GB RAM. Running iRedMail on a 1GB RAM VPS will cause the database, SpamAssassin, or ClamAV to be killed because of out-of-memory problem. If you insist on using a 1GB RAM VPS, you are going to lose incoming emails and have other undesirable outcomes.

If the iRedMail web interface isn’t accessible, like a 502 gateway error, you should check the Nginx logs in /var/log/nginx/ directory to find clues. You may also want to check the mail log /var/log/mail.log .

Check if the various services are running.

systemctl status postfix

systemctl status dovecot

systemctl status nginx

systemctl status mariadb

systemctl status clamav-daemon

systemctl status amavis

systemctl status php7.3-fpm

systemctl status iredadmin

If you enabled the firewall, you should open the following ports in the firewall.

HTTP port:  80
HTTPS port: 443
SMTP port:  25
Submission port: 587 (and 465 if you are going to use Microsoft Outlook mail client)
IMAP port:  143 and 993

If you would like to use the UFW firewall, check my guide here:Getting started with UFW firewall on Debian and Debian.

How to Renew TLS Certificate

Let’s Encrypt issued TLS certificate is valid for 90 days only and it’s important that you set up a Cron job to automatically renew the certificate. You can run the following command to renew certificate.

sudo certbot renew -w /var/www/html

You can use the --dry-run option to test the renewal process, instead of doing a real renewal.

sudo certbot renew -w /var/www/html --dry-run

If you see the following error when renewing TLS certificate.

The client lacks sufficient authorization :: Invalid response

Then you need to create the hidden directory.

sudo mkdir -p /var/www/html/.well-known/acme-challenge

And set www-data as the owner of the webroot.

sudo chown www-data:www-data /var/www/html/ -R

Also, edit the SSL virtual host /etc/nginx/sites-enabled/00-default-ssl.conf . Add the following lines.

location ~ /.well-known/acme-challenge {
     root /var/www/html/;
     allow all;
}

Simpan dan tutup file. Test Nginx configuration and reload.

sudo nginx -t

sudo systemctl reload nginx

Create Cron Job

If now the dry run is successful, you can create Cron job to automatically renew certificate. Simply open root user’s crontab file.

sudo crontab -e

Then add the following line at the bottom of the file.

@daily certbot renew -w /var/www/html --quiet && systemctl reload postfix dovecot nginx

Reloading Postfix, Dovecot and Nginx is necessary to make these programs pick up the new certificate and private key.

For Advanced Users

You may want to customize the SpamAssassin content filter to better detect spam.

  • Block Email Spam By Checking Header and Body in Postfix/SpamAssassin

If your website and mail server are running on two different VPS (virtual private server), you can set up SMTP relay between your website and mail server, so that your website can send emails through your mail server. See the following article. (It’s written for Ubuntu, but also works on Debian).

  • How to set up SMTP relay between 2 Postfix SMTP servers on Ubuntu

Debian
  1. Cara Mengatur Server Samba di Debian 10 Buster

  2. Cara mengatur server SFTP di Server Debian 11

  3. Siapkan Server Mail dengan PostfixAdmin di Debian 9

  1. Cara Mengatur Server LAMP di Debian 10 Buster

  2. Cara Mengatur Server NFS di Debian 10 Buster

  3. Cara Mengatur Server LEMP di Debian 10 Buster

  1. Cara Mengatur Server Minecraft di Debian 10

  2. Cara Mengatur Server Mail dengan PostfixAdmin di Debian 11

  3. Cara Mengatur Server Mail dengan Modoboa di Debian 10