Postfixは、Linuxシステムでメールをルーティングまたは配信するために使用される無料のオープンソースMTA(メール転送エージェント)です。このガイドでは、CentOS8にPostfixをインストールして構成する方法を学習します。
実験室の設定:
ステップ1)システムを更新する
最初のステップは、システムソフトウェアパッケージが最新であることを確認することです。これを行うには、次のようにシステムを更新します。
# dnf update
続行する前に、他のMTA(Sendmailなど)がないことも確認してください。これにより、Postfix構成との競合が発生します。たとえば、Sendmailを削除するには、次のコマンドを実行します。
# dnf remove sendmail
**手順2)ホスト名を設定し、/ etc / hosts **を更新します
次のhostnamectlコマンドを使用して、システムにホスト名を設定します。
# hostnamectl set-hostname server1.crazytechgeek.info
# exec bash
さらに、システムのホスト名とIPを/ etc / hostsに追加する必要があります。
# vim /etc/hosts
192.168.1.13 server1.crazytechgeek.info
ファイルを保存して終了します。
手順3)Postfixメールサーバーをインストールする
システムで他のMTAが実行されていないことを確認した後、次のコマンドを実行してPostfixをインストールします。
# dnf install postfix
Install-Postfix-Centos8
ステップ4)Postfixサービスを開始して有効にする
Postfixを正常にインストールした後、次のコマンドを実行してPostfixサービスを開始して有効にします。
# systemctl start postfix
# systemctl enable postfix
Postfixステータスを確認するには、次のsystemctlコマンドを実行します。
# systemctl status postfix
Start-Postfix-check-status-centos8
すばらしいです。Postfixが稼働していることを確認しました。次に、ローカルからサーバーにメールを送信するようにPostfixを構成します。
手順5)mailxメールクライアントをインストールする
Postfixサーバーを構成する前に、mailxをインストールする必要があります。インストールするには、次のコマンドを実行します。
# dnf install mailx
Install-Mailx-CentOS8
手順6)Postfixメールサーバーを構成する
Postfixの構成ファイルは/etc/postfix/main.cfにあります。構成ファイルにいくつかの変更を加える必要があるため、お気に入りのテキストエディターで開いてください。
# vi /etc/postfix/main.cf
次の行を変更します。
myhostname = server1.crazytechgeek.info
mydomain = crazytechgeek.info
myorigin = $mydomain
## コメントを外してinetを設定する_インターフェイスはすべてに設定されます##
inet_interfaces = all
## すべてに変更##
inet_protocols = all
## コメント##
# mydestination = $myhostname, localhost.$mydomain, localhost
## コメントを外す##
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
## コメントを外してIP範囲を追加する##
mynetworks =192.168.1.0/24,127.0.0.0/8
## コメントを外す##
home_mailbox = Maildir/
終了したら、構成ファイルを保存して終了します。変更を有効にするには、postfixサービスを再起動します。
# systemctl restart postfix
手順7)Postfixメールサーバーをテストする
構成が有効かどうかをテストするには、最初にテストユーザーを作成します。
# useradd postfixuser
# passwd postfixuser
次に、次のコマンドを実行して、ローカルユーザーpkumarから別のユーザーpostfixuserにメールを送信します。
# telnet localhost smtp
または
# telnet localhost 25
telnetサービスがインストールされていない場合は、次のコマンドでインストールできます。
# dnf install telnet -y
前述のようにコマンドを実行すると、次の出力が得られます。
[ root@linuxtechi ~]# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.220 server1.crazytechgeek.info ESMTP Postfix
上記の結果は、postfixメールサーバーへの接続が正常であることを確認しています。次に、次のコマンドを入力します。
# ehlo localhost
出力は次のようになります。
250- server1.crazytechgeek.info
250- PIPELINING
250- SIZE 10240000
250- VRFY
250- ETRN
250- STARTTLS
250- ENHANCEDSTATUSCODES
250- 8 BITMIME
250- DSN
250 SMTPUTF8
次に、mail from、rcpt to、dataなど、オレンジ色で強調表示されているコマンドを実行し、最後にquitと入力します。
mail from:<pkumar>2502.1.0 Ok
rcpt to:<postfixuser>2502.1.5 Ok
data
354 End data with<CR><LF>.<CR><LF>
Hello, Welcome to my mailserver(Postfix).2502.0.0 Ok: queued as B56BF1189BEC
quit
2212.0.0 Bye
Connection closed by foreign host
以下に示すように、telnetコマンドを実行して、ローカルユーザーpkumarから別のローカルユーザーpostfixuserにメールを送信します。
Send-email-with-telnet-centos8
すべてが計画どおりに進んだ場合、送信されたメールを新しいユーザーのホームディレクトリで表示できるはずです。
# ls /home/postfixuser/Maildir/new1573580091.Vfd02I20050b8M635437.server1.crazytechgeek.info
#
メールを読むには、以下に示すようにcatコマンドを使用します。
# cat /home/postfixuser/Maildir/new/1573580091.Vfd02I20050b8M635437.server1.crazytechgeek.info
Read-postfix-email-linux
Postfixメールサーバーログ
Postfixメールサーバーのメールログはファイル/ var / log / maillogに保存されます。次のコマンドを使用して、リアルタイムログを表示します。
# tail -f /var/log/maillog
postfix-maillogs-centos8
Postfixメールサーバーを保護する
クライアントとPostfixサーバー間の通信のセキュリティを常に確保することをお勧めします。これは、信頼できる機関または自己署名証明書から取得できる[SSL証明書](https://cloud.tencent.com/product/symantecssl?from=10680)を使用して実現できます。このチュートリアルでは、opensslコマンドを使用して、Postfixの自己署名証明書を生成します。
opensslがシステムにすでにインストールされていると想定します。インストールされていない場合は、次のdnfコマンドを使用します。
# dnf install openssl -y
次のopensslコマンドを使用して、秘密鍵とCSR(証明書署名要求)を生成します。
# openssl req -nodes -newkey rsa:2048-keyout mail.key -out mail.csr
Postfix-Key-CSR-CentOS8
次に、次のopensslコマンドを使用して、自己署名証明書を生成します。
# openssl x509 -req -days 365-in mail.csr -signkey mail.key -out mail.crt
Signature ok
subject=C = IN, ST = New Delhi, L = New Delhi, O = IT, OU = IT, CN = server1.crazytechgeek.info, emailAddress = root@linuxtechi
Getting Private key
#
次に、秘密鍵と証明書ファイルを/ etc / postfixディレクトリにコピーします。
# cp mail.key mail.crt /etc/postfix
Postfix構成ファイルの秘密鍵と証明書ファイルのパスを更新します。
# vi /etc/postfix/main.cf
………
smtpd_use_tls = yes
smtpd_tls_cert_file =/etc/postfix/mail.crt
smtpd_tls_key_file =/etc/postfix/mail.key
smtpd_tls_security_level = may
………
Postfixサービスを再起動して、上記の変更を有効にします。
# systemctl restart postfix
mailxクライアントを使用して内部ローカルドメインと外部ドメインにメールを送信してみましょう。
pkumarからpostfixuserに内部ローカルメールを送信します。
# echo "test email"| mailx -s "Test email from Postfix MailServer"-r root@linuxtechi root@linuxtechi
次のコマンドを使用して、メールを確認して読みます。
# cd /home/postfixuser/Maildir/new/
# ll
total 8-rw-------.1 postfixuser postfixuser 476 Nov 1217:341573580091.Vfd02I20050b8M635437.server1.crazytechgeek.info
- rw-------.1 postfixuser postfixuser 612 Nov 1302:401573612845.Vfd02I20050bbM466643.server1.crazytechgeek.info
# cat 1573612845.Vfd02I20050bbM466643.server1.crazytechgeek.info
Read-Postfixuser-Email-CentOS8
postfixuserから外部ドメイン([email protected])にメールを送信します。
# echo "External Test email"| mailx -s "Postfix MailServer"-r root@linuxtechi root@linuxtechi
注:IPがどこにもブラックリストに登録されていない場合は、外部ドメインに送信したメールが送信されます。そうでない場合は、バウンスされ、スパムハウスなどのデータベースによってIPがブラックリストに登録されます。
Postfixメールキューを確認してください
mailqコマンドを使用して、キュー内のメールを一覧表示します。
# mailq
Mail queue is empty
#
実施する! Postfix構成が機能しています!今のところ以上です。このチュートリアルが洞察に満ちていて、ローカルのPostfixサーバーを簡単にセットアップできることを願っています。
以上が本稿の内容ですので、皆様のご勉強に役立てていただければ幸いです。
Recommended Posts