インターネット上の誰もがルートログインを無効にすることをお勧めします。SSHこれは、システムの悪い習慣であり、セキュリティホールであるためです。しかし、なぜこれが起こるのか誰も説明しません。
ルートログインを有効にする(特にパスワードログインを無効にする)リスクは何ですか?
パスワード認証が許可されている場合、セキュリティの観点からX表記法のユーザー名とY表記法のパスワード、またはルートユーザー名とX + Y表記法のパスワードの違いは何ですか?
答え1
SSHによるルーティングが悪い理由
SSH経由でコンピュータにログインしようとする多くのボットがあります。このロボットの動作方法は次のとおりです。
同様の操作を行いssh root@$IP
、「root」や「password123」などの標準パスワードを試してください。正しいパスワードが見つかるまで、できるだけ長くこれを行います。グローバルにアクセス可能なサーバーでは、ログファイルに多数のログエントリを表示できます。 1分間に最大20個以上を獲得できます。
攻撃者が幸運(または十分な時間)でパスワードを見つけると、rootアクセス権があり、これは問題に直面することを意味します。
ただし、SSHを介してルートログインを無効にすると、ボットは最初にユーザー名を推測してから、一致するパスワードを推測する必要があります。したがって、合理的なパスワードリストにはN
項目があり、合理的なユーザーリストにはM
多くの項目があるとします。ボットにはテストするアイテムセットがあるため、N*M
サイズセットのみがある基本的なケースよりもボットが少し難しくなりますN
。
M
一部の人々は、このアドインは実際にはセキュリティ上の利点ではないと言います。私はこれが小さなセキュリティの向上にすぎないことに同意します。しかし、私は本質的に安全ではありませんが、多くの人が簡単に入ることができないようにする小さなロックだと思います。もちろん、これはコンピュータに他の標準ユーザー名(torやapacheなど)がない場合にのみ機能します。
ルートを許可しないより良い理由は、ルートが通常のユーザーよりもコンピュータに多くのダメージを与える可能性があることです。したがって、幸運なことにパスワードを見つけるとシステム全体が失われ、標準ユーザーアカウントを使用するとそのユーザーのファイルのみを操作できます(まだ不便です)。
sudo
一般ユーザーにもアクセス権があり、ユーザーのパスワードが推測されるとシステムが完全に失われるという意見がありました。
要約すると、攻撃者がどのユーザーのパスワードを見つけたかは問題ではないと言いたいと思います。彼らがパスワードを推測すると、もはやシステムを信頼できなくなります。攻撃者はユーザーの権限を使用してコマンドを実行したり、sudo
システムの弱点を悪用してルート権限を取得したりする可能性があります。攻撃者がシステムにアクセスできる場合、システムは信頼できなくなります。
ここで覚えておくべきことは、SSH経由でログインが許可されているシステムのすべてのユーザーが追加の脆弱性であることです。ルートを無効にすると、明らかな弱点がなくなります。
SSHでパスワードが悪いのはなぜですか?
パスワードを無効にする理由は非常に簡単です。
- ユーザーが間違ったパスワードを選択しました!
パスワードを試すという全体的なアイデアは、パスワードを推測できる場合にのみ機能します。したがって、ユーザーが「pw123」というパスワードを持っていると、システムは安全になりません。人々が選ぶパスワードのもう一つの問題は、パスワードが覚えにくいので決してランダムではないということです。
また、ユーザーは自分のパスワードを再利用してFacebookやGmailアカウント、サーバーにログインする傾向があります。したがって、ハッカーがユーザーのFacebookアカウントのパスワードを調べると、そのユーザーのサーバーにアクセスできるようになります。ユーザーはフィッシングによって簡単に情報を失ったり、Facebookサーバーをハッキングしたりすることができます。
ただし、証明書を使用してログインすると、ユーザーは自分のパスワードを選択しません。証明書は、1024〜4096ビット(約128〜512文字のパスワード)の非常に長いランダム文字列に基づいています。また、この証明書は外部サービスではなくサーバーにログインするためにのみ使用されます。
ルートアクセス監視
さんのコメント@フィリップクーリン答えは次のとおりです。
管理上の理由でルートが無効になっています。商用サーバーでは、常に人々のアクセスを制御したいと思います。ルートは決して人ではありません。一部のユーザーがrootアクセスを許可していても、そのユーザーが自分のユーザーを介してログインするように強制し、su -またはsudo -iを使用して実際のログインを記録する必要があります。これにより、個人へのすべてのアクセス権を簡単に取り消すことができるため、rootパスワードがあってもそれを使用して何もできません。 ——フィリップ・クーリン
また、チームがこれを実施できると付け加えたいと思います。最小権限の原則、正しいsudo設定を使用します(ただし、作成する方が簡単です)。これにより、チームは城の鍵を引き渡すことなく、ミッションを無批判的かつより効果的に配布することができます。
リンク
http://bsdly.blogspot.de/2013/10/the-hail-mary-cloud-and-lessons-learned.html
この記事はコメントからのもので、SSHを介してログインしようとしているボットネットの問題、その実行方法、ログファイルの外観、および人々ができることについてさらに詳しく説明したので、より顕著な場所を提供したいと思いました。それらを防ぐためにそうします。著者はPeter Hansteenです。
答え2
これは、直接ルートログインが許可されない理由のいくつかです。
- 暴力の試み。直接ルートログインは、成功した無差別代入攻撃にさらにダメージを与える可能性があります。
- 「パスワードなし」のSSHキー(人の間違いが発生した場合)を誤って設定すると、コンピュータがインターネットに公開される可能性があります。
しかし、これは氷山の一角に過ぎません。次の追加の制限事項と構成を構成する必要があります。
- デフォルトポートの変更(22)
- 強力なパスワードとパスワードのフレーズ
- ホストベース認証の無効化
- 許可されたユーザーのリストを作成する
- アイドルタイムアウトの設定
- 強制SSHv2プロトコル
- 空のパスワードを無効にする
- 無差別代入攻撃に対する対応策としてFail2banを使用
- すべてを録音する
- SSH 鍵を構成し、.ssh/authorized_keys の公開鍵のみを信頼します。
答え3
そうですね。ルートユーザー名とX + Y表記パスワードは暗号化されており、少なくともX表記ユーザー名+ Y表記パスワードと同じくらい安全です。実際、人々の名前は推測しやすいので、はるかに安全です。 (ボットはJohn、Mike、Billなどを試すことができます。しかし、多くの人がrootを試すのではなくそうします。)にならないため、ターゲット攻撃の場合、特に運が良くありません。
攻撃者がシステム管理者がSSHログインに使用するアカウントにアクセスできるようになると(そして自分のタスクを使用またはsu
実行するsudo
)、システム管理者が次のように入力したときに攻撃者のパスワードを実行するプログラムでそのユーザーのセッションに感染するさせることができます。次のコマンドを送信するか、ルートパスワード時間を送信してください。
それどのセキュリティの観点から見ると、これはルートログインタイプの悪い習慣と見なされます。 「一般」ユーザーログイン - > su / sudoチェーンの監査証跡が追加されました。普通の英語で話すと、誰が何をしたのかがわかります。
1人だけがrootアクセス権を持っている場合は特別な場合です。この場合、「一般」ユーザーをさらに使用しても大きな価値は追加されません(少なくとも私はその価値を全く見ることはできません)。ただし、とにかく - システムに単純なユーザーが必要です(非管理タスクの場合はwgetの実行など;-))。
答え4
安全予防措置を講じる限り、これは完全に悪いわけではありません。たとえば、構成サーバーファイアウォール(CSF)をインストールし、それを許可された試行失敗回数に設定することができるため、誰かが試行すると(5回以上試行失敗と仮定)、自動的にブロックされます。したがって、最高の回答者の最初の部分全体はまったく問題にはなりません。これは何度も起こりましたが、幸いなことに、すべての紹介者が永久にブロックされました。サーバーの場合、サーバーを管理する唯一の人であれば大きな問題ではありませんが、もちろんシステム管理者が多い場合や組織で作業している場合は、当然 root を使用しないでください。また、デスクトップの場合、ソフトウェアを大量に使用するため、セキュリティ上のリスクがあるため、別のアカウントを使用する方が良いと思います。ただし、サーバーには信頼できない任意のソフトウェアがないため、必ず保管してください。できるだけ低くしてください。それで結論は「いいえ、サーバーをきちんと管理する方法だけ知れば悪いことがない」です。