GNU/Linux >> Belajar Linux >  >> Ubuntu

Siapkan server email dengan PostfixAdmin

Postfix Admin adalah antarmuka berbasis web yang memungkinkan pengguna untuk mengkonfigurasi dan mengelola server email berbasis Postfix. Dengan Admin Postfix, Anda dapat membuat dan mengelola beberapa domain virtual, pengguna, dan alias.

Ini adalah posting pertama dalam seri untuk Menyiapkan dan mengkonfigurasi server email yang mencakup pembuatan catatan DNS yang diperlukan dan menjelaskan cara menginstal dan mengkonfigurasi Admin Postfix, Nginx dengan sertifikat Let's Encrypt gratis, PHP dan MySQL.

Tutorial ini ditulis untuk Ubuntu 16.04, namun langkah yang sama dengan sedikit modifikasi akan bekerja pada versi Ubuntu yang lebih baru.

Prasyarat #

Sebagai prasyarat untuk mengikuti seri ini, Anda memerlukan:

  • Server Ubuntu 16.04. Nama host server harus berupa FQDN. Dalam seri ini kita akan menggunakan mail.linuxize.com .
  • Pengguna dengan hak istimewa sudo.

Pengaturan DNS #

Anda perlu menyiapkan data DNS berikut agar sistem email Anda berfungsi:

  • Catatan, untuk mengarahkan FQDN (nama host) sistem Anda ke alamat IPv4 server email Anda.
mail.linuxize.com. 3600 IN A   23.45.67.89
FQDN terdiri dari dua bagian, nama host dan nama domain.
  • Data MX, untuk menentukan server email mana yang bertanggung jawab menerima pesan email atas nama domain penerima. Dalam kasus kami, kami ingin semua email dikirim ke @linuxize.com alamat email yang akan diterima oleh mail.linuxize.com server surat.
linuxize.com.      3600 IN MX  0 mail.linuxize.com.
  • Data SPF, yang digunakan untuk memverifikasi server email mana yang disetujui untuk mengirim email atas nama domain tertentu. Pada contoh di bawah ini kami menyetujui server email domain (mx) dan jika pemeriksaan SPF gagal, hasilnya akan menjadi kegagalan lunak (~semua):
linuxize.com.      3600 IN TXT "v=spf1 mx ~all"
Tentu saja, Anda perlu mengganti nama domain dan alamat IP dengan nama domain asli dan alamat IP server email Anda.

DNS Terbalik (PTR) #

Reverse DNS (PTR) adalah pemetaan alamat IP ke nama domain, kebalikan dari DNS yang memetakan nama domain ke alamat IP.

Sebagian besar server email akan melakukan pencarian DNS terbalik pada alamat IP yang mencoba menyambung ke server tersebut dan mungkin tidak menerima email dari server jika data PTR tidak disetel.

Dalam kebanyakan kasus, entri PTR dapat disetel melalui antarmuka web penyedia hosting Anda atau dengan menghubungi tim dukungan dan meminta mereka untuk menyiapkan data PTR yang benar untuk Anda.

Anda dapat menggunakan perintah dig untuk mengetahui DNS balik dari alamat IP yang diberikan.

dig -x 23.45.67.89
23.45.67.89.in-addr.arpa domain name pointer mail.linuxize.com.

Buat pengguna sistem #

Karena kita mengonfigurasi server email dengan pengguna virtual, kita memerlukan satu pengguna sistem yang akan menjadi pemilik semua kotak surat dan akan digunakan oleh pengguna virtual untuk mengakses pesan email mereka di server.

Perintah berikut akan membuat grup dan pengguna baru bernama vmail dan atur direktori home pengguna ke /var/mail/vmail :

sudo groupadd -g 5000 vmailsudo useradd -u 5000 -g vmail -s /usr/sbin/nologin -d /var/mail/vmail -m vmail

Semua kotak surat virtual akan disimpan di /var/mail/vmail direktori.

Instal Nginx PHP dan MySQL #

Postfix Adminadalah aplikasi berbasis PHP. Untuk dapat mengakses antarmuka web PostfixAdmin kita perlu menginstal server Web dan PHP.

Jalankan perintah berikut untuk menginstal Nginx, PHP dan semua modul PHP yang diperlukan:

sudo apt install nginx mysql-server php7.0-fpm php7.0-cli php7.0-imap php7.0-json php7.0-mysql php7.0-opcache php7.0-mbstring php7.0-readline

Anda akan diminta untuk membuat kata sandi root MySQL selama instalasi.

Unduh dan Konfigurasikan Admin Postfix #

Pada saat penulisan, 3.1 adalah versi stabil terbaru dari Postfix Admin.

Unduh arsip Admin Postfix menggunakan perintah wget berikut:

VERSION=3.1wget -q https://downloads.sourceforge.net/project/postfixadmin/postfixadmin/postfixadmin-${VERSION}/postfixadmin-${VERSION}.tar.gz

Setelah unduhan selesai, ekstrak arsip:

tar xzf postfixadmin-${VERSION}.tar.gz

Pindahkan file sumber Admin Postfix ke /var/www direktori dan buat templates_c direktori (cache pintar):

sudo mv postfixadmin-${VERSION}/ /var/www/postfixadminrm -f postfixadmin-${VERSION}.tar.gzmkdir /var/www/postfixadmin/templates_c

Baik Nginx dan PHP-FPM berjalan di bawah pengguna www-data jadi kita perlu mengubah kepemilikan /var/www/postfixadmin untuk pengguna itu:

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

Admin Postfix akan menggunakan database MySQL untuk menyimpan informasi tentang pengguna, domain, dan konfigurasi aplikasi.

Masuk ke shell MySQL:

mysql -u root -p

Buat pengguna dan database MySQL baru menggunakan perintah berikut:

CREATE DATABASE postfixadmin;GRANT ALL ON postfixadmin.* TO 'postfixadmin'@'localhost' IDENTIFIED BY 'P4ssvv0rD';FLUSH PRIVILEGES;
Jangan lupa ganti passwordnya (P4ssvv0rD ) untuk sesuatu yang lebih aman.

Alih-alih mengedit konfigurasi Admin Postfix default, kami akan membuat file baru bernama config.local.php yang akan menimpa pengaturan aplikasi default:

Buka file dengan file teks Anda:

sudo nano /var/www/postfixadmin/config.local.php

Paste kode php berikut:

/var/www/postfixadmin/config.local.php
<?php
$CONF['configured'] = true;

$CONF['database_type'] = 'mysqli';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfixadmin';
$CONF['database_password'] = 'P4ssvv0rD';
$CONF['database_name'] = 'postfixadmin';

$CONF['default_aliases'] = array (
  'abuse'      => '[email protected]',
  'hostmaster' => '[email protected]',
  'postmaster' => '[email protected]',
  'webmaster'  => '[email protected]'
);

$CONF['fetchmail'] = 'NO';
$CONF['show_footer_text'] = 'NO';

$CONF['quota'] = 'YES';
$CONF['domain_quota'] = 'YES';
$CONF['quota_multiplier'] = '1024000';
$CONF['used_quotas'] = 'YES';
$CONF['new_quota_table'] = 'YES';

$CONF['aliases'] = '0';
$CONF['mailboxes'] = '0';
$CONF['maxquota'] = '0';
$CONF['domain_quota_default'] = '0';
?>

Simpan dan tutup file.

Dengan konfigurasi di atas, kita mendefinisikan tipe database dan kredensial login. Juga, kami menentukan alias default, menonaktifkan fetchmail dan mengaktifkan kuota.

Selanjutnya, jalankan perintah berikut untuk membuat skema database Admin Postfix:

sudo -u www-data php /var/www/postfixadmin/upgrade.php

Setelah database terisi, kita dapat melanjutkan dan membuat pengguna superadmin PostfixAdmin pertama kita menggunakan postfixadmin-cli alat.

Pengguna ini akan memiliki hak istimewa administrasi untuk mengubah setelan domain atau aplikasi apa pun.

sudo bash /var/www/postfixadmin/scripts/postfixadmin-cli admin add [email protected] --superadmin 1 --active 1 --password P4ssvv0rD --password2 P4ssvv0rD

Outputnya akan terlihat seperti ini:

Welcome to Postfixadmin-CLI v0.2
---------------------------------------------------------------

The admin [email protected] has been added!

---------------------------------------------------------------
Jangan lupa ganti passwordnya (P4ssvv0rD ) untuk akun superadmin ke sesuatu yang lebih aman.

Instal gratis Let's Encrypt SSL Certificate #

Kami akan menggunakan sertifikat SSL untuk mengakses instalasi Admin Postfix dan mengaktifkan enkripsi SSL/TLS Dovecot dan Postfix.

Kami memiliki tutorial tentang cara menginstal Let's Encrypt SSL Certificate. Poin terpenting di sini adalah membuat Sertifikat SSL untuk nama host server Anda (FQDN) dalam kasus kami mail.linuxize.com .

Setelah Anda membuat sertifikat SSL dengan mengikuti tutorial yang ditautkan di atas, edit blok server Nginx Anda sebagai berikut:

/etc/nginx/sites-enabled/mail.linuxize.com.conf
server {
    listen 80;
    server_name mail.linuxize.com;

    include snippets/letsencrypt.conf;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    server_name mail.linuxize.com;
    root /var/www;

    ssl_certificate /etc/letsencrypt/live/mail.linuxize.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/mail.linuxize.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/mail.linuxize.com/chain.pem;
    include snippets/ssl.conf;
    include snippets/letsencrypt.conf;

    location / {
       try_files $uri $uri/ /index.php;
    }

    location /postfixadmin {
       index index.php;
       try_files $uri $uri/ /postfixadmin/index.php;
    }

    location ~* \.php$ {
         fastcgi_split_path_info ^(.+?\.php)(/.*)$;
         if (!-f $document_root$fastcgi_script_name) {return 404;}
         fastcgi_pass  unix:/run/php/php7.0-fpm.sock;
         fastcgi_index index.php;
         include fastcgi_params;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

Muat ulang layanan Nginx agar perubahan diterapkan:

sudo systemctl reload nginx

Pada titik ini Anda seharusnya dapat login ke instalasi Admin Postfix Anda di https://mail.linuxize.com/postfixadmin , menggunakan pengguna superadmin yang dibuat sebelumnya dalam tutorial ini.


Ubuntu
  1. Siapkan server email dengan PostfixAdmin dan MariaDB di CentOS 7

  2. Cara mengatur server email dengan PostfixAdmin di CentOS 7

  3. Cara Menginstal Server Mail dengan PostfixAdmin di Ubuntu 20.04

  1. Cara Mengatur Server Mail dengan PostfixAdmin di Debian 11

  2. Cara Mengatur Server Mail dengan Modoboa di Debian 10

  3. Siapkan Server Mail dengan PostfixAdmin di Debian 9

  1. Cara Mudah Mengatur Server Mail di Debian 9 Stretch dengan iRedMail

  2. Cara Mudah Mengatur Server Mail di Debian 10 Buster dengan iRedMail

  3. Cara Mudah Mengatur Server Surat Berfitur Lengkap di CentOS 7 dengan iRedMail