UNIXのセキュリティを向上させる、管理者権限の基本的な使用方法

文:Chad Perrin (Special to TechRepublic) 翻訳校正:村上雅章・野崎裕子
2009-07-06 08:00:00
  • このエントリーをはてなブックマークに追加

sudoコマンドの使用

 セキュリティを向上させるとともに、限定された管理作業を行う必要のあるユーザーの振る舞いを記録できるsudo(「スードゥー」と発音する)という素晴らしいコマンドがある。このコマンドを使用することで数多くのことが可能になるため、言っておくこともたくさんある。しかし、すべてを書き記そうとすれば1冊の本になることは間違いない。

 このコマンドは、特定ユーザーが行う必要のある、適切なかたちで定義された特定の管理者権限の作業のみを、そのユーザーが行えるようにするという場合に最適なものとなる。また、こういったユーザーの行動を記録することも簡単にできる。つまり、あるユーザーに対してportauditコマンド(関連英文記事)を使用させる必要がある場合、そのユーザーのプロセス中における該当機能へのアクセスの際にのみ必要な管理者権限を与え、その他の部分ではrootユーザー権限が使われないようにすることができるのだ。本質的にsudoコマンドは、管理作業の委譲を、制限されたかたちで、セキュアに、そして記録を取って(つまり監査が可能となる)行うことができる素晴らしいコマンドであり、これを使うことで/mountディレクトリにファイルシステムをマウントしたいというユーザー全員にrootのパスワードを教えてまわらなくても済むようになるのである。

 sudoコマンドは、rootユーザーアカウント全体を置き換えるという用途には向いていない。しかしこれによって、管理作業に関するすべてのログをrootユーザーという単一の見出しの下にまとめて記録するのではなく、すべての管理作業を実ユーザーごとに分けたかたちで簡単に記録できるようになるのだ。なお、個別にスーパーユーザーアカウントを作成することでも同様のことは達成できる。FreeBSDのtoorユーザーアカウントも、そういったアカウントの例である。

 ここで出てくる1つの懸念として、sudoコマンドを介して管理者権限に無制限にアクセスできてしまう一般ユーザーアカウントが、悪意を持ったクラッカーによって不正侵入されてしまった場合、クラッカーによる管理者権限の奪取が容易になってしまう可能性があるという点を挙げることができる。sudoコマンドがパスワード入力無しに使用できるように設定されているシステムの場合、このことは特に大きな問題になる。

 とは言うものの、sudoコマンドをrootの代替として使用する際における最大の懸念は、その複雑さである。「Security, complexity, and the GUI environment」(セキュリティと複雑さ、そしてGUI環境)でも書いたように、複雑さはセキュリティの大敵なのである。

 システムが複雑化すると、その設計に過ちが忍び込む機会も増加するのである。また、システムを構成するソースコードの行数が多くなると、システム開発時にバグを作り込む機会も増えるのだ。そして、バグが多くなると、セキュリティ脆弱性が作り込まれる機会も増えるのである。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]