Menyiapkan server email Anda sendiri di Linux dari awal adalah proses yang panjang dan membosankan, merepotkan jika Anda bukan pengguna tingkat lanjut. Tutorial ini akan menunjukkan cara menggunakan iRedMail untuk menyiapkan server email berfitur lengkap dengan cepat di Ubuntu 20.04, 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 PostgreSQL, 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 Ubuntu 20.04 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 harus pergi ke layanan hosting DNS Anda (biasanya pencatat domain Anda) untuk membuat catatan 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 -y
Selama proses peningkatan, mungkin akan menanyakan pertanyaan berikut kepada Anda. Jika Anda ingin tetap menggunakan port 6543 untuk SSH, pilih keep the local version currently installed
. Jika Anda ingin menggunakan port 22 untuk SSH, pilih install the package maintainer's version
.
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
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, login kembali lalu jalankan perintah berikut untuk melihat nama host Anda.
hostname -f
Langkah 4:Menyiapkan Server Mail di Ubuntu 20.04 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.0.tar.gz
Ekstrak file yang diarsipkan.
tar xvf 1.5.0.tar.gz
Kemudian cd ke direktori yang baru dibuat.
cd iRedMail-1.5.0/
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 jalur 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, ini 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 menggunakan groupware SOGo (webmail, kalender, buku alamat, ActiveSync), tekan tombol panah bawah dan spasi untuk memilih. Tekan Enter
ke layar berikutnya.
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 email web, panel admin web, dan kredensial login. iRedMail.tips
file berisi informasi penting tentang server iRedMail Anda.
Reboot server Ubuntu 20.04 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, masuk ke server Anda lagi melalui SSH dan jalankan perintah berikut untuk menginstal klien Let's Encrypt (certbot) di Ubuntu 20.04.
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 panel admin iRedMail lagi, 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 ISP/penyedia 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, 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. Pilihnormal password
sebagai metode otentikasi. - Di bagian keluar, pilih protokol SMTP, masukkan
mail.your-domain.com
sebagai nama server, pilih port 587 dan STARTTLS. Pilihnormal 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 pencatat domain Anda, jadi Anda harus menyetel data PTR untuk IP Anda di panel kontrol penyedia hosting Anda, atau tanyakan kepada 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, jadi 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 DKIM untuk server Anda. Satu-satunya yang tersisa untuk dilakukan adalah membuat catatan DKIM di manajer DNS. Jalankan perintah berikut untuk menampilkan 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, ujian akan lulus.
TESTING#1 linuxbabe.com: dkim._domainkey.linuxbabe.com => pass
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.
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 [email protected]
alamat email.)
v=DMARC1; p=none; pct=100; rua=mailto:[email protected]
Data DMARC di atas adalah titik awal yang aman. Jika ingin membaca penjelasan lengkap tentang DMARC, silahkan cek artikel berikut ini. Perhatikan bahwa ini opsional.
- 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 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.
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.
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
Ubah file konfigurasi kembali ke mode hanya baca.
sudo chmod 400 /opt/iredapd/settings.py
Mengaktifkan Port SMTPS 465
Jika Anda akan menggunakan klien Microsoft Outlook, maka Anda perlu mengaktifkan port SMTPS 465 di server SMTP Postfix.
Pemecahan Masalah
Pertama, silahkan gunakan VPS dengan RAM minimal 4GB. Menjalankan iRedMail pada VPS RAM 1GB akan menyebabkan database, SpamAssassin, atau ClamAV mati karena masalah kehabisan memori. Jika Anda benar-benar ingin menggunakan VPS RAM 1GB, Anda akan kehilangan email masuk dan mendapatkan hasil yang tidak diinginkan lainnya.
Jika antarmuka web iRedMail tidak dapat diakses, seperti kesalahan gateway 502, Anda harus memeriksa log Nginx di /var/log/nginx/
direktori untuk menemukan petunjuk. Anda mungkin juga ingin memeriksa log surat /var/log/mail.log
.
Periksa apakah berbagai layanan berjalan.
systemctl status postfix systemctl status dovecot systemctl status nginx systemctl status mariadb systemctl status clamav-daemon systemctl status amavis
Jika Anda mengaktifkan firewall, Anda harus membuka port berikut di 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
Jika Anda ingin menggunakan firewall UFW, lihat panduan saya di sini:Memulai dengan firewall UFW di Debian dan Ubuntu.
Cara Memperbarui Sertifikat TLS
Let's Encrypt yang diterbitkan sertifikat TLS hanya berlaku selama 90 hari dan Anda harus menyiapkan tugas Cron untuk memperbarui sertifikat secara otomatis. Anda dapat menjalankan perintah berikut untuk memperbarui sertifikat.
sudo certbot renew -w /var/www/html/
Anda dapat menggunakan --dry-run
opsi untuk menguji proses pembaruan, alih-alih melakukan pembaruan nyata.
sudo certbot renew -w /var/www/html/ --dry-run
Jika Anda melihat kesalahan berikut saat memperbarui sertifikat TLS.
The client lacks sufficient authorization :: Invalid response
Maka Anda perlu membuat direktori tersembunyi.
sudo mkdir -p /var/www/html/.well-known/acme-challenge
Dan atur www-data
sebagai pemilik webroot.
sudo chown www-data:www-data /var/www/html/ -R
Juga, edit host virtual SSL /etc/nginx/sites-enabled/00-default-ssl.conf
. Tambahkan baris berikut.
location ~ /.well-known/acme-challenge { root /var/www/html/; allow all; }
Simpan dan tutup file. Uji konfigurasi Nginx dan muat ulang.
sudo nginx -t sudo systemctl reload nginx
Buat Cron Job
Jika sekarang dry run berhasil, Anda dapat membuat pekerjaan Cron untuk memperbarui sertifikat secara otomatis. Cukup buka file crontab pengguna root.
sudo crontab -e
Kemudian tambahkan baris berikut di bagian bawah file.
@daily certbot renew -w /var/www/html/ --quiet && systemctl reload postfix dovecot nginx
Memuat ulang Postfix, Dovecot, dan Nginx diperlukan untuk membuat program ini mengambil sertifikat dan kunci pribadi baru.
Menyiapkan Server Email Cadangan
Server email utama Anda terkadang tidak aktif. Jika Anda menghosting server email Anda di pusat data, maka waktu henti sangat minimal, jadi Anda tidak perlu khawatir kehilangan email masuk. Jika Anda menghosting server email di rumah, waktu henti tidak dapat diprediksi, jadi sebaiknya Anda menjalankan server email cadangan di pusat data untuk mencegah kehilangan email masuk. Server email cadangan hanya membutuhkan RAM 512MB untuk dijalankan. Cek selengkapnya di artikel berikut.
- Cara Menyiapkan Server Email Cadangan dengan Postfix di Ubuntu (Panduan Lengkap)
Untuk Pengguna Tingkat Lanjut
iRedMail tidak menyertakan layanan verifikasi DMARC, Anda dapat melihat tutorial berikut untuk menyiapkan OpenDMARC guna memblokir spoofing email.
- Mengatur OpenDMARC dengan Postfix di Ubuntu untuk Memblokir Email Spoofing/Spam
Anda mungkin ingin menyesuaikan filter konten SpamAssassin untuk mendeteksi spam dengan lebih baik.
- Blokir Spam Email Dengan Memeriksa Header dan Body di Postfix/SpamAssassin
Jika situs web dan server surat Anda berjalan pada dua VPS (server pribadi virtual) yang berbeda, Anda dapat mengatur relai SMTP antara situs web dan server surat Anda, sehingga situs web Anda dapat mengirim email melalui server surat Anda. Lihat artikel berikut.
- Cara menyetel relai SMTP antara 2 server SMTP Postfix di Ubuntu