DovecotでPostfix電子メールサーバーを設定する方法
接尾辞の紹介
このチュートリアルでは、基本的なメールサーバーを設定する方法と、その過程でのPostfix MTA(メール転送エージェント)について少し説明します。
Postfixは非常に柔軟です。 そのアーキテクチャは、電子メールを受信して他のサービスに渡すサービスの緩い構成に基づいています(受信側の外縁に「smtp」、配信側の外縁に「ローカル」と「仮想」などのサービスがあります)。メールの受信を再検討します)。 Postfix自体は、メールの受信、ルーティング、配信のコア要件を実装し、残りはサードパーティの拡張機能に依存しています。
Postfixには数百の構成パラメーターがあります。 大規模な組織にビジネス要件を確実に提供するメールサーバーを管理する場合は、それらすべてに親密になる必要があります( man 5 postconf )。 このチュートリアルだけでは、有能なプロの電子メール管理者になるにはではありません。 ただし、postfixに慣れたり、自分自身と数人の友人のためにメールサーバーを設定したりする場合は、このチュートリアルとそれに続くチュートリアルが友人になります。
Dovecotの紹介
私は鳩小屋に多くの紹介の言葉を費やすつもりはありません。 Dovecotも巨大です(ここにdovecot 2のwikiがあります)が、dovecotの非常に小さな機能セットのみが必要です。
この記事では、設定するほぼすべての設定について詳しく説明します。 必要に応じて、先に進んで説明をざっと読むことができます-自己責任で。
このチュートリアルは、次の設定を前提としています(そしてそれを使用して構築されています)。
- Debian 7.1 wheezy x64_86
- 接尾辞2.9.6-2
- ダブコット1:2.1.7-7
DebianベースのOSならどれでも問題ありませんが、Postfixは、Postfix 1.x、Postfix 2.9、Postfix 2.10など、相互に互換性のない設定や機能を備えたさまざまなバージョンで使用されています。このチュートリアルでは、Postfix2.9を使用しています。最先端ではありません。
このチュートリアルでは、あなたに関するいくつかのことも前提としています。
-
GNU / Linuxコマンドラインに慣れていて、DebianのようなGNU/Linuxシステムの一般的なレイアウトと動作原理に慣れていること。
-
ローカルシステムがGNU/Linuxであるか、適度に互換性があること(MinGW、Cygwin、Mac OS X、* BSD)
-
ドロップレットにルートシェルを取得する方法を知っていること
-
テキストエディタの使用方法を知っていること(例: Linux上のvim、nano、emacs、または標準エディター
ed
)
デフォルトでは、コマンドが入力され、ドロップレットのルートシェルからファイルが編集されます。 他のほとんどのDigitalOceanの記事と同様に、カスタマイズする必要のあるコマンドの一部は強調表示されます。
システム設定
ドロップレットをメールサーバーにする準備をするには、次の要素が必要です。
-
ドメイン、それが「mydomain.com」であると仮定しましょう
-
メールサーバーのホスト名。「mail.mydomain.com」と仮定します。
-
「mail.mydomain.com」に有効なSSL証明書
SSL証明書の設定
SSLの場合、証明書と秘密鍵が必要です。 このチュートリアルでは、証明書が/etc/ssl/certs/mailcert.pem
に保存され、キーが/etc/ssl/private/mail.key
に保存されていることを前提としています。 キーがrootユーザーのみが読み取れることを確認してください。
Webサイトと電子メールのSSL証明書を設定する方法は、Webサイトの構造と使用するCA(自己署名、組織(sub)-ca、または商用caなど)によって異なります。 自己署名テスト証明書の作成は、実行するのと同じくらい簡単です
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/mail.key -out /etc/ssl/certs/mailcert.pem
質問されたすべての質問でEnterキーを押すだけで、デフォルト値のままになります。 この証明書を本番環境で使用しないでください。
ほとんどのCAでは、証明書署名要求を送信する必要があります。 (CSR)次のように生成できます。
sudo openssl req -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/mail.key -out mailcert.csr
このトランスクリプトのように、適切に照会された情報を入力します:(CSRに必要な情報について使用する予定のCAに確認してください)
Generating a 2048 bit RSA private key
.............................+++
................+++
writing new private key to 'mail.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]: US
State or Province Name (full name) [Some-State]: Virginia
Locality Name (eg, city) []: Langley
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Network Services Association
Organizational Unit Name (eg, section) []: Infrastructure Services
Common Name (e.g. server FQDN or YOUR name) []: mail.mydomain.com
Email Address []: [email protected]
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
(この方法では、追加の作業なしにsubjectAltName
フィールドを使用して複数のドメインに有効な証明書を作成できないことに注意してください。もう一度、CAのドキュメントを確認してください!)
DNSの設定
メールサーバーのIPを指すAレコードとメールサーバーのホスト名を指すMXレコードを使用してDNSを設定する必要があります。
DigitalOceanのDNSを使用している場合の方法は次のとおりです。
- DigitalOceanパネルの「DNS」領域に移動します
- 新しいドメインを作成するか、以前に作成したドメインを選択します
- 右上の「レコードを追加」ボタンをクリックします
- Aレコードを追加します。
- もう一度[レコードの追加]をクリックして、Aレコードを指すMXレコードを追加します。
詳細については、ホスト名の設定およびDNSのヒントとコツの記事を参照してください。
DNSを確認する
DNSはインターネット全体に伝播するのに数時間かかりますが、数分後にDNSサーバーに設定する必要があります。 で確認できます掘る & 亭主 :
[[email protected]] ~# dig MX mydomain.com +short @ns1.digitalocean.com
50 mail.mydomain.com.
[[email protected]] ~# host mail.mydomain.com ns1.digitalocean.com
Using domain server:
Name: ns1.digitalocean.com
Address: 198.199.120.125#53
Aliases:
mail.mydomain.com has address 82.196.9.119
Postfix
ここで、ローカルユーザー宛てのメールを送受信するようにPostfixを設定します。
パッケージ
DebianのデフォルトのMTAはEximです。 それでオフ! また、postfixをインストールした後は、まだ実行したくないので停止します。
aptitude remove exim4 && aptitude install postfix && postfix stop
小さな挿入:Postfixはそれ自体でデーモンを管理し、サービス(init.d)システムを必要としません。 postfix start、postfix stop、およびpostfix reloadは、service postfix start、service postfix stop、およびservicepostfixreloadと同等です。
Postfix設定
Postfixには2つの主要な構成ファイルがあります。構成オプションとして考えるものを指定するmain.cfと、postfixが実行するサービスを指定するmaster.cfです。
まず、 master.cf ファイル(/etc/postfix/
内)を構成します。 「submission」と呼ばれる追加の「smtpd」インスタンスを追加します。これは、信頼できるクライアントからメールを受け取り、世界中に配信します。これは、他の誰にも許可されていません。 これを行うには、 master.cf を開き(何が起こっているのかを理解したい場合は man 5 master を参照)、送信構成のコメントを解除し、SASLを有効にするオプションを追加します。
submission inet n - - - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_wrappermode=no
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=private/auth
これには少し説明が必要です。 -o ...
オプションは、デフォルトから取得された設定、または後で設定する構成で定義された設定を上書きします。 簡単に言うと、ここで行われるのは、TLSを使用した「送信」デーモンが外部接続を保護し、dovecotを介したSASLが接続しているクライアントのユーザー名とパスワードをチェックできるようにすることです。 (後で鳩小屋に設置します)。
重要な詳細は見えないものです。smtpd_recipient_restrictions
にはreject_unauth_destinationがありません。これはデフォルトとして存在し、リレーを制限します。
次に、main.cfに移動します。 ここでは、白紙の状態から始めます。デフォルトの構成ファイルを保存する場合は、cp /etc/postfix/main.cf /etc/postfix/main.cf.orig
を実行します(ただし、/usr/share/postfix/main.cf.dist
にもあります)。次に、それを開いてクリアします。
最初にネットワーク情報を設定しましょう:(postfixがメールを処理しているドメインに関する情報と少しの追加情報)
myhostname = mail.domain.com
myorigin = /etc/mailname
mydestination = mail.domain.com, domain.com, localhost, localhost.localdomain
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
ホスト名とデフォルトのオリジンを設定します。これは、debianの慣例により / etc /mailnameから供給されます。 / etc / mailname がない場合は、明示的に設定できます。 デフォルトのオリジンは、ローカルユーザーの「From」アドレスを作成するために使用されます。 mydestination は、postfixがメールを受け入れるドメインを最終的な宛先として設定し、「relayhost」を空に設定してメールのリレーを無効にします(リレーとは、メールを受け入れてから、メールの最終的な宛先ではないメールサーバーに転送することを意味しますメールと私たちはそれを必要としません;それは便利です例えば 中央のメールサーバーがネットワークを離れる前にメールをチェックする必要がある企業イントラネット内。)
*追記:これは「オープンリレー」という用語とは関係ありません。これは、認証なしで誰からの電子メールも受け取り、自分のネットワークにないドメインのMTAに送信するメールサーバーです。 X234X]