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

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

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

Ubuntuを使用している場合は、チュートリアルに従って、NginxとPHP7.0を使用するUbuntu16.04 VPSでPostfix、Dovecot、Spamassassin、SQLite、PostfixAdminを設定してください。

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

yum update 
yum install wget nano sqlite

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。 PostfixAdminをインストールします

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

wget -q -O - "http://downloads.sourceforge.net/project/postfixadmin/postfixadmin/postfixadmin-3.0.2.2/postfixadmin-3.0.2.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'] = 'sqlite';
// $CONF['database_host'] = 'localhost';
// $CONF['database_user'] = 'postfix';
// $CONF['database_password'] = 'postfixadmin';
$CONF['database_name'] = '/var/vmail/postfixadmin.db';

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

SQLiteデータベースを作成します:

touch /var/vmail/postfixadmin.db
chown vmail:mail /var/vmail/postfixadmin.db
chmod 660 /var/vmail/postfixadmin.db
usermod -a -G mail apache

データベースにデータを入力するには、https://Your_IP_Address/postfixadmin-3.0.2/setup.phpにアクセスします。 次のように表示されます。
Testing database connection - OK - sqlite://:xxxxx@//var/vmail/postfixadmin.db
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

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

Postfixバージョン3はデフォルトのCentOS7リポジトリでは利用できないため、GhettoForgeリポジトリを使用します:

rpm -Uhv http://mirror.ghettoforge.org/distributions/gf/gf-release-latest.gf.el7.noarch.rpm

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

yum install postfix3 postfix3-sqlite --enablerepo=gf-plus

インストールが完了したら、次のファイルを作成します。

nano /etc/postfix/sqlite_virtual_alias_maps.cf
dbpath = /var/vmail/postfixadmin.db
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'
nano /etc/postfix/sqlite_virtual_alias_domain_maps.cf
dbpath = /var/vmail/postfixadmin.db
query = SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = '%u' || '@' || alias_domain.target_domain AND alias.active = 1 AND alias_domain.active='1'
nano /etc/postfix/sqlite_virtual_alias_domain_catchall_maps.cf
dbpath = /var/vmail/postfixadmin.db
query  = SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = '@' || alias_domain.target_domain AND alias.active = 1 AND alias_domain.active='1'
nano /etc/postfix/sqlite_virtual_domains_maps.cf
dbpath = /var/vmail/postfixadmin.db
query = SELECT domain FROM domain WHERE domain='%s' AND active = '1'
nano /etc/postfix/sqlite_virtual_mailbox_maps.cf
dbpath = /var/vmail/postfixadmin.db
query = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1'
nano /etc/postfix/sqlite_virtual_alias_domain_mailbox_maps.cf
dbpath = /var/vmail/postfixadmin.db
query = SELECT maildir FROM mailbox,alias_domain WHERE alias_domain.alias_domain = '%d' and mailbox.username = '%u' || '@' || alias_domain.target_domain AND mailbox.active = 1 AND alias_domain.active='1'

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

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

postconf -e "myhostname = $(hostname -f)"
 
postconf -e "virtual_mailbox_domains = sqlite:/etc/postfix/sqlite_virtual_domains_maps.cf"
postconf -e "virtual_alias_maps =  sqlite:/etc/postfix/sqlite_virtual_alias_maps.cf, sqlite:/etc/postfix/sqlite_virtual_alias_domain_maps.cf, sqlite:/etc/postfix/sqlite_virtual_alias_domain_catchall_maps.cf"
postconf -e "virtual_mailbox_maps = sqlite:/etc/postfix/sqlite_virtual_mailbox_maps.cf, sqlite:/etc/postfix/sqlite_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

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

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

yum install dovecot

/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 = sqlite
connect = /var/vmail/postfixadmin.db
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/%n' as home, 'maildir:/var/vmail/%d/%n' as mail, \
  150 AS uid, 8 AS gid, '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 

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

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

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


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

  2. Ubuntu20.04にPostfixAdminを使用してメールサーバーをインストールする方法

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

  1. CentOS8でBINDを使用してプライベートDNSサーバーを設定する方法

  2. CentOS8でVSFTPDを設定する方法

  3. CentOS サーバーでメールを送信する方法を教えてください。

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

  2. CentOS7でOpenVPNサーバーをセットアップする方法

  3. CentOS 8でDHCPサーバーをセットアップする-その方法は?