SSD Nodes Learn 🎉 VPS $5.50/माह से
गाइड Matt Connorलेखक: Matt Connor

FreeBSD में security updates कैसे इंस्टॉल करें

FreeBSD में बेस सिस्टम के लिए freebsd-update और पैकेज के लिए pkg audit का उपयोग होता है। इन दो अलग टूल्स को न चलाने पर आपका सर्वर असुरक्षित रह सकता है। पूरी प्रक्रिया समझें।

FreeBSD सुरक्षा अपडेट को कैसे संभालता है

FreeBSD सुरक्षा अपडेट को दो अलग-अलग टूल्स के साथ संभालता है, क्योंकि एक FreeBSD सर्वर दो अलग-अलग चीजें होता है। बेस सिस्टम, यानी kernel और userland जो release के साथ आता है, उसे freebsd-update से पैच किया जाता है। इसके ऊपर आपने जो कुछ भी इंस्टॉल किया है, वह एक package है, और packages को pkg से पैच किया जाता है। यदि आप एक को चलाते हैं और दूसरे को छोड़ देते हैं, तो मशीन का आधा हिस्सा बिना पैच के रह जाएगा, और मशीन पर मौजूद कोई भी चीज़ आपको इसकी सूचना नहीं देगी।

SSD Nodes FreeBSD images प्रदान नहीं करता है। हमारे plans Linux पर चलते हैं। यह पोस्ट यहाँ इसलिए है क्योंकि पाठकों का दायरा पूरी तरह से मिलता-जुलता है: जो लोग हमारे Ubuntu और Debian सर्वर चलाते हैं, वे firewall पर या विरासत में मिली किसी मशीन पर FreeBSD भी चलाते हैं। यह विभाजित patching मॉडल ही वह हिस्सा है जो Linux एडमिन को उलझा देता है, इसलिए इसे लिखना आवश्यक है। नीचे दिए गए प्रत्येक command, advisory format और support date की जांच अगस्त 2026 में FreeBSD security page और प्रोजेक्ट के manual pages के आधार पर की गई थी।

commands से पहले एक नोट। FreeBSD बेस सिस्टम में sudo इंस्टॉल नहीं करता है। यहाँ दी गई हर चीज़ के लिए root access की आवश्यकता है। su - का उपयोग करें, या पहले packages से sudo या doas इंस्टॉल करें।

बेस सिस्टम और पैकेज दो अलग दुनिया हैं

Ubuntu पर, apt पूरी मशीन का स्वामी होता है। कर्नेल, openssl, nginx और आपके स्वयं के टूल्स, सभी एक ही टूल से .deb फाइलों के रूप में आते हैं, और apt upgrade उन सभी को एक साथ अपडेट करता है।

FreeBSD इसे दो हिस्सों में विभाजित करता है। बेस सिस्टम एक इकाई के रूप में बनाया जाता है और एक इकाई के रूप में वर्ज़न किया जाता है: 15.1-RELEASE-p3 एक एकल संख्या है जो कर्नेल, C लाइब्रेरी, sshd और /usr/lib में मौजूद OpenSSL की कॉपी को कवर करती है। इसमें से कुछ भी pkg से नहीं आता है। बाकी सब कुछ /usr/local के अंतर्गत रहता है, जो पोर्ट्स ट्री से बने बाइनरी पैकेज के रूप में आता है, और उसका अपना वर्ज़न होता है।

इसलिए एक बॉक्स में OpenSSL की दो प्रतियां हो सकती हैं: /usr/lib में बेस कॉपी, जिसे केवल freebsd-update द्वारा पैच किया जाता है, और /usr/local/lib में पैकेज कॉपी, जिसे केवल pkg द्वारा पैच किया जाता है। कोई प्रोग्राम किसका उपयोग करता है, यह इस पर निर्भर करता है कि उसे किसके साथ लिंक किया गया था, और पैकेज से इंस्टॉल किया गया सॉफ़्टवेयर आमतौर पर पैकेज कॉपी से लिंक होता है। एक को पैच करने का दूसरे पर कोई प्रभाव नहीं पड़ता है।

तीन कमांड आपको आपकी स्थिति के बारे में बताते हैं:

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

freebsd-version -u इंस्टॉल किए गए यूजरलैंड का पैच लेवल प्रिंट करता है। freebsd-version -k इंस्टॉल किए गए कर्नेल का पैच लेवल प्रिंट करता है, और freebsd-version(1) इस बारे में स्पष्ट है कि यह uname के समान क्यों नहीं है: "यदि एक नया कर्नेल इंस्टॉल किया गया है लेकिन सिस्टम अभी तक रीबूट नहीं हुआ है, तो freebsd-version नए कर्नेल का वर्ज़न और पैच लेवल प्रिंट करेगा"। uname -r वर्तमान में चल रहे कर्नेल को प्रिंट करता है। इसके अलावा freebsd-version -r भी है, जो चल रहे कर्नेल को प्रिंट करता है लेकिन यह "एनवायरनमेंट वेरिएबल्स से अप्रभावित" रहता है, जो कि जेल (jail) के अंदर मायने रखता है जहाँ UNAME_r अक्सर किसी अन्य चीज़ पर सेट होता है।

सुरक्षा सलाह (Security Advisories) और एराटा नोटिस (Errata Notices)

FreeBSD Security Team दो प्रकार की सूचनाएं जारी करता है, और दोनों का अर्थ अलग-अलग होता है।

एक Security Advisory बेस सिस्टम में मौजूद सुरक्षा खामी (vulnerability) को कवर करती है। इसका पहचानकर्ता (identifier) FreeBSD-SA-26:55.elf जैसा दिखता है: इसमें SA अक्षर, दो अंकों वाला वर्ष, उस वर्ष के दौरान बढ़ती हुई एक संख्या, और फिर प्रभावित घटक (component) होता है। FreeBSD-SA-26:52.if_wg और FreeBSD-SA-26:50.kqueue दोनों 2026-07-29 को प्रकाशित किए गए थे। पूरी सूची FreeBSD advisories page पर उपलब्ध है।

एक Errata Notice ऐसी शुद्धता या स्थिरता संबंधी समस्या को कवर करता है जिसे release branch में पुश करना आवश्यक हो, लेकिन जिसका सुरक्षा पर कोई प्रभाव न हो। इसका प्रारूप भी समान है, बस SA की जगह EN होता है: FreeBSD-EN-26:19.zfs, FreeBSD-EN-26:18.tzdata। टाइम ज़ोन डेटा अपडेट इसका एक क्लासिक उदाहरण है। पुराने टाइम ज़ोन डेटा का उपयोग करके कोई आप पर हमला नहीं कर सकता, लेकिन जब तक आप फिक्स लागू नहीं करते, आपके टाइमस्टैम्प गलत रहेंगे। एराटा की सूची FreeBSD errata notices page पर दी गई है।

दोनों प्रकार की सूचनाएं Security Officer की PGP (pretty good privacy) key से हस्ताक्षरित होती हैं और security.FreeBSD.org पर संग्रहीत की जाती हैं, और दोनों ही freebsd-update द्वारा आपके मशीन तक पहुंचाई जाती हैं।

यहाँ वह हिस्सा है जो Linux एडमिन्स को भ्रमित कर सकता है। इनमें से कोई भी प्रकार packages को कवर नहीं करता है। सुरक्षा पृष्ठ पर यह स्पष्ट रूप से लिखा है: FreeBSD Ports Collection में मौजूद समस्याएं "FreeBSD VuXML document में अलग से कवर की जाती हैं"। nginx पैकेज में मौजूद किसी रिमोट होल (remote hole) को कभी भी SA नंबर नहीं मिलेगा। यदि आप केवल एडवाइजरी फीड पर नज़र रखते हैं, तो आपको इसके बारे में कभी पता नहीं चलेगा।

FreeBSD security update के बारे में जानकारी कैसे प्राप्त करें?

आपको freebsd-security-notifications mailing list से जुड़ना चाहिए। यह एक moderated और कम volume वाली सूची है, जिसमें सीधे advisories और errata notices भेजे जाते हैं। lists.freebsd.org पर जाकर subscribe करें।

freebsd-announce भी एक moderated सूची है जिसमें advisories के साथ-साथ release announcements भी आते हैं, इसलिए यदि आप एक ही सूची में सब कुछ पाना चाहते हैं तो यह उपयोगी है। freebsd-security चर्चा के लिए बनी सूची है। इसे पढ़ना जानकारीपूर्ण हो सकता है, लेकिन यह वह स्थान नहीं है जहाँ आपको patch की आवश्यकता के बारे में सूचित किया जाता है।

इन सभी सूचियों में केवल base system से जुड़ी खबरें ही आती हैं। Package vulnerabilities की जानकारी ईमेल द्वारा नहीं भेजी जाती है। उन्हें जानने के लिए आपको एक command चलानी होगी।

pkg audit और इसके पीछे का डेटाबेस

VuXML, यानी Vulnerabilities and Exposures Markup Language, FreeBSD प्रोजेक्ट का ports और packages में मौजूद सुरक्षा समस्याओं का रिकॉर्ड है। प्रत्येक प्रविष्टि (entry) में प्रभावित package का नाम, vulnerable version की रेंज, CVE (common vulnerabilities and exposures) पहचानकर्ता और एक संक्षिप्त विवरण होता है। पूरा सेट VuXML index पर देखा जा सकता है, जिसे package, CVE या तारीख के अनुसार क्रमबद्ध किया गया है।

pkg audit वह टूल है जो इसे पढ़ता है:

pkg audit -F

-F जाँच करने से पहले डेटाबेस की एक ताज़ा कॉपी डाउनलोड करता है। हर बार इसका उपयोग करें। -F के बिना आप मशीन पर मौजूद पुरानी कॉपी से मिलान कर रहे होते हैं, जो महीनों पुरानी हो सकती है, इसलिए एक 'clean' परिणाम का कोई अर्थ नहीं रह जाता। यह कमांड हर installed package version की तुलना हर VuXML प्रविष्टि से करती है, प्रत्येक मैच को उसके CVE नंबर और VuXML पेज के लिंक के साथ प्रिंट करती है, और अंत में एक काउंट लाइन दिखाती है कि कितने installed packages में कितनी समस्याएं पाई गईं।

pkg-audit(8) के दो और flags जानने योग्य हैं। pkg audit -r उन packages को भी प्रिंट करता है जो vulnerable packages पर निर्भर हैं और इसलिए संभावित रूप से वे भी vulnerable हैं; इससे आपको पता चलता है कि एक vulnerable library क्यों महत्वपूर्ण है क्योंकि छह installed चीजें उससे लिंक हैं। pkg audit -R परिणाम को JSON या किसी अन्य मशीन-पठनीय फॉर्मेट में प्रिंट करता है, जिसे आप monitoring check के लिए उपयोग कर सकते हैं।

pkg package /usr/local/etc/periodic/security/410.pkg-audit पर एक periodic script इंस्टॉल करता है। यह दैनिक सुरक्षा जाँच (daily security check) के हिस्से के रूप में चलता है और परिणाम root को मेल करता है। सुनिश्चित करें कि यह /etc/periodic.conf में एक लाइन के साथ चालू है:

daily_status_security_pkgaudit_enable="YES"

वह दैनिक मेल FreeBSD का Ubuntu पर unattended-upgrades की आदत के सबसे करीब का विकल्प है, और यही अंतर मुख्य बिंदु है: unattended-upgrades आपके सोते समय fix इंस्टॉल कर देता है, जबकि pkg audit केवल आपको बताता है कि fix की आवश्यकता है। pkg audit रिपोर्ट करता है। यह कभी पैच नहीं करता। स्टॉक FreeBSD सिस्टम पर कोई भी चीज आपकी अनुमति के बिना सुरक्षा अपडेट इंस्टॉल नहीं करती है।

एक vulnerable package को ठीक करना

pkg update
pkg upgrade

FreeBSD package repositories में केवल security-updates के लिए कोई अलग pocket नहीं होती है। Ubuntu में केवल noble-security से update लेकर बाकी packages को यथावत रखा जा सकता है। FreeBSD में इसका कोई समकक्ष विकल्प नहीं है, इसलिए किसी एक vulnerable package को ठीक करने का अर्थ है repository में वर्तमान में उपलब्ध version को अपनाना, साथ ही उन सभी dependencies को भी update करना जो उसके साथ बदली हैं। Package patching को एक बदलाव के रूप में प्लान करें, न कि background job के रूप में।

आप किस repository branch पर हैं, यह तय करता है कि fix आप तक कितनी जल्दी पहुँचेगा। Default branch 'quarterly' है, जिसे handbook के अनुसार "अधिक अनुमानित और स्थिर अनुभव" देने वाला माना जाता है क्योंकि इसमें केवल non-feature updates ही शामिल किए जाते हैं। 'latest' branch में हर चीज़ का नवीनतम version मिलता है। इसलिए जब pkg audit -F किसी package को vulnerable बताता है और pkg upgrade कहता है कि करने के लिए कुछ नहीं है, तो इसका मतलब है कि fix अभी तक आपकी branch पर नहीं पहुँचा है, और यही भ्रम का मुख्य कारण है।

मशीन को 'latest' branch पर ले जाने के लिए, system के साथ आने वाली repository file की copy बनाएँ और उसे edit करें:

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

Copy की गई file में url line के भीतर quarterly को latest में बदलें, फिर नया catalogue pull करने के लिए pkg update -f चलाएँ। Repository का नाम याददाश्त से लिखने के बजाय file को copy करें: /etc/pkg/FreeBSD.conf के अंदर मौजूद नाम ही वह है जिसका उपयोग आपका system वास्तव में करता है, और /usr/local/etc/pkg/repos के अंतर्गत मौजूद file केवल उसी repository को override करती है जिसका नाम उससे बिल्कुल मेल खाता हो।

बेस सिस्टम पैच लागू करना

freebsd-update fetch
freebsd-update install

fetch आपके वर्तमान रिलीज के लिए पैच डाउनलोड करता है और उन फाइलों की सूची दिखाता है जिन्हें यह बदलेगा। जब कोई कार्य शेष नहीं होता, तो यह No updates needed to update system to 15.1-RELEASE-p3. प्रिंट करता है और बंद हो जाता है। जब कोई कार्य शेष होता है, तो यह अंत में आपको install कमांड चलाने के लिए कहता है। जब तक आप freebsd-update install नहीं चलाते, तब तक कुछ भी लागू नहीं होता है, इसलिए fetch को किसी भी समय चलाना सुरक्षित है।

freebsd-update(8) ALPHA, BETA, RC और RELEASE संस्करणों के लिए बाइनरी अपडेट प्रदान करता है, न कि PRERELEASE, STABLE या CURRENT के लिए। यदि आप stable/15 को ट्रैक करते हैं, तो आप सोर्स से बिल्ड करते हैं, और इस टूल में आपके लिए कोई अपडेट नहीं होता है।

डाउनलोड को स्वचालित करें और इंस्टॉल को मैन्युअल रखें। /etc/crontab के लिए हैंडबुक की लाइन इस प्रकार है:

@daily                                  root    freebsd-update cron

freebsd-update cron 1 से 3600 सेकंड के बीच एक यादृच्छिक समय तक प्रतीक्षा करता है, फिर ठीक वैसे ही अपडेट डाउनलोड करता है जैसे fetch करता है, और जब कुछ लंबित होता है तो root को ईमेल भेजता है। यह यादृच्छिक प्रतीक्षा इसलिए है ताकि इंटरनेट पर मौजूद हर FreeBSD मशीन एक ही सेकंड में अपडेट मिरर पर लोड न डाले।

आउटपुट में दो चीजें लोगों को भ्रमित करती हैं। src component not installed, skipped बिना सोर्स ट्री वाले सर्वर पर सामान्य है, और यह कोई त्रुटि नहीं है। घटकों का सेट /etc/freebsd-update.conf में मौजूद Components लाइन द्वारा नियंत्रित होता है, और विकल्प src, world और kernel हैं।

यदि कोई इंस्टॉल गलत हो जाता है, तो freebsd-update rollback हाल ही में इंस्टॉल किए गए अपडेट को अनइंस्टॉल कर देता है। ZFS रूट पर आप इससे बेहतर कर सकते हैं और पहले एक बूट एनवायरनमेंट ले सकते हैं:

bectl create pre-patch
freebsd-update fetch install

यदि पैच किया गया सिस्टम बूट नहीं होता है, तो लोडर मेनू से पुराना बूट एनवायरनमेंट चुनें और आप वहीं वापस आ जाएंगे जहां से आपने शुरुआत की थी। वह एस्केप हैच ZFS को रूट फाइलसिस्टम के रूप में चलाने के व्यावहारिक कारणों में से एक है, और जब तक दोनों एनवायरनमेंट अलग नहीं हो जाते, तब तक यह लगभग कोई डिस्क स्पेस नहीं लेता है।

क्या मेरा FreeBSD release अभी भी समर्थित है?

प्रत्येक release एक निश्चित अवधि के लिए समर्थित होता है, जिसे security page पर एक branch table के रूप में प्रकाशित किया जाता है। अगस्त 2026 तक वह तालिका इस प्रकार है:

  • releng/15.1, जो 15.1-RELEASE है, 31 मार्च 2027 तक
  • releng/15.0, जो 15.0-RELEASE है, 30 सितंबर 2026 तक
  • releng/14.4, जो 14.4-RELEASE है, 31 दिसंबर 2026 तक
  • stable/15 31 दिसंबर 2029 तक
  • stable/14 30 नवंबर 2028 तक

Point releases की अवधि कम होती है। 15.0-RELEASE इस पोस्ट के लिखे जाने के लगभग सात सप्ताह बाद समाप्त हो जाएगा, क्योंकि 15.1 के release होते ही इसकी समय-सीमा शुरू हो गई थी। Stable branches कई वर्षों तक चलती हैं, और ये source branches हैं जिन्हें freebsd-update serve नहीं करता है।

अपने सिस्टम की स्थिति freebsd-version -u से जाँचें और इसकी तुलना तालिका से करें। freebsd-update भी आपको चेतावनी देता है। तिथि निकट आने पर, fetch यह प्रिंट करता है:

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.

तिथि बीत जाने के बाद, चेतावनी WARNING: FreeBSD 15.0-RELEASE HAS PASSED ITS END-OF-LIFE DATE. हो जाती है। एक unsupported release काम करना जारी रखता है। इसे सुरक्षा सलाह (advisories) मिलना बंद हो जाती है, जिसका अर्थ है कि अगली base vulnerability हमेशा के लिए आपके सिस्टम में बनी रहेगी।

एक release से ऊपर जाने की प्रक्रिया में पहले freebsd-update -r 15.1-RELEASE upgrade, फिर freebsd-update install, फिर एक reboot, फिर दूसरी बार freebsd-update install, फिर नई libraries के विरुद्ध हर package को reinstall करने के लिए pkg-static upgrade -f, और अंत में एक freebsd-update install शामिल है। Handbook में उल्लेख है कि library version numbers के बदलने के आधार पर, तीन के बजाय केवल दो install phases हो सकते हैं। एक maintenance window बुक करें, और शुरू करने से पहले FreeBSD 15 सर्वर सेटअप गाइड पढ़ें।

Reboot करें, या service restart पर्याप्त है?

FreeBSD इसका उत्तर एक तुलना के साथ देता है:

freebsd-version -k
uname -r

freebsd-version -k डिस्क पर मौजूद kernel है। uname -r मेमोरी में चल रहा kernel है। यदि ये strings अलग हैं, तो इसका अर्थ है कि नया kernel install किया गया है और आप उसे नहीं चला रहे हैं, इसलिए reboot करें। यदि strings मेल खाती हैं, तो इसका अर्थ है कि patch ने kernel को प्रभावित नहीं किया है, और reboot करने से कोई लाभ नहीं होगा।

Userland patch के लिए, उस service को restart करें जो patched code का उपयोग करती है। /usr/lib में base OpenSSL के लिए किया गया सुधार उस sshd के लिए कुछ नहीं करेगा जो तीन सप्ताह पहले शुरू हुआ था और जिसमें अभी भी पुरानी library उसके address space में mapped है। डिस्क पर मौजूद file नई है, लेकिन चल रही process पुरानी है।

service sshd restart

यही नियम packages पर भी लागू होता है। pkg upgrade डिस्क पर मौजूद binary को बदल देता है जबकि चल रही process पुरानी binary को open रखती है, इसलिए service nginx restart वह चरण है जो सुधार को प्रभावी बनाता है।

Base system में Debian के needrestart जैसा कोई विकल्प नहीं है, इसलिए न तो आपको कोई सूचना मिलती है और न ही कोई सूची रखी जाती है। या तो यह ट्रैक करें कि कौन सी services किस patched library से link हैं, या फिर किसी भी ऐसे patch के बाद reboot करें जो base libraries को प्रभावित करता है। जिस सर्वर का configuration version control में हो, वहां reboot एक सामान्य प्रक्रिया है, और यह विश्वास करने से कहीं अधिक सस्ता है कि आप patched हैं जबकि वास्तव में आप नहीं हैं।

Jails चलाने वाली मशीन को पैच करना

एक jail होस्ट kernel को साझा करती है, इसलिए kernel advisory एक होस्ट की समस्या है और बॉक्स पर मौजूद हर jail इसे inherit करती है। होस्ट को पैच करें और reboot करें, और सभी jails के लिए kernel का काम पूरा हो जाता है। प्रत्येक jail के अंदर का userland एक अलग इंस्टॉलेशन है जिसका अपना पैच लेवल होता है, और freebsd-version -j <jail> होस्ट से इसकी रिपोर्ट देता है। jail के अंदर के packages भी अलग होते हैं, और pkg -j <jail> audit -F jail में प्रवेश किए बिना उनका ऑडिट करता है। वह साझा kernel और अलग userland का विभाजन वही संरचनात्मक अंतर है जो jails की Docker containers के साथ तुलना को निर्धारित करता है।

Ubuntu का अनुवाद

FreeBSD की प्रत्येक आदत का एक समकक्ष मौजूद है, इसलिए आप अपनी दिनचर्या को किसी भी दिशा में ले जा सकते हैं।

  • Base system patches: freebsd-update fetch और फिर freebsd-update install। Ubuntu पर, apt update && apt upgrade का उपयोग होता है, जो base system और बाकी सभी चीजों को एक साथ कवर करता है।
  • Third party software: FreeBSD पर pkg update && pkg upgrade। Ubuntu पर, फिर से apt
  • Known vulnerability check: FreeBSD पर pkg audit -F। Ubuntu 24.04 पर सबसे निकटतम कमांड pro security-status है, जो Expanded Security Maintenance सामग्री सहित इंस्टॉल किए गए पैकेजों के लिए सुरक्षा अपडेट दिखाता है।
  • Automatic installation: Ubuntu पर unattended-upgrades आपके लिए सुरक्षा अपडेट लागू करता है। FreeBSD में इसके समकक्ष कुछ भी नहीं है, इसलिए freebsd-update cron डाउनलोड और मेल करता है जबकि आप स्वयं इंस्टॉल करते हैं।
  • Advisory feed: freebsd-security-notifications में FreeBSD-SA और FreeBSD-EN आइटम होते हैं। ubuntu-security-announce में Ubuntu Security Notices होते हैं।
  • Vulnerability database: FreeBSD ports और packages के लिए VuXML। Ubuntu पैकेजों के लिए Ubuntu CVE tracker।
  • Reboot check: FreeBSD पर uname -r के मुकाबले freebsd-version -k। Ubuntu पर /var/run/reboot-required की उपस्थिति।
  • Support window: FreeBSD सुरक्षा पृष्ठ पर branch table। Ubuntu पर release schedule और pro security-status

अंतर्निहित दिनचर्या दोनों सिस्टम पर समान है: feed को सब्सक्राइब करें, एक शेड्यूल पर audit चलाएं, फिर तय करें कि क्या इंस्टॉल करना है और कब रीस्टार्ट करना है। FreeBSD बस आपसे दूसरे भाग को स्पष्ट रूप से करने के लिए कहता है, क्योंकि यह आपके लिए ऐसा नहीं करेगा। सर्वर प्लेटफॉर्म के रूप में Linux और FreeBSD की व्यापक तुलना इस बात को कवर करती है कि जब आप उनके बीच workload स्थानांतरित करते हैं तो और क्या बदलता है।

FAQ

क्या freebsd-update मेरे packages को भी patch करता है?

नहीं। freebsd-update केवल base system को कवर करता है, जिसका अर्थ है kernel और वह userland जो release के साथ आता है। /usr/local के अंतर्गत स्थापित software packages से आते हैं, और उन्हें pkg upgrade के साथ patch किया जाता है। यह पता लगाने के लिए कि किन स्थापित packages में ज्ञात vulnerabilities हैं, pkg audit -F चलाएं, क्योंकि base advisories में उनका कभी उल्लेख नहीं होता है और security mailing lists में उनकी घोषणा कभी नहीं की जाती है।

मुझे कैसे पता चलेगा कि FreeBSD update के लिए reboot की आवश्यकता है?

freebsd-version -k की तुलना uname -r से करें। पहला command disk पर स्थापित kernel को print करता है, जिसमें वह kernel भी शामिल है जिसे अभी लिखा गया है लेकिन अभी तक boot नहीं किया गया है। दूसरा command उस kernel को print करता है जो वर्तमान में चल रहा है। यदि strings अलग हैं, तो आपको reboot करने की आवश्यकता है। यदि strings मेल खाते हैं, तो patch केवल userland के लिए था, इसलिए प्रभावित services को restart करें, उदाहरण के लिए service sshd restart, क्योंकि एक चल रही process पुरानी library को तब तक map रखती है जब तक कि वह restart न हो जाए।

Security Advisory और Errata Notice में क्या अंतर है?

एक Security Advisory, जैसे कि FreeBSD-SA-26:55.elf, base system में एक security vulnerability को ठीक करती है। एक Errata Notice, जैसे कि FreeBSD-EN-26:18.tzdata, शुद्धता या स्थिरता की समस्या को ठीक करती है जिसका कोई security प्रभाव नहीं होता है, जैसे कि पुराने time zone data। दोनों ही वर्ष, कोलन, अनुक्रम संख्या, घटक के पैटर्न का उपयोग करते हैं। दोनों पर Security Officer के हस्ताक्षर होते हैं और उन्हें freebsd-update द्वारा वितरित किया जाता है, और इनमें से कोई भी ports या packages से स्थापित software को कवर नहीं करता है।

क्या FreeBSD के लिए unattended-upgrades का कोई विकल्प है?

base system में ऐसा कुछ नहीं है। freebsd-update cron लंबित base patches को download करता है और root को mail भेजता है, लेकिन यह उन्हें कभी install नहीं करता है। pkg द्वारा स्थापित periodic script प्रतिदिन pkg audit चलाती है और परिणाम mail करती है, लेकिन यह कुछ भी upgrade नहीं करती है। Unattended installation वह है जिसे आप cron job के साथ स्वयं बनाएंगे, और चूंकि FreeBSD package upgrade सुरक्षा-मात्र backport के बजाय नवीनतम version लेता है, इसलिए अधिकांश admins mail पढ़ते हैं और manually install करते हैं।

मैं यह कैसे जाँचूँ कि मेरा FreeBSD release अभी भी समर्थित है?

अपने userland version के लिए freebsd-version -u चलाएं, फिर FreeBSD security page पर समर्थित branch table के साथ इसकी तुलना करें। Point releases की अवधि कम होती है: अगस्त 2026 तक, 15.0-RELEASE 30 सितंबर 2026 को समाप्त हो रहा है जबकि 15.1-RELEASE 31 मार्च 2027 तक चलता है। जैसे-जैसे तारीख नजदीक आती है, freebsd-update fetch आपको चेतावनी देता है, और एक बार तारीख बीत जाने के बाद यह एक पंक्ति print करता है जिसमें लिखा होता है कि release अपनी END-OF-LIFE DATE पार कर चुका है। उस बिंदु के बाद आप पर कोई और advisories लागू नहीं होती हैं।

#freebsd#सुरक्षा#patching#advisories#pkg