Postfix Virtual Hosting Với LDAP Backend Và Với Dovecot Là Máy Chủ IMAP/POP3 Trên Ubuntu Bionic Beaver 18.04 LTS

theanh

Administrator
Nhân viên
Hướng dẫn này sẽ mô tả cách thiết lập và cấu hình dịch vụ lưu trữ thư ảo với phần phụ trợ LDAP.

Phần mềm chúng tôi sẽ sử dụng trong hướng dẫn này:Postfix(MTA), Dovecot(IMAP / POP3),http://www.postfix.org?utm_source=diendancongnghe.comGnarwlhttp://www.postfix.org?utm_source=diendancongnghe.com(kỳ nghỉ), OpenLDAP(LDAP) vàvMailpanel là giao diện quản lý.

Tùy chọn làhttp://www.postfix.org?utm_source=diendancongnghe.comProftpdhttp://www.postfix.org?utm_source=diendancongnghe.comFTP,Roundcube(webmail) vàMariaDB (SQL backend cho Roundcube).

Cách này hiệu quả với tôi, nhưng tôi không thể đảm bảo rằng cách thiết lập này sẽ hiệu quả với bạn, vì vậy hướng dẫn này không có bất kỳ đảm bảo.

Giả định

Hướng dẫn này giả định các cấu hình sau, nếu cài đặt của bạn khác với hướng dẫn này, hãy thay thế các mục bên dưới bằng cấu hình thực tế của bạn.

Đường dẫn gửi thư (hộp thư):
Mã:
/home/vmail/
Người dùngvmail:
Mã:
UID:1000, GID:1000
Người dùngpostfix:
Mã:
UID: 108, GID:108
Mã định danh cơ sở OpenLDAP:
Mã:
dc=example,dc=tld
Tài khoản quản trị OpenLDAP:
Mã:
cn=admin,dc=example,dc=tld
mã định danh tìm kiếm vMailpanel:
Mã:
o=hosting,dc=example,dc=tld
Một tài khoản chỉ đọc cho cây o=hosting,dc=example,dc=tld:
Mã:
cn=vmail,o=hosting,dc=example,dc=tld
Bạn đang sử dụng root làm người dùng trong hướng dẫn này.

Nếu bạn muốn ví dụ o=maildomains hoặc ou=domains, hãy đảm bảo thay thế o=hosting bằng những gì bạn muốn, đặc biệt là trong acl.ldif. Tệp acl này rất nghiêm ngặt, phamm sẽ không hoạt động chính xác nếu nó không chính xác như mong muốn. Nếu bạn muốn một người dùng chỉ đọc khác với phamm thì hãy thay cn=phamm bằng cn=wat-you ở mọi nơi trong hướng dẫn này.

Hướng dẫn này cũng giả định rằng bạn đã cài đặt và định cấu hình máy chủ Ubuntu theo nhu cầu của mình, có rất nhiều hướng dẫn hay trênHowtoforgeví dụ:

Máy chủ hoàn hảo - Ubuntu 18.04 (Bionic Beaver) với Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot và ISPConfig 3.1

Bạn có thể dừng sau khi cài đặt và định cấu hình Apache2.

Bước 1: Tải vMailpanel​

Tải gói vMailpanel:
Mã:
cd /usr/share
Tải phiên bản vMailpanel mới nhất:
Mã:
git clone https://git.com/wolmfan68/vMailpanel


Được rồi, bây giờ chúng ta có thể bắt đầu.

Bước 2: Cài đặt và cấu hình OpenLDAP​

Cài đặt OpenLDAP và ldap-utils:
Mã:
apt -y install slapd ldap-utils php-ldap
Cấu hình lại slapd để đảm bảo nó phản ánh thiết lập mong muốn của bạn
Mã:
dpkg-reconfigure slapd
Bạn sẽ phải trả lời một số câu hỏi:
Mã:
Bỏ qua cấu hình máy chủ OpenLDAP? Không
Mã:
Tên miền DNS: example.tld ==>đặt tên miền của bạn ở đây
Mã:
Tên tổ chức: example.tld ==> đặt tổ chức của bạn ở đây
Mã:
Mật khẩu quản trị viên: bí mật ==> đặt mật khẩu của bạn
Mã:
Xác nhận mật khẩu: bí mật
Mã:
Cơ sở dữ liệu phụ trợ để sử dụng: MDB
Mã:
Bạn có muốn xóa cơ sở dữ liệu khi slapd bị xóa không? Có
Mã:
Di chuyển cơ sở dữ liệu cũ? Có
Chuyển vào thư mục /etc/ldap/schema:
Mã:
cd /etc/ldap/schema
Sao chép phamm.schema và perversia.net.schema từ gói phamm vào thư mục schema:
Mã:
cp /usr/share/vMailbox/schema/* /etc/ldap/schema.
Bây giờ chúng ta thêm các schema vào openldap.
Mã:
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
Bây giờ chúng ta tạo mục nhập o=hosting và tài khoản vmail.

Sửa đổi văn bản bên dưới theo nhu cầu và mong muốn của bạn và tạo mật khẩu cho tài khoản vmail. Mã băm hiện tại trong tệp này đặt mật khẩu thành chỉ đọc

Để tạo mã băm cho tài khoản vmail, hãy phát lệnh sau:
Mã:
slappasswd -h {MD5}
Nhập mật khẩu mong muốn hai lần và sao chép kết quả vào văn bản bên dưới.
Mã:
nano base.ldif
Nội dung của base.ldif
Mã:
dn: o=hosting,dc=example,dc=tld
Mã:
objectClass: organization
Mã:
objectClass: top
Mã:
o: hosting description: Hosting Organization
Mã:
# Tài khoản chỉ đọc
Mã:
dn: cn=vmail,o=hosting,dc=example,dc=tld
Mã:
objectClass: simpleSecurityObject
Mã:
objectClass: organizationalRole
Mã:
cn: vmail
Mã:
userPassword: {MD5}M267sheb6qc0Ck8WIPOvQA==
Mã:
mô tả: Tài khoản chỉ đọc
Tải dn cơ sở vào cơ sở dữ liệu bằng lệnh sau:
Mã:
ldapmodify -a -D cn=admin,dc=example,dc=tld -W -f base.ldif
Bây giờ chúng ta cần sửa đổi acl để cấp quyền truy cập chính xác cho từng loại người dùng.
Mã:
ldapmodify -Y EXTERNAL -H ldapi:/// -f acl-remove.ldif
Mã:
ldapmodify -Y EXTERNAL -H ldapi:/// -f acl-new.ldif
Bạn có thể kiểm tra acl mới bằng lệnh sau:
Mã:
slapcat -n 0
Kết thúc OpenLDAP cấu hình.

Bước 3: Cài đặt và cấu hình Postfix​

Trước đó, chúng ta cần có vmailngười dùng và thư mục gốc của nó.

Tạo vmailngười dùng và nhóm:
Mã:
useradd vmail
Theo mặc định, nhóm vmailcũng được tạo.

Kiểm tra /etc/passwdđể biết số uid và nhóm thực tế.

Tiếp theo, tạo vmailthư mục và đặt quyền sở hữu cho vmailngười dùng và nhóm.
Mã:
mkdir /home/vmail
mkdir /home/vmail/domains
chown -R vmail:vmail /home/vmail
Chạy lệnh sau để cài đặt Postfix và các ứng dụng cần thiết khác:
Mã:
apt install postfix postfix-ldap
Bạn sẽ được hỏi hai câu hỏi. Trả lời như sau:

Kiểu cấu hình email chung:<--Độc lập
Tên email hệ thống:<-- mail.example.tld

Chúng tôi không cài đặt sasl vì chúng tôi sẽ sử dụng Dovecot LDA và phân phối.

Bây giờ chúng tôi tạo chứng chỉ cho TLS:
Mã:
mkdir /etc/postfix/ssl
cd /etc/postfix/ssl/
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024
Mã:
chmod 600 smtpd.key
openssl req -new -key smtpd.key -out smtpd.csr
Mã:
openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
Mã:
openssl rsa -in smtpd.key -out smtpd.key.unencrypted
Mã:
mv -f smtpd.key.unencrypted smtpd.key
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650
Lưu ý: bạn có thể sao chép tất cả các tệp trong examples/postfix vào thư mục etc/postfix của mình và thực hiện các thay đổi cho phù hợp. Vì lý do hoàn thiện, tôi sẽ cung cấp thiết lập đầy đủ bên dưới.

Bây giờ chúng ta sẽ cấu hình postfix:
Mã:
cd /etc/postfix
Mã:
mv /etc/postfix/main.cf /etc/postfix/main.cf.bck
Mã:
nano /etc/postfix/main.cf
Và dán nội dung sau vào đó. Xin lưu ý rằng cấu hình này cho phép người dùng đã xác thực gửi (chuyển tiếp) thư và cũng cho phép gửi thư cục bộ (ví dụ như gửi đến root, postmaster, ...) đến các bí danh tương ứng nếu chúng được cấu hình.

smtpd_banner = $myhostname ESMTP $mail_name
biff = no

# thêm .domain là công việc của MUA.
append_dot_mydomain = no

# Bỏ ghi chú dòng tiếp theo để tạo cảnh báo "thư bị trì hoãn"
delay_warning_time = 4h

# Tham số 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:${queue_directory}/smtp_scache

myhostname = mail.example.tld
alias_maps = băm:/etc/aliases,
alias_database = băm:/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 = tất cả
inet_protocols = tất cả
#smtp_bind_address = của bạn địa chỉ IP (tùy chọn) ==>bỏ chọn và thay đổi địa chỉ IP cho thiết lập của bạn.
smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
broken_sasl_auth_clients = yes
smtpd_tls_auth_only = no

smtp_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600 giây
tls_random_source = dev:/dev/urandom

home_mailbox = Maildir/

smtpd_recipient_restrictions =
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
reject_rbl_client list.dsbl.org
reject_rbl_client cbl.abuseat.org
reject_rhsbl_sender dsn.fc-ignorant.org

smtpd_data_restrictions =
reject_unauth_pipelining,
reject_multi_recipient_bounce,
permit

smtpd_helo_required = yes

# transport_maps
maildrop_destination_concurrency_limit = 2
maildrop_destination_recipient_limit = 1
gnarwl_destination_concurrency_limit = 1
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.$mydomain, $mydomain

virtual_alias_maps =
ldap:/etc/postfix/ldap-aliases.cf,
ldap:/etc/postfix/ldap-virtualforward.cf,
ldap:/etc/postfix/ldap-accountsmap.cf

# tài khoản ảo để phân phối
virtual_mailbox_base = /home/vmail
virtual_mailbox_maps =
ldap:/etc/postfix/ldap-accounts.cf
virtual_minimum_uid = 1000 ==>Thay đổi thành uid thực tế của người dùng vmail
virtual_uid_maps = static:1000==>Thay đổi thành uid thực tế của người dùng vmail
virtual_gid_maps = static:1000==>Thay đổi thành uid thực tế của người dùng vmail

local_recipient_maps = $alias_maps

recipient_bcc_maps = ldap:/etc/postfix/ldap-vacation.cf
Mã:
nano /etc/postfix/master.cf
Và dán nội dung sau vào đó (thêm phần kết thúc):
Mã:
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}
Bây giờ chúng ta cần viết các tệp ldap-xxx.cf khác nhau
Mã:
nano ldap-accounts.cf
Và dán nội dung sau vào đó:

server_host = localhost
server_port = 389
version = 3
bind = yes
start_tls = no
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 = mailbox
Mã:
nano ldap-accounstmap.cf
Và dán nội dung sau vào đó:

server_host = localhost
server_port = 389
version = 3
bind = yes
start_tls = no
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
Mã:
nano ldap-aliases.cf
Và dán nội dung sau vào đó:

server_host = localhost
server_port = 389
version = 3
bind = yes
start_tls = no
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
Mã:
nano ldap-transport.cf
Và dán nội dung sau vào đó:

server_host = localhost
server_port = 389
version = 3
bind = yes
start_tls = no
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

Và dán nội dung sau vào đó:

server_host = localhost
server_port = 389
version = 3
bind = yes
start_tls = no
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

Và dán nội dung sau vào đó:

server_host = localhost
server_port = 389
version = 3
bind = yes
start_tls = no
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

Kết thúc quá trình thiết lập postfix.

Bước 4: Cài đặt và cấu hình Dovecot​

Mã:
apt install dovecot-imapd dovecot-pop3d dovecot-ldap
Điều này sẽ cài đặt dovecot và tất cả các tệp cần thiết cũng như tạo chứng chỉ SSL chuẩn cho IMAP và POP3.

Đầu tiên, chúng ta chuyển vào thư mục dovecot.

Lưu ý: bạn có thể sao chép tất cả các tệp trong examples/dovecot vào thư mục etc/dovecot và thực hiện các thay đổi cho phù hợp. Để hoàn thiện hơn, tôi sẽ cung cấp thiết lập đầy đủ bên dưới.
Mã:
cd /etc/dovecot
Bây giờ chúng ta cấu hình các tệp cấu hình dovecot khác nhau.
Mã:
nano dovecot-ldap.conf.ext
Và thực hiện các thay đổi sau:

hosts = localhost:389
ldap_version = 3
auth_bind = yes
dn = cn=vmail,o=hosting,dc=example,dc=tld
dnpass = readonly
base = o=hosting,dc=hosting,dc=tld
scope = subtree
deref = never

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
Mã:
cd conf.d
Mã:
vi 10-auth.conf
Và thay đổi phầnMật khẩu và Cơ sở dữ liệu người dùngthành phần này:

#!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
#!include auth-vpopmail.conf.ext
#!include auth-static.conf.ext
Mã:
vi 10-mail.conf
Và thực hiện các thay đổi sau:

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

mail_uid = 1000 ==> thay đổi thành giá trị vmail uid thực tế

mail_gid = 1000 ==> thay đổi thành giá trị vmail gid thực tế

first_valid_uid = 1000==> thay đổi thành giá trị vmail uid thực tế

first_valid_gid = 1000==> thay đổi giá trị này thành giá trị gid vmail thực tế


Mã:
vi 10-master.conf
Và thực hiện các thay đổi sau:

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

# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
}
Mã:
vi 15-lda.conf
Và thực hiện các thay đổi sau:

postmaster_address =[emailprotected]

lda_mailbox_autocreate = yes

Kết thúc quá trình cấu hình Dovecot.

Bước 5: Cài đặt và cấu hình gnarwl​

Chúng ta hãy cài đặt gnarwl:
Mã:
apt install gnarwl
Bây giờ chúng ta hãy cấu hình gnarwl.

Đầu tiên, chúng ta sẽ sao lưu tệp cấu hình gốc và thay thế bằng tệp mới.
Mã:
mv /etc/gnarwl.conf /etc/gnarwl.conf.bck
Bây giờ chúng ta tạo tệp cấu hình mới:
Mã:
vi /etc/gnarwl.conf
Và chèn sau:
Mã:
map_sender $sendermap_receiver $recepientmap_subject $subjectmap_field $begin vacationStartmap_field $end vacationEndmap_field $fullname cnmap_field $deputy vacationForwardmap_field $reply mailserver localhostport 389scope sublogin cn=vmail,o=hosting,dc=example,dc=tldpassword readonlyprotocol 0base dc=example,dc=tldqueryfilter (&(mailAutoreply=$recepient)(vacationActive=TRUE))result vacationInfoblockfiles /var/lib/gnarwl/block/umask 0644blockexpire 48mta /usr/sbin/sendmail -F $recepient -t $sendermaxreceivers 64maxheader 512charset ISO8859-1badheaders /var/lib/gnarwl/badheaders.dbblacklist /var/lib/gnarwl/blacklist.dbforceheader /var/lib/gnarwl/header.txtforcefooter /var/lib/gnarwl/footer.txtrecvheader Đến Ccloglevel 3
Làm cho thư mục gnarwl có thể đọc được đối với người dùng vmail
Mã:
chown -R vmail:vmail /var/lib/gnarwl/
Tiếp theo, chúng ta cần thêm gnarwl transport vào postfix
Mã:
vi /etc/postfix/transport
Chèn nội dung sau:
Mã:
.autoreply gnarwl:
Bây giờ chúng ta cần tạo transport.db
Mã:
postmap /etc/postfix/transport
Kết thúc cấu hình gnarwl.

Bước 6: Cài đặt và cấu hình vMailpanel​

Vì chúng ta đã tải vMailpanel trước đó, nên chúng ta có thể bắt đầu trực tiếp với cấu hình giao diện vMailpanel.
Mã:
chown -R www-data:www-data /usr/share/phamm
cd /usr/share/vMailpanel
Bây giờ chúng ta sẽ cấu hình phamm để sử dụng thực tế.
Mã:
cp config.inc.example.php config.inc.php
Mã:
nano config.inc.php
Thay đổi các tham số kết nối ldap để phù hợp với cấu hình thực tế của bạn.
Mã:
// *==========================*// *=== Cài đặt máy chủ LDAP ===*// *=============================*// Địa chỉ máy chủ (IP hoặc FQDN)define ('LDAP_HOST_NAME','127.0.0.1');// Phiên bản giao thức [2,3]define ('LDAP_PROTOCOL_VERSION','3');// Cổng máy chủdefine ('LDAP_PORT','389');// Containerdefine ('SUFFIX','dc=example,dc=tld');// Admin bind dn (có thể là rootdn)define ('BINDDN','cn=admin,dc=example,dc=tld');// Bộ chứa Phammdefine ('LDAP_BASE','o=hosting,dc=example,dc=tld');
và thay đổi
Mã:
// Tin nhắn chào mừngdefine ('SEND_WELCOME',1);$welcome_msg = '../welcome_message.txt';$welcome_subject = 'Welcome!';# $welcome_sender = 'postmaster@localhost';$welcome_bcc = '[emailprotected]';
Điều này sẽ gửi một tin nhắn chào mừng và một bcc đến tài khoản postmaster của bạn.

Bật plugin fpt và person bằng cách xóa // trong phần plugin. Nếu muốn, bạn cũng có thể bật plugin davical và hoặc jabber, lược đồ cần thiết cho các plugin này đã được cài đặt.

Trong config.inc.php, bạn sẽ tìm thấy:
Mã:
define ('DELETE_ACCOUNT_IMMEDIATELY', false);
Nếu bạn đặt thành true, việc xóa tài khoản hoặc tên miền sẽ có hiệu lực ngay lập tức. Tuy nhiên, hộp thư vật lý không bị xóa (hoặc thư mục tên miền). Để xóa hộp thư vật lý, chúng ta nên sử dụng tập lệnh cleaner.sh. Điều này được mô tả bên dưới.

Bạn có thể chỉnh sửaplugins/mail.xmlđể thay đổi các giá trị mặc định cho SMTP và hạn ngạch, hãy sửa đổi chúng theo nhu cầu của bạn. Mặc định được đặt thành hạn ngạch 1GB.

Bạn có thể chỉnh sửaplugins/ftp.xmlđể thay đổi mặc định cho thư mục ftp (cơ sở) mặc định và hạn ngạch, sửa đổi chúng theo nhu cầu của bạn.

Đừng quên tạo bí danh và hộp thư cho quản trị viên bưu điện, quản trị viên web vì những bí danh này được các viên chức và ISP sử dụng để gửi thư đến trong trường hợp ... Không có những địa chỉ này có thể dẫn đến việc bị đưa vào danh sách đen.

Theo mặc định, các bí danh [emailprotected] và [emailprotected] mặc định là [emailprotected] được tạo.

Bây giờ là tập lệnh dọn dẹp:
Mã:
cp tools/cleaner.sh /home/vmail/cleaner.sh
Thay đổi những mục sau trong cleaner.sh
Mã:
BINDDN="cn=admin,dc=example,dc=tld"
BINDPW="password"
LDAP_BASE="o=hosting,dc=example,dc=tld"
Để phản ánh cài đặt của bạn
Mã:
nano /home/vmail/cleaner.sh
Mã:
crontab -e
Chèn nội dung sau:
Mã:
*/10 * * * * /home/vmail/cleaner.sh
Tập lệnh này sẽ chạy tập lệnh dọn dẹp sau mỗi 10 phút. Bạn có thể thoải mái thay đổi thời gian.

Bây giờ chúng ta sẽ thêm vMailpanel vào Apache
Mã:
nano /etc/apache2/conf-enabled/000-default.conf
Và thêm vào giữa <VirtualHost> </VirtualHost> mục nhập sau đây:
Mã:
Alias /vmailpanel /usr/share/vMailpanel/public
Như vậy là kết thúc quá trình cấu hình vMailpanel.

Bước 7: Cài đặt và cấu hình webmail Roundcube​

Đầu tiên, chúng ta tạo một cơ sở dữ liệu có tên làroundcube:
Mã:
mysqladmin -u root -p create roundcube
Tiếp theo, chúng ta vào MySQL shell:
Mã:
mysql -u root -p
Trên MySQL shell, chúng ta tạo người dùngroundcubevới mật khẩuroundcube_password(thay thế bằng mật khẩu bạn chọn) cóCHỌN, CHÈN, CẬP NHẬT, XÓAquyền trên cơ sở dữ liệuroundcube. Người dùng này sẽ được Postfix và Courier sử dụng để kết nối với cơ sở dữ liệu roundcube:
Mã:
GRANT SELECT, INSERT, UPDATE, DELETE ON roundcube.* TO 'roundcube'@'localhost' IDENTIFIED BY 'roundcube_password';
GRANT SELECT, INSERT, UPDATE, DELETE ON roundcube.* TO 'roundcube'@'localhost.localdomain' IDENTIFIED BY 'roundcube_password';
FLUSH PRIVILEGES;
Bây giờ chúng ta tải xuống và cài đặt Roundcube:
Mã:
cd/usr/src
wget https://github.com/roundcube/roundcubemail/releases/download/1.3.6/roundcubemail-1.3.6.tar.gz
Mã:
tar xvzf roundcubemail-1.3.6.tar.gz
Mã:
mv roundcubemail-1.3.6 /var/www/roundcube
Mã:
chown -R www-data:www-data /var/www/roundcube
Mã:
cd /var/www/roundcube
Luôn kiểm tra phiên bản mới nhất của Roundcube và tải xuống phiên bản đó rồi sửa đổi các lệnh ở trên thành phiên bản Roundcube mà bạn đã tải xuống.

https://roundcube.net/download/

Bây giờ chúng ta tải các bảng sql vào cơ sở dữ liệu mà chúng ta đã tạo trước đó:
Mã:
mysql -u roundcube -p roundcube < SQL/mysql.initial.sql
Bây giờ chúng ta chỉnh sửa cấu hình Roundcube:
Mã:
cp config/config.inc.php.sample config/config.inc.php
Thiết lập cấu hình cơ sở dữ liệu:
Mã:
nano config/config.inc.php
Thay đổi dòng sau thành cấu hình cơ sở dữ liệu:
Mã:
$rcmail_config['db_dsnw'] = 'mysql://roundcube:roundcube_password@localhost/roundcube';
Và thay đổi dòng sau

Từ:
Mã:
// Danh sách các plugin đang hoạt động (trong thư mục plugins/)$config['plugins'] = array(
Mã:
'archive',
Mã:
'zipdownload',
Đến:
Mã:
// Danh sách các plugin đang hoạt động (trong thư mục plugins/)$config['plugins'] = array(
Mã:
'archive',
Mã:
'zipdownload',
Mã:
'password',
Mã:
'vacation',
Thay đổi:
Mã:
chars.$rcmail_config['des_key'] = 'rcmail-!24ByteDESkey*Str';
Đến:
Mã:
chars.$rcmail_config['des_key'] = 'your-own-24-digitkeystring';
Thay đổi:
Mã:
$rcmail_config['default_host'] = '';
Đến:
Mã:
$rcmail_config['default_host'] = 'localhost';
Thay đổi:
Mã:
$rcmail_config['smtp_server'] = '';
Đến
Mã:
$rcmail_config['smtp_server'] = 'localhost';
Cấu hình cho plugin mật khẩu:
Mã:
cp plugins/password/config.inc.php.dist plugins/password/config.inc.php
Chỉnh sửa cấu hình:
Mã:
nanoplugins/password/config.inc.php
Thay đổi các mục sau

Từ:
Mã:
$rcmail_config['password_driver'] = 'sql';
Đến:
Mã:
$rcmail_config['password_driver'] = 'ldap';
Từ:
Mã:
// Tùy chọn trình điều khiển LDAP// -------------------// Tên máy chủ LDAP để kết nối đến.// Bạn có thể cung cấp một hoặc nhiều máy chủ trong một mảng, trong trường hợp đó, các máy chủ được thử từ trái sang phải.// Ví dụ: array('ldap1.exemple.com', 'ldap2.exemple.com');// Mặc định: 'localhost'$rcmail_config['password_ldap_host'] = 'localhost';// Cổng máy chủ LDAP để kết nối đến// Mặc định: '389'$rcmail_config['password_ldap_port'] = '389';// TLS được khởi động sau khi kết nối// Khuyến nghị sử dụng TLS để sửa đổi mật khẩu.// Mặc định: false$rcmail_config['password_ldap_starttls'] = false;// Phiên bản LDAP// Mặc định: '3'$rcmail_config['password_ldap_version'] = '3';// Tên cơ sở LDAP (thư mục gốc)// Ví dụ: 'dc=exemple,dc=com'$rcmail_config['password_ldap_basedn'] = 'dc=exemple,dc=com';// Phương thức kết nối LDAP// Có hai phương thức kết nối để thay đổi mật khẩu LDAP của người dùng.// 'user': sử dụng thông tin xác thực người dùng (khuyến khích, yêu cầu password_confirm_current=true)// 'admin': sử dụng thông tin xác thực quản trị viên (chế độ này yêu cầu password_ldap_adminDN và password_ldap_adminPW)// Mặc định: 'user'$rcmail_config['password_ldap_method'] = 'user';// LDAP Admin DN// Chỉ sử dụng ở chế độ kết nối admin// Mặc định: null$rcmail_config['password_ldap_adminDN'] = null;// LDAP Admin Password// Chỉ sử dụng ở chế độ kết nối admin// Mặc định: null$rcmail_config['password_ldap_adminPW'] = null;// Mặt nạ DN của người dùng LDAP// DN của người dùng là bắt buộc và vì chúng ta chỉ có thông tin đăng nhập của người dùng đó,// chúng ta cần tạo lại DN của người dùng đó bằng mặt nạ// '%login' sẽ được thay thế bằng thông tin đăng nhập của người dùng roundcube hiện tại// '%name' sẽ được thay thế bằng phần tên của người dùng roundcube hiện tại// '%domain' sẽ được thay thế bằng phần tên miền của người dùng roundcube hiện tại// Ví dụ: 'uid=%login,ou=people,dc=exemple,dc=com'$rcmail_config['password_ldap_userDN_mask'] = 'uid=%login,ou=people,dc=exemple,dc=com';// Kiểu băm mật khẩu LDAP// Kiểu mã hóa LDAP chuẩn phải là một trong các kiểu sau: crypt,// ext_des, md5crypt, blowfish, md5, sha, smd5, ssh hoặc clear.// Xin lưu ý rằng hầu hết các kiểu mã hóa đều yêu cầu thư viện bên ngoài// để được đưa vào cài đặt PHP của bạn, hãy xem hàm hashPassword trong drivers/ldap.php để biết thêm thông tin.// Mặc định: 'crypt'$rcmail_config['password_ldap_encodage'] = 'crypt';// Thuộc tính mật khẩu LDAP// Tên thuộc tính ldap được sử dụng để lưu trữ mật khẩu người dùng// Mặc định: 'userPassword'$rcmail_config['password_ldap_pwattr'] = 'userPassword';// LDAP password force replace// LDAP force replace trong trường hợp ACL chỉ cho phép thay thế chứ không cho phép đọc// Xem http://pear.php.net/package/Net_LDAP2/docs/latest/Net_LDAP2/Net_LDAP2_Entry.html#methodreplace// Mặc định: true$rcmail_config['password_ldap_force_replace'] = true;
Đến:
Mã:
$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'] = 'người dùng';$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;
Bây giờ chúng ta sẽ tải xuống và cài đặt plugin vacation:
Mã:
cd /usr/src
wgethttps://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
Bây giờ chúng ta chỉnh sửa cấu hình và thay đổi:
Mã:
nano plugins/vacation/config.inc.php
Thay đổi:
Mã:
$rcmail_config['vacation_gui_vacationsubject'] = TRUE;
Đến:
Mã:
$rcmail_config['vacation_gui_vacationsubject'] = SAI;
Thay đổi:
Mã:
$rcmail_config['vacation_driver'] = 'sql';
Thành:
Mã:
$rcmail_config['vacation_driver'] = 'ldap';
Thay đổi:
Mã:
// DN cơ sở$rcmail_config['vacation_ldap_base'] = 'dc=ldap,dc=my,dc=domain';// DN liên kết$rcmail_config['vacation_ldap_binddn'] ='cn=user,dc=ldap,dc=my,dc=domain';// Liên kết mật khẩu$rcmail_config['vacation_ldap_bindpw'] = 'pa$$w0rd';
Đến:
Mã:
// DN cơ sở$rcmail_config['vacation_ldap_base'] = 'o=hosting,dc=example,dc=tld';// Liên kết DN$rcmail_config['vacation_ldap_binddn'] = 'cn=admin,dc=example,dc=tld';// Liên kết mật khẩu$rcmail_config['vacation_ldap_bindpw'] = 'yourpassword';
Thay đổi:
Mã:
// Bộ lọc tìm kiếm để đọc dữ liệu$rcmail_config['vacation_ldap_search_filter'] = '(objectClass=mailAccount)';// Tìm kiếm thuộc tính để đọc dữ liệu$rcmail_config['vacation_ldap_search_attrs'] = mảng ('vacationActive', 'vacationInfo');// mảng DN để sử dụng cho các hoạt động sửa đổi cần thiết để ghi dữ liệu.$rcmail_config['vacation_ldap_modify_dns'] = mảng ('cn=%email_local,ou=Hộp thư,dc=%email_domain,ou=MailServer,dc=ldap,dc=my,dc=domain');
Đến:
Mã:
// Cơ sở tìm kiếm để đọc dữ liệu$rcmail_config['vacation_ldap_search_base'] ='mail=%username,vd=%email_domain,o=hosting,dc=example,dc=tld';// Bộ lọc tìm kiếm để đọc dữ liệu$rcmail_config['vacation_ldap_search_filter'] = '(objectClass=VirtualMailAccount)';// Thuộc tính tìm kiếm để đọc dữ liệu$rcmail_config['vacation_ldap_search_attrs'] = mảng ('vacationActive', 'vacationInfo');// mảng DN dùng để sửa đổi các hoạt động cần thiết để ghi dữ liệu.$rcmail_config['vacation_ldap_modify_dns'] = array ('mail=%username,vd=%email_domain,o=hosting,dc=example,dc=tld');
Chúng ta phải thay đổi gốc tài liệu trong cấu hình máy chủ Apche2 để có thể truy cập Roundcube.
Mã:
nano /etc/apache2/sites-enabled/000-default.conf
Và thay đổi từ:
Mã:
DocumentRoot /var/www/html
Thành:
Mã:
DocumentRoot /var/www/
Như vậy là kết thúc quá trình cấu hình cho Roundcube.

Bước 8: Cài đặt và cấu hình proftpd​

Đầu tiên, chúng ta sẽ cài đặt proftpd và các yêu cầu của nó:
Mã:
apt install proftpd proftpd-mod-ldap
Tùy thuộc vào tải của bạn, bạn có thể quyết định giữa stand alone và inet.d.

Lưu ý: Bạn có thể sao chép các tệp cấu hình từ examples/proftpd sang /etc/proftpd nhưng để rõ ràng hơn, tôi sẽ phác thảo tất cả các bước cấu hình.

Chỉnh sửa/etc/proftpd/proftpd.conf:
Mã:
nano /etc/proftpd/proftpd.conf
Và thay đổi từ:
Mã:
# Sử dụng lệnh này để giam cầm tất cả người dùng trong nhà của họ# DefaultRoot ~
Đến:
Mã:
# Sử dụng lệnh này để giam cầm tất cả người dùng trong nhà của họDefaultRoot
Và thay đổi từ:
Mã:
#RequireValidShell tắt
Đến:
Mã:
RequireValidShell tắt
Và thay đổi:
Mã:
# Khung xác thực thay thế
#
# Bao gồm /etc/proftpd/ldap.conf
#Bao gồm /etc/proftpd/sql.conf
Đến:
Mã:
# Khung xác thực thay thế
#
Bao gồm /etc/proftpd/ldap.conf
#Bao gồm /etc/proftpd/sql.conf
 ~
Bây giờ hãy chỉnh sửa/etc/proftpd/modules.conf:
Mã:
nano /etc/proftpd/modules.conf
Và thay đổi từ:
Mã:
# Cài đặt proftpd-mod-ldap để sử dụng this#LoadModule mod_ldap.c
Đến:
Mã:
# Cài đặt proftpd-mod-ldap để sử dụngLoadModule mod_ldap.c
Và từ:
Mã:
# Cài đặt proftpd-mod-ldap để sử dụng# LoadModule mod_quotatab_ldap.c
Đến:
Mã:
# Cài đặt proftpd-mod-ldap để sử dụngLoadModule mod_quotatab_ldap.c
Không chỉnh sửa/etc/proftpd/ldap.confvà đặt như sau:
Mã:
#
#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 "chỉ đọc"
LDAPUsers "o=hosting,dc=example,dc=tld" "(&(uid=%v)(objectclass=posixAccount))"
LDAPDefaultGID 33
LDAPDefaultUID 33
LDAPForceDefaultGID True
LDAPForceDefaultUID True
Các lệnh sau đặt người dùng mặc định thành www-data phù hợp với tôi, bạn có thể thay đổi các giá trị này để phù hợp với thiết lập của mình hoặc bỏ qua chúng để sử dụng uid/gid đăng nhập.
Mã:
LDAPDefaultGID 33
LDAPDefaultUID 33
LDAPForceDefaultGID True
LDAPForceDefaultUID True
33 Là uid/gid của thiết lập thử nghiệm của tôi, nó có thể khác trên thiết lập của bạn.

Như vậy là kết thúc quá trình cài đặt proftpd.

Bước 9: Hoàn tất cùng nhau​

Phát hành các lệnh sau để khởi động lại tất cả các dịch vụ:
Mã:
service slapd restart
Mã:
service postfix restart
Mã:
service dovecot restart
Mã:
service proftpdrestart
Mã:
service apache2 restart
Bây giờ bạn có thể vào phamm và bắt đầu thêm tên miền và người dùng email.

Thưởng thức.

Lưu ý: hãy thông báo cho tôi về bất kỳ lỗi hoặc sự cố nào với hướng dẫn này để tôi có thể cải thiện và sửa đổi hướng dẫn này.

Sử dụng chủ đề này trong diễn đàn:


Tôi đã đăng ký chủ đề này nên tôi sẽ nhận được thông báo về các bài đăng mới trong chủ đề này.
 
Back
Bên trên