変更要約: 初版(主題1.10・副主題1.10.1〜1.10.4に対応)
5.1セキュリティ管理業務の実施
ホストをセキュリティポリシーに沿って点検する業務を学びます。SUID/SGID ファイルの監査(find -perm)、パスワードエージング(chage・passwd・usermod)、開いているポートの発見(ss・netstat・nmap・lsof・fuser)、ログイン状況の把握(who・w・last)、リソース制限(ulimit)、sudo(/etc/sudoers・su)、自動ログアウト(TMOUT)を押さえます。
セキュリティは「設定して終わり」ではなく定期点検の業務です。この節は監査の道具箱——危険なファイルを探す・アカウントの期限を管理する・開いている入口を数える・誰が入っているかを見る——を一通り揃えます。
5.1.1ファイル監査とパスワードエージング
- SUID/SGID 監査=
find / -perm -4000(SUID)・-perm -2000(SGID)。意図しない SUID ファイルは権限昇格の温床なので定期棚卸しする(2.1 の知識の応用)。 - パスワードエージング=chage で有効期限を管理(
chage -l user01=現状表示・-M 90=最長90日・-d 0=次回ログインで強制変更)。passwd や usermod にも一部同等オプションがある。 - ログインの把握=who(現在のログイン者)・w(+何をしているか・負荷)・last(ログイン履歴。/var/log/wtmp 由来)。
5.1.2開放ポート・権限昇格・制限
- 開いているポート=ss -tlnp/netstat(ローカルから)・nmap(外からスキャンして実際の見え方を確認)。ポートを掴んでいるプロセスの特定=lsof -i:80・fuser。
- su=別ユーザーに成り代わる(
su -=環境ごと root へ)。sudo=コマンド単位で特権実行し、実行記録が残る。設定は /etc/sudoers(必ず visudo で編集=文法エラーでロックアウトしない保護付き)。 - ulimit=シェルとその子のリソース上限(
-nファイル数・-uプロセス数・-ccore サイズ)。TMOUT=無操作で自動ログアウトする秒数(放置端末対策・profile に設定)。
「SUID の棚卸し=find / -perm -4000」「パスワード期限=chage」「root 作業は su より sudo(記録が残る・権限を絞れる)」「sudoers は visudo で編集」「放置端末対策=TMOUT」 が定番です。ポート調査は内側から ss・外側から nmap という視点の対比で問われます。
月次のセキュリティ点検を1本のストーリーにしましょう。まず find / -perm -4000 -type f 2>/dev/null で SUID ファイルを列挙し、前回の棚卸し結果と diff——増えた1個が説明できなければ即調査です(rpm -qf/dpkg -S で所属パッケージ確認、という前章の技が効きます)。次に chage -l で特権ユーザーの期限を確認し、ポリシー逸脱(無期限パスワード等)を chage -M 90 で是正。ss -tlnp の結果をサービス台帳と突き合わせ、覚えのない LISTEN があれば lsof でプロセスを特定します。仕上げに外部から nmap サーバーIP を当てて、ファイアウォール越しに実際に見える口が想定どおりかを確認——内側の ss と外側の nmap の差分がすなわちファイアウォールの効果です。日々の運用では、管理者にも root を直接使わせず sudo で必要なコマンドだけ許可し(ops ALL=(root) /usr/bin/systemctl restart nginx のように書ける)、全実行をログに残すのが現代の標準です。
| 点検項目 | 道具 | 見るもの |
|---|---|---|
| SUID/SGID の棚卸し | find -perm -4000/-2000 | 前回との差分 |
| パスワード期限 | chage -l / -M / -d 0 | ポリシー逸脱の是正 |
| 開放ポート | ss(内)・nmap(外)・lsof | 台帳との突き合わせ |
| ログイン状況 | who / w / last | 不審な時間帯・端末 |
ひっかけ: 「sudo と su は同等で、どちらでも記録が残る」は誤りです。su はシェルごと成り代わるため以後の操作の記録が乏しく、sudo はコマンド単位の記録と許可制御ができます。また「/etc/sudoers は vi で直接編集してよい」も誤り=visudo(文法チェック付き)を使わないと、書き損じで全管理者がロックアウトされる恐れがあります。「TMOUT はパスワードの有効期限を設定する」も誤り(無操作タイムアウトです)。
5.1.3この節のまとめ
- 監査=find -perm -4000(SUID)・chage(期限)・who/w/last(ログイン)・ss内/nmap外+lsof/fuser(ポート)
- 特権は sudo(visudo・記録・最小権限)。制限は ulimit(リソース)・TMOUT(無操作ログアウト)
進捗の記録にはログインが必要です。
理解度チェック
(軽い確認用)Q1. システム全体から SUID ビットが設定されたファイルを洗い出したい。適切なコマンドは?
Q2. ユーザー user01 に、次回ログイン時のパスワード変更を強制したい。適切なコマンドは?
Q3. 管理チームに root の全権を渡さず、「nginx の再起動だけ」を特権実行させ、実行記録も残したい。適切な仕組みは?

