今日、yumを使用していくつかのサーバーを更新しました。
4 package(s) needed for security, out of 4 available
Run "Sudo yum update" to apply all updates.
3つはopensshアップデートで、1つはJavaです。アップデート後にopensshサーバーを再起動する必要がありますか?
Apacheが更新されたことを確認したら、手動で再起動します。 PHPの更新についても同様ですが、本当に必要かどうかはわかりません。
Debianでapt-getを使用すると、サービスが再起動されているというメッセージが表示されます。 yumも同じことをしますか?
更新後に手動で再起動する必要のあるサービスはどれですか?またはyumが再起動を処理しますか?
ライブラリをアップグレードするためにyum updateを実行した後、まだライブラリの古いコピーを使用しているサービスが実行されている可能性があります。そのようなサービスは、古いライブラリのセキュリティバグに対して依然として脆弱である可能性があります。
Lsofを使用して影響を受けるプロセスを発見し、削除されたファイルを使用するプロセスを一覧表示するのは比較的簡単です。
# lsof | awk '$5 == "DEL" { print }'
auditd 1001 1001 root DEL REG /usr/lib64/libnss_files-2.18.so;53bd9626
libvirtd 1468 1509 root DEL REG /usr/lib64/libnss_files-2.18.so;53bd9626
[lots more output]
(たとえば)glibcを更新した後にこのコマンドを実際に実行すると、ページおよび出力のページを取得できます。
ただし、systemd
を使用すると、プロセスIDをサービスおよびユーザーセッションにマップできます。
これが次のスクリプトの機能です。
http://oirase.annexia.org/rwmj.wp.com/needs-restart.pl
一般的な出力は次のようになります。
Glibc-2.18-11.fc20.x86_64のインストールを完了するには、次のサービスを再起動する必要があります。
- accounts-daemon.service - Accounts Service
- console-kit-daemon.service - Console Manager
- udisks2.service - Disk Manager
- auditd.service - Security Auditing Service
- dbus.service - D-Bus System Message Bus
- rtkit-daemon.service - RealtimeKit Scheduling Policy Service
- upower.service - Daemon for power management
- colord.service - Manage, Install and Generate Color Profiles
- firewalld.service - firewalld - dynamic firewall daemon
- polkit.service - Authorization Manager
- rsyslog.service - System Logging Service
- NetworkManager.service - Network Manager
- libvirtd.service - Virtualization daemon
- gdm.service - GNOME Display Manager
In order to complete the installation of glibc-2.18-11.fc20.x86_64,
you should tell the following users to log out and log in:
- session-1.scope - Session 1 of user rjones
yum-utils
バイナリを含むneeds-restarting
パッケージをインストールすることもできます。 yum updateの実行後、次のコマンドを発行します
needs-restarting
これにより、更新されたライブラリに依存しているために再起動する必要があるプロセスが示されます。次に例を示します。
/root » needs-restarting
458 : /usr/lib/systemd/systemd-journald
1161 : /usr/sbin/named -u named -t /var/named/chroot -c /etc/named.conf -u named -n 2
665 : /usr/sbin/abrtd -d -s
661 : /usr/lib/systemd/systemd-logind
660 : /usr/lib/polkit-1/polkitd --no-debug
493 : /usr/lib/systemd/systemd-udevd
1052 : /usr/local/patchman/patchmand
1943 : /usr/libexec/postfix/master -w
698 : /usr/sbin/nrpe -c /etc/nagios/nrpe.cfg -d
1 : /usr/lib/systemd/systemd --switched-root --system --deserialize 22
717 : /usr/sbin/NetworkManager --no-daemon
1019 : /usr/bin/python -Es /usr/sbin/tuned -l -P
1652 : /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock
1010 : /usr/bin/python /usr/bin/salt-minion
678 : /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
16299 : /sbin/rpcbind -w
638 : /sbin/auditd
675 : /usr/sbin/smartd -n -q never
672 : /usr/sbin/irqbalance --foreground
1021 : php-fpm: master process (/etc/php-fpm.conf)
480 : /usr/sbin/lvmetad -f
1024 : /usr/bin/dockerd
1047 : /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid
1020 : /usr/sbin/sshd -D
1972 : qmgr -l -t fifo -u
1537 : /usr/bin/python /usr/bin/salt-minion
2026 : /usr/bin/python /usr/bin/salt-minion
1009 : php-fpm: master process (/opt/plesk/php/7.0/etc/php-fpm.conf)
1249 : sw-engine-kv
2028 : tlsmgr -l -t unix -u
682 : /usr/sbin/chronyd
次のように、-r
フラグ(CentOS/RHEL 7+のみ!)を追加して、マシンを再起動する必要があるかどうかを判断することもできます。
/root » needs-restarting -r
Core libraries or services have been updated:
kernel -> 3.10.0-862.3.2.el7
linux-firmware 20180220-62.1.git6d51311.el7_5
Reboot is required to ensure that your system benefits from these updates.