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

推薦する

MySQL ビュー管理ビューの例の詳細説明 [追加、削除、変更、クエリ操作]

この記事では、例を使用して MySQL ビューの管理ビュー操作について説明します。ご参考までに、詳細...

LinuxにMySQLデータベース5.6のソースコードをインストールし、ログインユーザーのパスワードを変更する

この記事では、主に Linux で MYSQL データベースをインストールする方法について説明し、M...

CSS プロパティ *-gradient の実用的な価値を探る

まず興味深い性質であるconic-gradientを紹介しましょう。円錐グラデーション!円グラフの作...

グリーンスタイルのウェブデザイン作品18点の最新コレクション

トイ・ストーリー3 オンラインマーケティングウェブサイトゼンモバイル鉄から鉄へスプラウトファンドバー...

適応的な幅と高さを持つ9つの正方形グリッドの背景画像の切り取りの分析

<br />幅と高さが適応するオリジナルの 9 グリッド レイアウトをベースに、ネットワ...

CSS属性のマージンの理解について話す

1.マージンとは何ですか?マージンは、要素の周囲のスペースの間隔を制御するために使用され、視覚的にス...

実行中の時計を実装するための純粋な CSS3 コード

操作効果コードの実装html <div id="ウォッチ"> <...

この記事は、Dockerにおけるcgroupの具体的な使用法を徹底的に理解するのに役立ちます。

目次cgroupとはcgroupの構成cgroupが提供する機能cgroup 内の CPU を制限す...

モバイル端末の水平および垂直画面ビューポート検出を決定するための js のいくつかの方法

目次1. 異なるビューポートを取得する方法2. 水平画面と垂直画面のJavaScript検出3. 水...

Vue の双方向イベントバインディング v-model の原理についての簡単な説明

目次説明する:要約する補充するDOM を直接変更して操作する js や jQuery とは異なり、V...

Navicat がデータベース データ構造をインポートする際に発生するエラー datetime(0) の SQL レポートの問題を解決します。

エラー発生: MySQL 5.7 から SQL にデータベースをエクスポートし、それを MySQL ...

超シンプルな QPS 統計手法 (推奨)

過去 N 秒間の QPS 値の統計 (1 秒あたりの選択、挿入などを含む) mysql> se...

シェルスクリプトは、Docker の半自動コンパイル、パッケージ化、およびリリースアプリケーション操作を構築します。

Docker 公開方法は、DevOps (送信、コンパイル、パッケージ化、リリースなどの一連のイベ...

MySQL truncate table ステートメントの使用

Truncate table ステートメントは、テーブル内のすべてのデータを削除/切り捨てるために使...

Windows 10 + mysql 8.0.11 zipインストールチュートリアルの詳細

準備する: MySQL 8.0 Windows zip パッケージのダウンロード アドレス: htt...