Skip to content

Instantly share code, notes, and snippets.

@bz0
Last active November 9, 2019 08:33
Show Gist options
  • Save bz0/5d91cc0c5836f8e26a1d6a02d23efe08 to your computer and use it in GitHub Desktop.
Save bz0/5d91cc0c5836f8e26a1d6a02d23efe08 to your computer and use it in GitHub Desktop.

参考

https://ja.stackoverflow.com/questions/49070/sudo%E3%81%AB%E3%81%AFroot%E3%81%AE%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%81%8C%E5%BF%85%E8%A6%81%E3%81%AA%E3%81%84%E3%81%AE%E3%81%A7%E6%84%8F%E5%91%B3%E3%81%8C%E3%81%AA%E3%81%84%E3%81%AE%E3%81%A7%E3%81%AF https://songmu.jp/riji/entry/2014-07-20-linux-account.html https://qiita.com/KurokoSin/items/e96475c475ab59b5244f https://www.ashisuto.co.jp/corporate/column/technical-column/detail/1206188_2274.html https://qiita.com/satodoc/items/c2d3b4d72b56ee3c425d

前提

  • UNIX において「システムデバイスは単にファイル」なので、任意のコマンドでシステムを破壊することができる(sudo権限で止められない)

運用方針

  • 外部からログイン可能なのは個人アカウントのみ
  • 権限が必要な作業は個人アカウントでsudoする
    • 実行コマンドのログをとる
  • 攻撃しそうな人にはsudo権限を与えない
  • コマンドレベルでの制御は所属する組織やセキュリティ要件による(大抵はコマンドレベルでなくユーザ単位で権限を割り振る

権限設定

ユーザの追加

# useradd user1
# passwd user1

sudo権限追加

sudo権限のない一般ユーザがroot権限が必要なコマンドを実行するとエラーになる

$ yum install wget
Loaded plugins: fastestmirror, langpacks
You need to be root to perform this command.

visudoでuser1に全コマンドの実行権限追加する (ユーザへの権限追加だけでなく、%を付与することでグループへの権限追加も出来る)

# visudo
user1   ALL=(ALL)       ALL

sudo権限

sudo権限を持っていれば、誰でもrootになれる

sudo su -

課題:

  • sudoで行えないコマンドは何か?(useraddなども行える?
  • コマンド単位に権限を割り振る方法は?
  • 実行ログはどのような形式で出力されるか
  • 「sudo su -」でrootになったとき実行ログは一般ユーザが出力される

sudoのリスク

  • ユーザのパスワードがクラックされる=root権限のコマンドも実行可能となる→sudo時にrootのパスワードを求める設定
  • 内部犯のことも考えるとsuコマンドを実行された場合の対応を考えておく必要がある(実行可能なコマンドを絞る等)
  • 「/etc/sudoers」でコマンドでALLを許してしまうと抜け穴がたくさん出来てしまう→実行可能なコマンドを絞る

sudoコマンドの脆弱性
https://japanese.engadget.com/2019/10/14/linux-sudo-root-id/

rootを使うとき

  • /etc/sudoersをぶっ壊して、sudo不能になったとき

その他

webmin( Linux コントロールパネル)

rootでコマンド実行できてしまう手段を潰す
http://nice.kaze.com/equium_s7000_19.html

  • rootアカウントを削除し、一般ユーザでのみ利用できるようにする
  • 常時起動しておくのではなく、必要な時だけ起動
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment