
केवल-पढ़ने योग्य, एजेंट-रहित Linux कर्नेल सुरक्षा कॉन्फ़िगरेशन ऑडिटर (स्थानीय और SSH)। प्रारंभिक फ़ोकस: CVE-2026-98432 के लिए TCP माइग्रेशन / MPTCP जाँच।
Python में लिखा गया एक हल्का, ओपन-सोर्स Linux सुरक्षा ऑडिटिंग टूल।
एजेंट इंस्टॉल किए या सिस्टम कॉन्फ़िगरेशन बदले बिना SSH के माध्यम से स्थानीय और रिमोट Linux सर्वर का ऑडिट करें।
यह एक कॉन्फ़िगरेशन और पैच-स्टेटस ऑडिटर है, एजप्लॉइट स्कैनर नहीं। यह किसी भेद्यता से जुड़े कर्नेल सेटिंग्स और उपयोग की रिपोर्ट करता है, और चल रहे कर्नेल पैकेज की तुलना विक्रेता के फ़िक्स्ड संस्करण से करता है। यह कभी भी किसी भेद्यता को ट्रिगर करने का प्रयास नहीं करता।
| विशेषता | v0.2.0 |
|---|---|
| Python 3.8+, कोई तृतीय-पक्ष निर्भरता नहीं | ✅ |
| स्थानीय Linux ऑडिट | ✅ |
| SSH के माध्यम से रिमोट ऑडिट (एजेंटलेस) | ✅ |
| समानांतर में मल्टी-सर्वर स्कैनिंग | ✅ |
| Ubuntu / Debian / Rocky / AlmaLinux / RHEL / Fedora | ✅ |
| TCP रिक्वेस्ट सॉकेट माइग्रेशन निरीक्षण | ✅ |
| MPTCP कॉन्फ़िगरेशन और उपयोग का निरीक्षण | ✅ |
| कर्नेल, वितरण और लंबित-रीबूट का पता लगाना | ✅ |
| JSON / CSV रिपोर्टिंग | ✅ |
| कर्नेल CVE पैच सत्यापन (Ubuntu, Debian, RHEL, Rocky, AlmaLinux, CentOS) | ✅ |
| स्वचालित सुरक्षा अपडेट | ❌ कभी नहीं |
| सर्वर कॉन्फ़िगरेशन बदलना | ❌ कभी नहीं |
कंट्रोलर (आपका Mac या Linux वर्कस्टेशन) चयनित जाँचों से एक छोटी POSIX sh
स्क्रिप्ट बनाता है और उसे SSH के माध्यम से प्रत्येक लक्ष्य पर sh -s को पाइप करता है।
लक्ष्य पर कुछ भी कॉपी या इंस्टॉल नहीं किया जाता। स्क्रिप्ट key=value तथ्य प्रिंट करती है;
सभी मूल्यांकन कंट्रोलर पर होता है, जो लक्ष्य के आउटपुट को अविश्वसनीय मानता है
(कंट्रोल कैरेक्टर हटाए जाते हैं, मान छोटे किए जाते हैं, CSV फ़ॉर्मूला इंजेक्शन निष्क्रिय किया जाता है)।
इसे चलाने से पहले ठीक-ठीक समीक्षा करें कि आपके सर्वर पर क्या चलेगा:
python3 netviser_cve_audit.py --print-script
लक्ष्य को केवल sh और मानक टूल्स (iproute2 से ss, awk,
grep, sed) की आवश्यकता होती है। लक्ष्य पर Python की आवश्यकता नहीं है।
कंट्रोलर को Python 3.8+ और OpenSSH (macOS या Linux) की आवश्यकता होती है।
git clone https://github.com/maxigentr/netviser-linux-security-auditor.git
cd netviser-linux-security-auditor
# Audit this Linux machine
python3 netviser_cve_audit.py --local
# Audit a remote server
python3 netviser_cve_audit.py --host [email protected]
# Custom SSH port and key
python3 netviser_cve_audit.py --host [email protected] --port 2290 --identity ~/.ssh/audit_ed25519
# Multiple servers, 10 in parallel
python3 netviser_cve_audit.py --hosts servers.txt --workers 10
# Non-root SSH user with passwordless sudo, for full process and BPF visibility
python3 netviser_cve_audit.py --host admin@web01 --sudo
# Watch MPTCP counters for 60 seconds to see if MPTCP is used right now
python3 netviser_cve_audit.py --hosts servers.txt --sample-interval 60
# Also check whether other kernel CVEs are patched
python3 netviser_cve_audit.py --hosts servers.txt --cve CVE-2024-1086,CVE-2024-26925
टूल को इंस्टॉल भी किया जा सकता है (pip install .) और netviser-audit
या python3 -m netviser_audit के रूप में चलाया जा सकता है।
होस्ट्स फ़ाइल प्रारूप के लिए examples/servers.example.txt देखें।
प्रति-होस्ट पोर्ट ssh://user@host:port या किसी
~/.ssh/config एलियास का उपयोग करते हैं।
| विकल्प | विवरण |
|---|---|
--local / --host H / --hosts FILE | क्या ऑडिट करना है |
--checks IDS | कॉमा से अलग किया गया सबसेट (--list-checks देखें); निर्भरताएँ स्वचालित रूप से जोड़ी जाती हैं |
--cve IDS | इन CVE का कर्नेल पैच स्थिति भी रिपोर्ट करें (दोहराने योग्य या कॉमा से अलग) |
--offline | विक्रेता सलाहकार डेटा डाउनलोड न करें |
--advisories FILE | पहले सहेजा गया सलाहकार डेटा उपयोग करें; अनुपलब्ध रिकॉर्ड अभी भी डाउनलोड किए जाएँगे जब तक --offline न हो |
--save-advisories FILE | उपयोग किया गया सलाहकार डेटा सहेजें, ऑफ़लाइन या दोहराने योग्य रन के लिए |
--sudo | कलेक्टर को sudo -n के साथ चलाएँ (कभी प्रॉम्प्ट नहीं करता) |
--sample-interval N | MPTCP काउंटर दो बार पढ़ें, N सेकंड के अंतराल पर |
--output PREFIX | रिपोर्ट प्रीफ़िक्स (डिफ़ॉल्ट netviser_audit → .json, .csv) |
--no-report | केवल टर्मिनल पर प्रिंट करें |
--fail-on-review | जब कोई REVIEW निष्कर्ष मौजूद हो तो 3 के साथ बाहर निकलें (CI / cron के लिए) |
-v, --verbose | सभी निष्कर्ष दिखाएँ, केवल REVIEW / UNKNOWN नहीं |
SSH BatchMode=yes (केवल कुंजी-आधारित प्रमाणीकरण) और
StrictHostKeyChecking=accept-new के साथ चलता है।
एग्ज़िट स्थिति: 0 सफलता, 1 कोई लक्ष्य स्कैन नहीं किया जा सका, 2 उपयोग त्रुटि,
3 समीक्षा निष्कर्ष मौजूद (केवल --fail-on-review के साथ)।
| Id | यह क्या निरीक्षण करता है |
|---|---|
kernel | वितरण, कर्नेल रिलीज़, चल रहा कर्नेल पैकेज, नया इंस्टॉल किया गया कर्नेल / रीबूट आवश्यक |
patch | चल रहे कर्नेल पैकेज के लिए प्रत्येक CVE की पैच स्थिति, विक्रेता सलाहकार डेटा से |
tcp_migration | net.ipv4.tcp_migrate_req; लोड किए गए sk_reuseport BPF प्रोग्राम (root + bpftool) |
mptcp | net.mptcp.enabled, पाथ मैनेजर, CONFIG_MPTCP, MPTCP सॉकेट और प्रोसेस, हैंडशेक काउंटर, mptcpize उपयोग |
cve_2026_98432 | CVE-2026-98432 के लिए संबंधित कॉन्फ़िगरेशन; इसकी पैच स्थिति patch.CVE-2026-98432 है |
प्रत्येक निष्कर्ष की एक स्थिति होती है — OK, INFO, REVIEW या UNKNOWN — और एक
मशीन-पठनीय निर्णय (जैसे mptcp.usage = IN_USE)।
patch जाँच प्रत्येक CVE के लिए एक प्रश्न का उत्तर देती है: क्या अभी चल रहा कर्नेल
वितरण विक्रेता के अनुसार ठीक किया गया है?
dpkg-query / rpm -qf): उसका नाम, सटीक संस्करण और स्रोत
पैकेज। यह उस पैकेज के चेंजलॉग में और लोड किए गए लाइवपैच
(canonical-livepatch, kpatch-patch) में उल्लिखित CVE आईडी भी सूचीबद्ध करता है।~ संस्करण
सही ढंग से संभाले जाते हैं।| वितरण | सलाहकार स्रोत |
|---|---|
| Ubuntu | Ubuntu Security API — प्रति रिलीज़ और कर्नेल फ़्लेवर (linux, linux-hwe-*, linux-aws, …) |
| Debian | OSV के माध्यम से Debian Security Tracker डेटा |
| RHEL, Rocky Linux, AlmaLinux, CentOS | Red Hat Security Data API — मुख्य RHEL स्ट्रीम |
इन सेवाओं को केवल CVE पहचानकर्ता भेजे जाते हैं; आपके होस्ट्स के बारे में कुछ भी
कंट्रोलर से बाहर नहीं जाता। एयर-गैप्ड उपयोग के लिए, एक बार
--save-advisories adv.json के साथ और बाद में --offline --advisories adv.json के साथ चलाएँ।
| निर्णय | स्थिति | अर्थ |
|---|---|---|
PATCHED | OK | चल रहा कर्नेल संस्करण ≥ विक्रेता का निश्चित संस्करण |
NOT_AFFECTED | OK | विक्रेता कहता है कि यह रिलीज़ / कर्नेल प्रभावित नहीं है |
LIVEPATCHED | OK | एक लोडेड लाइवपैच CVE को निश्चित के रूप में सूचीबद्ध करता है |
VULNERABLE | REVIEW | एक फ़िक्स जारी किया गया है; चल रहा कर्नेल पुराना है। इसे इंस्टॉल करें और रीबूट करें |
FIX_PENDING | REVIEW | विक्रेता ने एक फ़िक्स तैयार किया है जो अभी जारी नहीं हुआ है (Ubuntu) |
FIX_NOT_AVAILABLE | REVIEW | प्रभावित, अभी तक कोई फ़िक्स प्रकाशित नहीं |
WONT_FIX | REVIEW | विक्रेता इस रिलीज़ को ठीक नहीं करेगा (जैसे समर्थन का अंत) |
MENTIONED_IN_CHANGELOG | INFO | कोई विक्रेता निर्णय नहीं, लेकिन चल रहे कर्नेल का चेंजलॉग CVE का उल्लेख करता है |
NO_DATA | UNKNOWN | इस CVE, रिलीज़ या कर्नेल फ़्लेवर के लिए विक्रेता के पास कोई रिकॉर्ड नहीं है |
UNSUPPORTED | UNKNOWN | इस वितरण के लिए कोई सलाह स्रोत नहीं (जैसे Fedora, SUSE) |
NOT_CHECKED | UNKNOWN | सलाह डेटा अनुपलब्ध (--offline, नेटवर्क त्रुटि) या कर्नेल पैकेज अज्ञात |
सीमाएँ: