CentOSシステムを定期的に更新することは、システム全体のセキュリティの最も重要な側面の1つです。オペレーティングシステムのパッケージを最新のセキュリティパッチで更新しないと、マシンが攻撃に対して脆弱なままになります。
複数のCentOSマシンを管理している場合、システムパッケージを手動で更新するには時間がかかる場合があります。単一のCentOSインストールを管理している場合でも、重要な更新を見落とすことがあります。ここで自動更新が便利です。
このチュートリアルでは、CentOS7で自動更新を構成するプロセスを実行します。同じ手順がCentOS6にも適用されます。
前提条件#
このチュートリアルを続行する前に、sudo権限を持つユーザーとしてログインしていることを確認してください。
yum-cronパッケージのインストール#
yum-cron
packageを使用すると、yumコマンドをcronジョブとして自動的に実行して、更新を確認、ダウンロード、および適用できます。このパッケージはすでにCentOSシステムにインストールされている可能性があります。インストールされていない場合は、次のコマンドを実行してパッケージをインストールできます。
sudo yum install yum-cron
インストールが完了したら、サービスを有効にして開始します。
sudo systemctl enable yum-cron
sudo systemctl start yum-cron
サービスが実行されていることを確認するには、次のコマンドを入力します。
systemctl status yum-cron
yum-cronサービスのステータスに関する情報が画面に表示されます:
● yum-cron.service - Run automatic yum updates as a cron job
Loaded: loaded (/usr/lib/systemd/system/yum-cron.service; enabled; vendor preset: disabled)
Active: active (exited) since Sat 2019-05-04 21:49:45 UTC; 8min ago
Process: 2713 ExecStart=/bin/touch /var/lock/subsys/yum-cron (code=exited, status=0/SUCCESS)
Main PID: 2713 (code=exited, status=0/SUCCESS)
CGroup: /system.slice/yum-cron.service
yum-cronの設定#
yum-cronには、/etc/yum
に保存されている2つの構成ファイルが付属しています。 ディレクトリ、時間単位の構成ファイルyum-cron-hourly.conf
および日次構成ファイルyum-cron.conf
。
yum-cron
serviceは、cronジョブを実行するかどうかのみを制御します。 yum-cron
ユーティリティは/etc/cron.hourly/0yum-hourly.cron
によって呼び出されます および/etc/cron.daily/0yum-daily.cron
cronファイル。
デフォルトでは、毎時cronは何もしないように構成されています。利用可能な更新がある場合、毎日のcronはダウンロードするように設定されていますが、利用可能な更新をインストールしてstdoutにメッセージを送信することはありません。通知を受信し、テストサーバーで更新をテストした後に手動で更新を実行する重要な本番システムには、デフォルトの構成で十分です。
構成ファイルはセクションで構成されており、各セクションには、各構成行の機能を説明するコメントが含まれています。
yum-cron構成ファイルを編集するには、テキストエディターでファイルを開きます。
sudo nano /etc/yum/yum-cron-hourly.conf
最初のセクションでは、[commands]
更新するパッケージの種類を定義し、メッセージとダウンロードを有効にして、更新が利用可能になったときに自動的に適用するように設定できます。デフォルトでは、update_cmd
すべてのパッケージを更新するデフォルトに設定されています。無人自動更新を設定する場合は、値をsecurity
に変更することをお勧めします。 これにより、セキュリティの問題のみを修正するパッケージを更新するようにyumに指示されます。
次の例では、update_cmd
を変更しました security
へ apply_updates
を設定して、無人更新を有効にしました yes
に :
[commands]
update_cmd = security
update_messages = yes
download_updates = yes
apply_updates = no
random_sleep = 360
2番目のセクションでは、メッセージの送信方法を定義します。 stdoutとemailの両方にメッセージを送信するには、emit_via
の値を変更します stdio,email
へ 。
[emitters]
system_name = None
emit_via = stdio,email
output_width = 80
[email]
で セクションでは、送信者と受信者の電子メールアドレスを設定できます。 mailxやpostfixなど、システムにインストールされているメールを送信できるツールがあることを確認してください。
[email]
email_from = [email protected]
email_to = [email protected]
email_host = localhost
[base]
セクションでは、yum.conf
で定義された設定を上書きできます ファイル。特定のパッケージを更新から除外する場合は、exclude
を使用できます。 パラメータ。次の例では、[mongodb
を除外しています ]パッケージ。
[base]
debuglevel = -2
mdpolicy = group:main
exclude = mongodb*
yum-cron
を再起動する必要はありません 変更を有効にするためのサービス。
ログの表示#
greptoを使用して、yumに関連付けられているcronジョブが実行されているかどうかを確認します。
sudo grep yum /var/log/cron
May 4 22:01:01 localhost run-parts(/etc/cron.hourly)[5588]: starting 0yum-hourly.cron
May 4 22:32:01 localhost run-parts(/etc/cron.daily)[5960]: starting 0yum-daily.cron
May 4 23:01:01 localhost run-parts(/etc/cron.hourly)[2121]: starting 0yum-hourly.cron
May 4 23:01:01 localhost run-parts(/etc/cron.hourly)[2139]: finished 0yum-hourly.cron
yumの更新の履歴は、/var/log/yum
に記録されます。 ファイル。 tailコマンドを使用して最新の更新を表示できます:
sudo tail -f /var/log/yum.log
May 04 23:47:28 Updated: libgomp-4.8.5-36.el7_6.2.x86_64
May 04 23:47:31 Updated: bpftool-3.10.0-957.12.1.el7.x86_64
May 04 23:47:31 Updated: htop-2.2.0-3.el7.x86_64