デフォルトのsshポートを変更する理由 [閉まっている]


回答:


65

一部の人々が主張するほど有用ではありませんが、多くのブルートフォースログイン試行は、SSHが他の場所でリッスンしているかどうかをスキャンするのではなく、デフォルトポートのみを使用するため、少なくともログファイルへの影響は軽減されます。ただし、一部の攻撃は他の場所でSSHをスキャンするため、特効薬ではありません。

サーバーがプロジェクトのニーズに応えるだけでなく、ある種の共有ホストになる場合、デフォルト以外のポートを使用すると、何度も何度もユーザーに説明しなければならず、忘れて、クライアントプログラムがポート22への接続に失敗したとき!

非標準ポートでのSSHで発生する可能性のある別の問題は、フィルターがポート22、53、80のみを許可するため、カスタムポートに接続できない送信フィルターセットが制限されているクライアントに遭遇した場合です。 443が新しい発信接続の宛先になります。これは珍しいことではありませんが、前代未聞ではありません。同様の問題で、一部のISPは、P2P接続を隠し、スロットル(またはブロック)する試みとして、通常予想されるポート(ポート443またはHTTPS、SSHの22など)以外のポートで暗号化されたトラフィックを見ることがあります不都合な方法での接続。

便宜上、個人的には標準ポートでSSHを使用しています。通常の予防策が講じられている限り(強力なパスワード/キーポリシー、ルートログインの制限など)、心配する必要はありません。ブルートフォース攻撃を受けたときのログファイルの増加の問題は、次のようなツールを使用して軽減できます。 fial2banとして、指定された時間内に認証資格情報の不正なセットが多すぎるホストを一時的にブロックします。

22から離れる場合は、どのポートを選択した場合でも、1024未満であることを確認してください。デフォルト構成のほとんどのUnixライクセットアップでは、ルート(またはルートグループのユーザー)のみが1024未満のポートでリッスンできます。ただし、すべてのユーザーが上位のポートでリッスンできます。上位のポートでSSHを実行すると、悪意のある(またはハッキングされた)ユーザーがSSHデーモンをクラッシュさせ、自分またはプロキシに置き換える可能性が高くなります。


私はこのサーバーの唯一のユーザーです。1024以上の問題を明確にしていただきありがとうございます。選択した場合、48xxxポートを使用していました。とにかくこの時点で、それが有用かどうかはまだ
動的

16
1024ビットを超える場合は+1。
MattC

26

これは、あいまいさによる単純な(しかし驚くほど効果的な)セキュリティです。

SSHサーバーがポート22にない場合は、インターネット全体をスキャンしてデフォルトアカウントの脆弱なパスワードを探している人に発見される可能性ははるかに低くなります。ネット全体をスキャンする場合、SSHサーバーを見つけるために64kのすべての可能なポートをチェックする余裕はありません。

ただし、誰かが積極的にあなたをターゲットにしている場合は、単純な1回限りのnmapスキャンで実際に実行されているポートが明らかになるため、メリットはありません。


3
「64kの可能性のあるすべてのポートをチェック」 ... 1023を超えるポートでSSHを実行するのは間違っています。システムをデフォルトのポートで実行したままにしておくよりも、システムをより脆弱にします。
ジュリアーノ

3
@ジュリアーノ-説明してください。特権ポートでリッスンするためにrootになる必要があるからといっ(非公開)、非特権ポートで実行することを危険にさらすわけではありません。
アルニタック

4
ちなみに、あいまいさによるセキュリティではないため、パスワード認証も同じように呼び出す必要があります。隠蔽によるセキュリティは、実装が公開されていない場合です。ここでは、実装が明確に記載されており(「サービスポートを変更しました」)、秘密(「どのポート?」)は依然として秘密です。
ジュリアーノ

5
@ジョン-実際に私は@ジュリアーノのポイントを見る。SSHデーモン自体の本質的な安全性は低下しませんが、一般的な場合、非特権ポートで実行すると、root デーモンを開始したという通常の仮定が無効になります。そのため、何らかの方法でデーモンを停止できる場合(DoSingなど)、ルートエクスプロイトを必要とせずに、代わりに独自の偽のデーモンを起動できます。その偽のデーモンは、さらなる悪用を可能にするために十分な詳細をキャプチャする可能性があります。
アルニタック

2
@John、それは本当です-攻撃者が新しいデーモンを自分で起動するために十分なアクセス権を取得することを依然として必要とします。重要な点は、起動するためにルートアクセスが不要になったことです。
アルニタック

21

ブルートフォース攻撃を実際に回避するには、いくつかの手順に従うことが常に重要です。

  • denyhostsまたはfail2banをインストールします
  • SSHポートで1秒あたりの接続数を制限する
  • SSHポートを変更する
  • ルートログインが拒否されました
  • パスワードではなくキーによる認証を有効にします

11
私が本当に同意しないポート変更部分を除いて、良いリストのように思えます、それはあまりにもあいまいです。とにかく、最新のポートスキャナーは数秒以内にそれを見つけますか?(そして多くのネットワークは通常、22、80および443を言うために制限され、ランダムなポートのトラフィックをさせません)
オスカーDuveborn

1
デフォルトのポートで実行されているsshをチェックするポート変更制限ブルートフォース攻撃は、攻撃がより深刻な場合、この場合のみ攻撃者がネットワーク/ホストのホールポートのスキャンを実行できます。
アリメスガニ09年

1
実際、優れたファイアウォールの背後で、サービスを最新の状態に保ち、それらのデフォルト設定を変更すると、悪意のある人々の攻撃から安全になると思います。そして、エクスプロイトの危険の悪用または未知の攻撃からではないかもしれ
アリMezgani

2
denyhosts / fail2banを使用すると、ポートの切り替えやキーの要求が軽減されます。パスワードを許可しない場合、denyhosts / fail2banを使用したり、ポートを変更したりする意味はありません。
ジェレミーL

1
denyhosts / fail2banを使用しても、追加のセキュリティ対策の必要性が必ずしも軽減されるわけではありません。セキュリティのポイントは、セキュリティを回避しようとするユーザーにできるだけ多くの障害物を作成することです。おそらく、ポートを22から2222に変更する必要はありませんが、別の管理者が来てパスワードを再度有効にすると言うでしょう...まだいくつかの他のスピードバンプがあります。上記の各ステップにより、管理者は100%のセキュリティの不可能性に近いパーセンテージを取得します。
パトリックR

12

はい、それはすべてのブルートフォース攻撃を回避するのに役立ち、ログを明確に保つのに役立つので便利です:)

あなた次第のポート番号については、企業がかなり頻繁に1291を使用するのを見てきました。いくつかのスクリプトを避けるためだけに、もっと高いものを使用しています。

ルートsshログインを許可せず、ポート番号を変更し、おそらくfail2banのようなものを使用してください。適切な手段でiptablesを追加し、最新の状態に保つと、問題は発生しません。


2
「ログをクリアに保つ」ための+1
Lekensteyn

3
しかし、ポート1291(1024より大きい)がなぜ危険なのかを知るために、David Spillettの答えを見てください。
コネラック

他の多くのより良い答えの2年後に非特権ポートを使用することをアドバイスするつもりなら、おそらく「私は会社がそれを見ている」よりも良い理由を準備してください。企業が多くのことをするのを見てきました。私は彼らの例に従うことはめったにありません。
underscore_d

11

非標準のsshポートを使用するには、より多くの説明とドキュメントが必要であり、「ログインできません」というメールに答える必要があります。

非標準ポートでsshdを実行することの次の利点は、それが引き起こす問題よりも重要だと考えています。

  • ブルートフォース攻撃の99.9999%は、ポート22のみを探すボットによって実行され、非標準ポートを発見しようとして時間を無駄にしません。ブルートフォース攻撃とdenyhostsfail2banなどの対策はリソースを消費します。これは、非標準ポートでsshサーバーを実行するだけで節約できます。
  • システムに侵入しようとするボットに関する無用なレポートをすべて取り除きます。失敗したログインレポートにIPが表示される場合、これは人間である可能性があります。

さらに、本当に厄介になりたい場合は、標準ポート22で偽のsshd(DenyUsers *を使用)をいつでも実行できますが、通常のsshdはポート54321で実行されます。これにより、すべてのボットと侵入者が永遠にすべてのログインを拒否するサービスにログインしてみてください。実際の sshdサービスを見つけようとする人は誰もいないでしょう。

私の2セント。


1
これにより、さらに多くのサポートコールが発生する場合があります。
ブラッドギルバート

3
これは事実ですが、セキュリティの強化には代償が伴います。:)
生まれて

11

これを「セキュリティ」の理由で実行するのは偽です。これは、セキュリティではないあいまいさによるセキュリティの最良の例です。

ログを少し軽くてきれいにしたい場合は、ポートのノッキング/スクリプトキディのブルートフォース試行がそれほど多くないので便利です。


1
うん。ポート22でsshを使用していたとき、1日あたり20000を超えるパスワード試行の失敗がログに表示されました。つまり、毎日セキュリティ警告メールが届きました。パスワード認証を無効にしました-あなたはログインするための適切な秘密鍵を持っている必要がありました-だから私は誰かが入るのを心配していませんでしたが、本当のことが起こったときだけセキュリティ警告メールを受け取りたいです。
jdege

10

標準ポートでsshを実行し、fail2bandenyhostsなどを使用して、辞書攻撃の数を制限します。

別のオプションは、パスワードaltogheterを使用したログインを無効にし、sshキーを使用したログインのみを許可することです。


8

悪用しようとして、すべてのサーバーIPで開いているポートをスキャンする悪意のある人がたくさんいるからです。以前は、SSHポートを別のポートに移動するまで、またWebサイトにリンクされていないIPで、SSHポートにハンマー攻撃を仕掛けていました。


7

総当たり攻撃によるパスワード推測攻撃を試みるスクリプトボットは、一般的にポート22に焦点を当てているため、ポートを変更すると通常は無効になります。このリスクを軽減することの価値と、非標準ポートに接続するようにsshクライアントを構成する苦痛とのバランスを取る必要があります(確かに多くのユーザーが接続していない場合、それほど大きな苦痛ではありません)。

または、パスワード認証をオフにして、代わりにRSAキー認証を要求することにより、ブルートフォースリスクを軽減できます。

私は通常、SSHDのポートを変更しないので、別の番号を提案することはできませんが、一般的に使用されるポートリストを確認して別の番号を見つけます(つまり、他の誰かが使用していないためスキャンされる可能性があります) 。


6

私はいつも、ポート2222を使用するようにSSHdを変更します。私のサーバーにアクセスする必要がある人は誰でもこれを知っていて、それは秘密ではありません。これを行うことによるセキュリティの向上はまったくありません(ハッカーになりたい人が絶対的なバカでない限り)。

これから得られる唯一の利点は、認証ログに「root」、「alice」、「bob」、「sally」、「admin」などのログイン試行が100万回失敗しないことです。


5

あいまいさによるセキュリティは役に立たないことがわかっています。通常、上記のすべての理由(再構成におけるクライアントの問題、ファイアウォールおよびプロキシの問題など)のために、標準ポートでsshアクセスを構成します。

それに加えて、私は常にルートログインとパスワード認証を無効にし、最後のステップとして、syslogのその迷惑なメッセージを取り除くためにfail2banを使用します。Debian / Ubuntuでは、入力するのと同じくらい簡単aptitude install fail2banです。デフォルトの設定はかなりうまく機能しますが、私は通常、いくつかのパラメーターを調整して、より長い禁止時間(少なくとも1日)と禁止のトリガーとして失敗した認証試行が2回だけになるように制限します。


4

SSHポートを変更するときに最も身を守るのは、標準のユーザー名/パスワードを使用してアクセスしようとする自動スキャンであり、パスワードポリシーが厳しい場合は心配する必要はありませんそれら。


ポートスキャナーが他のポートも試行することは言うまでもありません。
ジムデビル

4

サーバーへのパスワードログインを無効にした場合(強く推奨)、SSHポートの変更はまったく役に立ちません。パスワードログインを無効にする(およびキーベースの認証を要求する)ことにより、ブルートフォースパスワードの試行の可能性を排除し、ポート番号をいじって何も得られないようにします。

パスワードベース認証を許可し続けると、ブルートフォースが成功する可能性にさらされることになります。または、より一般的には、実行中のシステムを使用するときに入力するため、パスワードが侵害されますキーロガー。


もしあなたが/まったく役に立たない/完全に役に立たない/なら、私は同意するでしょう。ただし、ポートを変更すると、認証ログのノイズを抑えるのに役立ちます。
クリスS

「そして鍵ベースの認証を要求する」?これは何
動的な

1
@ yes123、SSHは公開鍵と秘密鍵のペアを使用して、パスワードの代わりにユーザーを認証できます。これらのキーペアはパスワードで保護することもできるため、2要素認証(何か知っているもの=パスワード、持っているもの=キーファイル)を提供します。これを実装すると、パスワードログインを無効にできます(したがって、ローカルパスワードを知っている人はキーファイルとキーファイルのパスワードを使用できません)。パスワードは、キーと比較して比較的安全ではなく、キーペアよりも数百万倍もブルートフォースが容易です(通常は依然として困難ですが)。man ssh-keygen多くの情報を参照してください。
クリスS

@ yes123、さまざまなssh関連のmanページ(sshd、sshd_config、ssh、ssh_config)は便利な読み物です。 このドキュメントは、sshを使用した公開キー認証に関する優れたチュートリアルのように見えます。
ラースク

2

典型的な「あいまいさによるセキュリティ」のように見えますが、考えられるすべてのポート(〜64k)をスキャンすることは、それらの1つだけよりもはるかに時間がかかるため、意味があると推定します。

しかし、「ポートノッキング」の方がはるかに優れていると付け加えることができます。


1

答えではなく、コメントするには長すぎるので、このCWを作成します。

私はこれについてしばらくの間考えていましたが、アルニタックの答えに対するコメントでジュリアーノが言ったことには多くの真実があるという結論に達しました。それにもかかわらず、ポート22でSSHを実行すると、それに対するあらゆる種類の攻撃を開始するのが非常に簡単になりすぎることがわかります。

この問題を解決するには、ポート22で内部SSHサーバーを実行し、ファイアウォールを使用して、ターゲットマシンで22にポートを転送します。これにより、Julianoが指摘したように、低ポートのセキュリティを維持しながら、あいまいさによってある程度のセキュリティが得られます。

あいまいさによるセキュリティは、私が通常購読している原則ではありません。また、単純なポートスキャンではターゲットポートが明らかになり、あいまいさを無価値にすることがしばしば指摘されます。この問題を解決するには、職場と自宅の両方でファイアウォール(Smoothwall Express)を使用し、SnortアラートによってトリガーされるGuardian Active Responseというスクリプトを使用します。観測から、同じソースから3つ以上の異なるポートにヒットすると、プリセットリセット時間までパケットがドロップされることがわかります。これにより、ポートスキャンの実行がかなり難しくなり、非常に時間がかかります。実際、これにより過去に何度もシャットダウンされ、ソース(自宅またはオフィス)のIPアドレスの除外を設定しました。


ポートフォワードをお勧めします、ジョン!私たちは両方とも何かを学んだと思います:)
アルニタック

1

問題は、特定のIPのみが接続できるようにファイアウォールが設定されており、上司が外出中に特定のIPを開くことにうんざりしていることです。ファイアウォールで特定のIPをロックダウンしている場合、それは苦痛になる可能性があります。

ここで私が考える2つのこと。ポートを変更すると、自動化された攻撃から保護されます。これで終わりですが、平均的な攻撃トラフィックの大部分です...ネットワークをスキャンする自動スクリプト。デフォルトのポートを変更すると、これらの攻撃はすぐになくなるはずです。その点で意味があります。ただし、攻撃者は、NessusまたはNMAPをスキャンして、あなたを十分に嫌っている特別な小さな友人がいる場合は、使用しているポートを特定できるため、直接攻撃に対しては何もしません。

次に、UNIXライクなサーバーを使用している場合は、Denyhostsなどのユーティリティをインストールして攻撃を阻止できます。denyhostsをインストールすると、不正なログイン試行を監視し、(試行回数にかかわらず)試行に失敗すると、指定した期間IPを禁止します。拒否ホストは、他の拒否ホストホストと通信して禁止リストを渡すこともできるため、攻撃者がモンタナ州のFredのLinuxシステムからロックアウトされると、システムもそのIPを禁止のために取得します。ユーザーがパスワードを覚えている限り、非常に便利です。

それはすべて使用シナリオに依存します。SSH / SCPの接続ポートを変更するための「お尻の痛み」となるプログラムはいくつありますか(また、許可されていない場合や苦痛になっている場合は、ベンダーを個人的に変更することを検討する必要があります)。潜在的な恐怖だけであれば、それは問題ではないと思います。そしてこれはあなたのボスであり、多くのシステム管理者がSSHポートをひっくり返すので、まったく奇抜ではないものを求めています(不明瞭でセキュリティがかすかに臭いものを嫌う人からのいくつかのフラックで...しかしそれは本当に削減されます自動スキャンのバックグラウンドノイズを残します。)

ボイルドダウン-ポートを変更すると、自動化されたスクリプトとほとんどの悪いトラフィックがブロックされます。指示された攻撃者を止めません。自動禁止ユーティリティもインストールすることを検討してください。レイヤー内のセキュリティは適切に行われていれば害はありません。ポートを変更すると、ほとんどの状況でそれが痛む以上に役立ちます。


1

5年以上、1024を超えるポートでSSHを実行しています。それ以来、ログファイルにポートスキャンの試みはありません(自分自身からの場合を除く)。1024を超えるポートを使用して実行する管理者のサーバーがあります。

1024を超えるポートで実行されるSSHサーバーの多くは、非常に人気のある独自のWebサイトを持っています。

私の会社でSSHサーバーが稼働している場合、皆さんがサーバーにハッキングできるように、すでにそのサーバーのIPアドレスをここに投稿しているかもしれません。残念ながら、SSHサーバーは自分のものではありません。;-)

しかし、それを安全にするために設定しなければならない他のことがあります。SSH> 1024だけでは十分ではありません。ポート番号は/ etc / servicesに含まれてはならず、ポート転送(ポート1124-> 22など)を使用する必要があり、ルートへの直接アクセスは無効にする必要があります。

したがって、議論する場合は、数年の間、1024を超えるポートでSSHを実行することをお勧めします。

p / s:1124は私のSSHポート番号ではありません。ハハ。


0

ポートがまだ便利だということをまだ発見していないなら、そうではないでしょう。


0

SSHを別のポートに移動することには意味があります。セキュリティには役立ちますが、それほど大きくはありません。もちろん、そのためにはファイアウォールを制御する必要がありますが、それは問題ではありません。港を移動する利点を取り消すと思うのは、許容範囲を開くことです。実際、今日よりも利益を取り消すだけでなく、あなたをさらけ出していると思います。ポートをすべて移動するのではなく、可能性のあるエントリポイントのリストを照合することで、ポートを移動し、着信範囲を大幅に削減するように彼を説得できると確信しています。


0

sshポートを変更することは、セキュリティを制限するだけの無駄な運動です。単純にパスワード認証を無効にして、総当たりパスワードの試行のリスクを排除し、sshキーベースの認証のみに依存することをお勧めします。環境でパスワード認証が必要な場合は、SecurIDやWikidなどの2要素メカニズムを採用してください。

どちらもセキュリティを大幅に向上させますが、sshポートを変更すると、セキュリティの錯覚しか得られません。


0

これは実用的なPOVです。SSHポートを変更して、公開されているプラ​​イベートsshサーバーを4年以上運用しており、パスワードスキャンの試行は一度もありませんでした。このQAのために、そのうちの1つで22を1日間有効にしました。その結果、私は毎秒約5回のパスワード試行頻度で約10分ごとにスキャンされました。さらに「スキャンキディ」は、特定のOpenSSH脆弱性を持つサーバーも探します。

確かに、これは隠蔽によるセキュリティであり、敵を獲得した場合には役に立ちません。


-3

「あいまいさによるセキュリティ」群衆の泣き声に関係なく、それは素晴らしい働きをします。

愚かなうさぎ、すべてのセキュリティは、あいまいさによるセキュリティです。あいまいな暗号プロトコルZ(DNAサンプル、共有キー、および人間のパスワードで実際に入力することは不可能)の組み合わせが実際に安全であると信じているからといって、そうはなりません。真実は、ありとあらゆるセキュリティ対策は、ユーザーによる確率と仮定に依存しています。私がその仮定を活用する方法を知っているなら、あなたには残念ですが、そこにはあります。

とにかく、

私たちはこれを何年もの間、a)接続試行率の制限(ただし、その設定方法はわからない、ssh configで何か)、およびb)辞書攻撃を実行しているホストを禁止するスクリプトY分でXの間違った推測。一定期間接続を行うホストを禁止します。これにより、変化するネットワークのトポロジへの適応が容易になります。

パスワードが十分に複雑で、15分間に3回しか試行できない場合は、それほど心配する必要はありません。分散攻撃を監視するのもそれほど難しくありません。通常、サブネットとIPを照合して、そのようなことを排除します。

最後に必要なのは、f / wルールを変更してポートへの接続を許可する秘密のリスメソッドです。それは何でも構いません... smtp、web、magic dns querys。SecurIDやWikidのようなものは、より多くの情報を第三者に渡すだけです。また、サードパーティを通じて安全な証明書の作成を開始しないでください。


2
-1、あいまいさが何であるかを理解していないようです... 明らかでない何かを作成すること、ロックをかけることと同じではありません。絶対的なセキュリティがないことは事実ですが、間違いなく違いがあり、3要素認証をあいまいにまとめてもだれも助けにはなりません。
クリスS

1
すみません、クリス、それはカーゴカルトの宗教です。たぶん、あなたはロックを選ぶことができないので、それを持っているとあなたは安全になると思うが、すべてのロックを選ぶことができる。箱の外で考える:多くの場合、「明らかではない」何かを作成することは、ロックを使用するよりも優れている場合があります。セキュリティのモデル/ビューは、ロックをかけた車にラップトップを置いて、アラームを設定するようなものです。1つの微調整でロックをかけ、ラップトップをなくします。しかし、おそらくそれは微調整ではなく、0日間の悪用と殺す時間のある人です...ああ、見て!クリスには「安全な」ターゲットがあります。隠蔽は、セキュリティの非常に重要な部分です。
ランダムジョー

申し訳ありませんが、あなたの比較と​​ロジックはちょうど我慢できません。私はロックを選ぶ方法を知っています、それらを断ち切り、窓を壊し、回るのが速いです。すべてのセキュリティ対策には、それを回避するためにある程度の時間と労力が必要です。あいまいさは、数分から数時間のオーダーで、わずかな時間と労力しかかかりません。レート制限パスワードの試行などの実際のセキュリティでは、パスワードの通過にかなりの時間がかかります。その大きな時間の不均衡は、「偽の」セキュリティと「本物の」セキュリティの違いです。あいまいさは前者に該当します。
クリスS
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.