GNU/Linux >> Belajar Linux >  >> Ubuntu

Postfix Virtual Hosting Dengan LDAP Backend Dan Dengan Dovecot Sebagai Server IMAP/POP3 Di Ubuntu Bionic Beaver 18.04 LTS

Panduan ini akan menjelaskan cara menyiapkan dan mengonfigurasi hosting email virtual dengan backend LDAP.

Perangkat lunak yang akan kami gunakan dalam cara ini: Postfix (MTA), Dovecot (IMAP / POP3), Gnarwl (liburan), OpenLDAP (LDAP)  dan vMailpanel sebagai antarmuka pengelolaan.

Opsional adalah Proftpd FTP, Roundcube (webmail) dan MariaDB (SQL backend untuk Roundcube).

Ini berhasil untuk saya, tetapi saya tidak dapat menjamin bahwa pengaturan ini akan berhasil untuk Anda, jadi cara ini datang tanpa jaminan apa pun.

Asumsi

How-to ini mengasumsikan konfigurasi berikut, jika instalasi Anda berbeda dari ini, ganti entri di bawah ini dengan konfigurasi Anda yang sebenarnya.

Jalur pengiriman surat (kotak surat):

/home/vmail/

Vmail pengguna:

UID:1000, GID:1000

Postfix pengguna:

UID:108, GID:108

OpenLDAP basis dn:

dc=contoh,dc=tld

Akun admin OpenLDAP:

cn=admin,dc=example,dc=tld

vMailpanel pencarian dn:

o=hosting,dc=contoh,dc=tld

Akun hanya baca untuk o=hosting,dc=example,dc=tld tree:

cn=vmail,o=hosting,dc=example,dc=tld

Anda menggunakan root sebagai pengguna selama panduan ini.

Jika Anda ingin misalnya o=maildomain atau ou=domain, pastikan untuk mengganti o=hosting dengan yang Anda  inginkan, terutama di acl.ldif. File acl ini ketat, phamm tidak akan berfungsi dengan benar jika tidak persis seperti yang seharusnya. Jika Anda menginginkan pengguna hanya baca yang berbeda dari phamm daripada mengganti cn=phamm dengan cn=wat-you di mana saja dalam cara ini.

Panduan ini juga mengasumsikan bahwa Anda telah menginstal dan mengonfigurasi server Ubuntu sesuai kebutuhan Anda, ada banyak panduan bagus tentang Howtoforge misalnya:

Server Sempurna - Ubuntu 18.04 (Bionic Beaver) dengan Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot, dan ISPConfig 3.1

Anda dapat berhenti setelah instalasi dan konfigurasi Apache2.

Langkah 1:Unduh vMailpanel

Unduh paket vMailpanel:

cd /usr/share

Dapatkan vMailpanel versi terbaru:

git clone https://git.com/wolmfan68/vMailpanel

Oke, sekarang kita bisa mulai.

Langkah 2:Instal dan konfigurasikan OpenLDAP

Instal OpenLDAP dan ldap-utils:

apt -y install slapd ldap-utils php-ldap

Konfigurasi ulang slapd untuk memastikan itu mencerminkan pengaturan yang Anda inginkan

dpkg-konfigurasi ulang slapd

Anda harus menjawab beberapa pertanyaan:

Abaikan konfigurasi server OpenLDAP? Tidak
 Nama domain DNS:example.tld ==>masukkan nama domain Anda di sini
Nama organisasi:example.tld ==> letakkan organisasi Anda di sini
 Kata sandi administrator:rahasia ==> masukkan kata sandi Anda
 Konfirmasi kata sandi:rahasia 
Backend basis data yang akan digunakan:MDB
 Apakah Anda ingin database dihapus saat slapd dibersihkan? Ya
 Pindahkan database lama? Ya

Ubah ke direktori /etc/ldap/schema:

cd /etc/ldap/schema

Salin phamm.schema dan perversia.net.schema dari paket phamm ke direktori skema:

cp /usr/share/vMailbox/schema/* /etc/ldap/schema.

Sekarang kita tambahkan skema ke openldap.

ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/phamm.ldif 
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/ ISPEnv2.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/amavis.ldif 
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ ldap/schema/pureftpd.ldif 
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/perversia.net.ldif

Sekarang kita buat entri o=hosting, dan akun vmail.

Ubah teks di bawah ini sesuai kebutuhan dan keinginan Anda dan buat kata sandi untuk akun vmail. Hash yang saat ini ada dalam file ini menyetel kata sandi menjadi hanya-baca

Untuk membuat hash untuk akun vmail, jalankan perintah berikut:

slappasswd -h {MD5}

Ketik kata sandi yang diinginkan dua kali dan salin hasilnya ke teks di bawah ini.

nano base.ldif

Isi dari base.ldif

dn:o=hosting,dc=example,dc=tld
objectClass:organisasi
objectClass:atas
o:deskripsi hosting:Organisasi Hosting
# Akun hanya baca
dn:cn=vmail,o=hosting,dc=contoh,dc=tld
objectClass:simpleSecurityObject
objectClass:peran organisasi
cn:vmail
password pengguna:{MD5}M267sheb6qc0Ck8WIPOvQA==
deskripsi:Akun hanya baca

Muat basis dn ke dalam database dengan perintah berikut:

ldapmodify -a -D cn=admin,dc=example,dc=tld -W -f base.ldif

Sekarang kita perlu memodifikasi acl agar akses yang benar diberikan kepada setiap tipe pengguna.

ldapmodify -Y EXTERNAL -H ldapi:/// -f acl-remove.ldif
ldapmodify -Y EXTERNAL -H ldapi:/// -f acl-new.ldif

Anda dapat memeriksa acl baru dengan perintah berikut:

slapcat -n 0

Ini mengakhiri konfigurasi OpenLDAP.

Langkah 3:Instal dan Konfigurasi Postfix

Sebelum ini, kita harus memiliki pengguna vmail dan direktori home-nya.

Buat pengguna dan grup vmail :

penggunatambahkan vmail

Secara default, grup vmail dibuat juga.

Periksa /etc/passwd untuk uid dan nomor grup yang sebenarnya.

Selanjutnya, buat direktori vmail dan setel kepemilikan ke pengguna dan grup vmail.

mkdir /home/vmail
mkdir /home/vmail/domains 
chown -R vmail:vmail /home/vmail

Jalankan perintah berikut untuk menginstal Postfix dan aplikasi lain yang diperlukan:

apt install postfix postfix-ldap

Anda akan ditanya dua pertanyaan. Jawab sebagai berikut:

Jenis umum konfigurasi email: <--Berdiri sendiri
Nama email sistem: <-- mail.example.tld

Kami tidak menginstal sasl karena kami akan menggunakan LDA Dovecot dan mengirimkannya.

Sekarang kita membuat sertifikat untuk TLS:

mkdir /etc/postfix/ssl
cd /etc/postfix/ssl/
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024
chmod 600 smtpd.key
openssl req -new -key smtpd.key -out smtpd.csr
openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
openssl rsa -in smtpd.key -out smtpd.key.unencrypted
mv -f smtpd.key.unencrypted smtpd.key
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650

Catatan:Anda dapat menyalin semua file di bawah contoh/postfix ke direktori etc/postfix Anda dan membuat perubahan yang sesuai. Untuk alasan kelengkapan, saya akan memberikan pengaturan lengkap di bawah ini.

Sekarang kita akan mengkonfigurasi postfix:

cd /etc/postfix 
mv /etc/postfix/main.cf /etc/postfix/main.cf.bck
nano /etc/postfix/main.cf

Dan rekatkan yang berikut ke dalamnya. Harap diperhatikan bahwa konfigurasi ini memungkinkan pengiriman (relay) email oleh pengguna yang diautentikasi, dan juga pengiriman email lokal (seperti misalnya ke root, postmaster, ...) ke alias masing-masing jika dikonfigurasi.

smtpd_banner =$myhostname ESMTP $mail_name
biff =no
 
# menambahkan .domain adalah tugas MUA.
append_dot_mydomain =no
 
# Uncomment the next baris untuk menghasilkan peringatan "email tertunda"
delay_warning_time =4j
 
# parameter TLS
smtpd_tls_cert_file =/etc/postfix/ssl/smtpd.crt
smtpd_tls_key_file =/etc /postfix/ssl/smtpd.key
smtpd_use_tls =yes
smtpd_tls_session_cache_database =btree:${queue_directory}/smtpd_scache
smtp_tls_session_cache_{database =btree:>myhostname =mail.example.tld
alias_maps =hash:/etc/aliases,
alias_database =hash:/etc/aliases
myorigin =localhost
relayhost = 
mynetworks =127.0.0.0/8
dovecot_destination_recipient_limit =1
mailbox_command =/usr/lib/deliver
mailbox_size_limit =0
recipient_delimiter =+
inet_interfaces =semua
inet_protocols =semua
#smtp_bind_address =alamat ip Anda (opsional) ==>hapus tanda dan ubah alamat ip untuk setup Anda.
smtpd_sasl_local_domain = 
smtpd_sasl_auth_enable =yes
smtpd_sasl_security_options =noanonymous
smtpd_sasl_path_type =dovecot_type =dovecot>broken_sasl_auth_clients =ya
smtpd_tls_auth_only =tidak

smtp_use_tls =ya
smtp_tls_note_starttls_offer =yes
smtpd_tls_CAfile =/etc/postfix_ =1
smtpd_tls_received_header =yes
smtpd_tls_session_cache_timeout =3600 detik
tls_random_source =dev:/dev/urandom

home_mailbox =Maildir/
 
smtpdrescipient =
permit_mynetworks
permit_sasl_authenticated
reject_invalid_hostname
reject_non_fqdn_hostname
reject_non_fqdn_sender
reject_non_fqdn_recipient
reject_unauth_destination
reject_unauth_pipelining
reject_invalid_hostname
reject_unknown_sender_domain
    tolak_ rbl_client list.dsbl.org
    reject_rbl_client cbl.abuseat.org
    reject_rhsbl_sender dsn.fc-ignorant.org

smtpd_data_restrictions =
  _ reject_  _piounce_unauth_pi
    izin

smtpd_helo_required =yes
 
# transport_maps
maildrop_destination_concurrency_limit =2 
maildrop_destination_recipient_limit =1
gnarwl_destination_limit_limit =1 concurrency>gnarwl_destination_recipient_limit =1
transport_maps =hash:/etc/postfix/transport, ldap:/etc/postfix/ldap-transport.cf
mydestination =$transport_maps, localhost, localhost.localdomain, $myhostname, localhost .$domainku, $domainku

virtual_alias_maps = 
    ldap:/etc/postfix/ldap-aliases.cf,
    ldap:/etc/postfix/ldap-virtualforward.cf,
    ldap:/etc/postfix/ldap-accountsmap.cf
 
# akun virtual untuk pengiriman
virtual_mailbox_base =/home/vmail
virtual_mailbox_maps =
    ldap :/etc/postfix/ldap-accounts.cf
virtual_minimum_uid =1000 ==> Ubah ini ke uid pengguna yang sebenarnya vmail
virtual_uid_maps =static:1000 ==> Ubah ini ke uid sebenarnya dari vmail pengguna
virtual_gid_maps =static:1000 ==> Ubah ini ke uid aktual vmail pengguna
 
local_recipient_maps =$alias_maps

recipient_bcc_maps =ldap:/ etc/postfix/ldap-vacation.cf

nano /etc/postfix/master.cf

Dan rekatkan yang berikut ini ke dalamnya (tambahkan akhir):

dovecot unix - n n - - pipe      flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${recipient}gnarwl unix - n n - - pipe     flags=F user=vmail argv=/usr/bin/gnarwl -a ${user}@${nexthop} -s ${sender}

Sekarang kita perlu menulis file ldap-xxx.cf yang berbeda

nano ldap-accounts.cf

Dan rekatkan yang berikut ini ke dalamnya:

server_host =localhost
server_port =389
versi =3
bind =yes
start_tls =tidak
bind_dn =cn=vmail,o=hosting,dc=example,dc =tld
bind_pw =readmonly
search_base =o=hosting,dc=example,dc=tld
scope =sub
query_filter =(&(&(objectClass=VirtualMailAccount))(mail =%s))(forwardActive=FALSE)(accountActive=TRUE)(delete=FALSE))
result_attribute =kotak surat 

nano ldap-accounstmap.cf

Dan rekatkan yang berikut ini ke dalamnya:

server_host =localhost
server_port =389
versi =3
bind =yes
start_tls =tidak
bind_dn =cn=vmail,o=hosting,dc=example,dc =tld
bind_pw =readonly
search_base =o=hosting,dc=example,dc=tld
scope =sub
query_filter =(&(&(objectClass=VirtualMailAccount)(mail =%s))(forwardActive=FALSE)(accountActive=TRUE)(delete=FALSE))
result_attribute =mail 

nano ldap-aliases.cf

Dan rekatkan yang berikut ini ke dalamnya:

server_host =localhost
server_port =389
versi =3
bind =yes
start_tls =tidak
bind_dn =cn=vmail,o=hosting,dc=example,dc =tld
bind_pw =readonly
search_base =o=hosting,dc=example,dc=tld
scope =sub
query_filter =(&(&(objectClass=VirtualMailAlias)(mail =%s))(accountActive=TRUE))
result_attribute =maildrop 

nano ldap-transport.cf

Dan rekatkan yang berikut ini ke dalamnya:

server_host =localhost
server_port =389
versi =3
bind =yes
start_tls =tidak
bind_dn =cn=vmail,o=hosting,dc=example,dc =tld
bind_pw =readonly
search_base =o=hosting,dc=example,dc=tld
scope =sub
query_filter =(&(&(vd=%s)( objectClass=VirtualDomain))(accountActive=TRUE)(delete=FALSE)) 
result_attribute =postfixTransport 

nano ldap-vacation.cf

Dan rekatkan yang berikut ini ke dalamnya:

server_host =localhost
server_port =389
versi =3
bind =yes
start_tls =tidak
bind_dn =cn=vmail,o=hosting,dc=example,dc =tld
bind_pw =readonly
search_base =o=hosting,dc=example,dc=tld
scope =sub
query_filter =(&(&(objectClass=VirtualMailAccount)(mail =%s))(vacationActive=TRUE)(forwardActive=FALSE)(accountActive=TRUE)(delete=FALSE))
result_attribute =mailAutoreply 

nano ldap-virtualforward.cf

Dan rekatkan yang berikut ini ke dalamnya:

server_host =localhost
server_port =389
versi =3
bind =yes
start_tls =tidak
bind_dn =cn=vmail,o=hosting,dc=example,dc =tld
bind_pw =readonly
search_base =o=hosting,dc=example,dc=tld
scope =sub
query_filter =(&(&(objectClass=VirtualMailAccount)(mail =%s))(vacationActive=FALSE)(forwardActive=TRUE)(accountActive=TRUE)(delete=FALSE))
result_attribute =maildrop

Ini mengakhiri pengaturan postfix.

Langkah 4:Instal Dan Konfigurasikan Dovecot

apt install dovecot-imapd dovecot-pop3d dovecot-ldap

Ini akan menginstal dovecot dan semua file yang diperlukan dan juga membuat sertifikat SSL standar untuk IMAP dan POP3.

Pertama, kita ubah ke direktori dovecot.

Catatan:Anda dapat menyalin semua file di bawah contoh/dovecot ke direktori etc/dovecot Anda dan membuat perubahan yang sesuai. Untuk alasan kelengkapan, saya akan memberikan pengaturan lengkap di bawah ini.

 cd /etc/dovecot

Sekarang kita mengkonfigurasi file konfigurasi dovecot yang berbeda.

nano dovecot-ldap.conf.ext

Dan buat perubahan berikut:

host           =localhost:389
ldap_version    =3
auth_bind       =yes
dn            =cn=vmail,o=hosting,dc=example,dc=tld
     >base           =o=hosting,dc=hosting,dc=tld
scope          =subtree
deref         =tidak pernah

user_attrs =quota=quota=maildir:storage
user_attrs =quota=quota=maildir:storage=%$B
user_filter =(&(objectClass=VirtualMailAccount)(accountActive=TRUE)(mail=%u))
pass_attrs =mail,userPassword
pass_filter =(&(objectClass=VirtualMailAccount)(accountActive=TRUE)(mail=%u))
default_pass_scheme =MD5

cd conf.d
vi 10-auth.conf

Dan ubah bagian Password and User Databases menjadi ini:

#!include auth-deny.conf.ext
#!include auth-master.conf.ext

#!include auth-system.conf.ext
#!include auth -sql.conf.ext
!include auth-ldap.conf.ext
#!include auth-passwdfile.conf.ext
#!include auth-checkpassword.conf.ext
#!sertakan auth-vpopmail.conf.ext
#!sertakan auth-static.conf.ext

vi 10-mail.conf 

Dan buat perubahan berikut:

mail_location =maildir:/home/vmail/%d/%u

mail_uid =1000 ==> ubah ke nilai vmail uid yang sebenarnya

mail_gid =1000 ==> ubah ini ke nilai gid vmail yang sebenarnya

first_valid_uid =1000 ==> ubah ke nilai uid vmail yang sebenarnya

first_valid_gid =1000 ==> ubah ini ke nilai gid vmail yang sebenarnya

vi 10-master.conf 

Dan buat perubahan berikut:

unix_listener auth-userdb {
    mode =0666
    user =vmail
    group =vmail
  }

  # Postfix smtp-auth
  unix_listener / var/spool/postfix/private/auth {
    mode =0666
  }

 vi 15-lda.conf

Dan lakukan perubahan berikut: 

postmaster_address = [email protected]

lda_mailbox_autocreate =ya

Ini mengakhiri konfigurasi Dovecot.

Langkah 5:Instal Dan Konfigurasikan gnarwl

Mari kita instal gnarwl:

apt install gnarwl

Sekarang mari kita konfigurasikan gnarwl.

Pertama, kita akan mencadangkan file konfigurasi asli dan menggantinya dengan yang baru.

mv /etc/gnarwl.conf /etc/gnarwl.conf.bck

Sekarang kita buat file conf baru:

vi /etc/gnarwl.conf

Dan masukkan berikut ini:

map_sender $sendermap_receiver $recepientmap_subject $subjectmap_field $mulai liburanStartmap_field $akhir liburanEndmap_field $nama lengkap cnmap_field $deputy vacationForwardmap_field $reply mailserver localhostport 389scope sublogin cn=vmail,o=hosting,dc=contoh sandi =tldqueryfilter (&(mailAutoreply=$recepient)(vacationActive=TRUE))result vacationInfoblockfiles /var/lib/gnarwl/block/umask 0644blockexpire 48mta /usr/sbin/sendmail -F $recipient -t $sendermaxreceivers 64maxheader 512charset ISO8859-1 var/lib/gnarwl/badheaders.dbblacklist /var/lib/gnarwl/blacklist.dbforceheader /var/lib/gnarwl/header.txtforcefooter /var/lib/gnarwl/footer.txtrecvheader Ke Ccloglevel 3

Jadikan direktori gnarwl dapat dibaca oleh pengguna vmail

chown -R vmail:vmail /var/lib/gnarwl/

Selanjutnya, kita perlu menambahkan transport gnarwl ke postfix

vi /etc/postfix/transport

Masukkan yang berikut ini:

.autoreply      gnarwl:

Sekarang kita perlu membuat transport.db

postmap /etc/postfix/transport

Ini menyimpulkan konfigurasi gnarwl.

Langkah 6:Instal dan Konfigurasi vMailpanel

Karena kita telah mendownload vMailpanel sebelumnya, kita dapat langsung memulai dengan konfigurasi antarmuka vMailpanel.

chown -R www-data:www-data /usr/share/phamm
cd /usr/share/vMailpanel

Sekarang kita akan mengonfigurasi phamm untuk penggunaan sebenarnya.

cp config.inc.example.php config.inc.php
nano config.inc.php

Ubah parameter koneksi ldap agar sesuai dengan konfigurasi Anda yang sebenarnya.

// *============================*// *===Pengaturan Server LDAP ===*// *============================*// Alamat server (IP atau FQDN) tentukan ('LDAP_HOST_NAME','127.0.0.1 ');// Versi protokol [2,3]define ('LDAP_PROTOCOL_VERSION','3');// Server portdefine ('LDAP_PORT','389');// The containerdefine ('SUFFIX','dc =example,dc=tld');// Admin mengikat dn (bisa rootdn)define ('BINDDN','cn=admin,dc=example,dc=tld');// The Phamm containerdefine ('LDAP_BASE' ,'o=hosting,dc=contoh,dc=tld');

dan ubah

// Welcome messagedefine ('SEND_WELCOME',1);$welcome_msg ='../welcome_message.txt';$welcome_subject ='Selamat datang!';# $welcome_sender ='[email protected]';$welcome_bcc =' [dilindungi email]';

Ini akan mengirim pesan selamat datang dan bcc ke akun postmaster Anda.

Aktifkan plugin fpt dan person dengan menghapus // di bagian plugins. Jika diinginkan, Anda juga dapat mengaktifkan plugin davical dan atau jabber, skema yang diperlukan untuk plugin ini telah diinstal.

Di config.inc.php Anda akan menemukan:

define ('DELETE_ACCOUNT_IMMEDIATELY', false);

Jika Anda menyetel ini ke true, penghapusan akun atau domain akan segera berlaku. Namun, kotak surat fisik tidak dihapus (atau direktori domain). Untuk menghapus kotak surat fisik, kita harus menggunakan skrip cleaner.sh. Ini dijelaskan di bawah ini.

Anda dapat mengedit plugins/mail.xml untuk mengubah default SMTP dan kuota, memodifikasinya sesuai kebutuhan Anda. Defaultnya adalah kuota 1GB.

Anda dapat mengedit plugins/ftp.xml untuk mengubah default direktori dan kuota ftp (basis) default, memodifikasinya sesuai kebutuhan Anda.

Jangan lupa untuk membuat alias dan atau kotak surat untuk postmaster, webmaster karena ini digunakan oleh pejabat dan ISP untuk mengirim surat jika ... Tidak memiliki alamat ini dapat mengakibatkan daftar hitam.

Secara default, alias [dilindungi email] dan [dilindungi email] yang default untuk [dilindungi email] dibuat.

Sekarang skrip pembersih:

alat cp/cleaner.sh /home/vmail/cleaner.sh

Ubah yang berikut di cleaner.sh

BINDDN="cn=admin,dc=example,dc=tld"
BINDPW="password"
LDAP_BASE="o=hosting,dc=example,dc=tld"

Untuk mencerminkan pemasangan Anda

nano /home/vmail/cleaner.sh
crontab -e

Masukkan yang berikut ini:

*/10 * * * * /home/vmail/cleaner.sh

Ini akan menjalankan skrip pembersih setiap 10 menit. Jangan ragu untuk mengubah waktunya.

Sekarang kita akan menambahkan vMailpanel ke Apache

nano /etc/apache2/conf-enabled/000-default.conf

Dan tambahkan di antara entri berikut ini:

Alias ​​/vmailpanel /usr/share/vMailpanel/public

Ini mengakhiri konfigurasi vMailpanel.

Langkah 7:Instal dan konfigurasikan email web Roundcube

Pertama, kita membuat database bernama roundcube:

mysqladmin -u root -p create roundcube

Selanjutnya, kita pergi ke shell MySQL:

mysql -u root -p

Di shell MySQL, kami membuat roundcube pengguna dengan kata sandi roundcube_password (ganti dengan kata sandi pilihan Anda) yang memiliki hak istimewa SELECT,INSERT,UPDATE,DELETE pada database roundcube. Pengguna ini akan digunakan oleh Postfix dan Courier untuk terhubung ke database roundcube:

GRANT SELECT, INSERT, UPDATE, DELETE ON roundcube.* ATAS 'roundcube'@'localhost' DIIDENTIFIKASI DENGAN 'roundcube_password';
GRANT SELECT, INSERT, UPDATE, DELETE ON roundcube.* UNTUK 'roundcube'@ 'localhost.localdomain' DIIDENTIFIKASI DENGAN 'roundcube_password';
HAK ISTIMEWA FLUSH;

Sekarang kita mengunduh dan menginstal Roundcube:

cd/usr/src 
wget https://github.com/roundcube/roundcubemail/releases/download/1.3.6/roundcubemail-1.3.6.tar.gz
tar xvzf roundcubemail-1.3.6.tar.gz
mv roundcubemail-1.3.6 /var/www/roundcube
chown -R www-data:www-data /var/www/roundcube
cd /var/www/roundcube

Selalu periksa versi Roundcube terbaru dan unduh yang itu dan ubah perintah di atas ke versi Roundcube yang Anda unduh.

https://roundcube.net/download/

Sekarang kita memuat tabel sql ke database yang kita buat sebelumnya:

mysql -u roundcube -p roundcube <  SQL/mysql.initial.sql

Sekarang kita edit konfigurasi Roundcube:

cp config/config.inc.php.contoh config/config.inc.php

Atur konfigurasi database:

nano config/config.inc.php

Ubah baris berikut ke konfigurasi database:

$rcmail_config['db_dsnw'] ='mysql://roundcube:[email protected]/roundcube';

Dan ubah yang berikut

Dari:

// Daftar plugin aktif (di direktori plugins/)$config['plugins'] =array(
 'arsip', 
 'zipdownload',

Kepada:

// Daftar plugin aktif (di direktori plugins/)$config['plugins'] =array(
 'arsip', 
 'zipdownload',
 'kata sandi',
 'liburan', 

Ubah:

chars.$rcmail_config['des_key'] ='rcmail-!24ByteDESkey*Str';

Kepada:

chars.$rcmail_config['des_key'] ='your-own-24-digitkeystring';

Ubah:

$rcmail_config['default_host'] ='';

Kepada:

$rcmail_config['default_host'] ='localhost'; 

Ubah:

$rcmail_config['smtp_server'] =''; 

Untuk

$rcmail_config['smtp_server'] ='localhost'; 

Konfigurasi untuk plugin kata sandi:

cp plugins/password/config.inc.php.dist plugins/password/config.inc.php

Edit konfigurasi:

nano plugins/password/config.inc.php

Ubah entri berikut

Dari:

$rcmail_config['password_driver'] ='sql';

Kepada:

$rcmail_config['password_driver'] ='ldap'; 

Dari:

// LDAP Driver options// -------------------// Nama server LDAP untuk terhubung.// Anda dapat menyediakan satu atau beberapa host dalam sebuah larik dalam hal ini host dicoba dari kiri ke kanan.// Contoh:array('ldap1.exemple.com', 'ldap2.exemple.com');// Default:'localhost'$rcmail_config['password_ldap_host'] ='localhost';// Port server LDAP untuk terhubung// Default:'389'$rcmail_config['password_ldap_port'] ='389';// TLS dimulai setelah terhubung// Menggunakan TLS untuk modifikasi kata sandi disarankan.// Default:false$rcmail_config['password_ldap_starttls'] =false;// LDAP version// Default:'3'$rcmail_config['password_ldap_version'] ='3';// Nama dasar LDAP (direktori root)// Contoh:' dc=exemple,dc=com'$rcmail_config['password_ldap_basedn'] ='dc=exemple,dc=com';// Metode koneksi LDAP// Ada dua metode koneksi untuk mengubah kata sandi LDAP pengguna.// 'pengguna' :gunakan kredensial pengguna (disarankan, memerlukan password_confirm_current=true)// 'admin':gunakan kredensial admin (mode ini memerlukan re password_ldap_adminDN dan password_ldap_adminPW)// Default:'user'$rcmail_config['password_ldap_method'] ='user';// LDAP Admin DN// Hanya digunakan dalam mode koneksi admin// Default:null$rcmail_config['password_ldap_adminDN'] =null;// Kata Sandi Admin LDAP// Hanya digunakan dalam mode koneksi admin// Default:null$rcmail_config['password_ldap_adminPW'] =null;// DN mask pengguna LDAP// DN pengguna adalah wajib dan karena kami hanya memiliki loginnya ,// kita perlu membuat ulang DN-nya menggunakan mask// '%login' akan diganti dengan login pengguna roundcube saat ini// '%name' akan diganti dengan bagian nama pengguna roundcube saat ini// '%domain ' akan digantikan oleh bagian domain pengguna roundcube saat ini // Contoh:'uid=%login,ou=people,dc=exemple,dc=com'$rcmail_config['password_ldap_userDN_mask'] ='uid=%login,ou=people ,dc=exemple,dc=com';// LDAP password hash type// Jenis enkripsi LDAP standar yang harus salah satu dari:crypt,// ext_des, md5crypt, blowfish, md5, sha, smd5, ssha, atau clear./ / Harap dicatat bahwa sebagian besar jenis encodage memerlukan perpustakaan eksternal// untuk disertakan dalam instalasi PHP Anda, lihat fungsi hashPassword di driver/ldap.php untuk info lebih lanjut.// Default:'crypt'$rcmail_config['password_ldap_encodage'] ='crypt';// LDAP password atribut// Nama atribut ldap yang digunakan untuk menyimpan kata sandi pengguna// Default:'userPassword'$rcmail_config['password_ldap_pwattr'] ='userPassword';// LDAP password force replace// Force LDAP replace jika ACL hanya mengizinkan ganti tidak terbaca// Lihat http://pear.php.net/package/Net_LDAP2/docs/latest/Net_LDAP2/Net_LDAP2_Entry.html#methodreplace// Default:true$rcmail_config['password_ldap_force_replace'] =true;

Kepada:

$rcmail_config['password_ldap_host'] ='localhost';$rcmail_config['password_ldap_port'] ='389';$rcmail_config['password_ldap_starttls'] =false;$rcmail_config['password_ldap_version'] ='3';$ rcmail_config['password_ldap_basedn'] ='o=hosting,dc=example,dc=tld';$rcmail_config['password_ldap_method'] ='user';$rcmail_config['password_ldap_adminDN'] =null;$rcmail_config['password_ldap_adminPW'] =null;$rcmail_config['password_ldap_userDN_mask'] ='mail=%login,vd=%domain,o=hosting,dc=example,dc=tld';$rcmail_config['password_ldap_encodage'] ='md5';$rcmail_config[ 'password_ldap_pwattr'] ='userPassword';$rcmail_config['password_ldap_force_replace'] =true;

Sekarang kita akan mengunduh dan menginstal plugin liburan:

cd /usr/src
wget https://github.com/bhuisgen/rc-vacation/archive/master.zip
unzip rc-vacation-master.zip
mv rc -vacation /var/www/roundcube/plugins/vacation
cd /var/www/roundcube/plugins/vacation

Sekarang kita edit konfigurasinya dan ubah:

plugin nano/vacation/config.inc.php

Ubah:

$rcmail_config['vacation_gui_vacationsubject'] =BENAR;

Kepada:

$rcmail_config['vacation_gui_vacationsubject'] =SALAH;

Ubah:

$rcmail_config['vacation_driver'] ='sql'; 

Kepada:

$rcmail_config['vacation_driver'] ='ldap';

Ubah:

// Base DN$rcmail_config['vacation_ldap_base'] ='dc=ldap,dc=my,dc=domain';// Bind DN$rcmail_config['vacation_ldap_binddn'] ='cn=user,dc=ldap, dc=my,dc=domain';// Ikat sandi$rcmail_config['vacation_ldap_bindpw'] ='pa$$w0rd';

Kepada:

// Base DN$rcmail_config['vacation_ldap_base'] ='o=hosting,dc=example,dc=tld';// Bind DN$rcmail_config['vacation_ldap_binddn'] ='cn=admin,dc=example, dc=tld';// Ikat kata sandi$rcmail_config['vacation_ldap_bindpw'] ='kata sandi Anda';

Ubah:

// Cari filter untuk membaca data$rcmail_config['vacation_ldap_search_filter'] ='(objectClass=mailAccount)';// Cari atribut untuk membaca data$rcmail_config['vacation_ldap_search_attrs'] =array ('vacationActive', 'vacationInfo' );// larik DN yang akan digunakan untuk memodifikasi operasi yang diperlukan untuk menulis data.$rcmail_config['vacation_ldap_modify_dns'] =array ('cn=%email_local,ou=Kotak Surat,dc=%email_domain,ou=Server Surat,dc=ldap, dc=saya,dc=domain');

Kepada:

// Cari basis untuk membaca data$rcmail_config['vacation_ldap_search_base'] ='mail=%username,vd=%email_domain,o=hosting,dc=example,dc=tld';// Cari filter untuk membaca data$ rcmail_config['vacation_ldap_search_filter'] ='(objectClass=VirtualMailAccount)';// Cari atribut untuk membaca data$rcmail_config['vacation_ldap_search_attrs'] =array ('vacationActive', 'vacationInfo');// larik DN yang akan digunakan untuk memodifikasi operasi yang diperlukan untuk menulis data.$rcmail_config['vacation_ldap_modify_dns'] =array ('mail=%username,vd=%email_domain,o=hosting,dc=example,dc=tld');

Kita harus mengubah document root pada konfigurasi server Apche2 agar Roundcube dapat diakses.

nano /etc/apache2/sites-enabled/000-default.conf

Dan ubah dari:

DocumentRoot /var/www/html

Kepada:

DocumentRoot /var/www/

Ini menyimpulkan konfigurasi untuk Roundcube.

Langkah 8:Instal dan konfigurasi proftpd

Pertama, kita akan menginstal proftpd dan persyaratannya:

apt install proftpd proftpd-mod-ldap

Tergantung pada beban Anda, Anda dapat memutuskan antara stand alone dan inet.d.

Catatan:Anda dapat menyalin file konfigurasi dari contoh/proftpd ke /etc/proftpd tetapi untuk kejelasan, saya akan menjelaskan semua langkah konfigurasi.

Edit /etc/proftpd/proftpd.conf:

nano /etc/proftpd/proftpd.conf

Dan ubah dari:

# Gunakan ini untuk memenjarakan semua pengguna di rumah mereka# DefaultRoot                 ~

Kepada:

# Gunakan ini untuk memenjarakan semua pengguna di rumah merekaDefaultRoot      

Dan ubah dari:

#RequireValidShell              nonaktif

Kepada:

RequireValidShell              nonaktif

Dan ubah:

# Alternative authentication frameworks
#
# Include /etc/proftpd/ldap.conf
#Include /etc/proftpd/sql.conf

To:

# Alternative authentication frameworks
#
Include /etc/proftpd/ldap.conf
#Include /etc/proftpd/sql.conf
             ~

Now edit /etc/proftpd/modules.conf:

nano /etc/proftpd/modules.conf 

And change from:

# Install proftpd-mod-ldap to use this#LoadModule mod_ldap.c

To:

# Install proftpd-mod-ldap to use thisLoadModule mod_ldap.c

And from:

# Install proftpd-mod-ldap to use this# LoadModule mod_quotatab_ldap.c

To:

# Install proftpd-mod-ldap to use thisLoadModule mod_quotatab_ldap.c 

No edit /etc/proftpd/ldap.conf and set the following:


#
#LDAPServer ldap://ldap.example.com
#LDAPBindDN "cn=admin,dc=example,dc=com" "admin_password"
#LDAPUsers dc=users,dc=example,dc=com (uid=%u) (uidNumber=%u)
#LDAPUseTLS on
#
#
#LDAPServer ldaps://ldap.example.com
#LDAPBindDN "cn=admin,dc=example,dc=com" "admin_password"
#LDAPUsers dc=users,dc=example,dc=com (uid=%u) (uidNumber=%u)
#
LDAPServer ldap://127.0.0.1/??sub
LDAPBindDN "cn=vmail,o=hosting,dc=example,dc=tld "readonly"
LDAPUsers "o=hosting,dc=example,dc=tld" "(&(uid=%v)(objectclass=posixAccount))"
LDAPDefaultGID 33
LDAPDefaultUID 33
LDAPForceDefaultGID True
LDAPForceDefaultUID True



The following commands set the default user to www-data which suits me, you can change these values to suit your setup or leave them out to use the login uid / gid.

LDAPDefaultGID 33
LDAPDefaultUID 33
LDAPForceDefaultGID True
LDAPForceDefaultUID True

33 Is the uid/gid of my testing setup, it can be different on your setup.

This concludes the proftpd installation.

Step 9:Bringing it all together

Issue the following commands to restart all of the services:

service slapd restart 
service postfix restart
service dovecot restart
service proftpd restart
layanan apache2 restart

Now you can go to phamm and start adding mail domains and users.

Enjoy.

Note:notify me of any errors or problems with this how to so I can improve and amend this how to.

Use this thread in the forum:

https://www.howtoforge.com/community/threads/postfix-virtual-hosting-with-ldap-backend-and-with-dovecot-as-imap-pop3-server-on-ubuntu-bionic-beav.79408/

I am subscribed to this thread so I will get notifications of new posts in this thread.


Ubuntu
  1. Hosting Virtual Dengan Proftpd Dan MySQL (Termasuk Kuota) Di Ubuntu 14.04LTS

  2. Pengguna dan Domain Virtual Dengan Postfix, Courier, MySQL, dan SquirrelMail (Ubuntu 13.10)

  3. Server Sempurna - Ubuntu 18.04 (Bionic Beaver) dengan Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot, dan ISPConfig 3.1

  1. Panduan Instalasi Ubuntu 18.04 LTS Server (Bionic Beaver) dengan Tangkapan Layar

  2. Cara Menginstal Spamassassin dengan Postfix dan Dovecot di Server Ubuntu/Debian

  3. Cara mengkonfigurasi server email POP3 / IMAP dengan Dovecot di Ubuntu 18.04

  1. VBoxHeadless - Menjalankan Mesin Virtual dengan VirtualBox 5.1 pada Ubuntu 16.04 LTS Server tanpa kepala

  2. Cara Menginstal Server Minimal Ubuntu 18.04 LTS (Bionic Beaver)

  3. Cara Menginstal Lighttpd dengan PHP-FPM dan MySQL di Ubuntu 20.04 LTS