web-dev-qa-db-ja.com

DNSBLルックアップ用のPAMモジュールはありますか?

信じられないほど便利なものがオペレーティングシステムのアップストリームリポジトリにないことに気付いたとき、バックエンドの本番サーバーの1つに残っているセキュリティ上の懸念を列挙してきました。

リモートホストのIPアドレスをDNSブロックリストと照合するPAMモジュールを探していました。 )([〜#〜] dnsbl [〜#〜])。

私のユースケースは...IDS Softwareは、プローブ、脆弱性スキャン、またはブルートを検出した後に応答できます強制攻撃-

一部のサービス(i.e. Apache2, proFTPd, Sendmail, SpamAssassin)[〜#〜] dnsbl [〜#〜]モジュールまたは機能を含めると、攻撃に参加できるマシンの数を大幅に減らすことができます。これは、既知の感染マシンまたはゾンビマシン、パブリックプロキシ、およびTOR出口リレーノード(たとえば)をブロックすることによって行われます。

私の知る限り、他の人はそうしません。 Dovecot/Saslauthdそのような機能は含まれていません。これらは、私のネットワーク上のブルートフォース攻撃で頻繁に標的にされます。これらのサービスは引き続きIDSシステムによってカバーされていますが、攻撃の大部分に苦しんでいます

認証中にリモートホストIPをDNSBLに対してチェックするPAMモジュールを使用...効果的に[〜#〜] all [〜#〜]サービスは、分散型ブルートフォース攻撃またはプローブ(上記の攻撃で使用できる可能性のあるマシンを制限する)に対して、この追加の復元力の層を持つことができます

この目的を果たすための既存のPAMモジュールがあるかどうか疑問に思っていますか?そうでない場合、なぜこれが開発者によって見落とされているのですか?

それは信じられないほど単純なモジュールであり、(私の意見では)大きな目的を果たすことができます。

今のところ、(「pam_exec.so」モジュールを介して)PAMとインターフェイスするスクリプトを作成しました。何らかの理由で、これは機能していません(単にBASHがクラッシュする原因になります)。機会があれば、代わりに「pam_script.so」モジュールを試す予定です。

これを行うためにPAMモジュールを作成したいと思いますが、ソフトウェアをDebianまたはUbuntuリポジトリに取り込むのがどれほど難しいかはわかりません。

ありがとう

2
RapidWebs

私はそのようなモジュールを知りません。 2番目の質問(理由)は、主に意見に基づいた回答を求めることです。そのようなPAMモジュールが存在しなかった理由の明確な理由は考えられないからです。

以下は、実現可能性を評価するときに私が特定した設計上の考慮事項です。

  • Speed:ログインを停止してしてはいけませんssh + PAMはすでに悪い場所にあります デフォルト設定でのDNS遅延に関しては。タイムアウトを積み重ねないように、各サーバーへのDNSルックアップは並行して行う必要があると言っても過言ではありません。
  • 再試行が悪い:再試行が/etc/resolv.confの範囲内であると見なされる限り、DNSルックアップにCライブラリを使用することは問題ありません。 DNS再試行が実装されている場合、モジュールはDNSルックアップにCライブラリを使用してはなりません。最終結果は、ネストされた再試行操作になります。
  • プライベートIP範囲をスキップ:RFC1918(および同様の)スペースは、この情報をDNSBLに渡すのは役に立たないため、常にフリーパスを取得する必要があります。
  • ロックアウトの考慮事項:すべてのDNSが利用できない場合はどうなりますか?プライベートIPを除いて、モジュールは常にログインに失敗しますか?これは文書化する必要があります。
  • authスタックで呼び出された場合、ログエラーを生成します。authスタックは認証に使用されます。このモジュールは認証には使用されません。 authスタックをバイパスする決定(SSHキー認証、GSSAPI認証など)は、ユーザーがモジュールをそこに配置すると、モジュールを無効にします。
1
Andrew B

私自身はRedHatの人ですが、同様のモジュールについて長い間疑問に思っていました。良い質問。これを処理するモジュールを見たことがありません。

ソフトウェアの公開に関する限り、これは役立つかもしれません。

私はメインリポジトリで幸運に恵まれたことはありませんでしたが、rpmforge(現在はrepoforge)には非常に簡単に参加できる方法がいくつかあります。 ここを参照

Debian/ubuntuの場合、私は単一の大きなサードパーティリポジトリを見たことがありません。それらはすべて製品固有のようです。私のものは決して完全に適合しているようには見えませんでした、そして私は自分自身の公開リポジトリを実行することを正当化することはできませんでした。

私は、Debian派生物のパッケージ化に必要なものはすべてgithubに残しておく傾向がありました。

1
Tim Brigham

これはそれほど問題なく実装できますが、そうするのは悪い考えです。

まず、PAMとは何かを思い出してみましょう。これはユーザーログインの処理のシステムです。認証、承認、アカウンティングなど。

したがって、この提案が失敗するのは次のとおりです。

  1. 正当なログインを遅くします。 DNSルックアップはそれほど時間がかからないため、通常、速度の低下は感知できませんが、can数秒かかるか、完全にタイムアウトします。それが起こったとき、あなたは何をしますか?正当なユーザーを拒否しますか?
  2. さらに重要なのは、すべてが完全に機能している場合でも、完全にブロック正当なログインになります。多くのユーザーは動的IPアドレスを使用しているという不幸を抱えており、ボットネットに参加しているマルウェアに覆われたコンピューターを使用しているため、IPアドレスがDNSBLにリストされているか、最近IPアドレスが割り当てられている可能性があります。 DNSBL自体はクリーンですが、リストされています。

さまざまなサービスに対するブルートフォース攻撃に対処する方法はたくさんありますが、その中で最も一般的に使用されているのはfail2banですが、この提案は非常に悪い考えのようです。

0
Michael Hampton