重いメールシステムの代替としての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を実行します。つまり、重大な脆弱性が存在する可能性は非常にわずかです。



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



All Articles