Debian GNU/Linux 9 stretch 的安全更新方法
总结
-
- Debian GNU/Linux サーバの日々の定常作業として実施するべき apt upgrade 作業手順をまとめる
- 通常のパッケージ更新と Linux カーネルのパッケージ更新の2パターン
apt 是什么
apt(8) 是一个用于管理 Debian stretch 系统的命令行工具,提供了多个功能和选项。它是 Debian Manpages 的一部分。
apt是一个为包管理系统设计的高级命令行接口。它旨在作为终端用户界面使用。与专用的APT工具如apt-get(8)和apt-cache(8)相比,apt默认启用了一些适用于交互使用的选项。
准备
将Debian软件包获取源的信息记录在/etc/apt/sources.list文件中。
# cat /etc/apt/sources.list
# stretch
deb http://ftp.jp.debian.org/debian stretch main contrib non-free
deb http://ftp.jp.debian.org/debian stretch-updates main contrib non-free
deb http://security.debian.org/ stretch/updates main contrib non-free
deb-src http://ftp.jp.debian.org/debian stretch main contrib non-free
deb-src http://ftp.jp.debian.org/debian stretch-updates main contrib non-free
deb-src http://security.debian.org/ stretch/updates main contrib non-free
sources.list(5) — apt — Debian stretch — Debian Manpages
sources.list – APT 的数据获取源设置列表
Debian JP项目 – 关于镜像站点
Debian JP Project通过运营ftp.jp.debian.org作为考虑用户便利性的Debian镜像服务器。
ftp.jp.debian.org使用多个(具有相对快速连接的)Debian镜像服务器进行DNS轮询(同时根据服务器进行加权),可以避免特定镜像服务器的故障影响。另外,与普通的DNS轮询不同,如果所选服务器发生故障或镜像未能正常更新时,会自动切断连接,用户可以毫无意识地使用最新的镜像服务器。
通常的安全更新
执行命令概述
执行此命令以更新软件包。
# apt update
# apt list --upgradable
# apt upgrade
# checkrestart
请确认是否需要更新包装。
# apt update
無視:1 http://ftp.jp.debian.org/debian stretch InRelease
取得:2 http://ftp.jp.debian.org/debian stretch-updates InRelease [91.0 kB]
ヒット:3 http://ftp.jp.debian.org/debian stretch Release
取得:4 http://security.debian.org stretch/updates InRelease [94.3 kB]
取得:6 http://security.debian.org stretch/updates/main Sources [188 kB]
取得:7 http://security.debian.org stretch/updates/main amd64 Packages [464 kB]
取得:8 http://security.debian.org stretch/updates/main Translation-en [203 kB]
1,040 kB を 1秒 で取得しました (580 kB/s)
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
アップグレードできるパッケージが 1 個あります。表示するには 'apt list --upgradable' を実行してください。
确认更新的软件包
# apt list --upgradable
一覧表示... 完了
libarchive13/stable 3.2.2-2+deb9u1 amd64 [3.2.2-2 からアップグレード可]
N: 追加バージョンが 1 件あります。表示するには '-a' スイッチを付けてください。
apt(8)是Debian stretch系统中的apt工具,用于管理Debian的软件包。
list 可以显示符合特定标准的软件包列表,与 dpkg-query –list 类似。list 还支持列出已安装 (–installed)、可升级 (–upgradeable) 或所有可用版本 (–all-versions) 的选项,并支持匹配软件包名称的 glob(7) 模式。
也可以使用apt upgrade命令的-s(–simulate)选项进行确认。
# apt upgrade -s
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
アップグレードパッケージを検出しています... 完了
以下のパッケージはアップグレードされます:
libarchive13
アップグレード: 1 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。
Inst libarchive13 [3.2.2-2] (3.2.2-2+deb9u1 Debian-Security:9/stable [amd64])
Conf libarchive13 (3.2.2-2+deb9u1 Debian-Security:9/stable [amd64])
apt-get(8)— apt — Debian stretch — Debian Manpages
-於當前系統狀態下模擬事件的發生,並不實際修改系統。在此模式下,鎖定功能將被禁用(Debug::NoLocking),所以在執行apt-get過程中系統狀態可能會發生變化。非root用戶可以執行模擬操作,但可能沒有訪問所有apt設置並修改其模擬結果的權限。此警告通知默認顯示給非root用戶 (APT::Get::Show-User-Simulation-Note)。設置選項: APT::Get::Simulate
更新套餐
# apt upgrade
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
アップグレードパッケージを検出しています... 完了
以下のパッケージはアップグレードされます:
libarchive13
アップグレード: 1 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。
294 kB のアーカイブを取得する必要があります。
この操作後に追加で 0 B のディスク容量が消費されます。
続行しますか? [Y/n] y
取得:1 http://security.debian.org stretch/updates/main amd64 libarchive13 amd64 3.2.2-2+deb9u1 [294 kB]
294 kB を 0秒 で取得しました (487 kB/s)
changelog を読んでいます... 完了
(データベースを読み込んでいます ... 現在 85257 個のファイルとディレクトリがインストールされています。)
.../libarchive13_3.2.2-2+deb9u1_amd64.deb を展開する準備をしています ...
libarchive13:amd64 (3.2.2-2+deb9u1) で (3.2.2-2 に) 上書き展開しています ...
libarchive13:amd64 (3.2.2-2+deb9u1) を設定しています ...
libc-bin (2.24-11+deb9u3) のトリガを処理しています ...
请确认包裹已更新。
可以使用dpkg命令来确认软件包的版本已经升级。
# dpkg -l libarchive13
要望=(U)不明/(I)インストール/(R)削除/(P)完全削除/(H)保持
| 状態=(N)無/(I)インストール済/(C)設定/(U)展開/(F)設定失敗/(H)半インストール/(W)トリガ待ち/(T)トリガ保留
|/ エラー?=(空欄)無/(R)要再インストール (状態,エラーの大文字=異常)
||/ 名前 バージョン アーキテクチャ 説明
+++-===================-==============-==============-===========================================
ii libarchive13:amd64 3.2.2-2+deb9u1 amd64 Multi-format archive and compression librar
请确认是否存在重新启动的进程。
# checkrestart
Found 0 processes using old versions of upgraded files
如果检测到重新启动的过程,则根据需要重新启动该过程。
一般的的软件更新已经完成。
Linux 内核的更新
命令执行概述
执行此类命令以更新Linux内核包。
# apt update
# apt list --upgradable
# apt upgrade
# shutdown -r now
请确认是否需要更新包装
# apt update
無視:1 http://ftp.jp.debian.org/debian stretch InRelease
ヒット:2 http://ftp.jp.debian.org/debian stretch-updates InRelease
ヒット:3 http://ftp.jp.debian.org/debian stretch Release
ヒット:4 http://security.debian.org stretch/updates InRelease
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
アップグレードできるパッケージが 1 個あります。表示するには 'apt list --upgradable' を実行してください。
确认更新的软件包。
# apt upgrade -s
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
アップグレードパッケージを検出しています... 完了
以下のパッケージはアップグレードされます:
linux-image-4.9.0-8-amd64
アップグレード: 1 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。
Inst linux-image-4.9.0-8-amd64 [4.9.130-2] (4.9.144-3 Debian:9.8/stable [amd64])
Conf linux-image-4.9.0-8-amd64 (4.9.144-3 Debian:9.8/stable [amd64])
# apt list --upgradable
一覧表示... 完了
linux-image-4.9.0-8-amd64/stable 4.9.144-3 amd64 [4.9.130-2 からアップグレード可]
N: 追加バージョンが 2 件あります。表示するには '-a' スイッチを付けてください。
# apt list --upgradable -a
一覧表示... 完了
linux-image-4.9.0-8-amd64/stable 4.9.144-3 amd64 [4.9.130-2 からアップグレード可]
linux-image-4.9.0-8-amd64/now 4.9.130-2 amd64 [インストール済み、4.9.144-3 にアップグレード可]
linux-image-4.9.0-8-amd64/stable 4.9.110-3+deb9u6 amd64
请确认已安装的 Linux 内核版本和软件包。
# uname -mrsv
Linux 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64
# dpkg -l linux-image-4.9.0-8-amd64
要望=(U)不明/(I)インストール/(R)削除/(P)完全削除/(H)保持
| 状態=(N)無/(I)インストール済/(C)設定/(U)展開/(F)設定失敗/(H)半インストール/(W)トリガ待ち/(T)トリガ保留
|/ エラー?=(空欄)無/(R)要再インストール (状態,エラーの大文字=異常)
||/ 名前 バージョン アーキテクチャ 説明
+++-===================-==============-==============-===========================================
ii linux-image-4.9.0-8 4.9.130-2 amd64 Linux 4.9 for 64-bit PCs
更新套件
# apt upgrade
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
アップグレードパッケージを検出しています... 完了
以下のパッケージはアップグレードされます:
linux-image-4.9.0-8-amd64
アップグレード: 1 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。
39.1 MB のアーカイブを取得する必要があります。
この操作後に追加で 137 kB のディスク容量が消費されます。
続行しますか? [Y/n] y
取得:1 http://ftp.jp.debian.org/debian stretch/main amd64 linux-image-4.9.0-8-amd64 amd64 4.9.144-3 [39.1 MB]
39.1 MB を 4秒 で取得しました (8,261 kB/s)
changelog を読んでいます... 完了
(データベースを読み込んでいます ... 現在 76806 個のファイルとディレクトリがインストールされています。)
.../linux-image-4.9.0-8-amd64_4.9.144-3_amd64.deb を展開する準備をしています ...
linux-image-4.9.0-8-amd64 (4.9.144-3) で (4.9.130-2 に) 上書き展開しています ...
linux-image-4.9.0-8-amd64 (4.9.144-3) を設定しています ...
/etc/kernel/postinst.d/initramfs-tools:
update-initramfs: Generating /boot/initrd.img-4.9.0-8-amd64
/etc/kernel/postinst.d/zz-update-grub:
Generating grub configuration file ...
Linux イメージを見つけました: /boot/vmlinuz-4.9.0-8-amd64
Found initrd image: /boot/initrd.img-4.9.0-8-amd64
Linux イメージを見つけました: /boot/vmlinuz-4.9.0-7-amd64
Found initrd image: /boot/initrd.img-4.9.0-7-amd64
完了
请确认包装已经更新。
可以确认软件包版本已经升级。
# dpkg -l linux-image-4.9.0-8-amd64
要望=(U)不明/(I)インストール/(R)削除/(P)完全削除/(H)保持
| 状態=(N)無/(I)インストール済/(C)設定/(U)展開/(F)設定失敗/(H)半インストール/(W)トリガ待ち/(T)トリガ保留
|/ エラー?=(空欄)無/(R)要再インストール (状態,エラーの大文字=異常)
||/ 名前 バージョン アーキテクチャ 説明
+++-===================-==============-==============-===========================================
ii linux-image-4.9.0-8 4.9.144-3 amd64 Linux 4.9 for 64-bit PCs
只有在重新启动操作系统之前,Linux内核才会被更新,这样我们可以确认版本没有升级。
# uname -mrsv
Linux 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64
重新启动操作系统
用”shutdown -r now”或”reboot”命令来重新启动操作系统。
# shutdown -r now
确认 Linux 内核的版本。
当操作系统启动后,重新登录。
可以确认Linux内核版本已经更新。
# uname -mrsv
Linux 4.9.0-8-amd64 #1 SMP Debian 4.9.144-3 (2019-02-02) x86_64
Linux内核的软件包更新在这里就完成了。
进行安全更新的时机
如果有软件包的安全更新,Debian安全公告邮件列表会发布通知,所以我会在收到通知时执行apt update并判断是否需要进行更新。
Debian邮件列表 – debian-security-announce的索引
参考资料
-
- Debian — セキュリティ情報
- Debian Mailing Lists — Index for debian-security-announce