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トランザクションの実装原理の詳細な説明

推薦する

MySQL5.7+ MySQL Workbenchのインストールと設定方法のグラフィックチュートリアル(MAC)

この記事では、主にMACオペレーティングシステムでのMySQL5.7とMySQLWorkbenchの...

Nginx の http リソース リクエスト制限の詳細な説明 (3 つの方法)

前提条件: nginx には、ngx_http_limit_conn_module モジュールと n...

JavaScript におけるさまざまなバイナリオブジェクトの関係の詳細な説明

目次序文さまざまなオブジェクト間の関係配列バッファ型付き配列Uint8ClampedArray文字間...

MySQLでグローバル変数とセッション変数を設定する2つの方法の詳細な説明

1. MySQL でグローバル変数を変更するには 2 つの方法があります。方法 1: my.ini ...

複数サーバーの負荷分散を実現するためのNginx構成

Nginx ロード バランシング サーバー: IP: 192.168.0.4 (Nginx-Serv...

MySQLユーザー権限管理の詳細な説明

目次序文: 1. ユーザー権利の概要2. 実際の権限管理序文:データベースのユーザー権限管理について...

Linuxはデュアルネットワークカードボンドとドライバーインターフェースを使用する

債券とは何かNIC ボンドは、実稼働シナリオでよく使用されるテクノロジーです。複数の NIC を 1...

MySQL のマスター スレーブ レプリケーション オプションをオンラインで変更する方法

序文: MySQL で最も一般的に使用されるアーキテクチャは、マスター スレーブ レプリケーションで...

Linux ファイル/ディレクトリの権限と所有権の管理

1. ファイルの権限と所有権の概要1. アクセス権Read r: ファイルの内容を表示し、ディレクト...

MySQLのスイッチングデータ保存ディレクトリの実装方法

MySQLのスイッチングデータ保存ディレクトリの実装方法今日、仕事中に、mysql が保存されている...

npmとcnpmを混在させる際の落とし穴の詳細な説明

目次原因理由NPM の紹介: CNPM の紹介:より良い方法方法の改善npm と cnpm を一緒に...

vue-admin-template 動的ルーティング実装例

ログインを提供し、ユーザー情報データインターフェースを取得するapi/user.js内 '@...

MySQL テーブルの読み取り、書き込み、インデックス作成、その他の操作の SQL ステートメントの効率最適化の問題を分析します。

前回は、Explain 実行プランの表示、インデックスの分析など、MySQL での SQL クエリの...

Linux 上でプロジェクトをリリースするために Tomcat を展開するプロセスにおけるさまざまな問題と解決策

プロジェクトをプロジェクトサイトのテスト環境にデプロイするJDK1.8トムキャット8.5 Maven...

CSS3はウェブサイトの製品表示効果図を実現します

この記事では、CSS3 を使用した Web サイトの商品表示の効果を紹介し、皆さんと共有します。詳細...