FreeBSD にセキュリティパッチの適用方法です。
参考にさせて頂いたサイト集です。
第17章 FreeBSD のアップデートとアップグレード
FreeBSDのアップグレード
セキュリティパッチ適用前に、以下のコマンドを実行してカーネルのバージョンを確認する。
uname -a
■セキュリティパッチ適用前
FreeBSD FreeBSD 12.1-RELEASE FreeBSD 12.1-RELEASE r354233 GENERIC amd64
また、セキュリティパッチの適用方法は以下のコマンドを実行する。
freebsd-update fetch
実行した時のメッセージが以下の内容になります。
[root@FreeBSD ~]# freebsd-update fetch Looking up update.FreeBSD.org mirrors... 3 mirrors found. Fetching public key from update1.freebsd.org... done. Fetching metadata signature for 12.1-RELEASE from update1.freebsd.org... done. Fetching metadata index... done. Fetching 2 metadata files... done. Inspecting system... done. Preparing to download files... done. Fetching 42 patches.....10....20....30....40. done. Applying patches... done. The following files will be updated as part of updating to 12.1-RELEASE-p2: /bin/freebsd-version /boot/kernel/cpuctl.ko /boot/kernel/efirt.ko /boot/kernel/kernel /boot/loader.efi /boot/loader_4th.efi /boot/loader_lua.efi /boot/loader_simp.efi /lib/libc.so.7 /rescue/[ /rescue/bectl /rescue/bsdlabel /rescue/bunzip2 /rescue/bzcat /rescue/bzip2 /rescue/camcontrol /rescue/cat /rescue/ccdconfig /rescue/chflags /rescue/chgrp /rescue/chio /rescue/chmod /rescue/chown /rescue/chroot /rescue/clri /rescue/cp /rescue/csh /rescue/date /rescue/dd /rescue/devfs /rescue/df /rescue/dhclient /rescue/disklabel /rescue/dmesg /rescue/dump /rescue/dumpfs /rescue/dumpon /rescue/echo /rescue/ed /rescue/ex /rescue/expr /rescue/fastboot /rescue/fasthalt /rescue/fdisk /rescue/fsck /rescue/fsck_4.2bsd /rescue/fsck_ffs /rescue/fsck_msdosfs /rescue/fsck_ufs /rescue/fsdb /rescue/fsirand /rescue/gbde /rescue/geom /rescue/getfacl /rescue/glabel /rescue/gpart /rescue/groups /rescue/gunzip /rescue/gzcat /rescue/gzip /rescue/halt /rescue/head /rescue/hostname /rescue/id /rescue/ifconfig /rescue/init /rescue/ipf /rescue/iscsictl /rescue/iscsid /rescue/kenv /rescue/kill /rescue/kldconfig /rescue/kldload /rescue/kldstat /rescue/kldunload /rescue/ldconfig /rescue/less /rescue/link /rescue/ln /rescue/ls /rescue/lzcat /rescue/lzma /rescue/md5 /rescue/mdconfig /rescue/mdmfs /rescue/mkdir /rescue/mknod /rescue/more /rescue/mount /rescue/mount_cd9660 /rescue/mount_msdosfs /rescue/mount_nfs /rescue/mount_nullfs /rescue/mount_udf /rescue/mount_unionfs /rescue/mt /rescue/mv /rescue/nc /rescue/newfs /rescue/newfs_msdos /rescue/nos-tun /rescue/pgrep /rescue/ping /rescue/ping6 /rescue/pkill /rescue/poweroff /rescue/ps /rescue/pwd /rescue/rcorder /rescue/rdump /rescue/realpath /rescue/reboot /rescue/red /rescue/rescue /rescue/restore /rescue/rm /rescue/rmdir /rescue/route /rescue/routed /rescue/rrestore /rescue/rtquery /rescue/rtsol /rescue/savecore /rescue/sed /rescue/setfacl /rescue/sh /rescue/shutdown /rescue/sleep /rescue/spppcontrol /rescue/stty /rescue/swapon /rescue/sync /rescue/sysctl /rescue/tail /rescue/tar /rescue/tcsh /rescue/tee /rescue/test /rescue/tunefs /rescue/umount /rescue/unlink /rescue/unlzma /rescue/unxz /rescue/unzstd /rescue/vi /rescue/whoami /rescue/xz /rescue/xzcat /rescue/zcat /rescue/zdb /rescue/zfs /rescue/zpool /rescue/zstd /rescue/zstdcat /rescue/zstdmt /sbin/devd /sbin/init /usr/bin/ar /usr/bin/as /usr/bin/c++ /usr/bin/cc /usr/bin/clang /usr/bin/clang++ /usr/bin/clang-cpp /usr/bin/cpp /usr/bin/make /usr/bin/ranlib /usr/include/machine/pmap.h /usr/include/x86/specialreg.h /usr/lib/debug/boot/kernel/cpuctl.ko.debug /usr/lib/debug/boot/kernel/efirt.ko.debug /usr/lib/debug/boot/kernel/kernel.debug /usr/lib/libc.a /usr/lib/libc_p.a /usr/lib/libc_pic.a /usr/lib/libfetch.a /usr/lib/libfetch.so.6 /usr/lib/libfetch_p.a /usr/lib32/libc.a /usr/lib32/libc.so.7 /usr/lib32/libc_p.a /usr/lib32/libc_pic.a /usr/lib32/libfetch.a /usr/lib32/libfetch.so.6 /usr/lib32/libfetch_p.a /usr/sbin/nologin /usr/src/lib/libc/secure/stack_protector.c /usr/src/lib/libfetch/fetch.c /usr/src/stand/efi/loader/bootinfo.c /usr/src/stand/efi/loader/copy.c /usr/src/sys/amd64/amd64/pmap.c /usr/src/sys/amd64/include/pmap.h /usr/src/sys/conf/newvers.sh /usr/src/sys/dev/cpuctl/cpuctl.c /usr/src/sys/kern/imgact_elf.c /usr/src/sys/x86/include/specialreg.h (END)
(END)が表示されたら、Q キーを押下して終了する。
その後、以下のコマンドを実行してインストールする。
freebsd-update install
実行した時のメッセージが以下の内容になります。
[root@FreeBSD ~]# freebsd-update install Installing updates... done.
「Installing updates… done.」が表示されたら大丈夫です。
以下のコマンドを実行して再起動する。
reboot
再起動後、カーネルのバージョンを確認する。
uname -a
■セキュリティパッチ適用後
FreeBSD FreeBSD 12.1-RELEASE-p2 FreeBSD 12.1-RELEASE-p2 GENERIC amd64
無事、カーネルのバージョンが変更されたので成功しました。
■セキュリティパッチ適用前に戻す方法
セキュリティパッチ適用前に戻す方法が以下の内容になります。
freebsd-update rollback
実行した時のメッセージが以下の内容になります。
[root@FreeBSD ~]# freebsd-update rollback Uninstalling updates... done.
再起動後、 カーネルのバージョンが戻っていたら成功です。
■自動更新方法
crontab を使用して定期的にセキュリティパッチを更新するように設定する。
また、自動更新するには以下の方法を設定する。
vi /etc/crontab
以下を追加する事で、毎日3時にセキュリティパッチを確認する。
#freebsd-update 0 3 * * * root /usr/sbin/freebsd-update
また、セキュリティパッチが存在している場合はメール通知するように設定する。
以下のコマンドを実行する。
vi /etc/freebsd-update.conf
修正箇所は、「MailTo」の部分に以下のように追加する。
MailTo メールアドレスを記入する