GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS7でPostfixAdminとMariaDBを使用してメールサーバーをセットアップする

このガイドでは、CentOS VPSでPostfixAdmin、Postfix、Dovecot、MariaDB、SpamAssasinを使用してメールサーバーをセットアップおよび構成する方法について説明します。 PostfixAdminはPHPベースのWebフロントエンドであり、Postfixメールトランスポートエージェントの仮想ドメインとユーザーを管理できます。このガイドは他のLinuxVPSシステムでも機能するはずですが、CentOS7VPS用にテストおよび作成されています。

Ubuntu VPSを使用している場合は、チュートリアルに従って、Ubuntu 16.04 VPSでPostfix、Dovecot、Spamassassin、SQLite、PostfixAdminを使用してメールサーバーをセットアップします

MariaDBの代わりにSQLiteを使用する場合は、チュートリアルに従って、CentoOS 7 VPSでPostfix、Dovecot、Spamassassin、SQLite、PostfixAdminを使用してメールサーバーをセットアップします

1。システムを更新し、必要なパッケージをインストールします

yum update && yum install wget nano

2。システムユーザーを作成する

セキュリティ上の理由から、すべてのメールボックスの所有者となる新しいシステムユーザーを作成します。

useradd -r -u 150 -g mail -d /var/vmail -s /sbin/nologin -c "Virtual Mail User" vmail
mkdir -p /var/vmail
chmod -R 770 /var/vmail
chown -R vmail:mail /var/vmail

3。 MariaDBをインストールする

MariaDB5.5はデフォルトのCentOS7リポジトリに同梱されており、インストールするには次のコマンドを実行するだけです。

yum install mariadb-server

MariaDBサービスを開始し、起動時に開始できるようにするには、次のコマンドを実行します。

systemctl start mariadb.service
systemctl enable mariadb.service

次のコマンドを実行して、MariaDBのインストールを保護します。

mysql_secure_installation

次に、postfixadminHQインスタンスのデータベースを作成する必要があります。

mysql -uroot -p
MariaDB [(none)]> CREATE DATABASE postfixadmin;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON postfixadmin.* TO 'postfixadmin'@'localhost' IDENTIFIED BY 'strong_password';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> \q

4。 PHPと必要なすべてのPHPモジュールをインストールします

CentOS 7にはPHPバージョン5.4が付属しています。PHPと必要なモジュールをインストールするには、次のコマンドを実行します。

yum install php php-mysql php-imap php-mbstring php-common

Apacheがインストールされていない場合は、次のコマンドを使用してインストールします。

yum install httpd

5。 PostfixAdminをインストールします

PostfixAdminの最新バージョンであるバージョン3は、MySQL / MariaDB、PostgreSQL、およびSQLiteデータベースをサポートしています。このガイドでは、MariaDBを使用します。
SalesforceからPostfixAdminアーカイブをダウンロードし、/ var / www /html/ディレクトリに抽出します。

wget -q -O - "https://downloads.sourceforge.net/project/postfixadmin/postfixadmin/postfixadmin-3.0.2/postfixadmin-3.0.2.tar.gz" | tar -xzf - -C /var/www/html

メール構成ファイルを開き、次の値を編集します。

nano /var/www/html/postfixadmin-3.0.2/config.inc.php
$CONF['configured'] = true;
$CONF['database_type'] = 'mysqli';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfixadmin';
$CONF['database_password'] = 'strong_password';
$CONF['database_name'] = 'postfixadmin';

$CONF['domain_path'] = 'NO';
$CONF['domain_in_mailbox'] = 'YES';
>
chown -R apache: /var/www/html/postfixadmin-3.0.2

データベースにデータを入力するには、https://Your_IP_Address/postfixadmin-3.0.2/setup.phpにアクセスします。 次のように表示されます。
Testing database connection - OK - mysqli://postfixadmin:xxxxx@localhost/postfixadmin
Everything seems fine... attempting to create/update database structure

新しい管理者ユーザーを作成します:

bash /var/www/html/postfixadmin-3.0.2/scripts/postfixadmin-cli admin add admin@your_domain_name.com --password strong_password22 --password2 strong_password22 --superadmin 1 --active 1

6。 postfixをインストールして設定する

postfixをインストールするには、次のコマンドを実行します:

yum install postfix

インストールが完了したら、構成ファイルを作成する必要があります:

mkdir -p /etc/postfix/sql/
nano /etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf
user = postfixadmin
password = strong_password
hosts = localhost
dbname = postfixadmin
query  = SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' and 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
user = postfixadmin
password = strong_password
hosts = localhost
dbname = postfixadmin
query = SELECT maildir FROM mailbox,alias_domain WHERE alias_domain.alias_domain = '%d' and 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
user = postfixadmin
password = strong_password
hosts = localhost
dbname = postfixadmin
query = SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' and 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
user = postfixadmin
password = strong_password
hosts = localhost
dbname = postfixadmin
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'
#expansion_limit = 100
nano /etc/postfix/sql/mysql_virtual_domains_maps.cf
user = postfixadmin
password = strong_password
hosts = localhost
dbname = postfixadmin
query          = SELECT domain FROM domain WHERE domain='%s' AND active = '1'
#query          = SELECT domain FROM domain WHERE domain='%s'
#optional query to use when relaying for backup MX
#query           = SELECT domain FROM domain WHERE domain='%s' AND backupmx = '0' AND active = '1'
#expansion_limit = 100
nano /etc/postfix/sql/mysql_virtual_mailbox_limit_maps.cf
user = postfixadmin
password = strong_password
hosts = localhost
dbname = postfixadmin
query = SELECT quota FROM mailbox WHERE username='%s' AND active = '1'
nano /etc/postfix/sql/mysql_virtual_mailbox_maps.cf
user = postfixadmin
password = strong_password
hosts = localhost
dbname = postfixadmin
query           = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1'
#expansion_limit = 100

[ecko_alert color =” blue”]どこかに行き詰まりましたか?私たちからVPSを入手してください。そうすれば、これらすべてを無料で行うことができます。メールサーバーを完全にセットアップして構成します。 [/ ecko_alert]

main.cfを編集します ファイル:

postconf -e "myhostname = $(hostname -f)"
 
postconf -e "virtual_mailbox_domains = proxy:mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf"
postconf -e "virtual_alias_maps = proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf, proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf, proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf"
postconf -e "virtual_mailbox_maps = proxy:mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf, proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf"
 
postconf -e "smtpd_tls_cert_file = /etc/pki/tls/certs/localhost.crt"
postconf -e "smtpd_tls_key_file = /etc/pki/tls/private/localhost.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 -e "smtpd_sasl_auth_enable = yes"
postconf -e "smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination"
 
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 nを見つけます およびsmtps inet n セクションを作成し、次のように編集します:

nano /etc/postfix/master.cf
submission inet n       -       n       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_reject_unlisted_recipient=no
#  -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,reject
  -o milter_macro_daemon_name=ORIGINATING
smtps     inet  n       -       n       -       -       smtpd
  -o syslog_name=postfix/smtps
#  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_reject_unlisted_recipient=no
#  -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,reject
  -o milter_macro_daemon_name=ORIGINATING

postfixサービスを有効にする

systemctl enable postfix
systemctl restart postfix

7。 Dovecotのインストールと構成

次のコマンドを使用して、MySQLをサポートするdovecotをインストールします。

yum install dovecot 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 = plain login
#!include auth-system.conf.ext
!include auth-sql.conf.ext

新しいdovecot-sql.conf.extを作成します ファイル:

nano /etc/dovecot/dovecot-sql.conf.ext
driver = mysql
connect = host=localhost dbname=postfixadmin user=postfixadmin password=strong_password
default_pass_scheme = MD5-CRYPT
password_query = SELECT username as user, password, '/var/vmail/%d/%n' as userdb_home, 'maildir:/var/vmail/%d/%n' as userdb_mail, 150 as userdb_uid, 8 as userdb_gid FROM mailbox WHERE username = '%u' AND active = '1'
user_query = SELECT '/var/vmail/%d/%u' as home, 'maildir:/var/vmail/%d/%u' as mail, 150 AS uid, 8 AS gid, concat('dirsize:storage=',  quota) AS quota FROM mailbox WHERE username = '%u' AND active = '1'

/etc/dovecot/conf.d/10-ssl.conf内 ファイルはSSLサポートを有効にします:

ssl = yes

/etc/dovecot/conf.d/15-lda.confを開きます ファイルを作成し、postmaster_addressを設定します メールアドレス。

postmaster_address = postmaster@your_domain_name.com

/etc/dovecot/conf.d/10-master.confを開きます ファイルで、サービスlmtpセクションを見つけて、次のように変更します。

service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    mode = 0600
    user = postfix
    group = postfix
  }
}

サービス認証セクションを見つけて、次のように変更します。

service auth {
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
    user = postfix
    group = postfix
  }
  unix_listener auth-userdb {
    mode = 0600
    user = vmail
    #group = vmail
  }
  user = dovecot
}

serviceauth-workerセクションを次のように変更します。

service auth-worker {
  user = vmail
}

権限を設定します:

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

dovecotサービスを有効にして再起動します

systemctl enable dovecot 
systemctl restart dovecot 

8。 Spamassassinをインストールして構成する

次のコマンドを使用してspamassassinをインストールします:

yum install spamassassin

spamassassinシステムユーザーを作成します:

groupadd spamd
useradd -g spamd -s /bin/false -d /var/log/spamassassin spamd
chown spamd:spamd /var/log/spamassassin

9。 SpamAssassinを使用するようにPostfixを設定する

master.cfを開きます 次のようにファイルして編集します:

nano /etc/postfix/master.cf

変更

smtp      inet  n       -       n       -       -       smtpd

smtp      inet  n       -       n       -       -       smtpd -o content_filter=spamassassin

ファイルの最後に次の行を追加します。

spamassassin unix - n n - - pipe flags=R user=spamd argv=/usr/bin/spamc -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}

spamassassinサービスを有効にして再起動します

systemctl enable spamassassin 
systemctl restart spamassassin 

postfixサービスを再起動します

systemctl restart postfix

すべてが正しく設定されている場合は、http://Your_IP_Address/postfixadmin-3.0.2.2にアクセスして、PostfixAdminバックエンドにログインできるはずです。 最初の仮想ドメインとメールボックスを作成します。

もちろん、CentOS 7でPostfixAdminとMariaDBを使用してメールサーバーを設定する必要はありません。メールサーバーホスティングサービスのいずれかを使用している場合は、専門のLinux管理者にメールサーバーの設定を依頼するだけです。あなたのために。 24時間年中無休でご利用いただけます。リクエストはすぐに処理されます。

PS 。この投稿が気に入った場合は、CentOS 7でPostfixAdminとMariaDBを使用してメールサーバーを設定する方法について、下のボタンを使用してソーシャルネットワーク上の友達と共有するか、下のコメントセクションにコメントを残してください。ありがとう。


Cent OS
  1. CentOS 7にApache、PHP、MariaDBを使用してZenarioをインストールします

  2. CentOS7でPostfixAdminを使用してメールサーバーを設定する方法

  3. Debian9でPostfixAdminを使用してメールサーバーを設定する

  1. PostfixAdminを使用してメールサーバーを設定する

  2. CentOS8にPostfixメールサーバーをインストールして設定する方法

  3. CentOS7にNginxとMariaDBを使用してownCloud9.1をインストールする方法

  1. CentOS7にPostgreSQLとNginxを使用してMattermostをインストールします

  2. CentOS8にPHP-FPMとMariaDBを使用してLighttpdをインストールする方法

  3. Debian11でPostfixAdminを使用してメールサーバーを設定する方法