SSD Nodes Learn 🎉 VPS mula $5.50/buwan
Mga Gabay Matt ConnorNi Matt Connor · Na-update 2026-08-13

FreeBSD Security Updates: freebsd-update at pkg audit

Alamin kung bakit magkahiwalay ang freebsd-update at pkg audit sa FreeBSD, ano ang bina-patch ng bawat isa, at bakit kailangan mong bantayan ang dalawang feed.

Paano pinangangasiwaan ng FreeBSD ang mga security update

Pinangangasiwaan ng FreeBSD ang mga security update gamit ang dalawang magkahiwalay na tool dahil dalawang magkahiwalay na bahagi ang FreeBSD server. Ang base system, na binubuo ng kernel at userland na kasama sa release, ay ina-update gamit ang freebsd-update. Ang lahat ng ini-install mo sa ibabaw nito ay package, at ina-update ang mga package gamit ang pkg. Kapag isa lang ang pinatakbo mo at nilaktawan ang isa pa, mananatiling hindi updated ang kalahati ng machine, at walang ipapaalam sa iyo ang system tungkol dito.

Hindi nag-aalok ang SSD Nodes ng mga FreeBSD image. Linux ang ginagamit ng aming mga plan. Narito pa rin ang post na ito dahil pareho ang mga mambabasa: ang mga nagpapatakbo ng aming Ubuntu at Debian server ay nagpapatakbo rin ng FreeBSD sa firewall o sa iisang machine na minana nila. Ang magkahiwalay na patching model ang bahaging kadalasang nakalilito sa Linux admin, kaya iyon ang mahalagang isulat. Sinuri ang bawat command, advisory format, at support date sa security page ng FreeBSD at sa manual pages ng proyekto noong August 2026.

Isang paalala bago ang mga command. Hindi ini-install ng FreeBSD ang sudo sa base system. Kailangan ng root para sa lahat ng hakbang dito. Gamitin ang su -, o i-install muna ang sudo o doas mula sa packages.

Magkaibang universe ang base system at mga package

Sa Ubuntu, ang apt ang namamahala sa buong machine. Ang kernel, openssl, nginx, at sarili mong mga tool ay dumarating bilang mga .deb file mula sa iisang tool, at sabay-sabay na ina-update ng apt upgrade ang lahat ng ito.

Hinahati ito ng FreeBSD sa dalawang bahagi. Binubuo ang base system bilang isang unit at bina-version bilang isang unit: ang 15.1-RELEASE-p3 ay iisang numero na sumasaklaw sa kernel, C library, sshd, at kopya ng OpenSSL sa /usr/lib. Walang bahagi nito ang nagmumula sa pkg. Ang lahat ng iba pa ay nasa ilalim ng /usr/local, dumarating bilang binary package na binuo mula sa ports tree, at may sarili nitong version.

Kaya maaaring magkaroon ang isang machine ng dalawang kopya ng OpenSSL: ang base copy sa /usr/lib, na freebsd-update lamang ang nagpa-patch, at ang package copy sa /usr/local/lib, na pkg lamang ang nagpa-patch. Nakadepende sa kung alin ang pinag-link-an nito kung alin ang ginagamit ng isang program, at karaniwang ginagamit ng software na naka-install mula sa packages ang package copy. Walang epekto sa isa ang pagpa-patch sa kabila.

Tatlong command ang nagsasabi kung nasaan ka:

freebsd-version -u
freebsd-version -k
uname -r

Ipinapakita ng freebsd-version -u ang patch level ng naka-install na userland. Ipinapakita ng freebsd-version -k ang patch level ng naka-install na kernel, at malinaw na ipinapaliwanag ng freebsd-version(1) kung bakit hindi ito kapareho ng uname: “kung na-install ang isang bagong kernel pero hindi pa nagre-reboot ang system, ipi-print ng freebsd-version ang version at patch level ng bagong kernel.” Ipinapakita ng uname -r ang kernel na kasalukuyang tumatakbo. Mayroon ding freebsd-version -r, na nagpi-print ng running kernel pero “hindi naaapektuhan ng environment variables”; mahalaga ito sa loob ng jail kung saan madalas nakatakda ang UNAME_r sa ibang value.

Mga Security Advisory at Errata Notice

Dalawang uri ng notice ang inilalabas ng FreeBSD Security Team, at magkaiba ang ibig sabihin ng mga ito.

Ang Security Advisory ay tungkol sa security vulnerability sa base system. Ganito ang anyo ng identifier: FreeBSD-SA-26:55.elf. Nandito ang mga letrang SA, ang dalawang-digit na taon, isang numerong pataas ang bilang sa loob ng taong iyon, at ang apektadong component. Parehong inilabas ang FreeBSD-SA-26:52.if_wg at FreeBSD-SA-26:50.kqueue noong 2026-07-29. Makikita ang buong listahan sa page ng FreeBSD advisories.

Ang Errata Notice ay tungkol sa problema sa correctness o stability na sapat na mahalagang isama sa isang release branch, ngunit walang security impact. Pareho ang format nito, ngunit EN ang nasa halip na SA: FreeBSD-EN-26:19.zfs, FreeBSD-EN-26:18.tzdata. Ang update sa time zone data ang karaniwang halimbawa. Hindi ka maa-attack gamit ang lumang time zone data, ngunit mali ang iyong timestamps hanggang ma-install mo ang fix. Nakalista ang mga errata sa page ng FreeBSD errata notices.

Parehong nilalagdaan ang dalawang uri gamit ang PGP (pretty good privacy) key ng Security Officer at ina-archive sa security.FreeBSD.org. Pareho rin silang inihahatid sa iyong machine sa pamamagitan ng freebsd-update.

Ito ang bahaging madalas nakakaligtaan ng mga Linux admin. Wala sa dalawang uri ang sumasaklaw sa packages. Malinaw itong sinasabi sa security page: ang mga problema sa FreeBSD Ports Collection ay “covered separately in the FreeBSD VuXML document.” Ang remote vulnerability sa nginx package ay hindi kailanman makatatanggap ng SA number. Kung advisory feed lamang ang mino-monitor mo, hindi mo ito malalaman.

Paano ako makakatanggap ng mga abiso tungkol sa security update ng FreeBSD?

Ang listahang dapat salihan ay freebsd-security-notifications. Moderated ito at kaunti ang ipinapadalang mensahe. Dito ipinapadala mismo ang mga advisory at errata notice. Mag-subscribe sa lists.freebsd.org.

Moderated din ang freebsd-announce at ipinapadala rito ang mga advisory kasama ng release announcement. Angkop ito kung gusto mo ng isang listahan para sa lahat. Ang freebsd-security ang discussion list. Kapaki-pakinabang itong basahin, pero hindi ito ang listahang dapat subaybayan para malaman kung kailangan mong mag-apply ng patch.

Mga balita lamang tungkol sa base system ang ipinapadala sa lahat ng listahang ito. Hindi ipinapadala sa email ang mga vulnerability ng package. Malalaman mo ang mga iyon sa pagpapatakbo ng isang command.

pkg audit at ang database sa likod nito

Ang VuXML, o Vulnerabilities and Exposures Markup Language, ang talaan ng FreeBSD project para sa mga security problem sa ports at packages. Tinutukoy sa bawat entry ang apektadong package, ang mga version range na vulnerable, ang mga CVE (common vulnerabilities and exposures) identifier, at maikling description. Maaaring i-browse ang buong set sa VuXML index, na nakaayos ayon sa package, CVE, o petsa.

Ang pkg audit ang tool na bumabasa nito:

pkg audit -F

Ang -F ay kumukuha ng pinakabagong kopya ng database bago magsagawa ng check. Gamitin ito sa bawat pagkakataon. Kung wala ang -F, ikinukumpara mo ang system sa kopyang naka-save na sa machine, na maaaring ilang buwan nang luma. Kaya walang saysay ang clean result. Ikinukumpara ng command ang version ng bawat installed package sa bawat VuXML entry. Ipinapakita nito ang bawat match kasama ang mga CVE number at link sa VuXML page. Nagtatapos ito sa isang count line na nagsasabi kung ilang problema ang nakita sa ilang installed package.

Mahalaga ring malaman ang dalawa pang flag mula sa pkg-audit(8). Ang pkg audit -r ay nagpi-print din ng mga package na umaasa sa vulnerable packages at maaaring maging vulnerable dahil dito. Sa ganitong paraan, malalaman mong mahalaga ang isang vulnerable library dahil may anim na naka-install na bagay na nagli-link dito. Ang pkg audit -R ay nagpi-print ng parehong resulta bilang JSON o ibang machine-readable format. Ito ang ipinapasa sa monitoring check.

Ang pkg package ay nag-i-install ng periodic script sa /usr/local/etc/periodic/security/410.pkg-audit. Tumatakbo ito bilang bahagi ng daily security check at ipinapadala sa root ang resulta sa pamamagitan ng email. Tiyaking naka-enable ito gamit ang isang line sa /etc/periodic.conf:

daily_status_security_pkgaudit_enable="YES"

Ang daily mail na ito ang pinakamalapit na katumbas sa FreeBSD ng unattended-upgrades habit sa Ubuntu. Ipinapakita rin nito ang mahalagang pagkakaiba: ini-install ng unattended-upgrades ang fix habang natutulog ka, samantalang sinasabi lamang ng pkg audit na kailangan ng fix. Nagbibigay lang ng report ang pkg audit. Hindi ito nagpa-patch. Walang ini-install na security update ang stock FreeBSD system nang wala ang iyong aksyon.

Pag-aayos ng vulnerable package

pkg update
pkg upgrade

Walang security-only pocket sa mga FreeBSD package repository. Maaaring kumuha ang Ubuntu mula sa noble-security lamang at iwan ang lahat ng ibang package sa kasalukuyang bersyon ng mga ito. Walang katumbas nito ang FreeBSD, kaya kapag nag-aayos ng isang vulnerable package, gagamitin ang bersyong kasalukuyang iniaalok ng repository, pati ang anumang dependency na nagbago kasabay nito. Ituring ang package patching bilang isang change, hindi bilang background job.

Ang repository branch na ginagamit mo ang nagtatakda kung gaano kabilis makararating sa iyo ang fix. Ang default ay ang quarterly branch, na inilalarawan ng handbook bilang nagbibigay ng “mas predictable at stable na experience” dahil tumatanggap lamang ito ng mga non-feature update. Kinukuha naman ng latest branch ang pinakabagong bersyon ng lahat. Kaya kapag iniulat ng pkg audit -F na vulnerable ang isang package at sinabi ng pkg upgrade na walang kailangang gawin, hindi pa nakarating ang fix sa branch mo. Iyan ang dahilan ng ganitong kalituhan.

Para ilipat ang isang machine sa latest branch, kopyahin ang repository file na kasama ng system at i-edit ang kopya:

mkdir -p /usr/local/etc/pkg/repos
cp /etc/pkg/FreeBSD.conf /usr/local/etc/pkg/repos/FreeBSD.conf

Palitan ang quarterly ng latest sa url line ng kopya, pagkatapos ay patakbuhin ang pkg update -f para kunin ang bagong catalogue. Kopyahin ang file sa halip na i-type mula sa memorya ang pangalan ng repository: ang pangalan sa loob ng /etc/pkg/FreeBSD.conf ang aktuwal na ginagamit ng system mo, at ino-override lamang ng file sa ilalim ng /usr/local/etc/pkg/repos ang repository na eksaktong tumutugma ang pangalan.

Paglalapat ng mga base system patch

freebsd-update fetch
freebsd-update install

Ang fetch ay nagda-download ng mga patch para sa kasalukuyang release at ipinapakita ang listahan ng mga file na babaguhin nito. Kapag walang kailangang gawin, ipinapakita nito ang No updates needed to update system to 15.1-RELEASE-p3. at lumalabas. Kapag may kailangang gawin, nagtatapos ito sa pagsasabi na patakbuhin ang install command. Walang inilalapat hangga't hindi mo pinapatakbo ang freebsd-update install, kaya ligtas patakbuhin ang fetch anumang oras.

Ang freebsd-update(8) ay nagbibigay ng binary update para sa mga bersyong ALPHA, BETA, RC, at RELEASE, ngunit hindi para sa PRERELEASE, STABLE, o CURRENT. Kung sinusubaybayan mo ang stable/15, nagbu-build ka mula sa source at walang maiaalok sa iyo ang tool na ito.

I-automate ang pag-download at manu-manong isagawa ang installation. Ito ang linya ng handbook para sa /etc/crontab:

@daily                                  root    freebsd-update cron

Ang freebsd-update cron ay naghihintay nang random na tagal na nasa pagitan ng 1 at 3600 segundo, pagkatapos ay nagda-download ng mga update nang eksakto gaya ng ginagawa ng fetch, at nagpapadala ng email sa root kapag may naghihintay na update. Ginagawa ang random na paghihintay upang hindi sabay-sabay na ma-access ng lahat ng FreeBSD machine sa internet ang mga update mirror sa iisang segundo.

May dalawang bagay sa output na nakalilito sa mga tao. Normal ang src component not installed, skipped sa server na walang source tree, at hindi ito error. Kinokontrol ang set ng mga component ng isang Components line sa /etc/freebsd-update.conf. Ang mga pagpipilian ay src, world, at kernel.

Kung pumalya ang installation, ina-uninstall ng freebsd-update rollback ang mga pinakakamakailang na-install na update. Sa ZFS root, mas mainam na gumawa muna ng boot environment:

bectl create pre-patch
freebsd-update fetch install

Kung hindi mag-boot ang na-patch na system, piliin ang lumang boot environment mula sa loader menu upang bumalik sa dating estado. Isa ito sa mga praktikal na dahilan para sa paggamit ng ZFS bilang root filesystem, at halos walang disk space ang kailangan nito hanggang sa magkaiba ang dalawang environment.

Sinusuportahan pa ba ang FreeBSD release ko?

Ang bawat release ay sinusuportahan sa isang nakatakdang panahon, na inilalathala bilang branch table sa security page. Noong August 2026, ganito ang nakasaad sa table:

  • releng/15.1, na 15.1-RELEASE, hanggang 31 March 2027
  • releng/15.0, na 15.0-RELEASE, hanggang 30 September 2026
  • releng/14.4, na 14.4-RELEASE, hanggang 31 December 2026
  • stable/15 hanggang 31 December 2029
  • stable/14 hanggang 30 November 2028

Maikli ang support window ng point release. Mag-e-expire ang 15.0-RELEASE humigit-kumulang pitong linggo matapos maisulat ang post na ito, dahil na-release ang 15.1 at nagsimula ang takdang panahon nito. Tumatagal nang maraming taon ang stable branch, at source branch ang mga ito na hindi sine-serve ng freebsd-update.

Suriin ang sa iyo gamit ang freebsd-version -u at ikumpara ito sa table. Nagbibigay rin ng babala ang freebsd-update. Kapag papalapit na ang petsa, ipinapakita ng fetch ang:

WARNING: FreeBSD 15.0-RELEASE is approaching its End-of-Life date.
It is strongly recommended that you upgrade to a newer
release within the next 2 months.

Kapag lumampas na ang petsa, nagiging WARNING: FreeBSD 15.0-RELEASE HAS PASSED ITS END-OF-LIFE DATE. ang babala. Patuloy na gagana ang unsupported release. Ngunit hindi na ito makatatanggap ng mga security advisory, kaya ikaw na ang mananagot sa anumang susunod na vulnerability sa base system.

Ang pag-upgrade sa mas bagong release ay freebsd-update -r 15.1-RELEASE upgrade, pagkatapos ay freebsd-update install, saka mag-reboot, pagkatapos ay freebsd-update install sa pangalawang pagkakataon, kasunod ang pkg-static upgrade -f upang muling i-install ang bawat package laban sa mga bagong library, at panghuli ang freebsd-update install. Ayon sa handbook, maaaring dalawang install phase lamang sa halip na tatlo, depende kung may nabagong library version number. Magtakda ng maintenance window at basahin ang guide sa pag-set up ng FreeBSD 15 server bago magsimula.

Reboot ba, o sapat na ang pag-restart ng service?

Sinasagot ito ng FreeBSD gamit ang isang paghahambing:

freebsd-version -k
uname -r

Ang freebsd-version -k ay ang kernel na nasa disk. Ang uname -r ay ang kernel na nasa memory. Kapag magkaiba ang mga string, may bagong kernel na na-install pero hindi pa ito ginagamit, kaya kailangan ang reboot. Kapag magkatugma ang mga string, hindi ginalaw ng patch ang kernel at walang mapapala sa reboot.

Para sa userland patch, i-restart ang anumang gumagamit ng na-patch na code. Walang magagawa ang pag-aayos sa base OpenSSL sa /usr/lib para sa isang sshd na nagsimula tatlong linggo na ang nakalipas at ginagamit pa rin ang lumang library na naka-map sa address space nito. Bago ang file sa disk. Hindi bago ang tumatakbong process.

service sshd restart

Saklaw din ng parehong tuntunin ang mga package. Pinapalitan ng pkg upgrade ang binary sa disk habang hawak pa ng tumatakbong process ang lumang binary, kaya ang service nginx restart ang hakbang na aktuwal na nagpapagana sa pag-aayos.

Walang katumbas ang base system ng needrestart ng Debian, kaya walang magpo-prompt sa iyo at walang magtatala ng listahan. Subaybayan kung aling mga service ang nagli-link sa bawat na-patch na library, o magsagawa ng reboot pagkatapos ng anumang patch na gumagalaw sa mga base library. Sa server na nasa version control ang configuration, routine operation ang reboot at mas mura ito kaysa maniwalang na-patch na ang system kahit hindi pa.

Pag-patch ng machine na nagpapatakbo ng mga jail

Iisang host kernel ang ginagamit ng isang jail. Kaya ang kernel advisory ay problema ng host, at minamana ito ng bawat jail sa machine. I-patch ang host at mag-reboot para makumpleto ang pag-aayos sa kernel para sa lahat ng jail. Hiwalay na installation ang userland sa loob ng bawat jail, at iniuulat ito ng freebsd-version -j <jail> mula sa host. Hiwalay din ang mga package sa loob ng jail, at ina-audit ng pkg -j <jail> audit -F ang mga ito nang hindi pumapasok sa jail. Ang paghihiwalay ng shared kernel at hiwalay na userland ang parehong structural difference na nagpapakita kung paano ikinukumpara ang mga jail sa Docker container.

Ang Ubuntu

May katumbas ang bawat FreeBSD habit, kaya maaari mong gamitin ang routine sa alinmang direksiyon.

  • Mga patch ng base system: freebsd-update fetch, pagkatapos ay freebsd-update install. Sa Ubuntu, apt update && apt upgrade, na sabay na sumasaklaw sa base at sa lahat ng iba pa.
  • Third-party software: pkg update && pkg upgrade sa FreeBSD. Sa Ubuntu, apt ulit.
  • Pagsusuri ng mga kilalang vulnerability: pkg audit -F sa FreeBSD. Sa Ubuntu 24.04, ang pinakamalapit na command ay pro security-status, na nagpapakita ng mga security update para sa mga naka-install na package, kabilang ang content ng Expanded Security Maintenance.
  • Awtomatikong installation: Ang unattended-upgrades sa Ubuntu ang nag-a-apply ng mga security update para sa iyo. Walang katumbas na built-in ang FreeBSD, kaya ang freebsd-update cron ang nagda-download at nagpapadala sa email habang ikaw ang manu-manong nag-i-install.
  • Advisory feed: Nilalaman ng freebsd-security-notifications ang mga FreeBSD-SA at FreeBSD-EN item. Nilalaman naman ng ubuntu-security-announce ang Ubuntu Security Notices.
  • Vulnerability database: VuXML para sa FreeBSD ports at packages. Ang Ubuntu CVE tracker para sa mga Ubuntu package.
  • Pagsusuri kung kailangan ng reboot: freebsd-version -k laban sa uname -r sa FreeBSD. Sa Ubuntu, tingnan kung may /var/run/reboot-required.
  • Panahon ng suporta: ang branch table sa FreeBSD security page. Sa Ubuntu, ang release schedule at pro security-status.

Pareho ang pinagbabatayang routine sa dalawang system: mag-subscribe sa feed, patakbuhin ang audit ayon sa schedule, pagkatapos ay magpasya kung ano ang i-i-install at kung kailan magre-restart. Sa FreeBSD, kailangan mo lang sabihin nang tahasan ang ikalawang bahagi dahil hindi nito iyon gagawin para sa iyo. Sinasaklaw ng Mas malawak na paghahambing ng Linux at FreeBSD bilang server platform kung ano pa ang nagbabago kapag inililipat mo ang workload sa pagitan ng mga ito.

FAQ

Ina-update rin ba ng freebsd-update ang mga package ko?

Hindi. freebsd-update ay para lamang sa base system, kabilang ang kernel at userland na inilabas kasama ng release. Ang software na naka-install sa ilalim ng /usr/local ay nagmumula sa mga package, at ina-update ito gamit ang pkg upgrade. Patakbuhin ang pkg audit -F upang makita kung aling mga naka-install na package ang may mga kilalang vulnerability, dahil hindi binabanggit ang mga ito sa base advisories at hindi rin inaanunsyo sa mga security mailing list.

Paano ko malalaman kung kailangan ng reboot pagkatapos ng FreeBSD update?

Ihambing ang freebsd-version -k sa uname -r. Ipinapakita ng una ang kernel na naka-install sa disk, kabilang ang kernel na kakasulat pa lamang ngunit hindi pa na-boot. Ipinapakita naman ng ikalawa ang kernel na kasalukuyang tumatakbo. Kung magkaiba ang mga string, kailangan ng reboot. Kung magkatugma ang mga string, userland lamang ang na-patch, kaya i-restart na lang ang mga apektadong service, halimbawa service sshd restart, dahil patuloy na ginagamit ng tumatakbong process ang lumang library hanggang sa ma-restart ito.

Ano ang pagkakaiba ng Security Advisory at Errata Notice?

Ang Security Advisory, gaya ng FreeBSD-SA-26:55.elf, ay nag-aayos ng security vulnerability sa base system. Ang Errata Notice, gaya ng FreeBSD-EN-26:18.tzdata, ay nag-aayos ng problema sa correctness o stability na walang epekto sa seguridad, gaya ng lumang time zone data. Pareho silang gumagamit ng pattern na year, colon, sequence number, component. Pareho rin silang nilalagdaan ng Security Officer at ipinapadala gamit ang freebsd-update, at wala sa mga ito ang sumasaklaw sa software na naka-install mula sa ports o packages.

May katumbas ba ang unattended-upgrades para sa FreeBSD?

Wala sa base system. Ang freebsd-update cron ay nagda-download ng mga nakabinbing base patch at nag-e-email kay root, ngunit hindi nito ini-install ang mga ito. Ang periodic script na ini-install ng pkg ay nagpapatakbo ng pkg audit araw-araw at nag-e-email ng resulta, ngunit wala rin itong ina-upgrade. Ikaw mismo ang kailangang gumawa ng unattended installation gamit ang cron job. Dahil ang pag-upgrade ng FreeBSD package ay kumukuha ng pinakabagong version sa halip na security-only backport, karaniwang binabasa muna ng mga admin ang email at mano-manong nag-i-install.

Paano ko susuriin kung suportado pa ang aking FreeBSD release?

Patakbuhin ang freebsd-version -u para makita ang bersyon ng userland, pagkatapos ay ihambing ito sa table ng mga suportadong branch sa FreeBSD security page. Maikli ang support window ng point release: noong August 2026, magtatapos ang 15.0-RELEASE sa 30 September 2026, samantalang tatakbo ang 15.1-RELEASE hanggang 31 March 2027. Nagbibigay ng babala ang freebsd-update fetch habang papalapit ang petsa. Kapag lumampas na ang petsa, magpi-print ito ng linyang nagsasabing ang release ay HAS PASSED ITS END-OF-LIFE DATE. Pagkatapos nito, hindi na naaangkop sa iyo ang mga susunod na advisory.

#freebsd#security#patching#advisories#pkg