
誰かがM4を教えて組み込みのsendmailを設定し、誰かがサードパーティのサービス(たとえばGoogleから)を使用し、誰かが標準のpostfix + courier-imap + mysql(まあ、または類似物)を持ち上げます。
私は最初の、2番目の-イデオロギーの理由で望んでいなかった、そして3番目の-やりすぎでした。 そのため、この記事で説明したい「中間方法」を見つけました。
前提条件
このガイドを作成するとき、ユーザーはコンソールを介して* nixシステムと対話でき、配布キットのパッケージをインストールでき、構成を編集するためのテキストエディターを少なくとも1つ所有していると想定しました。 例として、これは私のホームディストリビューションであるため、Arch Linuxにパッケージをインストールします。
問題の声明
何かをする前に、それをする理由を理解する必要があります。 説明されている構成は、次の場合に意味があります。
- ローカルユーザーの数は少なく、/ etc / passwdにエントリを作成することは許可されています
- 提供されるドメインの数> 1、それ以外の場合は「デフォルトで送信メール」が節約されます
- SSL / TLSまたは認証などの追加のものが必要ですOR
- サーバー構成は、そこで重いMTAを実行するには不十分です
私の場合、すべてのポイントが一致しました。小さな仮想マシンで、友人や知人のために数十個のドメインを駐車しています。
UW IMAPのインストールはオプションです。 私自身は問題なくsshを実行してmuttを実行したため、システムにユーザーが追加されるまでインストールしませんでした。
OpenSMTPDのインストールと初期セットアップ
Arch Linuxでは、インストールに5秒かかります:-)

構成は、単一のsmtpd.confファイルとオプションのテーブルファイルで構成されます。 私の初期設定は次のようになります。
smtpd.conf
# ipv4 limit mta inet4 # 25 all, server.com listen on 0.0.0.0 port 25 hostname server.com # . table aliases { root = xxx, abuse = xxx, postmaster = xxx, webmaster = xxx } table domains { server.com, domain1.ru, domain2.net, domain3.in } # (mbox) accept from any for domain <domains> alias <aliases> deliver to mbox # , ( mail ) accept from local for any relay # - reject from any for any
ご覧のとおり、複雑なものは何もありません。メールは、何らかのルールに該当するまで、すべての拒否/受け入れチェーンを通過します。
ヘルスチェック
これで、メールが機能しているかどうかを確認できます。 smtpd -nを実行して構成を確認し、smtpd -dを実行してstdinのログでフォアグラウンドで実行します。
root@domain1.ruにメールを送信しようとしています...
サーバーの出力を見てください

root@domain1.ruにメールを送信しようとしています...

サーバーの出力を見てください

Muttが確認-メールが配信されました!

この最小限の構成で、1ダースまたは2ドメインのテクニカルメールを受信できます。
SMTPS / TLSおよび認証
opensmtpdでは、認証されたユーザーはローカルになります。 認証はlistenの行でキーワードauth (またはauth-optional )によって有効になりますが、最初にsmtps / tlsを設定する必要があります。 信頼できる証明書は、StartSSLなどのさまざまな場所で取得できます。 いずれの場合でも、PEM形式の3つのファイルがあると仮定します。
- server.crt-サーバー証明書
- server.key-証明書の秘密鍵
- cachain.crt-証明書検証チェーン
これでsmtps / tlsと認証を有効にできます:
smtpd.conf
# , ca pki server certificate "/etc/ssl/certs/server.crt" pki server key "/etc/ssl/private/server.key" pki server ca "/etc/ssl/certs/cachain.crt" # ipv4 limit mta inet4 # 25 all, server.com, startssl listen on 0.0.0.0 port 25 tls pki server hostname server.com auth-optional # 465 all, server.com, ssl , ip listen on 0.0.0.0 port 465 smtps pki server hostname server.com auth mask-source # . table aliases { root = xxx, abuse = xxx, postmaster = xxx, webmaster = xxx } table domains { server.com, domain1.ru, domain2.net, domain3.in } # (mbox) accept from any for domain <domains> alias <aliases> deliver to mbox # , ( mail ) accept from local for any relay # - reject from any for any
これで、クライアントはSSLと認証を使用してメールを送信できます。
テスト中
SMTPサーバーを構成します。
手紙を送る:
サーバーの出力を確認します。

手紙を送る:

サーバーの出力を確認します。

Mutt(Receivedヘッダーに注意):

スパム対策など
たとえば、 spampd経由でアンチスパムを追加できます。
smtpd.conf
# , ca pki server certificate "/etc/ssl/certs/server.crt" pki server key "/etc/ssl/private/server.key" pki server ca "/etc/ssl/certs/cachain.crt" # ipv4 limit mta inet4 # 25 all, server.com, startssl listen on 0.0.0.0 port 25 tls pki server hostname server.com auth-optional # 465 all, server.com, ssl , ip listen on 0.0.0.0 port 465 smtps pki server hostname server.com auth mask-source # spampd - listen on 127.0.0.1 port 10026 tag Filtered # . table aliases { root = xxx, abuse = xxx, postmaster = xxx, webmaster = xxx } table domains { server.com, domain1.ru, domain2.net, domain3.in } # mbox accept tagged Filtered for domain <domains> alias <aliases> deliver to mbox # spampd accept from any for domain <domains> relay via "smtp://127.0.0.1:10025" # Filtered - - - reject tagged Filtered # , ( mail ) accept from local for any relay # - reject from any for any
繰り返しますが、複雑なものはなく、ファイアウォールや他のインラインフィルターとの類推によって簡単に構成できます。
UW IMAPをインストールして構成する
すでに書いたように、この部分はオプションです。サーバーにシステム管理者ユーザーが1人いる場合、imapはほとんど必要ありません。
インストール:

セットアップ:

まず、キー、サーバー証明書、CA証明書から、imapdのPEMファイルを作成し(名前は固定)、xinetdのxinetdユニットを作成し、それぞれxinetdを実行します。 それだけです、乾杯:-)
テスト中
IMAPで動作するようにメールクライアントを構成します
メールをチェックし、MUTTにあったものと比較します

メールをチェックし、MUTTにあったものと比較します

合計
SSL / TLSと認証を備えた本格的なメールシステムを手に入れました。電子レンジでも作業でき、何時間もマナを熟読する必要はありません。 必要に応じて、たとえばDKIM、バックアップMX、グレーリストなどを追加して、さらに拡張できます。 おまけとして、OpenBSDチームはOpenSMTPDを実行します。つまり、重大な脆弱性が存在する可能性は非常にわずかです。
ご清聴ありがとうございました。