重いメールシステムの代替としてのOpenSMTPD + UW IMAP

ドメインが関連付けられたサーバーを持っているほとんどすべての人は、少なくともwebmaster / postmaster / abuse @ domainのようなアドレスが利用可能であれば 、メールの問題を解決する必要があります。
誰かがM4を教えて組み込みのsendmailを設定し、誰かがサードパーティのサービス(たとえばGoogleから)を使用し、誰かが標準のpostfix + courier-imap + mysql(まあ、または類似物)を持ち上げます。

私は最初の、2番目の-イデオロギーの理由で望んでいなかった、そして3番目の-やりすぎでした。 そのため、この記事で説明したい「中間方法」を見つけました。

前提条件


このガイドを作成するとき、ユーザーはコンソールを介して* nixシステムと対話でき、配布キットのパッケージをインストールでき、構成を編集するためのテキストエディターを少なくとも1つ所有していると想定しました。 例として、これは私のホームディストリビューションであるため、Arch Linuxにパッケージをインストールします。

問題の声明


何かをする前に、それをする理由を理解する必要があります。 説明されている構成は、次の場合に意味があります。

私の場合、すべてのポイントが一致しました。小さな仮想マシンで、友人や知人のために数十個のドメインを駐車しています。

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にメールを送信しようとしています...

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


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

この最小限の構成で、1ダースまたは2ドメインのテクニカルメールを受信できます。

SMTPS / TLSおよび認証


opensmtpdでは、認証されたユーザーはローカルになります。 認証はlistenの行でキーワードauth (またはauth-optional )によって有効になりますが、最初にsmtps / tlsを設定する必要があります。 信頼できる証明書は、StartSSLなどのさまざまな場所で取得できます。 いずれの場合でも、PEM形式の3つのファイルがあると仮定します。
  1. server.crt-サーバー証明書
  2. server.key-証明書の秘密鍵
  3. 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にあったものと比較します


合計


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

ご清聴ありがとうございました。

Source: https://habr.com/ru/post/J252567/


All Articles