2026年8月12日
2026年8月12日
サーバーのcron.d・cron.hourlyのセキュリティ確認方法
ステップ1: cron.dとcron.hourlyの確認
cron.dとcron.hourlyとは?
cron.dは定期実行スクリプトを配置するディレクトリで、通常はroot権限が必要なタスクが記述されます。一方、cron.hourlyは毎時間実行されるスクリプトが保存されるディレクトリです。
確認方法
cron.dとcron.hourlyの内容を確認するために、次のコマンドを使用します。
# cron.dディレクトリを確認
ls /etc/cron.d/
# cron.hourlyディレクトリを確認
ls /etc/cron.hourly/
これらのディレクトリには、実行ファイルまたはシンボリックリンクが含まれる場合があります。これらのファイルやリンクの内容も確認してみましょう。
# cron.d内の実行ファイルを確認
cat /etc/cron.d/example
# cron.hourlyディレクトリ内のスクリプトを確認
cat /etc/cron.hourly/some_script
ステップ2: 権限設定の確認
ファイルとディレクトリの権限を確認
cron.dとcron.hourlyディレクトリには、root以外のユーザーからのアクセスを制御する必要があるため、適切な権限設定が重要です。
# cron.dディレクトリの権限を確認
ls -l /etc/cron.d/
# cron.hourlyディレクトリの権限を確認
ls -l /etc/cron.hourly/
これらのコマンドは、各ファイルやディレクトリに対する所有者とグループがrootであることを確認します。また、権限(read, write, execute)も適切に設定されていることを確認します。
ステップ3: アクセス制御の確認
SELinuxによるアクセス制御
cron.dとcron.hourlyディレクトリには、SELinuxのポリシーによってアクセスが許可される場合があります。これらのポリシートを確認しましょう。
# SELinuxモードを確認
sestatus
# cron.dディレクトリのセキュリティコンテキストを確認
ls -Z /etc/cron.d/
# cron.hourlyディレクトリのセキュリティコンテキストを確認
ls -Z /etc/cron.hourly/
これらのコマンドは、cron.dとcron.hourlyディレクトリに対するSELinuxの設定を確認します。
ステップ4: 実践/トラブルシュート/監視
トリガーイベントの確認
定期実行スクリプトの実行結果やエラーメッセージを確認するために、/var/log/cronログファイルをチェックしましょう。
# cronログファイルを確認
tail -n 10 /var/log/cron
このコマンドは、最近のcronジョブの実行結果とエラーメッセージを表示します。適切なアクセス権限が設定されている場合でも、cronジョブが正常に動作していない場合はログファイルから確認できます。
定期的な監視
定期的にcron.dとcron.hourlyディレクトリの内容や権限設定をチェックすることが重要です。これにより、不正な変更や潜在的なセキュリティリスクを早期発見できます。
# cron.dディレクトリを定期的に確認するスクリプトを作成
echo "ls -l /etc/cron.d/" >> /root/check_cron_d.sh
chmod +x /root/check_cron_d.sh
# cron.hourlyディレクトリを定期的に確認するスクリプトを作成
echo "ls -l /etc/cron.hourly/" >> /root/check_cron_hourly.sh
chmod +x /root/check_cron_hourly.sh
これらのスクリプトは、cron.hourlyディレクトリとcron.dディレクトリの内容を定期的に確認するためのもので、適切な実行権限を持っているユーザーだけが実行できるようにしています。
注意事項
- cronジョブやスクリプトを追加・変更する際は、必ずテスト環境で確認し、無害であることを確認してください。
- SELinuxの設定に問題がある場合は、セキュリティポリシーを適切に調整すること。
- ディレクトリやファイルの権限設定が適切でない場合、root以外のユーザーからの不正アクセスを防ぐことができません。
まとめ
1. cron.dとcron.hourlyの確認: cronジョブの内容を定期的に確認することで、不正な変更や潜在的なリスクを早期発見できます。
2. 権限設定の確認: cron.dとcron.hourlyディレクトリの所有者とグループが適切に設定されていることを確認します。
3. アクセス制御の確認: SELinuxによるアクセス制御も確認することで、セキュリティをさらに強化することができます。
4. 定期的な監視: cronジョブやスクリプトの実行結果を定期的にチェックし、不正なアクセスを防ぐための対策を行います。
関連記事:
- [Linuxサーバーの基本的なセキュリティ設定]
- [SELinuxとcronジョブの組み合わせによるセキュリティ強化]
- [cronジョブの定期実行と監視]