One place for hosting & domains

      Postfix

      Cara Menginstal dan Mengonfigurasi Postfix pada Ubuntu 20.04


      Versi sebelumnya dari tutorial ini ditulis oleh Justin Ellingwood

      Pengantar

      Postfix adalah Agen Transfer Surat (MTA) sumber terbuka populer yang dapat digunakan untuk mengirimkan surel sesuai rutenya pada sistem Linux. Diperkirakan bahwa sekitar 25% dari server surel publik di Internet menggunakan Postfix.

      Dalam panduan ini, Anda akan mempelajari cara menginstal dan mengonfigurasi Postfix pada server Ubuntu 20.04. Lalu, Anda akan menguji apakah Postfix dapat mengirim surat dengan menginstal s-nail, suatu Agen Pengguna Surat (MUA), yang juga dikenal sebagai klien surel.

      Harap diperhatikan bahwa tujuan dari tutorial ini adalah untuk membantu Anda menjadikan Postfix aktif dan berjalan secara cepat dengan hanya sebagian fungsi dasar surel. Anda tidak akan memiliki server surel yang penuh fitur pada akhir panduan ini, tetapi Anda akan memiliki sebagian dari komponen mendasar dari penyiapan untuk membantu Anda memulai.

      Prasyarat

      Untuk mengikuti panduan ini, Anda akan membutuhkan yang berikut:

      • Server yang menjalankan Ubuntu 20.04 untuk berfungsi sebagai server surat Postfix Anda. Server ini harus memiliki pengguna non-root dengan privilese sudo dan firewall yang terkonfigurasi dengan UFW. Anda dapat mengikuti panduan penyiapan server awal Ubuntu 20.04 untuk menyiapkan ini.
      • Nama Domain yang Sepenuhnya Memenuhi Syarat yang mengarah ke server Ubuntu 20.04 Anda. Anda dapat menemukan bantuan tentang menyiapkan nama domain Anda di DigitalOcean dengan mengikuti dokumentasi Domain dan Jaringan DNS kami. Harap diketahui bahwa jika Anda berencana untuk mengakses surel dari suatu lokasi eksternal, Anda akan perlu memastikan bahwa Anda memiliki catatan MX yang mengarah ke server surel Anda juga.

      Harap diperhatikan bahwa tutorial ini mengasumsikan bahwa Anda sedang mengonfigurasi hos yang memiliki FQDN dari mail.example.com. Ketika dibutuhkan, pastikan agar mengubah example.com atau mail.example.com untuk mencerminkan FQDN milik Anda.

      Langkah 1 — Menginstal Postfix

      Postfix disertakan dalam repositori asali Ubuntu, sehingga Anda dapat menginstalnya dengan APT.

      Pertama-tama, perbarui cache paket apt lokal Anda:

      Lalu, instal paket postfix dengan perintah berikut. Perhatikan bahwa di sini kita memasukkan variabel lingkungan DEBIAN_PRIORITY=low ke dalam perintah instalasi ini. Ini akan menyebabkan proses instalasi meminta Anda untuk mengonfigurasi beberapa opsi tambahan:

      • sudo DEBIAN_PRIORITY=low apt install postfix

      Proses instalasi ini akan membuka serangkaian prompt interaktif. Untuk tutorial ini, gunakan informasi berikut untuk mengisi prompt Anda:

      • General type of mail configuration?: Untuk pertanyaan ini, pilih Internet Site karena ini sesuai dengan kebutuhan infrastruktur kita.
      • System mail name: Ini adalah domain dasar yang digunakan untuk menciptakan alamat surel yang valid, hanya pada saat bagian akun dari alamat diberikan. Misalnya, mari kita anggap nama hos server Anda adalah mail.example.com. Anda mungkin akan ingin mengatur nama surel sistem menjadi example.com, lalu jika kita anggap nama penggunanya adalah user1, maka Postfix akan menggunakan alamat user1@example.com.
      • Root and postmaster mail recipient: Ini adalah akun Linux yang akan menerima penerusan surat yang ditujukan ke root@ dan postmaster@. Gunakan akun primer Anda untuk ini. Dalam kasus contoh ini, sammy.
      • Other destinations to accept mail for: Ini mendefinisikan tujuan surat yang akan diterima oleh instans Postfix ini. Jika Anda perlu menambah domain lain yang akan menjadi tanggung jawab dari server ini untuk menerimanya, tambahkan domain itu di sini. Atau, pengaturan asali sudah mencukupi.
      • Force synchronous updates on mail queue?: Karena Anda mungkin menggunakan sistem berkas terjurnal, pilih No di sini.
      • Local networks: Ini adalah daftar jaringan tempat server surel Anda dikonfigurasi untuk menyampaikan pesan. Pengaturan asali akan bekerja untuk kebanyakan skenario. Jika Anda memilih untuk memodifikasinya, pastikan untuk sangat ketat dalam hal cakupan jaringan.
      • Mailbox size limit: Ini dapat digunakan untuk membatasi ukuran pesan. Atur itu ke 0 untuk menonaktifkan pembatasan ukuran apa pun.
      • Local address extension character: Ini adalah karakter yang dapat digunakan untuk memisahkan bagian reguler alamat dari suatu ekstensi (digunakan untuk menciptakan alias dinamis). Pengaturan asali, + akan bekerja untuk tutorial ini.
      • Internet protocols to use: Pilih apakah Anda ingin membatasi versi IP yang didukung Postfix. Untuk tutorial ini, pilih all.

      Untuk lebih jelasnya, ini adalah pengaturan yang digunakan dalam panduan ini:

      • General type of mail configuration?: Internet Site
      • System mail name: example.com (bukan mail.example.com)
      • Root and postmaster mail recipient: Nama pengguna dari akun Linux primer Anda (sammy dalam contoh kita)
      • Other destinations to accept mail for: $myhostname, example.com, mail.example.com, localhost.example.com, localhost
      • Force synchronous updates on mail queue?: No
      • Local networks: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
      • Mailbox size limit: 0
      • Local address extension character: +
      • Internet protocols to use: all

      Catatan: Jika Anda perlu kembali untuk mengubah pengaturan ini, Anda dapat melakukannya dengan mengetik:

      • sudo dpkg-reconfigure postfix

      Prompt akan terisi dengan respons sebelumnya dari Anda.

      Ketika proses instalasi selesai, Anda siap untuk membuat beberapa pembaruan ke konfigurasi Postfix Anda.

      Langkah 2 — Mengubah Konfigurasi Postfix

      Sekarang, Anda dapat menyesuaikan beberapa pengaturan yang tidak ditanyakan oleh proses instalasi paket. Banyak pengaturan konfigurasi Postfix didefinisikan di dalam berkas /etc/postfix/main.cf. Alih-alih mengedit berkas ini secara langsung, Anda dapat menggunakan perintah postconf dari Postfix untuk melakukan kueri atau menetapkan pengaturan konfigurasi.

      Pertama-tama, tentukan lokasi untuk kotak surat pengguna Ubuntu non-root Anda. Dalam panduan ini, kita akan menggunakan format Maildir, yang memisahkan pesan-pesan ke dalam berkas individual yang kemudian dipindahkan di antara berbagai direktori berdasarkan tindakan pengguna. Opsi alternatif yang tidak dibahas di dalam panduan ini adalah format mbox, yang menyimpan semua pesan di dalam satu berkas tunggal.

      Atur variabel home_mailbox ke Maildir/. Nanti, Anda akan menciptakan struktur direktori di bawah nama itu di dalam direktori rumah pengguna Anda. Konfigurasikan home_mailbox dengan mengetik:

      • sudo postconf -e 'home_mailbox= Maildir/'

      Selanjutnya, atur lokasi dari tabel virtual_alias_maps, yang memetakan akun surel arbitrer ke akun sistem Linux. Jalankan perintah berikut, yang memetakan lokasi tabel ke suatu berkas basis data hash yang bernama /etc/postfix/virtual:

      • sudo postconf -e 'virtual_alias_maps= hash:/etc/postfix/virtual'

      Karena kini Anda sudah mengonfigurasi lokasi dari berkas peta virtual di dalam berkas main.cf Anda, Anda dapat menciptakan berkas itu sendiri dan mulai memetakan akun surel ke akun pengguna pada sistem Linux Anda. Ciptakan berkas dengan editor teks pilihan Anda; dalam contoh ini, kita akan menggunakan nano:

      • sudo nano /etc/postfix/virtual

      Buat daftar alamat apa pun yang Anda ingin menerima surel darinya, diikuti oleh spasi kosong dan pengguna Linux yang Anda ingin kirimkan surel kepadanya.

      Sebagai contoh, jika Anda ingin menerima surel di contact@example.com dan admin@example.com serta ingin agar surel-surel tersebut dikirim ke pengguna Linux sammy, Anda dapat menyiapkan berkas Anda seperti ini:

      /etc/postfix/virtual

      contact@example.com sammy
      admin@example.com sammy
      

      Setelah Anda memetakan semua alamat ke akun server yang sesuai, simpan dan tutup berkas. Jika Anda menggunakan nano, lakukan ini dengan menekan CTRL + X, Y, kemudian ENTER.

      Terapkan pemetaan dengan mengetik:

      • sudo postmap /etc/postfix/virtual

      Mulai ulang proses Postfix untuk memastikan bahwa semua perubahan Anda telah diterapkan:

      • sudo systemctl restart postfix

      Dengan asumsi Anda telah mengikuti panduan prasyarat Penyiapan Server Awal, Anda akan memiliki firewall yang terkonfigurasi dengan UFW. Firewall ini akan memblokir koneksi eksternal ke layanan pada server Anda secara asali, kecuali koneksi itu diizinkan secara jelas, sehingga Anda harus menambahkan aturan firewall untuk mengizinkan pengecualian untuk Postfix.

      Anda dapat mengizinkan koneksi ke layanan dengan mengetik:

      Dengan itu, Postfix sudah terkonfigurasi dan siap menerima koneksi eksternal. Namun, Anda belum siap untuk mengujinya dengan klien surat. Sebelum Anda dapat menginstal klien dan menggunakannya untuk berinteraksi dengan surel yang dikirimkan ke server Anda, Anda perlu membuat beberapa perubahan pada pengaturan server Ubuntu.

      Langkah 3 — Menginstal Klien Surat dan Melakukan Inisialisasi Struktur Maildir

      Untuk berinteraksi dengan surel yang dikirimkan, langkah ini akan memandu Anda di sepanjang proses menginstal paket s-nail. Ini adalah varian kaya fitur dari klien xmail BSD yang dapat menangani format Maildir dengan benar.

      Sebelum menginstal klien, merupakan hal bijaksana untuk memastikan variabel lingkungan MAIL Anda sudah diatur dengan benar. s-nail akan mencari variabel ini untuk mencari tahu tempat menemukan surel bagi pengguna Anda.

      Untuk memastikan bahwa variabel MAIL sudah diatur, terlepas dari cara Anda mengakses akun Anda — baik melalui ssh, su, su -, atau sudo, sebagai contohnya — Anda akan perlu menetapkan variabel di dalam berkas /etc/bash.bashrc dan menambahkannya ke suatu berkas di dalam /etc/profile.d untuk memastikan variabel tersebut disiapkan untuk semua pengguna secara asali.

      Untuk menambah variabel ke berkas-berkas ini, ketik:

      • echo 'export MAIL=~/Maildir' | sudo tee -a /etc/bash.bashrc | sudo tee -a /etc/profile.d/mail.sh

      Untuk membacakan variabel ke dalam sesi Anda saat ini, dapatkan dari berkas /etc/profile.d/mail.sh:

      • source /etc/profile.d/mail.sh

      Setelah itu selesai, instal klien surel s-nail dengan APT:

      Sebelum menjalankan klien, ada beberapa pengaturan yang Anda perlu atur. Buka berkas /etc/s-nail.rc di dalam editor Anda:

      Pada bagian bawah berkas, tambahkan opsi berikut:

      /etc/s-nail.rc

      . . .
      set emptystart
      set folder=Maildir
      set record=+sent
      

      Berikut adalah yang dilakukan baris-baris ini:

      • set emptystart: mengizinkan klien untuk membuka bahkan dengan kotak masuk kosong
      • set folder=Maildir: menetapkan direktori Maildir menjadi variabel folder internal
      • set record=+sent menciptakan berkas mbox sent untuk menyimpan surel yang dikirim di dalam direktori mana pun yang ditetapkan sebagai variabel folder, dalam kasus ini Maildir

      Simpan dan tutup berkas saat Anda sudah selesai. Anda kini siap untuk melakukan inisialisasi pada struktur Maildir sistem Anda.

      Cara cepat untuk menciptakan struktur Maildir di dalam direktori rumah Anda adalah dengan mengirimkan suatu surel dengan perintah s-nail kepada Anda. Karena berkas sent hanya tersedia setelah Maildir diciptakan, Anda harus menonaktifkan penulisan padanya untuk surel awal ini. Lakukan ini dengan melewatkan opsi -Snorecord.

      Kirim surel dengan menambahkan string ke perintah s-nail. Sesuaikan perintah untuk menandai pengguna Linux Anda sebagai penerima:

      • echo 'init' | s-nail -s 'init' -Snorecord sammy

      Catatan: Anda mungkin mendapat respons berikut:

      Output

      Can't canonicalize "/home/sammy/Maildir"

      Ini adalah hal normal dan mungkin hanya muncul saat mengirim pesan pertama ini.

      Anda dapat memeriksa untuk memastikan bahwa direktori telah diciptakan dengan mencari direktori ~/Maildir:

      Anda akan melihat struktur direktori telah diciptakan dan bahwa berkas pesan baru berada di dalam direktori ~/Maildir/new:

      Output

      /home/sammy/Maildir/: cur new tmp /home/sammy/Maildir/cur: /home/sammy/Maildir/new: 1463177269.Vfd01I40e4dM691221.mail.example.com /home/sammy/Maildir/tmp:

      Kini setelah struktur direktori diciptakan, Anda siap untuk menguji klien s-nail dengan melihat pesan init yang Anda kirimkan dan mengirim pesan ke alamat surel eksternal.

      Langkah 4 — Menguji Klien

      Untuk membuka klien, jalankan perintah s-nail:

      Dalam konsol, Anda akan melihat kotak masuk rudimenter dengan pesan init yang menunggu:

      Output

      s-nail version v14.9.15. Type `?' for help "/home/sammy/Maildir": 1 message 1 new >N 1 sammy@example.com 2020-05-19 15:40 14/392 init

      Tekan ENTER untuk menampilkan pesan:

      Output

      [-- Message 1 -- 14 lines, 369 bytes --]: From sammy@example.com Tue May 19 15:40:48 2020 Date: Tue, 19 May 2020 15:40:48 +0000 To: sammy@example.com Subject: init Message-Id: <20160513220749.A278F228D9@mail.example.com> From: sammy@example.com init

      Anda dapat kembali ke daftar pesan dengan mengetik h, lalu ENTER:

      Output

      >R 1 sammy@example.com 2020-05-19 15:40 14/392 init

      Perhatikan bahwa pesan itu kini memiliki kondisi R, yang mengindikasikan bahwa pesan sudah dibaca.

      Karena pesan ini tidak begitu berguna, Anda dapat menghapusnya dengan menekan d, lalu ENTER:

      Untuk kembali ke terminal, ketik q lalu ENTER:

      Sebagai ujian terakhir, periksa apakah s-nail dapat mengirim surel dengan benar. Untuk melakukan ini, Anda dapat memasukkan konten dari berkas teks ke dalam proses s-nail, seperti yang Anda lakukan dengan pesan init yang Anda kirim pada langkah sebelumnya.

      Mulailah dengan menulis pesan percobaan di dalam editor teks:

      Di dalam editor, masukkan beberapa teks yang Anda ingin kirim:

      ~/test_message

      Hello,
      
      This is a test.  Please confirm receipt!
      

      Simpan dan tutup berkas setelah menulis pesan Anda.

      Lalu, gunakan perintah cat untuk memasukkan pesan ke proses s-nail. Anda dapat melakukannya dengan mengikuti contoh berikut, yang menggunakan opsi ini:

      • -s: Ini mendefinisikan baris subjek dari pesan surel
      • -r: Perubahan opsional terhadap bidang “From” dari surel. Secara asali, pengguna Linux yang Anda pakai untuk log masuk akan digunakan untuk mengisi bidang ini. Opsi -r memungkinkan Anda untuk menimpa ini dengan alamat yang valid, seperti salah satu dari yang Anda definisikan dalam berkas /etc/postfix/virtual. Sebagai contoh, perintah berikut menggunakan contact@example.com

      Juga, pastikan untuk mengubah user@email.com ke alamat surel valid yang Anda miliki aksesnya:

      • cat ~/test_message | s-nail -s 'Test email subject line' -r contact@example.com user@email.com

      Lalu, bernavigasilah ke kotak masuk untuk alamat surel yang menjadi tujuan Anda mengirim pesan. Anda akan segera melihat bahwa pesan Anda menunggu di sana.

      Catatan: Jika pesan tidak ada di dalam kotak masuk Anda, pesan tersebut mungkin terkirim ke folder Spam Anda.

      Anda dapat melihat pesan terkirim Anda di dalam klien s-nail Anda. Mulai klien interaktif lagi:

      Dari klien surel, lihat pesan terkirim Anda dengan mengetik:

      Anda akan melihat keluaran seperti ini:

      Output

      +[/home/sammy/Maildir/]sent: 1 message 1 new ▸N 1 contact@example.com 2020-05-19 15:47 12/297 Test email subject line

      Anda dapat mengelola surat terkirim menggunakan perintah yang sama dengan yang Anda gunakan untuk surel masuk.

      Kesimpulan

      Anda kini memiliki Postfix yang terkonfigurasi pada server Ubuntu 20.04 Anda. Mengelola server surel dapat menjadi tugas yang sulit untuk administrator sistem baru, tetapi dengan konfigurasi ini, Anda seharusnya memiliki fungsionalitas surel MTA yang cukup untuk membantu Anda memulai sendiri.



      Source link

      Installieren und Konfigurieren von Postfix als Send-Only-SMTP-Server unter Ubuntu 20.04


      Der Autor wählte den Free and Open Source Fund, um eine Spende im Rahmen des Programms Write for DOnations zu erhalten.

      Einführung

      Postfix ist ein Mail Transfer Agent (MTA), eine Anwendung zum Senden und Empfangen von E-Mail. Er kann so konfiguriert werden, dass er sich nur zum Senden von E-Mails durch lokale Anwendungen verwenden lässt. Das ist in Fällen nützlich, in denen Sie regelmäßig E-Mail-Benachrichtigungen von Ihren Anwendungen senden oder über viel ausgehenden Datenverkehr verfügen, den E-Mail-Drittanbieter nicht zulassen. Außerdem handelt es sich dabei um eine schlankere Alternative zur Ausführung eines kompletten SMTP-Servers, die dennoch die erforderliche Funktionalität bietet.

      In diesem Tutorial installieren und konfigurieren Sie Postfix als Send-Only-SMTP-Server. Außerdem werden Sie für Ihre Domäne kostenlose TLS-Zertifikate von Let’s Encrypt anfordern und ausgehende E-Mails damit verschlüsseln.

      Voraussetzungen

      • Ein Ubuntu 20.04-Server, der gemäß Ersteinrichtung eines Servers unter Ubuntu 20.04 eingerichtet wurde, einschließlich eines non-root user mit sudo-Berechtigungen.
      • Einen vollständig registrierten Domänennamen. Dieses Tutorial verwendet in allen Bereichen your_domain. Sie können einen Domänennamen unter Namecheap günstig erwerben oder einen kostenlosen von Freenom herunterladen,. oder einfach die Domänenregistrierngsstelle Ihrer Wahl verwenden.
      • Ein A-DNS-Eintrag mit your-domain, der auf die öffentliche IP-Adresse Ihres Servers verweist. Sie finden in dieser Einführung in DigitalOcean DNS Details dazu, wie Sie sie hinzufügen können.

      Anmerkung: Der Hostname Ihres Servers und der Name Ihres Droplets müssen your_domain entsprechen, da DigitalOcean anhand des Namens automatisch PTR-Einträge für die IP-Adresse des Droplets festlegt.

      Sie können den Hostnamen des Servers überprüfen, indem Sie hostname in der Eingabeaufforderung eingeben. Die Ausgabe sollte mit dem Namen übereinstimmen, den Sie dem Droplet bei der Erstellung gegeben haben.

      Schritt 1 — Installieren von Postfix

      In diesem Schritt installieren Sie Postfix. Die schnellste Methode besteht aus der Installation des Pakets mailutils, in dem Postfix mit einigen zusätzlichen Programmen gebündelt ist, die Sie zum Testversand von E-Mails verwenden werden.

      Aktualisieren Sie zuerst die Paketdatenbank:

      Installieren Sie dann Postfix, indem Sie den folgenden Befehl ausführen:

      • sudo apt install mailutils

      Kurz vor Ende der Installation wird Ihnen das Postfix-Konfigurationsfenster angezeigt:

      Wählen Sie „Internet Site“ (Internetsite) aus dem Menü; drücken Sie zum Auswählen TAB<Ok>und dann ENTER.

      Die Standardoption lautet Internet Site (Internetseite). Das ist die empfohlene Option für Ihren Anwendungsfall. Drücken Sie also TAB und dann ENTER. Wenn Sie nur den Beschreibungstext sehen, drücken Sie TAB, um OK zu wählen, und dann ENTER.

      Wenn die Anzeige nicht automatisch erfolgt, führen Sie zum Starten den folgenden Befehl aus:

      • sudo dpkg-reconfigure postfix

      Danach erhalten Sie eine weitere Konfigurationsaufforderung in Bezug auf den System-E-Mail-Namen:

      Geben Sie Ihren Domänenamen ein und drücken Sie zum Auswählen TAB sowie<Ok>ENTER.

      Der System-E-Mail-Name muss gleich sein wie der Name, den Sie bei der Erstellung Ihres Servers zugewiesen haben. Wenn Sie damit fertig sind, drücken Sie TAB, gefolgt von ENTER.

      Sie haben Postfix jetzt installiert und können mit der Konfiguration beginnen.

      Schritt 2 — Konfigurieren von Postfix

      In diesem Schritt konfigurieren Sie Postfix so, dass E-Mails nur von dem Server gesendet und empfangen werden, auf dem Postfix ausgeführt wird – d. h. von localhost.

      Dazu muss Postfix so konfiguriert werden, dass nur an der Loopback-Schnittstelle gelauscht wird; das ist die virtuelle Netzwerkschnittstelle, die der Server zur internen Kommunikation verwendet. Um die Änderungen vorzunehmen, müssen Sie die Hauptkonfigurationsdatei von Postfix namens main.cf bearbeiten, die unter etc/postfix gespeichert ist.

      Öffnen Sie sie zum Bearbeiten in Ihrem bevorzugten Texteditor:

      • sudo nano /etc/postfix/main.cf

      Suchen Sie nach den folgenden Zeilen:

      /etc/postfix/main.cf

      . . .
      mailbox_size_limit = 0
      recipient_delimiter = +
      inet_interfaces = all
      . . .
      

      Setzen Sie den Wert von inet_interfaces auf loopback-only:

      /etc/postfix/main.cf

      . . .
      mailbox_size_limit = 0
      recipient_delimiter = +
      inet_interfaces = loopback-only
      . . .
      

      Eine weitere Anweisung, die Sie ändern müssen, ist mydestination; sie gibt die Liste der Domänen an, die über den Mail Delivery Transport local_transport bereitgestellt werden. Standardmäßig sehen die Werte etwa wie folgt aus:

      /etc/postfix/main.cf

      . . .
      mydestination = $myhostname, your_domain, localhost.com, , localhost
      . . .
      

      Ändern Sie die Zeile, damit sie wie folgt aussieht:

      /etc/postfix/main.cf

      . . .
      mydestination = localhost.$mydomain, localhost, $myhostname
      . . .
      

      Wenn Ihre Domäne in Wahrheit eine Subdomäne ist und Sie möchten, dass E-Mail-Nachrichten aussehen, als wären sie von der Hauptdomäne gesendet worden, können Sie am Ende von main.cf die folgende Zeile hinzufügen:

      /etc/postfix/main.cf

      ...
      masquerade_domains = your_main_domain
      

      Die optionale Einstellung masquerade_domains gibt an, bei welchen Domänen der Subdomänenteil in der E-Mail-Adresse entfernt wird.

      Wenn Sie fertig sind, speichern und schließen Sie die Datei.

      Anmerkung: Wenn Sie mehrere Domänen auf einem Server hosten, können die anderen Domänen mit der Anweisung mydestination ebenfalls an Postfix übergeben werden.

      Starten Sie dann Postfix neu, indem Sie den folgenden Befehl ausführen:

      • sudo systemctl restart postfix

      Sie haben Postfix so konfiguriert, dass von Ihrem Server nur E-Mails gesendet werden. Sie werden dies nun testen, indem Sie eine Beispielnachricht an eine E-Mail-Adresse senden.

      Schritt 3 — Testen des SMTP-Servers

      Im diesem Schritt testen Sie, ob Postfix E-Mails mit dem Befehl mail an ein externes E-Mail-Konto senden kann. Dieser Befehl ist Teil des Pakets mailutils, das Sie im ersten Schritt installiert haben.

      Um eine Test-E-Mail zu senden, führen Sie den folgenden Befehl aus:

      • echo "This is the body of the email" | mail -s "This is the subject line" your_email_address

      Sie können den Text und den Betreff der E-Mail nach Ihren Wünschen ändern. Denken Sie daran, your_email_address durch eine gültige E-Mail-Adresse zu ersetzen, auf die Sie zugreifen können.

      Überprüfen Sie nun die E-Mail-Adresse, an die Sie diese Nachricht gesendet haben. Sie sollten die Nachricht in Ihrem Posteingang sehen. Wenn Sie sie dort nicht finden können, sehen Sie in Ihrem Spam-Ordner nach. Bislang sind alle von Ihnen gesendeten E-Mails unverschlüsselt, weswegen Dienstanbieter denken, dass es wahrscheinlich Spam-Nachrichten sind. Im Schritt 5 richten Sie die Verschlüsselung ein.

      Wenn Sie einen Fehler vom Befehl mail erhalten oder auch nach längerer Zeit keine Nachricht empfangen haben, dann vergewissern Sie sich, dass die von Ihnen bearbeitete Postfix-Konfiguration gültig ist und der Name sowie Hostname Ihres Servers auf Ihre Domäne festgelegt sind.

      Achten Sie darauf, dass bei dieser Konfiguration die Adresse im Feld From für die von Ihnen gesendeten Test-E-Mails in Format your_user_name@your_domain vorliegt, wobei your_user_name der Benutzername des Serverbenutzers ist, als der Sie den Befehl ausgeführt haben.

      Sie haben nun eine E-Mail von Ihrem Server gesendet und überprüft, ob sie erfolgreich empfangen wurde. Im nächsten Schritt richten Sie die E-Mail-Weiterleitung für root ein.

      Schritt 4 — Weiterleitung von System-E-Mail

      Im diesem Schritt richten Sie eine E-Mail-Weiterleitung für den Benutzer root ein, damit systemgenerierte Nachrichten, die auf Ihrem Server an ihn gesendet werden, an eine externe E-Mail-Adresse weitergeleitet werden.

      Die Datei /etc/aliases enthält eine Liste von alternativen Namen für E-Mail-Empfänger. Öffnen Sie sie zum Bearbeiten:

      Im Standardzustand sieht sie wie folgt aus:

      /etc/aliases

      # See man 5 aliases for format
      postmaster:    root
      

      Die einzige vorhandene Anweisung gibt an, dass systemgenerierte E-Mails an root gesendet werden.

      Fügen Sie am Ende der Datei die folgende Zeile hinzu:

      /etc/aliases

      ...
      root:          your_email_address
      

      Mit dieser Zeile geben Sie an, dass an root gesendete E-Mails an eine E-Mail-Adresse weitergeleitet werden. Denken Sie daran, your_email_address durch Ihre persönliche E-Mail-Adresse zu ersetzen. Wenn Sie fertig sind, speichern und schließen Sie die Datei.

      Um die Änderung anzuwenden, führen Sie den folgenden Befehl aus:

      Durch Ausführung von newaliases wird eine Datenbank mit Aliassen erstellt, die der Befehl mail verwendet. Die Aliasse werden aus der Konfigurationsdatei übernommen, die Sie gerade bearbeitet haben.

      Testen Sie, ob E-Mails an root gesendet werden, indem Sie Folgendes ausführen:

      • echo "This is the body of the email" | mail -s "This is the subject line" root

      Sie sollten die E-Mail unter Ihrer E-Mail-Adresse erhalten. Wenn Sie sie dort nicht finden können, sehen Sie in Ihrem Spam-Ordner nach.

      In diesem Schritt haben Sie eine Weiterleitung systemgenerierter Nachrichten an Ihre E-Mail-Adresse eingerichtet. Sie aktivieren jetzt die Nachrichtenverschlüsselung, damit alle E-Mails, die Ihr Server versendet, sicher vor Manipulation bei der Übertragung sind und als legitimer betrachtet werden.

      Schritt 5 — Aktivieren von SMTP-Verschlüsselung

      Sie aktivieren jetzt SMTP-Verschlüsselung, indem Sie für Ihre Domäne ein kostenloses TLS-Zertifikat von Let’s Encrypt anfordern (mit Certbot) und Postfix so konfigurieren, dass das Zertifikat zum Senden von Nachrichten verwendet wird.

      Ubuntu enthält Certbot in seinen standardmäßigen Paket-Repositorys, sodass Sie für dessen Installation den folgenden Befehl ausführen können:

      Wenn Sie zur Bestätigung aufgefordert werden, geben Sie J ein und drücken Sie die Eingabetaste.

      Im Rahmen der Ersteinrichtung des Servers in den Voraussetzungen haben Sie ufw, die unkomplizierte Firewall, installiert. Sie müssen sie so konfigurieren, dass der HTTP-Port 80 zugelassen wird, damit die Verifizierung der Domäne abgeschlossen werden kann. Führen Sie den folgenden Befehl aus, um ihn zu aktivieren:

      Die Ausgabe sieht in etwa folgendermaßen aus:

      Output

      Rule added Rule added (v6)

      Nachdem der Port nun geöffnet ist, führen Sie Certbot aus, um ein Zertifikat zu erhalten:

      • sudo certbot certonly --standalone --rsa-key-size 4096 --agree-tos --preferred-challenges http -d your_domain

      Dieser Befehl weist Certbot dazu an, Zertifikate mit einer RSA-Schlüsselgröße von 4096 Bits auszugeben, einen temporären Standalone-Webserver (--standalone) zur Verifizierung auszuführen und die Prüfung über Port 80 (--preferred-challenges http) vorzunehmen. Denken Sie daran, your_domain durch Ihre Domäne zu ersetzen, bevor Sie den Befehl ausführen, und geben Sie bei Aufforderung Ihre E-Mail-Adresse ein.

      Die Ausgabe sieht ungefähr wie folgt aus:

      Output

      Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator standalone, Installer None Obtaining a new certificate Performing the following challenges: http-01 challenge for `your_domain` Waiting for verification... Cleaning up challenges IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/your_domain/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/your_domain/privkey.pem Your cert will expire on 2020-07-11. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le

      Wie in den Anmerkungen erwähnt, wurden Ihr Zertifikat und Ihre private Schlüsseldatei unter /etc/letsencrypt/live/your_domain gespeichert.

      Nachdem Sie über das Zertifikat verfügen, öffnen Sie nun main.cf zum Bearbeiten:

      • sudo nano /etc/postfix/main.cf

      Suchen Sie nach dem folgenden Abschnitt:

      /etc/postfix/main.cf

      # TLS parameters
      smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
      smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
      smtpd_tls_security_level=may
      
      smtp_tls_CApath=/etc/ssl/certs
      smtp_tls_security_level=may
      smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
      

      Ändern Sie ihn, damit er wie folgt aussieht, wobei Sie your_domain ggf. durch Ihre Domäne ersetzen. Dadurch werden Ihre TLS-Einstellungen für Postfix aktualisiert:

      /etc/postfix/main.cf

      # TLS parameters
      smtpd_tls_cert_file=/etc/letsencrypt/live/your_domain/fullchain.pem
      smtpd_tls_key_file=/etc/letsencrypt/live/your_domain/privkey.pem
      smtpd_tls_security_level=may
      
      smtp_tls_CApath=/etc/ssl/certs
      smtp_tls_security_level=may
      smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
      

      Wenn Sie damit fertig sind, speichern und schließen Sie die Datei.

      Wenden Sie die Änderungen durch Neustart von Postfix an:

      • sudo systemctl restart postfix

      Versuchen Sie nun, erneut eine E-Mail zu senden:

      • echo "This is the body of an encrypted email" | mail -s "This is the subject line" your_email_address

      Überprüfen Sie dann die von Ihnen angegebene E-Mail-Adresse. Es ist möglich, dass Sie die Nachricht sofort in Ihrem Posteingang sehen, da E-Mail-Anbieter verschlüsselte Nachrichten deutlich seltener als Spam markieren.

      Sie können die technischen Informationen über die E-Mail-Nachricht in Ihrem Client prüfen, um zu sehen, ob die Nachricht tatsächlich verschlüsselt wurde.

      Zusammenfassung

      Sie verfügen nun über einen Send-Only-E-Mail-Server, der von Postfix bereitgestellt wird. Das Verschlüsseln aller ausgehenden Nachrichten ist ein guter erster Schritt, damit E-Mail-Anbieter Ihre Nachrichten nicht von vornherein als Spam markieren. Wenn Sie das in einem Entwicklungsszenario tun, sollte diese Maßnahme ausreichen.

      Wenn Ihr Anwendungsfall jedoch darin besteht, E-Mails an potenzielle Websitebenutzer zu senden (wie Bestätigungs-E-Mails für die Anmeldung bei einem Nachrichtenforum), sollten Sie sich mit der Einrichtung von SPF-Einträgen befassen, damit E-Mails Ihres Servers mit noch höherer Wahrscheinlichkeit als legitim gelten.



      Source link

      Cómo instalar y configurar Postfix como servidor SMTP solo de envío en Ubuntu 20.04


      El autor seleccionó Free and Open Source Fund para recibir una donación como parte del programa Write for DOnations.

      Introducción

      Postfix es un agente de transferencia de correo (MTA), una aplicación que se utiliza para enviar y recibir correos electrónicos. Se puede configurar para que solo se pueda utilizar para enviar correos electrónicos mediante una aplicación local.  Esto es útil en situaciones en las que necesita enviar notificaciones por correo electrónico de sus aplicaciones de forma regular o, simplemente, si tiene mucho tráfico saliente que un proveedor de servicios de correo electrónico externo no permite. También es una alternativa más ligera a la ejecución de un servidor SMTP completo que mantiene la funcionalidad necesaria.

      En este tutorial, instalará y configurará Postfix como servidor SMTP de solo envío. También solicitará certificados TLS gratuitos de Let´s Encrypt para su dominio y cifrará los correos electrónicos salientes con ellos.

      Requisitos previos

      • Un servidor de Ubuntu 20.04 configurado conforme a la Configuración inicial de servidores para Ubuntu 20.04, con un usuario no root.
      • Un nombre de dominio registrado por completo. Para este tutorial, se utilizará your_domain en todo momento. Puede adquirir un nombre de dominio en Namecheap, obtener uno gratuito en Freenom o utilizar un registrador de dominios que elija.
      • Un registro DNS A con your_domain orientado a la dirección IP pública de su servidor. Puede utilizar esta introducción al DNS de DigitalOcean para obtener más información sobre cómo agregarlos.

      Nota: El nombre de host de su servidor y el nombre de su Droplet deben coincidir con your_domain, dado que DigitalOcean establece registros de PTR automáticamente para la dirección IP del Droplet de acuerdo con su nombre.

      Puede verificar el nombre de host del servidor al escribir hostname en el símbolo del sistema. El resultado debe coincidir con el nombre que le dio al Droplet al crearlo.

      Paso 1: Instalar Postfix

      En este paso, instalará Postfix. Lo más rápido es instalar el paquete mailutils, que agrupa Postfix con algunos programas complementarios que usará para probar el envío de correos electrónicos.

      Primero, actualice la base de datos del paquete:

      A continuación, instale Postfix al ejecutar el siguiente comando:

      • sudo apt install mailutils

      Cerca del final del proceso de instalación, se le presentará la ventana de configuración de Postfix:

      Seleccione Internet Site en el menú y, luego, presione TAB para seleccionar<Ok>y, luego, presione ENTER.

      La opción predeterminada es Internet Site. Es la opción recomendada para su caso de uso, por lo tanto, presione TAB y, luego, ENTER. Si solo ve el texto de la descripción, presione TAB para seleccionar OK y, luego, ENTER.

      Si no se muestra automáticamente, ejecute el siguiente comando para iniciarlo:

      • sudo dpkg-reconfigure postfix

      Luego, recibirá otro mensaje de configuración con respecto a System mail name (el nombre de correo del sistema):

      Ingrese su nombre de dominio y, luego, presione TAB para seleccionar<Ok>y, luego, ENTER.

      El nombre de correo del sistema debe ser el mismo que el que asignó a su servidor al crearlo. Cuando termine, presione TAB y, luego, ENTER.

      Ahora, tiene Postfix instalado y está listo para comenzar a configurarlo.

      Paso 2: Configurar Postfix

      En este paso, configurará Postfix para enviar y recibir correos electrónicos únicamente del servidor en el que se está ejecutando; es decir, desde localhost.

      Para que eso suceda, debe configurar Postfix para que escuche únicamente en la interfaz de loopback, que es la interfaz de red virtual que utiliza el servidor para comunicarse internamente. Para realizar los cambios necesarios, deberá editar el archivo de configuración principal de Postfix, denominado main.cf, que se encuentra en etc/postfix.

      Ábralo para modificarlo con su editor de texto favorito:

      • sudo nano /etc/postfix/main.cf

      Busque las siguientes líneas:

      /etc/postfix/main.cf

      . . .
      mailbox_size_limit = 0
      recipient_delimiter = +
      inet_interfaces = all
      . . .
      

      Establezca el valor de inet_interfaces en loopback-only:

      /etc/postfix/main.cf

      . . .
      mailbox_size_limit = 0
      recipient_delimiter = +
      inet_interfaces = loopback-only
      . . .
      

      Otra directiva que deberá modificar es mydestination, que especifica la lista de dominios que se entregan a través del transporte de entrega de correo local_transport. Por defecto, los valores son similares a los siguientes:

      /etc/postfix/main.cf

      . . .
      mydestination = $myhostname, your_domain, localhost.com, , localhost
      . . .
      

      Cambie la línea para que tenga el siguiente aspecto:

      /etc/postfix/main.cf

      . . .
      mydestination = localhost.$mydomain, localhost, $myhostname
      . . .
      

      Si su dominio, en realidad, es un subdominio y desea que los mensajes de correo electrónico se vean como si se enviaran del dominio principal, puede añadir la siguiente línea al final de main.cf:

      /etc/postfix/main.cf

      ...
      masquerade_domains = your_main_domain
      

      La configuración opcional de masquerade_domains especifica para qué dominios se eliminará la parte de subdominio en la dirección de correo electrónico.

      Cuando termine, guarde y cierre el archivo.

      Nota: Si aloja varios dominios en un único servidor, los demás también se pueden pasar a Postfix al utilizar la directiva mydestination.

      A continuación, reinicie Postfix al ejecutar el siguiente comando:

      • sudo systemctl restart postfix

      Configuró Postfix para que solo envíe correos electrónicos desde su servidor. Ahora, lo probará al enviar un mensaje de ejemplo a una dirección de correo electrónico.

      Paso 3: Probar el servidor SMTP

      En este paso, probará si Postfix puede enviar correos electrónicos a una cuenta de correo electrónico externa usando el comando mail, que es parte del paquete mailutils que instaló en el primer paso.

      Para enviar un correo electrónico de prueba, ejecute el siguiente comando:

      • echo "This is the body of the email" | mail -s "This is the subject line" your_email_address

      Puede cambiar el cuerpo y el asunto del correo electrónico a su gusto. Recuerde sustituir your_email_address por una dirección de correo electrónico válida a la que pueda acceder.

      Ahora, revise el correo en la dirección de correo electrónico a la que envió este mensaje. Debería ver el mensaje en su bandeja de entrada. Si no lo ve, revise su carpeta de correo no deseado. En este punto, los correos electrónicos que envía no están cifrados, lo que hace que los proveedores de servicios piensen que es probable que sean correos no deseados.  Configurará el cifrado más adelante, en el paso 5.

      Si recibe un error del comando mail, o si no recibió un mensaje después de un período prolongado, compruebe que la configuración de Postfix que modificó sea válida y que el nombre de su servidor y el nombre de host estén establecidos con el nombre de su dominio.

      Observe que, con esta configuración, la dirección del campo From de los correos electrónicos de prueba que envíe tendrá el formato your_user_name@your_domain​​, en el que your_user_name es el nombre del usuario del servidor con el que ejecutó el comando.

      En este punto, envió un correo electrónico desde su servidor y verificó que se haya recibido correctamente. En el siguiente paso, configurará el reenvío de correos electrónicos para root.

      Paso 4: Reenviar correos del sistema

      En este paso, configurará el reenvío de correos electrónicos para el usuario root, a fin de que los mensajes generados por el sistema que se le envíen en su servidor se reenvíen a una dirección de correo electrónico externa.

      El archivo /etc/aliases contiene una lista de nombres alternativos de destinatarios de correo electrónico. Ábralo​​​ para editarlo:

      En su estado predeterminado, tiene el siguiente aspecto:

      /etc/aliases

      # See man 5 aliases for format
      postmaster:    root
      

      La única directiva presente especifica que los correos electrónicos generados por el sistema se envíen a root.

      Añada la siguiente línea al final del archivo:

      /etc/aliases

      ...
      root:          your_email_address
      

      Con esta línea, especifica que los correos electrónicos enviados al usuario root se reenvíen a una dirección de correo electrónico específica. Recuerde sustituir your_email_address por su dirección de correo electrónico personal. Cuando termine, guarde y cierre el archivo.

      Para que el cambio surta efecto, ejecute el siguiente comando:

      Al ejecutar newaliases, se creará una base de datos de alias que utiliza el comando mail, que se toman del archivo de configuración que acaba de editar.

      Compruebe que se envíen correos electrónicos al usuario root al ejecutar lo siguiente:

      • echo "This is the body of the email" | mail -s "This is the subject line" root

      Debería recibir el correo en su dirección de correo electrónico. Si no lo ve, revise su carpeta de correo no deseado.

      En este paso, configuró el reenvío de mensajes generados por el sistema a su dirección de correo electrónico. Ahora, habilitará el cifrado de mensajes para que todos los correos electrónicos que envíe su servidor estén protegidos contra alteraciones en tránsito y se consideren más legítimos.

      Paso 5: Habilitar el cifrado SMTP

      Ahora, habilitará el cifrado SMTP al solicitar un certificado TLS gratuito de Let´s Encrypt para su dominio (con Certbot) y configurará Postfix para que lo utilice al enviar mensajes.

      Ubuntu incluye Certbot en sus repositorios de paquetes predeterminados, para que pueda instalarlo ejecutando el siguiente comando:

      Cuando se le pida confirmación, escriba Y y presione ENTER.

      En los requisitos previos, instaló el firewall sencillo ufw como parte de la configuración inicial del servidor. Deberá configurarlo para que habilite el puerto HTTP 80 para que se pueda completar la verificación de dominios. Ejecute el siguiente comando para habilitarlo:

      El resultado tendrá el siguiente aspecto:

      Output

      Rule added Rule added (v6)

      Ahora que el puerto está abierto, ejecute Certbot para obtener un certificado:

      • sudo certbot certonly --standalone --rsa-key-size 4096 --agree-tos --preferred-challenges http -d your_domain

      Este comando le ordena a Certbot que emita certificados con un tamaño de clave RSA de 4096 bits, que ejecute un servidor web autónomo temporal (--standalone) para la verificación y que revise a través del puerto 80 (--preferred-challenges http). Recuerde sustituir your_domain por su dominio antes de ejecutar el comando e ingrese su dirección de correo electrónico cuando se le solicite hacerlo.

      El resultado tendrá un aspecto similar a este:

      Output

      Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator standalone, Installer None Obtaining a new certificate Performing the following challenges: http-01 challenge for `your_domain` Waiting for verification... Cleaning up challenges IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/your_domain/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/your_domain/privkey.pem Your cert will expire on 2020-07-11. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le

      Como se indica en las notas, su certificado y su archivo de clave privada se guardaron en /etc/letsencrypt/live/your_domain.

      Ahora que tiene su certificado, abra main.cf para editarlo:

      • sudo nano /etc/postfix/main.cf

      Busque la siguiente sección:

      /etc/postfix/main.cf

      # TLS parameters
      smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
      smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
      smtpd_tls_security_level=may
      
      smtp_tls_CApath=/etc/ssl/certs
      smtp_tls_security_level=may
      smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
      

      Modifíquela para que tenga este aspecto, sustituyendo your_domain por su dominio cuando sea necesario. Esto actualizará sus ajustes TLS para Postfix:

      /etc/postfix/main.cf

      # TLS parameters
      smtpd_tls_cert_file=/etc/letsencrypt/live/your_domain/fullchain.pem
      smtpd_tls_key_file=/etc/letsencrypt/live/your_domain/privkey.pem
      smtpd_tls_security_level=may
      
      smtp_tls_CApath=/etc/ssl/certs
      smtp_tls_security_level=may
      smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
      

      Cuando termine, guarde y cierre el archivo.

      Aplique los cambios al reiniciar Postfix:

      • sudo systemctl restart postfix

      Ahora, vuelva a probar enviar un correo electrónico:

      • echo "This is the body of an encrypted email" | mail -s "This is the subject line" your_email_address

      A continuación, revise el correo de la dirección de correo electrónico que proporcionó. Es posible que vea el mensaje en su bandeja de entrada de inmediato, porque es mucho más probable que los proveedores de correo electrónico clasifiquen los mensajes no cifrados como correo no deseado.

      Puede consultar la información técnica sobre el mensaje de correo electrónico en su cliente para ver que el mensaje, efectivamente, está cifrado.

      Conclusión

      Ahora, tiene un servidor de correo electrónico de solo envío de Postfix. Cifrar todos los mensajes salientes es un buen primer paso para que los proveedores de correo electrónico no clasifiquen sus mensajes directamente como correo no deseado. Si está haciendo esto en un escenario de desarrollo, esta medida debería ser suficiente.

      Sin embargo, si desea enviar correos electrónicos a posibles usuarios del sitio (por ejemplo, correos de confirmación para la inscripción a un tablero de mensajes), considere establecer registros SPF para que los correos electrónicos de su servidor tengan más probabilidades de considerarse legítimos.



      Source link