web-dev-qa-db-ja.com

Sudoパスワードはどのくらい重要ですか?

Sudoパスワードは、物理的にアクセスできる人がローカルでハッキングされるのを防ぎます(edit:実際、それは doesn ' t )。私のパスワードはその目的には十分強力ですが、誰かがリモートでブルートフォースできるとしたら十分に強力ではないことを知っています。

anybodyコンピューターに物理的にアクセスすることなく、Sudoパスワードを使用してコンピューターにルートモードでアクセスできますか?標準のUbuntuデスクトップインストール?

  1. ネットワークアクセスがある場合は、間違いなくyes (短い答え)
  2. セキュリティに十分な注意を払っていない場合、yes (長答)
  3. 「ssh」を実行していて、- 2FAyes(- comments and answers)
  4. Sudo /ユーザーパスワードなしでrootとしてコンピューターにアクセスできます
25
mxdsp

Sudoパスワードは、物理的にアクセスできる人がローカルでハッキングされることからコンピューターを保護することを知っています。

私はあなたをあまり怖がらせたくありませんが、誰かが物理的なアクセスを持っている場合、あなたのパスワードの強さに関係なく、あなたにアクセスを渡しました。 rootパスワードを変更できるようになるには、誰かが1回再起動する必要があります(現在のパスワードを入力しなくても「grub rescue」から実行できます)。ちなみに、この方法は有効と見なされ、機能であり、セキュリティリスクが認められます(そうでなければ、パスワードが侵害された場合にシステムを修正することはできません)。

しかし、誰かがそれをリモートでブルートフォースできる場合、それは十分に強力ではないことを知っています。

ここに何か別のことがあります。ROUTERは、短期間に同じ情報を要求する繰り返しの要求である場合、外部からのアクセスをロックするのに十分スマートでなければなりません。基本的にここにあるのはDOS攻撃です(2台以上のコンピューターが攻撃している場合はDDOS)。ルーターはその接続を切断し、その接続からの新しい要求を受け入れる前に待機期間を強制する必要があります。

標準のUbuntuデスクトップインストールで、コンピューターに物理的にアクセスすることなく、誰でもSudoパスワードを使用してルートモードでコンピューターにアクセスできますか?

最初に接続する必要があり、次にSudoパスワードを提供します。 「ルート」モードは無効であり、「#」プロンプトに直接ログインすることはできません。

サービスを悪用する可能性があることに注意してください。そのマシンで「ssh」を実行していて、システムに「ssh」を実行し、そのユーザーのユーザー名とパスワードを取得できる場合(そして、管理ユーザーであるためSudoパスワードも)、マシンにアクセスできます。それを台無しにします。ちなみに、彼らがそうするのであれば、彼らは最初にあなたのシステムの知識を持っている必要があります(あなたのパスワードのような)。

しかし、その後、それ(および他の方法)に問題があります:彼らはどのようにあなたのパスワードを取得しましたか?システム自体から取得することはできません。そして、一般的に推測するのは面倒なことではありません。それが社会的に設計されていたなら...あなたの問題はそこにあり、お使いのシステムのセキュリティモデル、UbuntuやLinux一般にはありません。

Sudoパスワードが自分のものである限り、問題ありません。そして、それが強力なパスワード(おそらく覚えやすいが、他の人が推測できない)であれば、さらに良い結果になります。これについて議論するときに私が以前に使用した例:あなたの犬の名前が「Abwegwfkwefkwe」で、パスワードとして「Abwegwfkwefkwe」を使用している場合、見栄えは悪いのに(誰かが「あなたの犬の名前は何ですか?」無料の推測)。 「Abwegwfkwefkwe」と関係がない場合は、適切なパスワードです。

私ができる最善のアドバイス:

  • 管理者パスワードが求められることがわかっている場合を除き、求められたときに管理者パスワードを入力しないでください。ブラウザを開いて、「管理者アカウントのパスワードを求めている」ようなポップアップが表示された場合は...停止し、最初に考えてください。

  • 「Sudo」猶予期間がアクティブなときにシステムを放置しないでください。 Sudo --reset-timestampは現在の猶予期間を削除し、次回「Sudo」を使用するときにパスワードを再度要求します。 AFKに行くときに画面をロックします。

  • 楽しみのためにサービスやソフトウェアをインストールしないでください。 sshを必要としない場合はsshをインストールしないでください。Webサーバーを使用しない場合は、Webサーバーをインストールしないでください。現在実行中のサービスをご覧ください。ノートブックでBTを使用しない場合は、無効にします。 Webカメラを使用しない場合は、無効にします(アクティブな場合)。使用しないソフトウェアを削除します。

  • そして、本当に妄想的な人(そして、はい、私はあなたを見ているParanoid Panda)のために:パスワードを時々変更します。ルートキットハンターをインストールして、不適切なアクセスをチェックすることもできます。

  • 重要なデータをオフラインで保管するものにバックアップします。そのため、システム上で誰かを見つけたとしても、それをフォーマットし、新しいインストールとデータの復元からやり直すことができます。

34
Rinzwind

はい、できます。

ただし、これを行う方法は複数あり、Sudoパスワードを総当たりするのはおそらく最初の方法ではありません。

まず、Sudoパスワードはユーザーのパスワードです。本当に必要なのはyour passwordです。

第二に、システムにアクセスするためにブルートフォースを使用してユーザーのパスワードを解読することがおそらく最後の手段です。

別のシステムに侵入する方法は、より洗練された(ただし、より効果的な)方法があります。

通常、攻撃者は、最も一般的な脆弱性(おそらく、ユーザーシェルを何らかの手段で取得し、Shellshockを悪用してルートシェルを取得すること)を悪用しようとするか、次のように細心の注意を払います。

  • 次のような情報を取得するために、システム上の開いているポートをスキャンします。
    • オペレーティングシステムのバージョン
    • 実行中のサービスバージョン
  • 少なくともユーザーシェルを取得し、ルートシェルを取得しようとするために、既知のオペレーティングシステムまたは実行中のサービスのバグ(バッファーオーバーフローなど)を悪用する(シェルシェルを悪用する可能性がある)

Sudo /ユーザーのパスワードをブルートフォースすることは、ルートシェルを取得できない場合の試みかもしれませんが、たとえば、ルートとして実行されているサービスを悪用しても、攻撃者がSudo /をブルートフォースする必要はありませんユーザーのパスワード。

6
kos
  1. ここ数年でセキュリティに関して何かを学んだ場合、1つのこと:Nothing is不可能

  2. ネットワークにアクセスできる限り、間違いなく。ネットワーク上でアクセスできるシステムで実行されている各サービスは、理論的に脆弱であり、潜在的な脆弱性です。

したがって、十分なアイデアを持つ攻撃者にとっては可能です。システムを可能な限り安全にすることができますが、100%の安全性を得ることができません。

したがって、正当な技術的努力で何が可能か、そしてあなた自身がもはや働けなくなるほどあなたを保護するものを評価することが重要です。

3
A.B.

Sudoの目的はパスワードに関連するものではなく、代わりに特定のユーザーにルートっぽい機能を提供すると同時に、ルートログイン(パスワード/キー/セキュリティトークン/など)を提示することなくマシン上の他のユーザーを制限することです。たとえば、私の職場では、日々の労働者は、Sudoを介して(会社が拒否したリポジトリから)ステーションを起動/シャットダウン/インストールおよびアップグレードすることしかできません。 /の意図的な削除、デバイスのフォーマット、ユーザーの追加と削除、どのカーネルモジュールをブラックリストに登録するか、crontabで実行するもの(etcなど)の決定など、他のルートの自由は与えられません。一方、自宅では、Sudoによってマシンへのフルアクセスが許可されます。パスワードに関しては、実際にはSudoが必要とするのはユーザーアカウントのパスワードです(自動ログインが有効になっていない場合、ログインに使用するものとまったく同じです)。また、そのパスワードは他のパスワードと同じ脆弱性を持っています。

悪いヒント:Sudo対応のUNIX(linux/Apple osx)でrootを通常のアカウントにしたい場合は、次を実行します

Sudo -s
passwd
Enter your unix password:

この時点で、rootには通常のパスワードがあり、前述のパスワードを使用して「旧式の方法」でrootとしてログアウトおよびログインすることができます。

セキュリティに関して、1つのプログラム(たとえば、Webサーバー、mysql、phpデーモン、sshd)が昇格アカウントとして実行され、たとえばrootであり、既知のエクスプロイトがある場合、攻撃者はアクセスするためにセキュリティ資格情報を必要としない場合があります。彼らはプログラムの脆弱性を利用し、rootとして実行されているこのプログラムから新しいシェルを生成するだけです。ただし、ディストリビューションマネージャーが同様の問題を認識しており、よく考えられ、通常は安全なデフォルト環境を構築する際に優れた仕事をするため、これは非常にまれです。

他のオペレーティングシステムでは、Sudoと同様の操作を右クリックして、システム管理者(またはUAC特権ナグ)として実行します。

2
user283885

Sudoパスワードは、物理的にアクセスできる人によってローカルでハッキングされることからコンピューターを保護することを知っています(編集:実際にはそうではありません)。私のパスワードはその目的には十分強力ですが、誰かがリモートでブルートフォースできるとしたら十分に強力ではないことを知っています。標準のUbuntuデスクトップインストールで、コンピューターに物理的にアクセスすることなく、誰でもSudoパスワードを使用してルートモードでコンピューターにアクセスできますか?

Sudoパスワードは、ローカル保護のためだけのものではありません。その目的は、ルート特権の使用に追加のセキュリティレイヤーを追加することです。良い議論はここにあります https://superuser.com/a/771523/467316

パスワードは思ったほど強力ではないかもしれません。今のところ、クライアントのActive Directoryハッシュの20〜40%を以前に見たものにクラックしています。パスワードルールが悪いものは70%にクラックされています。 16文字の複雑なパスワードをお勧めします。 oclHashcatおよびRadeonグラフィックカードは、大きなダメージを与える可能性があります。過去5年間のあらゆる違反からのすべてのパスワードダンプを追加すると、作業に適した辞書が得られる傾向があります。

SSHを使用している場合は、sshd_configでいくつかの調整を行います。

Sudo nano /etc/ssh/sshd_config

ゲートからすぐにMUSTS(最後に使用していない場合、ftpサーバーを無効にします)。

Protocol 2
X11Forwarding no
PermitEmptyPasswords no
MaxAuthTries 5
#Subsystem sftp /usr/lib/openssh/sftp-server

保存して、sshを再起動します

Sudo service ssh restart

公開鍵暗号化を使用するまず、リモートマシンで自分で鍵を作成することから始めます(puttygenまたはOSで使用可能なフレーバーを使用します)。 authorized_keysファイルとしてログインするユーザーのUbuntuマシンに公開鍵をコピーします(おそらく作成する必要があります)

Sudo nano /home/yourdumbusername/.ssh/authorized_keys

この形式で公開鍵をコピーします

ssh-rsa 23r0jfjlawjf342rffjfa89pwfj8ewfew98pfrfj8428pfwa9fupfwfcajwfpawf8rfapfj9pf892jpfjpwafj8a where-ever-you-have-your-private-key-for-your-own-notes

それを保存し、公開鍵ログインを許可するようにsshd_configをセットアップします

Sudo nano /etc/ssh/sshd_config

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      %h/.ssh/authorized_keys

sshを保存して再起動します

Sudo service ssh restart

公開キー暗号化を使用して、秘密キーのコンピューターからubuntuホストへのSSHを試してください。すべてうまくいけば、ubuntuホストに戻ってパスワード認証を無効にします。

Sudo nano /etc/ssh/sshd_config

PasswordAuthentication no

Sshを保存して再起動する

Sudo service ssh restart

秘密鍵のコンピューターから再度スッシングして確認します。

さらに追加したいですか?非特権アカウントのセットアップ、PermitRootLogin noの有効化、sshの再起動、新しいアカウントのauthorized_keysへの公開鍵の追加、非特権アカウントとしてのログイン、ルートまたは特権を必要とする場合のルートまたは特権アカウントへのsu.

2