このガイドでは、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を使用してメールサーバーを設定する方法について、下のボタンを使用してソーシャルネットワーク上の友達と共有するか、下のコメントセクションにコメントを残してください。ありがとう。