ほとんどのLinuxディストリビューションで最も一般的に使用されるSMTPの実装は、SendmailとPostfixです。 Postfixは、もともとSendmailの代替として開発されたオープンソースのメール転送エージェントであり、通常はデフォルトのメールサーバーとして設定されています。
Postfixのインストール
インストールを開始する前に、まず最初に。ソフトウェアがサーバーにすでにインストールされているかどうかを確認することをお勧めします。仕事に取り掛かる前に、何かがそこにあるかどうかを確認することは常に役に立ちます。
RPMベースのディストリビューションを確認するには、次のコマンドを使用します:
$ rpm -qa | grep postfix
前のコマンドでRPMがインストールされていないことが示されている場合は、次のコマンドでPostfix RPMをインストールできます(yum
ベースのディストリビューション):
$ yum install -y postfix
Postfixをインストールしたら、サービスを開始して有効にし、再起動後に確実に開始できるようにします。
$ systemctl start postfix
$ systemctl enable postfix
Postfixをインストールしたら、好みに合わせてサービスの構成を開始できます。サービスに必要なすべてのオプションは、/etc/postfix
にあります。 。 Postfixサービスのメイン設定ファイルは/etc/postfix/main.cf
にあります 。構成ファイル内には、追加できる多くのオプションがあり、それらのいくつかは他のものよりも一般的です。サービスを設定するとき、およびサービスのトラブルシューティングが必要なときに最もよく目にする可能性のあるいくつかを見ていきましょう。
-
myhostname
メールサーバーのホスト名を宣言します。ホスト名には通常、次のようなプレフィックスが含まれています。
myhostname = mail.sinisterriot.com
-
mydomain
次のように、実際にメールを処理しているドメインを宣言します。
mydomain = sinisterriot.com
-
mail_spool_directory
次のように、メールボックスファイルが配置されるディレクトリを宣言します。
mail_spool_directory = /var/mail
-
mynetworks
次のように、サーバーを介して中継できる信頼できるリモートSMTPサーバーのリストを宣言します。
mynetworks = 127.0.0.0/8, 168.100.189.0/28
mynetworks
で提供されるリスト ローカルネットワークのIPアドレス、またはコンマまたは空白で区切られたネットワーク/ネットマスクパターンのみを含める必要があります。許可されていないユーザーが悪意のあるアクティビティのためにメールサーバーを使用して、サーバーとアドレスがブラックリストに登録されないようにするには、ローカルネットワークアドレスのみを使用することが重要です。
何かを本番環境に移行する前に、開発環境でテストすることをお勧めします。このプロセスの概念は同じです。メールサーバーを構成したら、それをテストして、機能することを確認します。
まず、ローカルの受信者にメールを送信できるかどうかをテストすることをお勧めします。成功した場合は、リモート受信者に進むことができます。 telnetコマンドを使用してメールサーバーをテストすることを好みます:
$ telnet mail.sinisterriot.com 25
HELO
を追加します 送信元のドメインをサーバーに通知するコマンド:
HELO sinisterriot.com
次は送信者です。このIDは、MAIL FROM
で追加できます。 コマンド:
MAIL FROM: [email protected]
このエントリの後に受信者が続きます。RCPT TO
を使用して、複数のエントリを追加できます。 複数回のコマンド:
RCPT TO: [email protected]
最後に、メッセージの内容を追加できます。コンテンツモードに到達するには、プレフィックスDATA
を追加します 単独で1行に、その後にSubject
行、および本文メッセージ。以下に例を示します。
DATA
Subject: This is a test message
Hello,
This is a test message
.
メッセージ本文を終了して閉じるには、1行に1つのピリオド(。)またはドットを追加する必要があります。このプロセスが完了すると、サーバーは提供された情報を含む電子メールの送信を試みます。コード応答は、電子メールが成功したかどうかを通知します。完了したら、quit
を使用します メーリングウィンドウを閉じるコマンド。
いずれにせよ、エラーがないかメールログを確認してください。それらは/var/log/maillog
にあります デフォルトですが、この場所は別の場所に変更できます。システム管理者として、エラーログを確認することは良い習慣です。この方法はトラブルシューティングに最適であり、問題をより迅速に特定して修正するための洞察を提供します。メールログの解読は、管理作業の重要な部分でもあります。ログの各部分から、何が重要かがわかります。過去数年間、これらの部分を知っていると、メールログの一部を編集または除外するだけで、特定のリクエストのスクリプトを作成するのに役立ちました。
サービスを保護することは、サービスを設定することと同じくらい重要です。保護されていない接続よりも、安全な接続を介してデータを転送する方が安全です。次に、新しく構成したメールサーバーを保護する方法について説明します。これを行うには、SMTPサーバーのトランスポート層セキュリティ(TLS)を介してSSLセッションを生成します。
まず、秘密鍵と証明書署名要求(CSR)を生成する必要があります。これは、openssl
を介して行うことができます コマンド:
$ openssl req -nodes -newkey rsa:2048 -keyout privatekey.key -out mail.csr
次に、署名リクエストを生成し、それを/etc/postfix
にコピーします ディレクトリ:
$ openssl x509 -req -days 365 -in mail.csr -signkey privatekey.key -out secure.crt
$ cp {privatekey.key,secure.crt} /etc/postfix
このシーケンスは、署名された証明書をメールサーバーに発行します。これは、認証局(CA)証明書とも呼ばれます。この方法は、CAが秘密鍵を保護し、インターネットを介してデータを送信するために証明書署名者を信頼する必要があることを意味します。他の種類の証明書である自己署名では、CAは証明書の署名者を信頼しないため、情報が盗まれやすく、侵害される可能性があります。署名付きの証明書を使用することをお勧めします。
このプロセスが完了したら、TLSオプションをPostfix設定ファイルに追加できます:
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/postfix/secure.crt
smtpd_tls_key_file = /etc/postfix/privatekey.key
smtp_tls_security_level = may
次に、サービスを再起動して、新しいオプションを有効にします。
$ systemctl restart postfix
これで、機能している安全なメールサーバーができました。