Cara Mengkonfigurasi Kuota Pengguna di Dovecot & PostfixAdmin

Cara Mengkonfigurasi Kuota Pengguna di Dovecot & PostfixAdmin

Tutorial ini akan menunjukkan kepada Anda cara mengkonfigurasi kuota pengguna di Dovecot dan PostfixAdmin.

Prasyarat

Untuk mengikuti tutorial ini, diasumsikan bahwa server SMTP Postfix dan server IMAP Dovecot telah diinstal di server email Anda. Jika tidak, silakan gunakan tutorial berikut.

Ubuntu

  • Menyiapkan server SMTP Postfix dasar di Ubuntu
  • Instal server IMAP Dovecot di Ubuntu & Aktifkan Enkripsi TLS

CentOS 8 / RHEL 8

  • Menyiapkan server SMTP dasar Postfix di CentOS 8 / RHEL 8
  • Instal Server IMAP Dovecot di CentOS 8 / RHEL 8 & Aktifkan Enkripsi TLS

Diasumsikan juga bahwa Anda telah menginstal PostfixAdmin , alat manajemen email berbasis web, di server email Anda.

Ubuntu 18.04

  • PostfixAdmin - Buat Kotak Surat Virtual di Server Email Ubuntu 18.04

Ubuntu 20.04

  • PostfixAdmin - Buat Kotak Surat Virtual di Server Email Ubuntu 20.04

CentOS 8 / RHEL 8

  • PostfixAdmin - Buat Kotak Surat Virtual di Server Email CentOS 8 / RHEL 8

Perhatikan bahwa jika Anda mengatur server email Anda menggunakan iRedMail sebelumnya, kuota pengguna telah dikonfigurasi di server Anda, jadi Anda tidak perlu mengikuti tutorial ini.

Langkah 1: Konfigurasi Kuota Pengguna di Dovecot Dari Command Line

Pertama, kita perlu mengaktifkan plugin kuota. Edit 10-mail.conffile Dovecot dengan editor teks baris perintah seperti Nano.

sudo nano /etc/dovecot/conf.d/10-mail.conf

Temukan mail_plugins parameternya, hapus komentarnya dan setel nilainya menjadi:

mail_plugins = kuota

Ini adalah mail_pluginspengaturan global . Simpan dan tutup file. Selanjutnya, kita perlu mengaktifkan plugin kuota untuk layanan LMTP dan IMAP. Edit 20-lmtp.conffile Dovecot .

sudo nano /etc/dovecot/conf.d/20-lmtp.conf

Tambahkan quotake daftar mail_plugins.

protokol lmtp {
  mail_plugins = $ mail_plugins menyaring kuota
}

Simpan dan tutup file. Kemudian edit 20-imap.conffile tersebut.

sudo nano /etc/dovecot/conf.d/20-imap.conf

Aktifkan imap_quotaplugin untuk protokol IMAP.

protokol imap {
  mail_plugins = $ mail_plugins imap_quota
}

Simpan dan tutup file. Kemudian edit file konfigurasi kuota.

sudo nano /etc/dovecot/conf.d/90-quota.conf

Di bagian Batas kuota , konfigurasikan plugin sebagai berikut. Ini menetapkan kuota 1G untuk setiap pengguna email. The Trashfolder dari setiap pengguna akan memiliki kuota 100M sendiri afer 1G tercapai. Anda dapat mengubah nomor sesuai kebutuhan Anda.

plugin {
  quota_rule = *: storage = 1G
  quota_rule2 = Sampah: penyimpanan = + 100 juta

  # LDA / LMTP memungkinkan penyimpanan email terakhir untuk membawa pengguna dari kekurangan kuota ke
  # melebihi kuota, jika kuota tidak bertambah terlalu tinggi. Defaultnya adalah mengizinkan sebagai
  # selama kuota tetap di bawah 10% di atas batas. Juga diperbolehkan, misalnya 10 juta.
  quota_grace = 10 %%

  # Plugin kuota juga dapat membatasi ukuran email maksimum yang diterima.
  quota_max_mail_size = 100 juta
}

Di bagian Peringatan kuota , konfigurasikan plugin sebagai berikut, sehingga Dovecot akan mengirimkan pesan peringatan jika pengguna mencapai 80% dan 95% dari kuota.

plugin {
  quota_warning = storage = 100 %% quota-warning +100% u
  quota_warning = storage = 95 %% quota-warning 95% u
  quota_warning2 = penyimpanan = 80 %% peringatan kuota 80% u
  quota_warning4 = -storage = 100 %% quota-warning -100% u # pengguna tidak lagi melebihi kuota
}

Dan hapus tanda komentar pada baris berikut. Ini menentukan lokasi skrip shell yang akan mengirim pesan peringatan.

peringatan kuota layanan {
  executable = script /usr/local/bin/quota-warning.sh
  pengguna = dovecot
  unix_listener quota-warning {
    pengguna = vmail
  }
}

Di bagian Quota backends , konfigurasikan plugin sebagai berikut, jadi Dovecot akan menggunakan dictbackend (database MySQL / MariaDB).

plugin {
  #quota = dirsize: Kuota pengguna
  #quota = maildir: Kuota pengguna
  quota = dict: Kuota pengguna :: proxy :: quota
  #quota = fs: Kuota pengguna
}

Simpan dan tutup file. Kemudian buat quota-warning.shfile.

sudo nano /usr/local/bin/quota-warning.sh

Tambahkan baris berikut ke file jika Anda menggunakan Ubuntu.

#! / bin / bash
PERSEN = $ 1
PENGGUNA = $ 2
kucing << EOF | / usr / sbin / sendmail $ USER -O "plugin / quota = maildir: Kuota pengguna: noenforcing"
Dari: postmaster@domain.com
Subjek: peringatan kuota

Kotak surat Anda sekarang $ PERCENT% penuh.
EOF

Simpan dan tutup file. Kemudian buat itu bisa dieksekusi.

sudo chmod + x /usr/local/bin/quota-warning.sh

Edit /etc/dovecot/conf.d/10-master.conffile tersebut.

sudo nano /etc/dovecot/conf.d/10-master.conf

Gulir ke bawah ke akhir file ini. Konfigurasikan dict servicesebagai berikut.

layanan dict {
  unix_listener dict {
    mode = 0660
    pengguna = vmail
    group = vmail
  }
}

Simpan dan tutup file.

Langkah 2: Menghubungkan Dovecot dengan PostfixAdmin

Sekarang kita telah mengaktifkan kuota di Dovecot, kita perlu menghubungkannya dengan PostfixAdmin. Edit dovecot-sql.conf.extfile tersebut.

sudo nano /etc/dovecot/dovecot-sql.conf.ext

Temukan baris berikut.

user_query = PILIH maildir, 2000 AS uid, 2000 AS gid FROM mailbox WHERE username = '% u' AND active = '1'

Kita perlu mengubahnya menjadi:

user_query = PILIH CONCAT ('/ var / vmail /', maildir) AS home, 2000 AS uid, 2000 AS gid, CONCAT ('*: bytes =', quota) AS quota_rule FROM mailbox WHERE username = '% u' AND aktif = '1'

Jadi Dovecot bisa mendapatkan informasi kuota untuk setiap pengguna dari database MySQL / MariaDB. Simpan dan tutup file. Kemudian edit file konfigurasi utama Dovecot.

sudo nano /etc/dovecot/dovecot.conf

Temukan dict {}bagian tersebut dan hapus komentar kamus kuota .

dict {
    kuota = mysql: /etc/dovecot/dovecot-dict-sql.conf.ext
    #expire = sqlite: /etc/dovecot/dovecot-dict-sql.conf.ext
}

Simpan dan tutup file. Kemudian edit /etc/dovecot/dovecot-dict-sql.conf.extfile. (Perhatikan bahwa pada CentOS 8 / RHEL 8, file ini tidak ada. Anda hanya perlu menambahkan baris yang dijelaskan di bawah ini secara manual.)

sudo nano /etc/dovecot/dovecot-dict-sql.conf.ext

Tambahkan baris berikut di awal, sehingga Dovecot dapat mengakses postfixadmindatabase di MySQL / MariaDB. Jika Anda tidak ingat kata sandi database postfixadmin, itu dapat ditemukan di /etc/dovecot/dovecot-sql.conf.extfile.

connect = host = localhost dbname = postfixadmin user = postfixadmin password = postfixadmin_password

Di file ini, Anda dapat melihat dua definisi peta. Anda perlu mengubah quotake quota2.

peta {
  pola = priv / kuota / penyimpanan
  table = quota2
  username_field = nama pengguna
  value_field = byte
}
peta {
  pola = priv / kuota / pesan
  table = quota2
  username_field = nama pengguna
  value_field = pesan
}

Kemudian komentari thirddefinisi peta, karena PostfixAdmin tidak menggunakan expiretabel.

#map {
# pattern = shared / expire / $ user / $ mailbox
# table = expires
# value_field = expire_stamp

# bidang {
# username = $ user
# kotak surat = $ kotak surat
#}
#}

Simpan dan tutup file. Mulai ulang Dovecot agar perubahan diterapkan.

sudo systemctl restart dovecot

Periksa statusnya. Pastikan itu berjalan.

sudo systemctl status dovecot

Untuk menampilkan informasi kuota di PostfixAdmin, edit file konfigurasi PostfixAdmin.

Ubuntu

sudo nano /usr/share/postfixadmin/config.local.php

CentOS 8 / RHEL 8 Apache

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

CentOS 8 / RHEL 8 Nginx

sudo nano /usr/share/nginx/postfixadmin/config.local.php

Tambahkan dua baris berikut di akhir file ini untuk mengaktifkan kuota di PostfixAdmin.

$ CONF ['quota'] = 'YA';
$ CONF ['used_quotas'] = 'YES';

// izinkan maxmium 100 kotak surat untuk setiap domain
$ CONF ['mailboxes'] = '100';

// default kuota 10240MB untuk setiap pengguna
$ CONF ['maxquota'] = '10240';

// default kuota 102400MB untuk setiap domain
$ CONF ['domain_quota_default'] = '102400';

Simpan dan tutup file.

Langkah 3: Menguji Dari Command Line

Sekarang Anda dapat membuat daftar semua kuota dan penggunaan pengguna dengan:

sudo doveadm kuota dapatkan -A

Anda juga dapat menghitung ulang penggunaan kuota saat ini dengan perintah berikut.

sudo doveadm kuota recalc -A

Jika Anda melihat pesan kesalahan seperti

Fatal: Perintah 'kuota' tidak diketahui, tetapi kuota plugin ada. Coba setel mail_plugins = quota

itu berarti Anda tidak menyetel nilai mail_pluginsmenjadi quotadi /etc/dovecot/conf.d/10-mail.conffile.

Dan jika Anda melihat kesalahan berikut saat membuat daftar kuota pengguna,

Kesalahan: stat (/var/vmail/yourdomain.com/user/.dovecot.sieve/tmp) gagal: Bukan direktori

Anda perlu menambahkan baris berikut dalam /etc/dovecot/conf.d/10-mail.conffile dan memulai ulang Dovecot.

maildir_stat_dirs = yes

Langkah 4: Mengatur Kuota di Antarmuka Web PostfixAdmin

Sekarang Anda dapat pergi ke antarmuka web PostfixAdmin Anda untuk mengatur domain dan kuota pengguna.

Kuota default di PostfixAdmin terlalu kecil. Jika Anda telah menambahkan domain di PostfixAdmin sebelum mengaktifkan kuota, maka Anda perlu mengedit pengaturan domain di PostfixAdmin untuk menambah kuota. Domain baru akan memiliki pengaturan kuota yang ditentukan dalam config.local.phpfile.

Membungkus

Sekian tutorial kali ini, jika kamu menemui masalah, silahkan tinggalkan komentar