少し前に、iptablesを使用してポートノッキングを実装することについて 記事 を書きました。この記事の後半で、このメカニズムをより安全にすることについても話しました。
動作する方法は、接続するSSHポートのようなポートを開くために、他のいくつかの閉じたポートをノックする必要があるということです。これらのポートを正しい順序でノックすると、最後のポート(この場合はSSHポート22)が接続に対して開かれます。
最近、ネットワークを介したパッシブサーベイランスがあっても、ノックする一連のポートを検出できる人がいることに気付きました。 ARPスプーフィング (サブネットワーク内)のような単純なMITM攻撃は、ポートが簡単にノックされることを明らかにします。
とにかく、ポートを毎回ランダム化する以外に、攻撃者からのポート番号を隠すために存在するかどうか知りたいと思いましたか?
明らかに、これはフレームチャレンジの一部なので、この回答が気に入らない場合は理解できます。しかしながら:
ポートノッキングの(私の頭の中で)最大の利点は、発見したすべてのSSHサーバーをブルートフォースでブルートフォースにしようとするインターネット上のすべてのボットを自動的に除外することです。また、SSHサーバーの0日間の脆弱性に対する小さな追加の保護レイヤーを提供する点でも役立ちます(サーバーがそこにあることをだれも知らない場合、脆弱であっても、0日間は試行できません)。 。ただし、これらの両方の場合のポイントは同じです。
ポートノッキングは、サーバーに対するドライブバイ攻撃を排除する方法として最も効果的です
直接攻撃(つまり、MITMがポートノッキングプロセスを監視している人)について話すと、セキュリティメソッドとしてポートノッキングは確実に失敗します。専用の攻撃者からポートの組み合わせを隠す方法があったとしても、それらが特定の組織をターゲットにしているという事実は、ポートノッキングセキュリティがその特定の仕事を達成したことを意味します。それは単にドライブバイアタッカーを締め出すことになっています、そしてそれは同じように行います。このセキュリティメソッドがもともと設計されていなかった、より標的を絞った攻撃をカバーするように拡張しようとすると、(新しいセキュリティ機能の実装とサポート、および誤って自分をロックアウトするリスクで)価値のある問題が発生する可能性があります。 )。
CanポートノッキングシーケンスをMITM攻撃者から隠しますか?私はそこに決定的な声明を出す準備ができていませんが、答えはノーだと確信しています。どちらにしても、実際には設計されていない防御メカニズムで攻撃経路を緩和しようとするのは、自分にとって大きな頭痛の種になるでしょう。結果として、サーバーをセキュリティで保護し、ポートを簡単にノックする他の方法を見つけた方がいいと思います。あなたはおそらくすでにこれを行っていますが、パスワードベースの認証をオフにし、秘密鍵のみによる認証を許可することは、通常、SSHサーバーの最初で最も効果的なセキュリティ対策であり、(IMO)ドライブをブロックするより効果的な方法です-ポートノッキングよりも攻撃によって。
ポートノッキングは基本的に非標準のプロトコルです。したがって、非標準ポートを実行している場合も、これを実行するか、無数の他の非標準プロトコルを発明できますが、目的を検討する必要があります。
主なポイントが攻撃の処理である場合、次のようなFail2Banセットアップのようなものです。
2分以内に3回パスワードが失敗した場合は、30分間ソースIPをブロックします。
これにより、自動ボット攻撃が1日あたりの数千から数少ないものから、まったくないものに減少します。人々による実際の太った運指はブロックを待つことができます。
標準のTLS暗号化接続(証明書検証付き)を追加すると、MiTM脅威を処理できます。必要に応じて、クライアントCERTSを追加することもできます。
カスタムプロトコルはほとんどの場合悪い考えであるか、せいぜい使いづらいです。
「非表示」のより深いレベルが必要な場合は、Tor Hidden Serviceを検討してください。