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

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

Postfix は、Linux システム上で電子メールをルーティングまたは配信するために使用される無料のオープンソース MTA (メール転送エージェント) です。このガイドでは、CentOS 8 に Postfix をインストールして設定する方法を学習します。

ラボのセットアップ:

  • システム: CentOS 8 サーバー
  • IPアドレス: 192.168.1.13
  • ホスト名: server1.crazytechgeek.info (ドメイン名がサーバーの IP を指していることを確認してください)

ステップ1) システムを更新する

最初のステップは、システム パッケージが最新であることを確認することです。これを行うには、次のようにシステムを更新します。

# dnf アップデート

続行する前に、他の MTA (Sendmail など) が存在しないことも確認してください。存在すると、Postfix 設定との競合が発生します。たとえば、Sendmail を削除するには、次のコマンドを実行します。

# dnf 送信メールを削除

ステップ2) ホスト名を設定し、/etc/hostsを更新する

システムのホスト名を設定するには、以下の hostnamectl コマンドを使用します。

# ホスト名ctl ホスト名の設定 server1.crazytechgeek.info
# bash を実行する

さらに、/etc/hosts にシステムのホスト名と IP を追加する必要があります。

# vim /etc/hosts
192.168.1.13 サーバー1.crazytechgeek.info

ファイルを保存して終了します。

ステップ3) Postfixメールサーバーをインストールする

システム上で他の MTA が実行されていないことを確認した後、次のコマンドを実行して Postfix をインストールします。

# dnf postfixをインストール

Postfix Centos8 のインストール

ステップ4) Postfixサービスを起動して有効にする

Postfix を正常にインストールしたら、次のコマンドを実行して Postfix サービスを開始し、有効にします。

# systemctl postfix を起動する
# systemctl postfixを有効にする

Postfix のステータスを確認するには、次の systemctl コマンドを実行します。

# systemctl ステータス pos​​tfix 

Postfix のステータスチェックを開始 Centos8

素晴らしい、Postfix が稼働していることが確認できました。次に、ローカル マシンからサーバーにメールを送信するように Postfix を設定します。

ステップ5) mailxメールクライアントをインストールする

Postfix サーバーを設定する前に、mailx をインストールする必要があります。インストールするには、次のコマンドを実行します。

# dnf インストール mailx 

Mailx-CentOS8 のインストール

ステップ6) Postfixメールサーバーを設定する

Postfix 設定ファイルは /etc/postfix/main.cf にあります。設定ファイルにいくつか変更を加える必要があるので、お気に入りのテキスト エディターで開きます。

# vi /etc/postfix/main.cf

次の行を変更します。

ホスト名 = server1.crazytechgeek.info
私のドメイン = crazytechgeek.info
myorigin = $mydomain
## コメントを解除し、inet_interfaces を all に設定します##
inet_interfaces = すべて
## すべてに変更 ##
inet_protocols = すべて
## 注記 ##
#mydestination = $myhostname, localhost.$mydomain, localhost
## コメントを解除 ##
mydestination = $myhostname、localhost.$mydomain、localhost、$mydomain
## コメントを解除して IP 範囲を追加します##
マイネットワーク = 192.168.1.0/24, 127.0.0.0/8
## コメントを解除 ##
home_mailbox = メールディレクトリ/

完了したら、設定ファイルを保存して終了します。変更を有効にするには、postfix サービスを再起動します。

# systemctl postfixを再起動します

ステップ7) Postfixメールサーバーのテスト

設定が有効かどうかをテストするには、まずテスト ユーザーを作成します。

# ユーザー追加 postfixユーザー
# パスワード postfixuser

次に、次のコマンドを実行して、ローカル ユーザー pkumar から別のユーザー postfixuser にメールを送信します。

# telnet ローカルホスト SMTP
または # telnet localhost 25

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

# dnf インストール telnet -y

前述のようにコマンドを実行すると、次のような出力が得られます。

[root@linuxtechi ~]# telnet ローカルホスト 25
127.0.0.1 を試行しています...
ローカルホストに接続しました。
エスケープ文字は '^]' です。
220 server1.crazytechgeek.info ESMTP ポストフィックス

上記の結果から、Postfix メールサーバーとの接続が正常であることが確認されました。次に、次のコマンドを入力します。

#ehlo ローカルホスト

出力は次のようになります。

250-server1.crazytechgeek.info
250-パイプライン
250サイズ 10240000
250-VRFY
250-ETRN
250-スタートルス
250-拡張ステータスコード
250-8ビット
250-DSN
250 SMTPUTF8

次に、mail from、rcpt to、data などオレンジ色で強調表示されているコマンドを実行し、最後に quit と入力します。

メール送信者:<pkumar>
250 2.1.0 OK
rcpt to:<postfixuser>
250 2.1.5 大丈夫
データ
354 データは <CR><LF> で終了します。<CR><LF>
こんにちは、私のメールサーバー(Postfix)へようこそ
。
250 2.0.0 Ok: B56BF1189BEC としてキューに追加されました
やめる
221 2.0.0 さようなら
外部ホストによって接続が閉じられました

次のように telnet コマンドを実行して、ローカル ユーザー pkumar から別のローカル ユーザー postfixuser にメールを送信します。

Telnet でメールを送信する Centos8

すべてが計画通りに進んだ場合、新しいユーザーのホーム ディレクトリで送信済みメールを表示できるはずです。

# ls /home/postfixuser/Maildir/new
1573580091.Vfd02I20050b8M635437.server1.crazytechgeek.info
#

メールを読むには、次のように cat コマンドを使用します。

# cat /home/postfixuser/Maildir/new/1573580091.Vfd02I20050b8M635437.server1.crazytechgeek.info

read-postfix-email-linux を読む

Postfix メールサーバのログ

Postfix メール サーバーのメール ログは、/var/log/maillog ファイルに保存されます。リアルタイム ログを表示するには、次のコマンドを使用します。

# テール -f /var/log/maillog 

postfix-メールログ-centos8

Postfix メールサーバーのセキュリティ保護

クライアントと Postfix サーバー間の通信を常に保護することをお勧めします。これは、信頼できる機関からの SSL 証明書または自己署名証明書を使用して実現できます。このチュートリアルでは、openssl コマンドを使用して Postfix の自己署名証明書を生成します。

openssl はすでにシステムにインストールされていると想定していますが、そうでない場合は次の dnf コマンドを使用します。

# dnf インストール openssl -y

以下の openssl コマンドを使用して、秘密鍵と CSR (証明書署名要求) を生成します。

# openssl req -nodes -newkey rsa:2048 -keyout mail.key -out mail.csr

Postfix キー CSR CentOS8

次に、次の openssl コマンドを使用して自己署名証明書を生成します。

# openssl x509 -req -days 365 -in mail.csr -signkey mail.key -out mail.crt
署名OK
件名=C = IN、ST = ニューデリー、L = ニューデリー、O = IT、OU = IT、CN = server1.crazytechgeek.info、メールアドレス = root@linuxtechgeek
秘密鍵の取得
#

次に、秘密鍵と証明書ファイルを /etc/postfix ディレクトリにコピーします。

# cp mail.key mail.crt /etc/postfix

Postfix 設定ファイル内の秘密鍵と証明書ファイルへのパスを更新します。

# vi /etc/postfix/main.cf
………
smtpd_use_tls = はい
smtpd_tls_cert_file = /etc/postfix/mail.crt
smtpd_tls_key_file = /etc/postfix/mail.key
smtpd_tls_security_level = 5月
………

上記の変更を有効にするには、Postfix サービスを再起動します。

# systemctl postfixを再起動します

mailx クライアントを使用して、内部のローカル ドメインと外部ドメインにメールを送信してみます。

pkumar から postfixuser に内部ローカル メールを送信するには:

# echo "テストメール" | mailx -s "Postfix メールサーバからのテストメール" -r root@linuxtechi root@linuxtechi

メールを確認して読むには、次のコマンドを使用します。

# cd /home/postfixuser/Maildir/new/
#ll
合計 8
-rw------。 1 postfixuser postfixuser 476 11月12日 17:34 1573580091.Vfd02I20050b8M635437.server1.crazytechgeek.info
-rw------。 1 postfixuser postfixuser 612 11月13日 02:40 1573612845.Vfd02I20050bbM466643.server1.crazytechgeek.info
# 猫 1573612845.Vfd02I20050bbM466643.server1.crazytechgeek.info

Postfix ユーザーのメールを読み取り CentOS8

postfixuser から外部ドメイン ([email protected]) にメールを送信するには:

# echo "外部テストメール" | mailx -s "Postfix メールサーバー" -r root@linuxtechi root@linuxtechi

注意: IP がどこにもブラックリストに登録されていない場合、外部ドメインへのメールは配信されます。そうでない場合は、spamhaus などのデータベースによって IP がブラックリストに登録されているというメッセージとともにメールが返送されます。

Postfixメールキューを確認する

キュー内のメールを一覧表示するには、mailq コマンドを使用します。

# メールq
メールキューは空です
#

仕上げる! Postfix の設定が機能しています。今のところはこれですべてです。このチュートリアルが参考になり、ローカル Postfix サーバーを簡単にセットアップできるようになることを願っています。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Javaは交換プロトコル経由で電子メールを送信します
  • PHP は SMTP プロトコルに基づいて電子メール送信サンプル コードを実装します。
  • Javaはソケットを使用してSMTPプロトコルを実装し、電子メールを送信します。
  • Ubuntuでメールサーバーを構築する方法のチュートリアル
  • メールプロトコルとサーバーの動作原理

<<:  Vite2.0の落とし穴

>>:  MySQLにおけるACIDトランザクションの実装原理の詳細な説明

推薦する

デザイン理論:人間中心のデザインコンセプト

<br />思想が東西に分かれていた時代、東洋の叡智を代表するものの一つとして「禅」は多...

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

この記事では、最新バージョンの MySQL データベース、つまり MySQL 5.7.17 圧縮バー...

js が CSS 属性 (値) のサポートを決定して通知する状況の分析

新しい CSS 機能を使用する場合、その互換性は常に考慮されます。おそらく、その互換性、どのブラウザ...

Mysql データベースの高度なビュー、トランザクション、インデックス、自己接続、ユーザー管理の例の分析の使用

この記事では、ビュー、トランザクション、インデックス、自己接続、ユーザー管理など、MySQL データ...

MySQL 8.0.12 のインストールと設定方法のグラフィックチュートリアル (Windows 版)

1. はじめにプロジェクトではMySQLを使用しています。インターネット上の例を参考にインストール...

MySQL 8.0.22 圧縮パッケージの完全なインストールと構成のチュートリアル図 (テスト済みで効果的)

1. zipインストールパッケージをダウンロードするMySQL サーバー 8.0.22 の圧縮パッ...

CentOS 6.8 での Hadoop 3.1.1 完全分散インストール ガイド (推奨)

上記:このドキュメントは、3 台の仮想マシンが相互に ping を実行できること、ファイアウォールが...

Linux コマンドを素早く習得する 4 つの方法

Linux マスターになりたいなら、いくつかの Linux コマンドを習得することが不可欠です。 L...

crontab スケジュールされたタスクが実行されない理由の分析と解決

序文Linux のスケジュールされたタスクを実装する方法としては、cron、anacron、at な...

ディレクトリスクロール効果を実現するネイティブJS

これはネイティブ JS で実装されたテキスト スクロール効果です。この効果は通常、ニュース、ダイナミ...

Dockerコンテナの原理の分析

目次01 コンテナの本質とは何か? 02 Cgroupテクノロジーと名前空間テクノロジーの概要03 ...

js で下線とキャメルケースの変換を実装する (複数の方法)

目次適用シナリオ:方法 1: 正規表現 (推奨)方法2: 配列のreduceメソッドを使用する方法3...

Mysql クラシック高レベル/コマンドライン操作 (クイック) (推奨)

サーバーとデータベースの構築方法を学ぶ必要があるため、最近は SQL 言語を独学で学び始めました。デ...

Navicat は CSV データを MySQL にインポートします

この記事では、Navicatを使用してcsvデータをmysqlにインポートする方法を参考までに紹介し...

Nodejs 探索: シングルスレッドの高並行性の原理を深く理解する

目次序文一目でわかる建築オペレーティングシステムとの対話シングルスレッドイベント駆動/イベントループ...