検索
連載

特権ユーザーの安全性向上を行うsudoの設定例止められないUNIXサーバのセキュリティ対策(6)(1/2 ページ)

PC用表示 関連情報
Share
Tweet
LINE
Hatena
※ご注意
本稿の内容を検証する場合は、必ず影響を及ぼさない限られた環境下で行って下さい。また、本稿を利用した行為による問題に関しましては、筆者および株式会社アットマーク・アイティは一切責任を負いかねます。ご了承ください。

 前回は、sudoの基本的な使い方と例をいくつか紹介した。今回も引き続きsudoを用いたコマンドの利用制限を中心に説明する。

sudoコマンドのおさらい

 sudoの設定例に入る前に、sudoの基本的な使い方をおさらいしておこう。

sudoコマンドの使い方

 前回説明したとおり、sudoの使い方はとてもシンプルで実行するコマンドの前にsudoと入力するだけだ。例えば、/var/log/secureというファイルを特定ユーザーの権限で参照したい場合は、

% less /var/log/secure

と実行するところを

sudo -u 特定ユーザー less /var/log/secure

と実行するだけだ。

 「-u 特定ユーザー」の部分を省略した場合は、rootが仮定される。そのため、通常はroot権限を得るために使用するので、「sudo 実行するコマンド」という形式で実行することが多い。

sudoの設定

 sudoの設定は、sudoersファイルで行う。デフォルトでは、ユーザーroot以外はsudoを利用できないように制限されている。そのほかのユーザーがsudoを使う場合は、適宜設定を追加する必要がある。

 なお、sudoersファイルに記述する文法については、オンラインマニュアル(man)を参照するとよいだろう。

% man 5 sudoers

実運用に影響を与えるコマンドの利用制限

 前回の終わりに、「実運用に影響を与えてしまいそうなコマンドは、sudoで気軽に実行できないように制限することをお勧めする。特に簡単に止めることのできない基幹系のサーバならなおさらだ」と述べ、具体的な例として「OSの起動・停止コマンドの制限」を説明した。今回も実運用に影響を与えるほかの事例をいくつか紹介するとともに、最終的にこれらの利用制限を設定した例を掲載する。

実運用に影響を与えるコマンド群の定義

 操作ミスなどにより実運用に多大な影響を与えてしまうようなコマンドがある。それらのコマンドは、たった一度の操作ミスにより取り返しのつかない事態に陥るため、止めることのできない基幹サーバなどの場合は、特に慎重に該当するコマンドを制限するとよいだろう。

 制限の対象となるコマンドの具体的な例としては、以下の項目が挙げられる。

  • システムファイル、設定ファイルの削除
  • OS・アプリケーションの起動と停止
  • ネットワークに関する設定変更

 これらのうち、「OS・アプリケーションの起動と停止」については前回説明した。今回は残りの項目に関するsudoでの利用制限について説明する。

●システムファイル、設定ファイルの削除を防ぐ

システムファイルなど重要なファイルの削除を防ぐため、sudoでの利用を制限する。UNIXでは、ファイルの削除を行うコマンドとして、rmがよく知られている。

また、rmのほかに、unlink、rmdirなどの削除コマンド、ファイルシステムの初期化を行うnewfsなども利用制限の対象にするとよいだろう。

    Cmnd_Alias REMOVE = /bin/rm, /usr/sbin/unlink, /bin/rmdir, /sbin/newfs
    %wheel ALL=(ALL) ALL, !REMOVE

上記は、1行目でコマンドのグループ化(REMOVE)を行い、2行目でwheelグループのユーザーに対してREMOVEグループのコマンドの利用制限を行っている。

●ネットワークに関する設定変更を防ぐ

ネットワーク(TCP/IP)の設定変更は、稼働中のWebサーバやメールといったネットワークサービスに直接影響を与えてしまう。そのため、ネットワークの設定変更で利用されることの多い、ifconfigコマンドの利用を制限する。

 また、Solarisではnddコマンド、BSD系のOSではsysctl(net.*の設定値)コマンドにより、既存のTCP/IPスタックの設定値を変更することが可能であるため、それらも制限しておくとよいだろう。

    Cmnd_Alias IFCONFIG = /sbin/ifconfig
    Cmnd_Alias NDD = /usr/sbin/ndd
    %wheel ALL=(ALL) ALL, !IFCONFIG, !NDD

上記は、1、2行目でコマンドのグループ化(IFCONFIGおよびNDD)を行い、3行目でwheelグループのユーザーに対してIFCONFIGおよびNDDグループのコマンドの利用制限を行っている。

利用制限のまとめ

 前回説明した「OSの起動・停止」の設定、およびsudoのデフォルト値(Defaults)の変更点を組み合わた利用制限の例を以下に示す。

Defaults timestamp_timeout = 0
Defaults passprompt = "%u@%h Password: "
Cmnd_Alias SHUTDOWN = /sbin/halt, /sbin/shutdown, /sbin/poweroff, \
/sbin/reboot, /sbin/fastboot, /sbin/init
Cmnd_Alias REMOVE = /bin/rm, /usr/sbin/unlink, /bin/rmdir, /sbin/newfs
Cmnd_Alias IFCONFIG = /sbin/ifconfig
Cmnd_Alias NDD = /usr/sbin/ndd
%wheel ALL=(ALL) ALL, !SHUTDOWN,!REMOVE,!IFCONFIG,!NDD

 最初のDefaultsの2行は、sudo実行者に、いまから特権ユーザーを扱うという“意識”と“慎重さ”を持たせるための設定だ。

 timestamp_timeout = 0により、sudoのパスワードキャッシュを無効にし(デフォルト5分)、sudo実行時のパスワード入力を毎回求めるようにしている。

 passpromptでは、従来の「Password:」というシンプルなパスワードプロンプトを「ユーザー名@ホスト名 Password:」に変更し、いまからどのホスト上のどのユーザーからsudoを実行しようとしているのかを常に意識させるようにしている。

 そのほか、Cmnd_Aliasで設定している、制限対象のコマンドおよびコマンドのパスについては、OSの種類によって多少違う場合があるので、typeやwhichコマンドなどでコマンドのパスを調べ、調整する必要がある。

 なお、上記の設定によって、制限対象となるコマンドは、「sudo 実行するコマンド」の形式で実行することが出来なくなる。そのため、それら制限対象のコマンドを実行する場合は、「sudo -s」でいったんrootのシェル権限を得てから、その上で実行する必要がある。

 ただし、その場合は、必要なコマンドの実行が終ったら、exitやlogoutでroot権限のシェルを即座に終了することをお勧めする。

kimu@atmarkit{505}% sudo -s
Password: sudoを実行するユーザーのパスワードを入力
root@atmarkit{505}% rm /tmp/test
root@atmarkit{506}% exit
kimu@atmarkit{506}%

 以上、sudo で実運用に影響を与えるコマンドの制限について説明した。実際には、運用するサーバの重要性などに応じて、制限をさらに厳しくしたり、逆にゆるめたりすることになるだろう。

Copyright © ITmedia, Inc. All Rights Reserved.

       | 次のページへ

Security & Trust 記事ランキング

  1. 経営層の約7割が「セキュリティ対策は十分」一方で6割以上がインシデントを経験、1位の要因は?
  2. 「SMSは認証に使わないで」 米CISA、モバイル通信を保護する8つのベストプラクティスを公開
  3. 米ホワイトハウス、“懸念国”への半導体輸出、AI規制を発表 日本含む18カ国は規制対象外
  4. 2025年、LLMの脆弱性が明確になるなど、セキュリティとクラウドに関する8つの変化
  5. 1年前と比べて1Tbpsを超えるDDoS攻撃が1885%増加、今すぐできる対策は? Cloudflare
  6. 「Appleの暗号化アルゴリズム」を盗用し、2カ月以上検出されなかったステルス型マルウェアの正体とは
  7. ゼロトラストの理想と現実を立命館大学 上原教授が語る――本当に運用できるか? 最後は“人”を信用できるかどうか
  8. 終わらせましょう。複雑過ぎるKubernetes/クラウドネイティブが生む心理的安全性の低下を――無料でクラウドセキュリティの勘所が分かる130ページの電子書籍
  9. 2025年に押さえるべきセキュリティの重要論点をガートナーが発表 新しいリスク、脅威、環境の変化、法規制などの動きを把握する指標に使える
  10. “ゼロトラスト”とトラスト(信頼性)ゼロを分かつものとは――情報セキュリティ啓発アニメ「こうしす!」監督が中小企業目線で語る
ページトップに戻る