回答:
一部の人々が主張するほど有用ではありませんが、多くのブルートフォースログイン試行は、SSHが他の場所でリッスンしているかどうかをスキャンするのではなく、デフォルトポートのみを使用するため、少なくともログファイルへの影響は軽減されます。ただし、一部の攻撃は他の場所でSSHをスキャンするため、特効薬ではありません。
サーバーがプロジェクトのニーズに応えるだけでなく、ある種の共有ホストになる場合、デフォルト以外のポートを使用すると、何度も何度もユーザーに説明しなければならず、忘れて、クライアントプログラムがポート22への接続に失敗したとき!
非標準ポートでのSSHで発生する可能性のある別の問題は、フィルターがポート22、53、80のみを許可するため、カスタムポートに接続できない送信フィルターセットが制限されているクライアントに遭遇した場合です。 443が新しい発信接続の宛先になります。これは珍しいことではありませんが、前代未聞ではありません。同様の問題で、一部のISPは、P2P接続を隠し、スロットル(またはブロック)する試みとして、通常予想されるポート(ポート443またはHTTPS、SSHの22など)以外のポートで暗号化されたトラフィックを見ることがあります不都合な方法での接続。
便宜上、個人的には標準ポートでSSHを使用しています。通常の予防策が講じられている限り(強力なパスワード/キーポリシー、ルートログインの制限など)、心配する必要はありません。ブルートフォース攻撃を受けたときのログファイルの増加の問題は、次のようなツールを使用して軽減できます。 fial2banとして、指定された時間内に認証資格情報の不正なセットが多すぎるホストを一時的にブロックします。
22から離れる場合は、どのポートを選択した場合でも、1024未満であることを確認してください。デフォルト構成のほとんどのUnixライクセットアップでは、ルート(またはルートグループのユーザー)のみが1024未満のポートでリッスンできます。ただし、すべてのユーザーが上位のポートでリッスンできます。上位のポートでSSHを実行すると、悪意のある(またはハッキングされた)ユーザーがSSHデーモンをクラッシュさせ、自分またはプロキシに置き換える可能性が高くなります。
これは、あいまいさによる単純な(しかし驚くほど効果的な)セキュリティです。
SSHサーバーがポート22にない場合は、インターネット全体をスキャンしてデフォルトアカウントの脆弱なパスワードを探している人に発見される可能性ははるかに低くなります。ネット全体をスキャンする場合、SSHサーバーを見つけるために64kのすべての可能なポートをチェックする余裕はありません。
ただし、誰かが積極的にあなたをターゲットにしている場合は、単純な1回限りのnmap
スキャンで実際に実行されているポートが明らかになるため、メリットはありません。
ブルートフォース攻撃を実際に回避するには、いくつかの手順に従うことが常に重要です。
はい、それはすべてのブルートフォース攻撃を回避するのに役立ち、ログを明確に保つのに役立つので便利です:)
あなた次第のポート番号については、企業がかなり頻繁に1291を使用するのを見てきました。いくつかのスクリプトを避けるためだけに、もっと高いものを使用しています。
ルートsshログインを許可せず、ポート番号を変更し、おそらくfail2banのようなものを使用してください。適切な手段でiptablesを追加し、最新の状態に保つと、問題は発生しません。
非標準のsshポートを使用するには、より多くの説明とドキュメントが必要であり、「ログインできません」というメールに答える必要があります。
非標準ポートでsshdを実行することの次の利点は、それが引き起こす問題よりも重要だと考えています。
さらに、本当に厄介になりたい場合は、標準ポート22で偽のsshd(DenyUsers *を使用)をいつでも実行できますが、通常のsshdはポート54321で実行されます。これにより、すべてのボットと侵入者が永遠にすべてのログインを拒否するサービスにログインしてみてください。実際の sshdサービスを見つけようとする人は誰もいないでしょう。
私の2セント。
これを「セキュリティ」の理由で実行するのは偽です。これは、セキュリティではないあいまいさによるセキュリティの最良の例です。
ログを少し軽くてきれいにしたい場合は、ポートのノッキング/スクリプトキディのブルートフォース試行がそれほど多くないので便利です。
総当たり攻撃によるパスワード推測攻撃を試みるスクリプトボットは、一般的にポート22に焦点を当てているため、ポートを変更すると通常は無効になります。このリスクを軽減することの価値と、非標準ポートに接続するようにsshクライアントを構成する苦痛とのバランスを取る必要があります(確かに多くのユーザーが接続していない場合、それほど大きな苦痛ではありません)。
または、パスワード認証をオフにして、代わりにRSAキー認証を要求することにより、ブルートフォースリスクを軽減できます。
私は通常、SSHDのポートを変更しないので、別の番号を提案することはできませんが、一般的に使用されるポートリストを確認して別の番号を見つけます(つまり、他の誰かが使用していないためスキャンされる可能性があります) 。
あいまいさによるセキュリティは役に立たないことがわかっています。通常、上記のすべての理由(再構成におけるクライアントの問題、ファイアウォールおよびプロキシの問題など)のために、標準ポートでsshアクセスを構成します。
それに加えて、私は常にルートログインとパスワード認証を無効にし、最後のステップとして、syslogのその迷惑なメッセージを取り除くためにfail2banを使用します。Debian / Ubuntuでは、入力するのと同じくらい簡単aptitude install fail2ban
です。デフォルトの設定はかなりうまく機能しますが、私は通常、いくつかのパラメーターを調整して、より長い禁止時間(少なくとも1日)と禁止のトリガーとして失敗した認証試行が2回だけになるように制限します。
サーバーへのパスワードログインを無効にした場合(強く推奨)、SSHポートの変更はまったく役に立ちません。パスワードログインを無効にする(およびキーベースの認証を要求する)ことにより、ブルートフォースパスワードの試行の可能性を排除し、ポート番号をいじって何も得られないようにします。
パスワードベース認証を許可し続けると、ブルートフォースが成功する可能性にさらされることになります。または、より一般的には、実行中のシステムを使用するときに入力するため、パスワードが侵害されますキーロガー。
man ssh-keygen
多くの情報を参照してください。
答えではなく、コメントするには長すぎるので、このCWを作成します。
私はこれについてしばらくの間考えていましたが、アルニタックの答えに対するコメントでジュリアーノが言ったことには多くの真実があるという結論に達しました。それにもかかわらず、ポート22でSSHを実行すると、それに対するあらゆる種類の攻撃を開始するのが非常に簡単になりすぎることがわかります。
この問題を解決するには、ポート22で内部SSHサーバーを実行し、ファイアウォールを使用して、ターゲットマシンで22にポートを転送します。これにより、Julianoが指摘したように、低ポートのセキュリティを維持しながら、あいまいさによってある程度のセキュリティが得られます。
あいまいさによるセキュリティは、私が通常購読している原則ではありません。また、単純なポートスキャンではターゲットポートが明らかになり、あいまいさを無価値にすることがしばしば指摘されます。この問題を解決するには、職場と自宅の両方でファイアウォール(Smoothwall Express)を使用し、SnortアラートによってトリガーされるGuardian Active Responseというスクリプトを使用します。観測から、同じソースから3つ以上の異なるポートにヒットすると、プリセットリセット時間までパケットがドロップされることがわかります。これにより、ポートスキャンの実行がかなり難しくなり、非常に時間がかかります。実際、これにより過去に何度もシャットダウンされ、ソース(自宅またはオフィス)のIPアドレスの除外を設定しました。
問題は、特定のIPのみが接続できるようにファイアウォールが設定されており、上司が外出中に特定のIPを開くことにうんざりしていることです。ファイアウォールで特定のIPをロックダウンしている場合、それは苦痛になる可能性があります。
ここで私が考える2つのこと。ポートを変更すると、自動化された攻撃から保護されます。これで終わりですが、平均的な攻撃トラフィックの大部分です...ネットワークをスキャンする自動スクリプト。デフォルトのポートを変更すると、これらの攻撃はすぐになくなるはずです。その点で意味があります。ただし、攻撃者は、NessusまたはNMAPをスキャンして、あなたを十分に嫌っている特別な小さな友人がいる場合は、使用しているポートを特定できるため、直接攻撃に対しては何もしません。
次に、UNIXライクなサーバーを使用している場合は、Denyhostsなどのユーティリティをインストールして攻撃を阻止できます。denyhostsをインストールすると、不正なログイン試行を監視し、(試行回数にかかわらず)試行に失敗すると、指定した期間IPを禁止します。拒否ホストは、他の拒否ホストホストと通信して禁止リストを渡すこともできるため、攻撃者がモンタナ州のFredのLinuxシステムからロックアウトされると、システムもそのIPを禁止のために取得します。ユーザーがパスワードを覚えている限り、非常に便利です。
それはすべて使用シナリオに依存します。SSH / SCPの接続ポートを変更するための「お尻の痛み」となるプログラムはいくつありますか(また、許可されていない場合や苦痛になっている場合は、ベンダーを個人的に変更することを検討する必要があります)。潜在的な恐怖だけであれば、それは問題ではないと思います。そしてこれはあなたのボスであり、多くのシステム管理者がSSHポートをひっくり返すので、まったく奇抜ではないものを求めています(不明瞭でセキュリティがかすかに臭いものを嫌う人からのいくつかのフラックで...しかしそれは本当に削減されます自動スキャンのバックグラウンドノイズを残します。)
ボイルドダウン-ポートを変更すると、自動化されたスクリプトとほとんどの悪いトラフィックがブロックされます。指示された攻撃者を止めません。自動禁止ユーティリティもインストールすることを検討してください。レイヤー内のセキュリティは適切に行われていれば害はありません。ポートを変更すると、ほとんどの状況でそれが痛む以上に役立ちます。
5年以上、1024を超えるポートでSSHを実行しています。それ以来、ログファイルにポートスキャンの試みはありません(自分自身からの場合を除く)。1024を超えるポートを使用して実行する管理者のサーバーがあります。
1024を超えるポートで実行されるSSHサーバーの多くは、非常に人気のある独自のWebサイトを持っています。
私の会社でSSHサーバーが稼働している場合、皆さんがサーバーにハッキングできるように、すでにそのサーバーのIPアドレスをここに投稿しているかもしれません。残念ながら、SSHサーバーは自分のものではありません。;-)
しかし、それを安全にするために設定しなければならない他のことがあります。SSH> 1024だけでは十分ではありません。ポート番号は/ etc / servicesに含まれてはならず、ポート転送(ポート1124-> 22など)を使用する必要があり、ルートへの直接アクセスは無効にする必要があります。
したがって、議論する場合は、数年の間、1024を超えるポートでSSHを実行することをお勧めします。
p / s:1124は私のSSHポート番号ではありません。ハハ。
「あいまいさによるセキュリティ」群衆の泣き声に関係なく、それは素晴らしい働きをします。
愚かなうさぎ、すべてのセキュリティは、あいまいさによるセキュリティです。あいまいな暗号プロトコルZ(DNAサンプル、共有キー、および人間のパスワードで実際に入力することは不可能)の組み合わせが実際に安全であると信じているからといって、そうはなりません。真実は、ありとあらゆるセキュリティ対策は、ユーザーによる確率と仮定に依存しています。私がその仮定を活用する方法を知っているなら、あなたには残念ですが、そこにはあります。
とにかく、
私たちはこれを何年もの間、a)接続試行率の制限(ただし、その設定方法はわからない、ssh configで何か)、およびb)辞書攻撃を実行しているホストを禁止するスクリプトY分でXの間違った推測。一定期間接続を行うホストを禁止します。これにより、変化するネットワークのトポロジへの適応が容易になります。
パスワードが十分に複雑で、15分間に3回しか試行できない場合は、それほど心配する必要はありません。分散攻撃を監視するのもそれほど難しくありません。通常、サブネットとIPを照合して、そのようなことを排除します。
最後に必要なのは、f / wルールを変更してポートへの接続を許可する秘密のリスメソッドです。それは何でも構いません... smtp、web、magic dns querys。SecurIDやWikidのようなものは、より多くの情報を第三者に渡すだけです。また、サードパーティを通じて安全な証明書の作成を開始しないでください。