在Debian 9上使用PostfixAdmin設置郵件服務器

 

在本教程中,我們將向您展示如何使用PostfixAdmin在郵件服務器上設置郵件服務器。 Debian 9 VPS。 我們將使用Postfix,Dovecot和MariaDB配置郵件服務器。

PostfixAdmin是Postfix使用的數據庫的基於Web的GUI。 您可以使用Postfixadmin輕鬆管理郵件服務器,例如添加和刪除域,電子郵件帳戶,別名和配額。 基於Web的GUI使這些功能和特性更易於訪問,並允許您在遠離終端的同時更改和訪問信息。 讓我們開始吧。

先決條件:

  • a Debian 9 VPS
  • 具有root用戶特權的SSH訪問,或訪問具有sudo特權的用戶

步驟1:通過SSH登錄並更新系統

登錄到您的Debian 9 VPS:

#ssh [受電子郵件保護] _Address -p端口號

您可以使用以下命令檢查您的服務器上是否安裝了正確的Debian版本:

#lsb_release -a

你應該得到這個輸出:

經銷商ID:Debian描述:Debian GNU / Linux 9.9(Stretch)發布:9.9代號:stretch

然後,運行以下命令以確保服務器上所有已安裝的軟件包都更新為其最新的可用版本:

#apt更新&& apt升級

步驟2:建立系統使用者

出於安全原因,我們將創建一個新的系統用戶,他將成為所有郵箱的所有者。

#useradd -r -u 150 -g郵件-d / var / vmail -s / sbin / nologin -c“虛擬郵件用戶” vmail#mkdir -p / var / vmail#chmod -R 770 / var / vmail#chown- R vmail:mail / var / vmail

步驟3:安裝MariaDB服務器

PostfixAdmin支持MySQL / MariaDB,PostgreSQL和SQLite數據庫系統。 在本教程中,我們將使用MySQL / MariaDB作為數據庫存儲引擎。

#apt安裝mariadb-server

要啟動MariaDB服務並使其在啟動時啟動,請執行以下命令:

#systemctl啟動mariadb#systemctl啟用mariadb

現在,如果您不想擁有MySQL根密碼,則可以跳過以下步驟。

#mysql_secure_installation

出現提示時,請按照指南迴答以下問題。

輸入當前的root密碼(不輸入任何密碼):由於沒有默認密碼,因此只需按[Enter]鍵即可設置root密碼? [是/否]:是新密碼:輸入密碼重新輸入新密碼:重複密碼刪除匿名用戶? [是/否]:是禁止遠程root登錄? [是/否]:是刪除測試數據庫並訪問它嗎? [是/否]:是現在重新加載特權表? [是/否]:是

如果執行上述步驟,那麼您將為MySQL超級用戶設置新密碼。

接下來,運行此命令以訪問MySQL Shell。

#mysql -u root -p

如果運行安全安裝腳本,請記住輸入您的root密碼。

讓我們繼續為PostfixAdmin創建數據庫:

MariaDB [[無]]> CREATE DATABASE postfixadmin; MariaDB [(無)]>將所有特權授予postfixadmin。*到'postfixadmin'@'localhost',由'M0d1fyth15'標識; MariaDB [(無)]>沖洗特權; MariaDB [(無)]> q

確保將數據庫用戶的密碼替換為一個好的唯一密碼。

步驟4:安裝PHP和所有必要的PHP模塊

這是

易於安裝apache2 php php-mbstring php-imap php-mysql libapache2-mod-php7.0

步驟5:安裝Postfix

使用以下命令安裝Postfix:

#apt安裝postfix-mysql


選擇“ Internet網站”,然後單擊“確定”繼續。

系統將要求您提供系統郵件名稱,請確保該名稱與您的主機名相同。

安裝完成後,我們需要創建配置文件:

#mkdir -p / etc / postfix / sql /

從這裡,將創建幾個配置文件。 確保將此處所有與所需值不同的值替換為所有值,否則您的配置可能無法正常工作。

#nano /etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf
用戶= postfixadmin密碼= M0d1fyth15主機=本地主機dbname = postfixadmin查詢= SELECT goto FROM別名,alias_domain WHERE alias_domain.alias_domain ='%d'和alias.address = CONCAT('@',alias_domain.target_domain)AND alias.active = 1 AND alias_domain.active ='1'
#nano /etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf
用戶= postfixadmin密碼= M0d1fyth15主機=本地主機dbname = postfixadmin查詢=從郵箱,alias_domain中選擇maildir WHERE alias_domain.alias_domain ='%d'和mailbox.username = CONCAT('%u','@',alias_domain.target_domain)AND Mailbox.active = 1 AND alias_domain.active ='1'
#nano /etc/postfix/sql/mysql_virtual_alias_domain_maps.cf
用戶= postfixadmin密碼= M0d1fyth15主機=本地主機dbname = postfixadmin查詢= SELECT goto FROM別名,alias_domain WHERE alias_domain.alias_domain ='%d'和alias.address = CONCAT('%u','@',alias_domain.target_domain)AND alias.active = 1 AND alias_domain.active ='1'
#nano /etc/postfix/sql/mysql_virtual_alias_maps.cf
用戶= postfixadmin密碼= M0d1fyth15主機=本地主機dbname = postfixadmin查詢= SELECT goto FROM別名WHERE地址='%s'AND active ='1'
#nano /etc/postfix/sql/mysql_virtual_domains_maps.cf
用戶= postfixadmin密碼= M0d1fyth15主機=本地主機dbname = postfixadmin查詢=從域中選擇域WHERE域='%s'AND active ='1'
#nano /etc/postfix/sql/mysql_virtual_mailbox_limit_maps.cf
用戶= postfixadmin密碼= M0d1fyth15主機=本地主機dbname = postfixadmin查詢=從郵箱中選擇配額WHERE用戶名='%s'AND活躍='1'
#nano /etc/postfix/sql/mysql_virtual_mailbox_maps.cf
用戶= postfixadmin密碼= M0d1fyth15主機=本地主機dbname = postfixadmin查詢=從郵箱WHERE用戶名='%s'和active ='1'中選擇maildir

在上面的配置文件中,我們使用“ m0d1fyth15”作為密碼,請更改為您自己的密碼。

現在,讓我們編輯 main.cf 通過調用以下命令創建文件:

postconf -e“ myhostname = $(主機名-f)” postconf -e“ virtual_mailbox_domains =代理服務器:mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf” postconf -e“ virtual_alias_maps =代理服務器:mysql:/ etc / postfix / sql /mysql_virtual_alias_maps.cf,代理:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf,代理:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf” postconf -e“ virtual_mailbox_maps =代理:mysql // etc sql / mysql_virtual_mailbox_maps.cf,代理:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf“ postconf -e” smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem“ postconf -e” smtpd_ /ssl/private/ssl-cert-snakeoil.key“ postconf -e” smtpd_use_tls = yes“ postconf -e” smtpd_tls_auth_only = yes“ postconf -e” smtpd_sasl_type = dovecot“ postconf -e” smtpd_sasl_path = private / auth“ postconf- “ smtpd_sasl_auth_enable =是” postconf -e“ smtpd_recipient_restrictions = allow_sasl_authenticated,permit_mynetworks,reject_unauth_destin ation“ postconf -e” mydestination = localhost“ postconf -e” mynetworks = 127.0.0.0/8“ postconf -e” inet_protocols = ipv4“ postconf -e” inet_interfaces = all“ postconf -e” virtual_transport = lmtp:unix:private / dovecot-lmtp”

打開 master.cf 文件,找到 submission inet nsmtps inet n 部分和編輯如下:

#納米/etc/postfix/master.cf
smtp inet n-y--smtpd #smtp inet n-y-1個後期#smtpd pass--y--smtpd #dnsblog unix--y-0 dnsblog #tlsproxy unix--y-0 tlsproxy提交inet n-y- -  smtpd的-o syslog_name =後綴/ -o提交= smtpd_tls_security_level加密-o smtpd_sasl_auth_enable = YES#-o smtpd_reject_unlisted_recipient =無#-o smtpd_client_restrictions = $ mua_client_restrictions#-o smtpd_helo_restrictions = $ mua_helo_restrictions#-o smtpd_sender_restrictions = $ mua_sender_restrictions#-o smtpd_recipient_restrictions =#-o smtpd_relay_restrictions = permit_sasl_authenticated,拒絕-o smtpd_client_restrictions = permit_sasl_authenticated,拒絕-o milter_macro_daemon_name = ORIGINALING smtps inet n-y--smtpdy = o -sps_t_t = s -ps_t_t_able_auth_t_s_t_t_s_t_t_s_t_s_t_t_s_t_t_s_t_t_t_s_t_able_s_t_t_s_t_t_s_t_s_t smtpd_reject_unlisted_recipient =否-o smtpd_client_restrictions = permit_sasl_authenticated,拒絕#-o smtpd_client_restrictions = $ mua_client_restrictions#-o smtpd_helo_restrictions = $ mua_hel o_restrictions#-o smtpd_sender_restrictions = $ mua_sender_restrictions#-o smtpd_recipient_restrictions =#-o smtpd_relay_restrictions = permit_sasl_authenticated,拒絕-o milter_macro_daemon_name = ORIGINATING

啟用並重新啟動Postfix服務:

#systemctl啟用後綴#systemctl重新啟動後綴

步驟6:安裝Dovecot

使用以下命令安裝Dovecot:

#apt安裝dovecot-mysql

打開/etc/dovecot/conf.d/10-mail.conf文件並更改以下值:

#nano /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:/ var / vmail /%d /%n mail_privileged_group = mail mail_uid = vmail mail_gid = mail first_valid_uid = 150 last_valid_uid = 150

打開/etc/dovecot/conf.d/10-auth.conf文件並更改以下值:

#nano /etc/dovecot/conf.d/10-auth.conf
auth_mechanisms =普通登錄#!include auth-system.conf.ext!include auth-sql.conf.ext

編輯 dovecot-sql.conf.ext 文件,然後添加以下行:

#nano /etc/dovecot/dovecot-sql.conf.ext
驅動程序= mysql connect =主機=本地主機dbname = postfixadmin用戶= postfixadmin密碼= M0d1fyth15 default_pass_scheme = MD5-CRYPT password_query =選擇用戶名作為用戶名,密碼,'/ var / vmail /%d /%n'作為userdb_home,'maildir:/ var / vmail /%d /%n'作為userdb_mail,150作為userdb_uid,8作為userdb_gid FROM郵箱WHERE username ='%u'AND active ='1'user_query = SELECT'/ var / vmail /%d /%u'作為家,'maildir:/ var / vmail /%d /%u'作為郵件,150 AS uid,8 AS gid,concat('dirsize:storage =',配額)AS配額FROM郵箱WHERE用戶名='%u' AND活動='1'

切記在這裡也要替換密碼以及其他任何不同的值。

在/etc/dovecot/conf.d/10-ssl.conf文件中,啟用SSL支持:

#納米/etc/dovecot/conf.d/10-ssl.conf
ssl =是

打開/etc/dovecot/conf.d/15-lda.conf文件並設置 postmaster_address 電子郵件地址。

#納米/etc/dovecot/conf.d/15-lda.conf
postmaster_address = [受電子郵件保護]

打開/etc/dovecot/conf.d/10-master.conf文件,找到服務lmtp部分並將其更改為以下內容:

#nano /etc/dovecot/conf.d/10-master.conf
服務lmtp {unix_listener / var / spool / postfix / private / dovecot-lmtp {模式= 0600用戶=後綴組=後綴}}

找到服務身份驗證部分並將其更改為:

服務驗證{unix_listener / var / spool / postfix / private / auth {模式= 0666用戶=後綴組=後綴} unix_listener auth-userdb {模式= 0600用戶= vmail}用戶= dovecot}

將服務認證部分更改為以下內容:

服務授權工作者{用戶= vmail}

設置權限:

#chown -R vmail:dovecot / etc / dovecot#chmod -R o-rwx / etc / dovecot

啟用並重新啟動Dovecot服務

#systemctl啟用dovecot#systemctl重新啟動dovecot

步驟7:安裝PostfixAdmin

在這一步中,我們將從Github下載PostfixAdmin並將其存儲在 /opt 目錄。

#apt install git#cd / opt#git clone https://github.com/postfixadmin/postfixadmin.git#ln -s / opt / postfixadmin / public / / var / www / html / mailadmin

將這些行插入/opt/postfixadmin/config.local.php

#nano /opt/postfixadmin/config.local.php
#mkdir / opt / postfixadmin / templates_c#chown -R www-data:/ opt / postfixadmin

連接到http://1.2.3.4/mailadmin/setup.php,並確保將1.2.3.4替換為服務器的實際IP地址。 如果一切正常,請向下滾動並創建設置密碼。

單擊generate hash,您將看到以下內容:

您需要粘貼 setup_password 散列到/opt/postfixadmin/config.local.php的圖片,如圖所示

保存文件,然後您可以返回到設置頁面以創建PostfixAdmin管理員用戶。 該頁面中的設置密碼與您在上一步中使用的密碼相同-根據需要填充其他空白,然後單擊“添加管理員”按鈕。

現在,您可以轉到 http://1.2.3.4/mailadmin/login.php 在其中添加您的域並創建電子郵件地址。

而已! 現在,您已經設置了PostfixAdmin並在Debian 9服務器上運行。