web-dev-qa-db-ja.com

SSHとセキュリティのガイドライン

いくつかのセキュリティガイドラインに従ってubuntuサーバー(14.04 LTS)をセットアップしようとしています。

これらのガイドラインの1つは、rootユーザーを無効にし、Sudoを使用して管理者として機能する新しいユーザーを作成することを提案しています。これらのガイドラインのもう1つは、ユーザーとパスワードによるssh認証を無効にし、公開鍵認証を有効にすることを提案しています。

私は両方の提案に従いましたが、サーバーで新しい管理者アカウントを使用していることに気付きましたが、管理コマンドを実行する必要があるたびにそのユーザーのパスワードを入力する必要があります(Sudoが要求します)。

問題は、これが本当にすべてが機能する方法であるか(セキュリティガイドラインによる)?

つまり、ssh認証に使用されるパスワードの脆弱性は、開かれたセッションの「内部」でSudoを実行するために使用される(同じ)パスワードの脆弱性とは異なりますか?

1
Roger 71

まだ誰もあなたの質問に実際に取り組んでいません。

特にキーのみのSSHログインを使用している場合、Sudoコマンドのパスワードを無効にすることはセキュリティ上のリスクにはなりません。これを行うには、次を実行します。

Sudo visudo

そして、「Sudo」グループ行を次のように編集します。

%Sudo  ALL=(ALL:ALL) NOPASSWD: ALL

NOPASSWDが鍵です。これにより、Sudoでコマンドを実行するときにパスワードの入力を求められることがなくなります。

1
Joshua Boniface

はい、これは確かに一般的な方法です。

Rootとして機能する代わりにSudoを使用することは、主に自分自身からあなたを保護することです。危険なことをするためにSudoをしなければならない場合、注意を払う可能性が高くなります。

SSHキーでの使用について:

パスワードベースのログインを無効にすると、一般的なアカウント(rootなど)に対して多くのパスワードを試すだけで、SSHサーバーへのブルートフォース攻撃を効果的に防ぐことができます。この方法でログインするには、need秘密鍵ファイルが必要です。これは、パスワードログインを許可するよりもはるかに安全です。

このセキュリティ層は、Sudoのパスワードのセキュリティに追加されます。これは、秘密鍵ファイルを使用してSSH経由でマシンにログインした後にのみ使用できるためです。

1
Sven

はい、これは一般的な方法です。 sshがrootに対して無効になっている場合、攻撃者はサーバーにアクセスできるユーザー名を推測する必要があるため、これは一般的な方法です。

パスワードの入力を避けたい場合は、いくつかのオプションがあります。

  • Sudo bashでrootシェルにログインします
  • sudoerファイルのタイムアウト値を微調整します。

sudoersファイルを開きます。

Sudo visudo

デフォルトのtimestamp_timeoutの値をより快適な値に変更します。

Default timestamp_timeout=30

この値を使用して、Sudoはパスワードを30分間記憶します。

Sudoersファイルで変更できるものは他にもいくつかあります。 このブログ投稿 を読むことをお勧めします。

0
Henrik Pingel