Centos7.9 で独立したメール サーバーを構築するための詳細な手順

Centos7.9 で独立したメール サーバーを構築するための詳細な手順

序文

会社から送信される zabbix 監視アラーム メールの量が多すぎるため、使用していた Tencent の企業メールボックスでは送信頻度が多すぎるためにメールが届かなかったり、送信を拒否されたりすることがあるため、現在は自社構築のイントラネット メール サーバーを使用して zabbix アラーム メールを送信しています。

イントラネットのアラームメールサーバーは、他のメールボックス(Tencent 企業メールボックス、NetEase メールボックスなど)にメールを送信することしかできず、他のメールボックスからの返信を受信することはできません。返信を受信するには、ドメイン名を購入し、A レコードと MX レコードを構成する必要があります。このドキュメントではこれについては説明しません。

1. イントラネットDNS AレコードとMXレコードを構成する

私がイントラネットで使用しているドメイン名ホストは、シンプルで便利、そして多様に使用できる dnsmasq プロキシ ソフトウェアです。詳細な設定については他のドキュメントを参照してください。

[root@dns_proxy ~]# grep liqing /etc/dnsmasq.conf
アドレス=/mail.liqing-test.top/192.168.2.100
mx-host=liqing-test.top,mail.liqing-test.top,10

2. メールサーバの初期化設定

1. ホスト名を変更する

[root@localhost /]# hostnamectl --static set-hostname mail.liqing-test.top|bash

2. ファイアウォールとSELinuxをオフにする

[root@mail /]# systemctl stop iptables && systemctl disabled iptables
[root@mail /]# systemctl stop firewalld && systemctl disabled firewalld
[root@mail /]# setenforce 0

3. 時刻同期を有効にする

[root@mail /]# yum -y インストール ntpdate && ntpdate ntp.aliyun.com

4. ソフトウェアをインストールする

[root@mail /]# yum -y postfix dovecot cyrus-sasl-* mailx をインストールします

3. 設定ファイルを変更する

注: このドキュメントでは、設定ファイルのバックアップ操作は自分で実行します。

1 postfixの設定

[root@mail /]# cat /etc/postfix/main.cf
mail_owner = ポストフィックス
myhostname = mail.liqing-test.top
mydomain = liqing-test.top
myorigin = $mydomain
inet_interfaces = すべて
inet_protocols = ipv4
mydestination = $myhostname、localhost.$mydomain、localhost、$mydomain、mail.$mydomain、www.$mydomain、ftp.$mydomain
ローカル受信者マップ =
マイネットワーク = 0.0.0.0/0
リレードメイン = $mydestination
alias_maps = ハッシュ:/etc/aliases
alias_database = ハッシュ:/etc/aliases
smtpd_banner = $myhostname ESMTP

# 一番下に smtpd_sasl_type = dovecot を追加します
smtpd_sasl_path = プライベート/認証
smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = はい
smtpd_sasl_security_options = 匿名なし
broken_sasl_auth_clients = はい
smtpd_recipient_restrictions = permit_mynetworks、permit_auth_destination、permit_sasl_authenticated
smtpd_client_restrictions = 許可_sasl_authenticated

2 dovecotの設定

2.1 監視プロトコルを構成する:

[root@mail /]# cat /etc/dovecot/dovecot.conf
プロトコル = imap pop3 lmtp
聞く = *
ログイン信頼ネットワーク = 0.0.0.0/0
辞書{
}
!conf.d/*.conf を含めます
!include_try ローカル.conf

2.2 ログイン方法を設定する:

[root@mail /]# cat /etc/dovecot/conf.d/10-auth.conf
プレーンテキスト認証を無効にする = いいえ
auth_mechanisms = プレーンログイン
!auth-system.conf.ext を含める

2.3 電子メールの保存場所を設定します。

[root@mail /]# cat /etc/dovecot/conf.d/10-mail.conf
メールの場所 = mbox:~/mail:INBOX=/var/mail/%u
名前空間受信トレイ {
受信トレイ = はい
}
最初の有効なUID = 1000
mbox_write_locks = fcntl
[root@mail /]# cat /etc/dovecot/conf.d/10-master.conf 
サービス認証{
   unix_listener /var/spool/postfix/private/auth {
   モード = 0666
   ユーザー = ポストフィックス
   グループ = 接尾辞
   }
}

2.4 SSL を設定する(オフ):

[root@mail /]# cat /etc/dovecot/conf.d/10-ssl.conf 
SSL = いいえ

3 sasl2の設定

3.1 システム認証を構成する:

[root@mail /]# cat /etc/sysconfig/saslauthd 
SOCKETDIR=/run/saslauthd
MECH=影
フラグ=

3.2 ログイン方法を設定する:

[root@mail /]# cat /etc/sasl2/smtpd.conf
pwcheck_method: saslauthd
mech_list: プレーンログイン
ログレベル:3

4 サービスを開始します。

systemctl で dovecot を再起動します。
systemctl postfixを再起動する
systemctl saslauthd を再起動します
systemctl で dovecot を有効にする
systemctl postfixを有効にする
systemctl saslauthd を有効にする

5 ユーザーを作成し、パスを設定する

[root@mail /]# useradd -m autumn && echo 123456 | passwd --stdin autumn
[root@mail /]# su - 秋 
[autumn@mail ~]$ mkdir -p ~/mail/.imap/INBOX
[autumn@mail ~]$ chmod -R 750 ~/mail #(これをしないとfoxmailでログインしたときに{エラー: INBOXを開けませんでした: 権限が拒否されました}というエラーが発生します)
[autumn@mail ~]$ 終了

6 mailxを設定します。

[root@mail /]# cat /etc/mail.rc
[email protected] に設定
smtp=mail.liqing-test.top を設定します
smtp-auth-user=autumn を設定します
SMTP認証パスワードを123456に設定する
smtp-auth=ログインを設定します

4. メール送信テスト

1 コマンドラインメール送信テスト

[root@mail /]# echo "メールサーバーテスト" | mail -s "メールサーバーテスト" [email protected]

2 foxmailを使用してログインし、メールテストを送信する

Centos7.9 で独立したメールサーバーを構築_企業メールボックス

Centos7.9 独立したメールサーバーを構築_メール送信_02

Centos7.9で独立したメールサーバーを構築_メールサーバー_03

5 つのエラー レポート

1 権限が拒否されました

foxmail を使用してメールボックスにログインすると、権限が拒否されたというメッセージが表示されます。これは、メールボックス ユーザーのホーム ディレクトリのメール ファイルの権限が 750 ではないためです。問題を解決するには、750 に設定してください。

[autumn@mail ~]$ chmod -R 750 ~/mail

12 月 3 日 10:15:35 Git サーバー dovecot: pop3-login: ログイン: ユーザー = <autumn>、メソッド = PLAIN、rip = 192.168.31.100、lip = 192.168.2.100、mpid = 24843、セキュリティ保護済み、セッション = <YnZ3ezTSjiLAqB9k>

12 月 3 日 10:15:35 Git サーバー dovecot: pop3(autumn): エラー: fchown(/home/autumn/mail/.imap、group=12(mail)) が失敗しました: 操作は許可されていません (egid=1004(autumn)、グループは /var/mail/autumn に基づいています - http://wiki2.dovecot.org/Errors/ChgrpNoPerm を参照してください)

12月3日 10:15:35 Gitサーバーdovecot: pop3(autumn): エラー: INBOXを開けませんでした: 権限が拒否されました

12月3日 10:15:35 Gitサーバーdovecot: pop3(autumn): INBOXを開けませんでした: 権限が拒否されました top=0/0、retr=0/0、del=0/0、size=0

12 月 3 日 10:16:26 Git サーバー dovecot: pop3-login: ログイン: ユーザー = <autumn>、メソッド = PLAIN、rip = 192.168.31.100、lip = 192.168.2.100、mpid = 24895、セキュリティ保護済み、セッション = <NkWHfjTS2CLAqB9k>

12 月 3 日 10:16:26 Git サーバー dovecot: pop3(autumn): エラー: fchown(/home/autumn/mail/.imap、group=12(mail)) が失敗しました: 操作は許可されていません (egid=1004(autumn)、グループは /var/mail/autumn に基づいています - http://wiki2.dovecot.org/Errors/ChgrpNoPerm を参照してください)

2 ホストが見つかりません:

メールを送信する際、メールアドレスの解決レコードに基づいてMXレコードが検索されます。ここで、Tencentの企業メールボックスにテストメールを送信したところ、Tencentのメールアドレスが見つかりませんでした。イントラネットDNSプロキシにTencentのMXレコードを追加することで解決しました

[root@dns- ~]# grep qq /etc/dnsmasq.conf 
mx-host=***.com,mxbiz2.qq.com,10
mx-host=***.com,mxbiz1.qq.com,5

12月3日 10:36:14 Git-server postfix/smtpd[26216]: 不明[192.168.31.100]から接続

12月3日 10:36:15 Gitサーバー postfix/smtpd[26216]: 05C682267F04: client=unknown[192.168.31.100]、sasl_method=LOGIN、sasl_username=autumn

12月3日 10:36:15 Gitサーバー postfix/cleanup[26220]: 05C682267F04: message-id=<[email protected]>

12月3日 10:36:15 Gitサーバー postfix/qmgr[25430]: 05C682267F04: from=<[email protected]>、size=1561、nrcpt=1 (キューがアクティブ)

12月3日 10:36:15 Git-server postfix/smtpd[26216]: 不明[192.168.31.100]から切断

12 月 3 日 10:36:15 Git サーバー postfix/smtp[26221]: 05C682267F04: to=<***@***.com>、relay=none、delay=0.11、delays=0.08/0.02/0/0、dsn=4.4.3、status=deferred (ホストまたはドメイン名が見つかりません。name=***.com type=MX の名前サービス エラー: ホストが見つかりません。もう一度お試しください)

3 メールが拒否されました

Tencent の企業メールボックスにテストメールを送信したところ、ログに 550 メール接続拒否が表示されました。この問題は、メールにホワイトリストを設定した後に解決しました。

Centos7.9で独立したメールサーバーを構築_企業メールボックス_04

12月3日 10:11:57 Gitサーバーpostfix/smtpd[24617]: mail.liqing-test.top[192.168.2.100]から接続

12月3日 10:11:57 Gitサーバー postfix/smtpd[24617]: 4E2292267F04: client=mail.liqing-test.top[192.168.2.100]、sasl_method=LOGIN、sasl_username=autumn

12月3日 10:11:57 Gitサーバー postfix/cleanup[24621]: 4E2292267F04: message-id=<61a97cec.xRtXn6hYj3NI3wI3%[email protected]>

12月3日 10:11:57 Gitサーバー postfix/qmgr[24504]: 4E2292267F04: from=<[email protected]>、size=541、nrcpt=1 (キューがアクティブ)

12月3日 10:11:57 Gitサーバーpostfix/smtpd[24617]: mail.liqing-test.top[192.168.2.100]から切断

12 月 3 日 10:11:58 Git サーバー postfix/smtp[24622]: 4E2292267F04: to=<***@***.com>、relay=mxbiz1.qq.com[183.57.48.34]:25、delay=1.6、delays=0.09/0.03/0.16/1.3、dsn=5.0.0、status=bounced (ホスト mxbiz1.qq.com[183.57.48.34] が次のように言いました: 550 メール コンテンツが拒否されました。http://service.exmail.qq.com/cgi-bin/help?subtype=1&&id=20022&&no=1000726 (DATA コマンドの終わりへの返信))


Centos7.9 で独立したメールサーバーを設定する詳細な手順については、これで終わりです。 Centos でのメールサーバーの設定の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。 今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • CentOS 8 に Postfix メール サーバーをインストールして設定する方法
  • CentOS 7.2 でメール サーバー (Postfix) をインストールして展開する詳細な手順
  • CentOS 7.2 でメールサーバー (Postfix) を導入

<<:  HTMLの基本概念の詳細な説明

>>:  Vue-cli を使用して Vue プロジェクトを構築する手順の詳細な説明

推薦する

JavaScript の遅延読み込み属性パターンを理解する

従来、開発者はインスタンスで必要になる可能性のあるデータに対して JavaScript クラス内にプ...

MySQL の WriteSet 並列レプリケーションの簡単な分析

【歴史的背景】私は 3 年間 MySQL-DBA として働いてきましたが、MySQL が「基本的に利...

WeChat 8.0の爆発的な特殊効果を実現するために300行以上のCSSコードが必要

WeChat 8.0 アップデートの主な特徴は、アニメーション絵文字のサポートです。送信するメッセー...

MySQL 5.6.22 のインストールと設定方法のグラフィックチュートリアル

このチュートリアルでは、MySQL5.6.22のインストールと設定方法の具体的なコードを参考までに共...

HTML のセルパディングとセルスペース属性を図で説明します

セル - 表の内容 セルの余白 (表の余白) (cellpadding) - セルの外側の距離を表し...

CSS の overflow: hidden の使い方 (オーバーフローの非表示とフロートのクリア)

オーバーフロー非表示指定された高さを超えるテキストや画像情報を非表示にすることを意味します。 <...

MySQL 接続数を設定する方法 (接続数が多すぎる)

mysql使用中に接続数が超過していることが判明しました~~~~ [root@linux-node...

トランザクション分離レベルのMySQLケース分析

目次1. 理論シリアル化可能繰り返し読み取りコミットされた読み取りコミットされていない読み取り2. ...

マウスのドラッグ効果を実現するJavaScript

この記事では、マウスドラッグ効果を実現するためのJavaScriptの具体的なコードを参考までに紹介...

Tomcat が非同期サーブレットを実装する方法の詳細な説明

序文これまでの Tomcat シリーズの記事を通じて、私のブログを読んでいる学生は Tomcat に...

Docker イメージの最適化 (1.16GB から 22.4MB)

目次最適化の第一歩: 軽量ベースイメージの使用第2段階の最適化:多段階構築Docker は、ソフトウ...

React tsx はランダムな検証コードを生成します

React tsxは参照用にランダムな検証コードを生成します。具体的な内容は次のとおりです。最近、t...

MySQL の int、char、varchar のパフォーマンスを比較する

インターネットには、真実のように見える「噂」がたくさんあります。もちろん、悪意のあるものではありませ...

Ubuntu 12.04 でカーネルツリーを構築する実装プロセスの詳細な説明

まず使用しているカーネルのバージョンを確認してくださいlin@lin-仮想マシン:~$ uname ...

Linux で実行可能ファイルを実行するときに「そのようなファイルまたはディレクトリはありません」というプロンプトが表示される場合の解決策

最近、Linux オペレーティング システムを使用して実行可能ファイルを実行していたところ、「そのよ...