目次
はじめに
Linuxシステム管理者にとって、セキュリティ管理業務の実施は不可欠です。
本記事では、ローカルセキュリティポリシーに従い、脆弱性の監査・ユーザ管理・ポート確認・アクセス制限といった業務をどのように進めるかを、初心者にも分かりやすく解説します。
1. SUID・SGIDビットの監査
SUID(Set User ID)やSGID(Set Group ID)ビットが設定されたファイルは、権限の高い操作を許してしまうため、定期的な確認が必要です。
SUID/SGID ファイルの検索方法
# SUIDファイル
find / -perm -4000 -type f 2>/dev/null
# SGIDファイル
find / -perm -2000 -type f 2>/dev/null
※不明なファイルは削除せず、まず意味を調査しましょう。
2. ユーザのパスワードと有効期限の管理
Linuxでは、パスワードの有効期限を設定することでセキュリティを強化できます。
パスワードの設定
passwd username
パスワードエージング設定(chage)
# 有効期限の確認
chage -l username
# 最大使用日数を90日に設定
chage -M 90 username
ユーザ情報の変更(usermod)
# ユーザを無効化(ログイン禁止)
usermod -L username
3. 開いているポートを確認する
不要なポートを開けたままにするのは、セキュリティリスクです。
ポート確認コマンド
| コマンド | 内容 |
|---|---|
ss -tuln | 現在リッスン中のTCP/UDPポート |
netstat -tuln | ssと同様(非推奨) |
nmap | ネットワークスキャンツール。外部から開いているポートを確認可能 |
lsof -i | 開いているソケット情報 |
fuser -n tcp ポート番号 | 特定ポートを使用しているプロセスの確認 |
例:80番ポートのプロセス確認
fuser -n tcp 80
4. ログイン情報と履歴の確認
現在のログインユーザーの確認
who # ログイン中のユーザ一覧
w # システムの稼働状況とユーザの操作
ログイン履歴の確認
last # ログイン履歴を表示
5. ユーザリソース制限
ulimit を使うことで、特定ユーザのリソース使用を制限できます。
ulimit -n 1024 # 開けるファイル数の制限
ulimit -u 100 # プロセス数制限
恒久的な設定
/etc/security/limits.conf に記述します:
user1 soft nproc 100
user1 hard nproc 200
6. sudoによる特権操作の制限
sudoの基本
sudoは、特定のユーザに一部のroot権限を付与できます。
sudo command # 一時的にroot権限でコマンド実行
sudoersファイルの設定
編集は以下のコマンドで安全に行います:
visudo
例:
user1 ALL=(ALL) NOPASSWD: /sbin/shutdown
→ user1はパスワードなしでshutdownだけ実行可能。
7. 自動ログアウトの設定(TMOUT)
ログインしたまま放置されたセッションはリスクになり得ます。
TMOUTの設定方法
# 5分(300秒)で自動ログアウト
echo "export TMOUT=300" >> ~/.bashrc
全ユーザに適用するには /etc/profile に追記します。
まとめ
| 管理項目 | 使用コマンド/ファイル |
|---|---|
| SUID/SGID監査 | find |
| パスワード管理 | passwd, chage, usermod |
| ポート確認 | ss, netstat, nmap, lsof, fuser |
| ログイン状況確認 | who, w, last |
| リソース制限 | ulimit, limits.conf |
| 特権昇格制御 | sudo, visudo, /etc/sudoers |
| 自動ログアウト | TMOUT, /etc/profile |

コメント