いくつかのセキュリティガイドラインに従ってubuntuサーバー(14.04 LTS)をセットアップしようとしています。
これらのガイドラインの1つは、rootユーザーを無効にし、Sudoを使用して管理者として機能する新しいユーザーを作成することを提案しています。これらのガイドラインのもう1つは、ユーザーとパスワードによるssh認証を無効にし、公開鍵認証を有効にすることを提案しています。
私は両方の提案に従いましたが、サーバーで新しい管理者アカウントを使用していることに気付きましたが、管理コマンドを実行する必要があるたびにそのユーザーのパスワードを入力する必要があります(Sudoが要求します)。
問題は、これが本当にすべてが機能する方法であるか(セキュリティガイドラインによる)?
つまり、ssh認証に使用されるパスワードの脆弱性は、開かれたセッションの「内部」でSudoを実行するために使用される(同じ)パスワードの脆弱性とは異なりますか?
まだ誰もあなたの質問に実際に取り組んでいません。
特にキーのみのSSHログインを使用している場合、Sudoコマンドのパスワードを無効にすることはセキュリティ上のリスクにはなりません。これを行うには、次を実行します。
Sudo visudo
そして、「Sudo」グループ行を次のように編集します。
%Sudo ALL=(ALL:ALL) NOPASSWD: ALL
NOPASSWDが鍵です。これにより、Sudoでコマンドを実行するときにパスワードの入力を求められることがなくなります。
はい、これは確かに一般的な方法です。
Rootとして機能する代わりにSudo
を使用することは、主に自分自身からあなたを保護することです。危険なことをするためにSudo
をしなければならない場合、注意を払う可能性が高くなります。
SSHキーでの使用について:
パスワードベースのログインを無効にすると、一般的なアカウント(rootなど)に対して多くのパスワードを試すだけで、SSHサーバーへのブルートフォース攻撃を効果的に防ぐことができます。この方法でログインするには、need秘密鍵ファイルが必要です。これは、パスワードログインを許可するよりもはるかに安全です。
このセキュリティ層は、Sudo
のパスワードのセキュリティに追加されます。これは、秘密鍵ファイルを使用してSSH経由でマシンにログインした後にのみ使用できるためです。
はい、これは一般的な方法です。 sshがrootに対して無効になっている場合、攻撃者はサーバーにアクセスできるユーザー名を推測する必要があるため、これは一般的な方法です。
パスワードの入力を避けたい場合は、いくつかのオプションがあります。
Sudo bash
でrootシェルにログインしますsudoersファイルを開きます。
Sudo visudo
デフォルトのtimestamp_timeoutの値をより快適な値に変更します。
Default timestamp_timeout=30
この値を使用して、Sudoはパスワードを30分間記憶します。
Sudoersファイルで変更できるものは他にもいくつかあります。 このブログ投稿 を読むことをお勧めします。