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権限のない一般ユーザが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権限を持っていれば、誰でもrootになれる
sudo su -
課題:
- sudoで行えないコマンドは何か?(useraddなども行える?
- コマンド単位に権限を割り振る方法は?
- 実行ログはどのような形式で出力されるか
- 「sudo su -」でrootになったとき実行ログは一般ユーザが出力される
- ユーザのパスワードがクラックされる=root権限のコマンドも実行可能となる→sudo時にrootのパスワードを求める設定
- 内部犯のことも考えるとsuコマンドを実行された場合の対応を考えておく必要がある(実行可能なコマンドを絞る等)
- 「/etc/sudoers」でコマンドでALLを許してしまうと抜け穴がたくさん出来てしまう→実行可能なコマンドを絞る
sudoコマンドの脆弱性
https://japanese.engadget.com/2019/10/14/linux-sudo-root-id/
- /etc/sudoersをぶっ壊して、sudo不能になったとき
rootでコマンド実行できてしまう手段を潰す
http://nice.kaze.com/equium_s7000_19.html
- rootアカウントを削除し、一般ユーザでのみ利用できるようにする
- 常時起動しておくのではなく、必要な時だけ起動