
लिनक्स सर्वर के लिए कर्नेल-स्तरीय सुरक्षा और हमले की प्रतिक्रिया।
Linux सर्वरों के लिए कर्नेल-स्तरीय ट्रैफ़िक इंटेलिजेंस और ख़तरा निवारण।
KernelEye Linux सर्वरों के लिए एक स्व-होस्टेड सुरक्षा निगरानी प्लेटफ़ॉर्म है। यह नेटवर्क मेटाडेटा का अवलोकन करने, संदिग्ध गतिविधि को स्कोर करने, और कर्नेल-स्तरीय XDP ब्लॉकिंग तथा ipset/iptables नियमों के माध्यम से निवारण लागू करने के लिए एक Go एजेंट में eBPF, TC और XDP का उपयोग करता है। एक Go बैकएंड घटनाओं को संग्रहीत और विश्लेषित करता है, जबकि एक React डैशबोर्ड सर्वर प्रबंधन, लाइव ट्रैफ़िक, ख़तरे के दृश्य, ब्लॉक किए गए IP, व्हाइटलिस्टिंग, रिपोर्ट और विश्लेषण प्रदान करता है।
shared/scoring में साझा Go स्कोरिंग लॉजिक से ख़तरा स्कोरिंग।Monitored Linux host
eBPF traffic probe + TC bandwidth hooks
XDP firewall and ipset/iptables remediation
Go agent (HMAC command verification, audit log)
|
| gRPC (TLS/mTLS) + HMAC-signed block commands
v
Go backend API
Fiber HTTP API
gRPC ingest/block services (TLS/mTLS, command signing)
analysis worker, block manager, retention, reports
integrity report handler
|
v
PostgreSQL
^
|
React dashboard
REST API + WebSocket live updates
एजेंट agent/ में रहता है और Linux होस्ट प्रक्रिया है।
agent/main.go पंजीकरण, eBPF लोडिंग, बैंडविड्थ ट्रैकिंग, निवारण, स्कोरिंग, एकत्रीकरण और ब्लॉक कमांड स्ट्रीमिंग प्रारंभ करता है।agent/ebpf/traffic_probe.c ट्रैफ़िक मेटाडेटा कैप्चर करता है।agent/ebpf/xdp_firewall.c XDP पैकेट फ़िल्टरिंग लागू करता है।agent/tc.go TC बैंडविड्थ ट्रैकिंग कॉन्फ़िगर करता है।agent/aggregator.go घटनाओं को बैच कर बैकएंड पर भेजता है।agent/history_store.go और agent/flush.go स्थानीय अवधारण और पुनः प्रयास व्यवहार संभालते हैं।agent/remediation/ में एनालाइज़र, ऑटो-ब्लॉकिंग, XDP, ipset और हाइब्रिड रेमेडिएटर शामिल हैं।एजेंट को eBPF/XDP संचालन के लिए Linux और उन्नत विशेषाधिकारों की आवश्यकता होती है।
बैकएंड backend/ में रहता है।
backend/cmd/api/main.go Fiber HTTP API और gRPC सेवाएँ प्रारंभ करता है।backend/internal/api/ में प्रमाणीकरण, डैशबोर्ड हैंडलर, gRPC हैंडलर, ब्लॉक API, व्हाइटलिस्ट API, WebSocket हैंडलिंग और रेट लिमिटिंग शामिल हैं।backend/internal/analysis/ में स्कोरिंग वर्कर, ब्लॉक प्रबंधन, डेटा अवधारण और मासिक रिपोर्ट लॉजिक शामिल हैं।backend/internal/database/ में sqlc-जनरेटेड डेटाबेस एक्सेस कोड शामिल है।backend/internal/geoip/ GeoIP संवर्धन संभालता है।backend/internal/email/ कॉन्फ़िगर होने पर Mailtrap-समर्थित ईमेल भेजता है।backend/migrations/ में PostgreSQL माइग्रेशन शामिल हैं।HTTP के लिए डिफ़ॉल्ट पोर्ट 8080 है; gRPC के लिए डिफ़ॉल्ट पोर्ट 9091 है।
डैशबोर्ड dashboard/ में रहता है और एक Vite React एप्लिकेशन है।
dashboard/src/pages/ में अवलोकन, सर्वर, सर्वर विवरण, ख़तरे, अलर्ट, रिपोर्ट, विज़ुअलाइज़र, ब्लॉक किए गए IP, व्हाइटलिस्ट, लॉगिन, प्रोफ़ाइल और OAuth कॉलबैक पेज शामिल हैं।dashboard/src/components/ में लाइव ट्रैफ़िक, ब्लॉक फ़ीड, चार्ट, सर्वर सूचियाँ, कॉन्फ़िगरेटर और साझा लेआउट घटक शामिल हैं।dashboard/src/api/client.ts REST API क्लाइंट को परिभाषित करता है।dashboard/src/context/WebSocketContext.tsx लाइव घटना अपडेट प्रबंधित करता है।डेव सर्वर http://localhost:3000 के लिए कॉन्फ़िगर किया गया है।
सार्वजनिक मार्केटिंग साइट kerneleye-landing-page/ में रहती है। प्रोडक्शन फ्रंटएंड इमेज लैंडिंग पेज और डैशबोर्ड दोनों को बनाती है, फिर उन्हें nginx के माध्यम से सर्व करती है।
shared/scoring/ में साझा ख़तरा स्कोरिंग मॉड्यूल शामिल है जिसका उपयोग एजेंट और बैकएंड दोनों करते हैं।shared/cmdsigning/ में HMAC-SHA256 कमांड हस्ताक्षर और nonce रीप्ले सुरक्षा मॉड्यूल शामिल है।proto/kerneleye/v1/ में इन्जेशन और ब्लॉक सेवाओं के लिए protobuf परिभाषाएँ शामिल हैं।proto/gen/go/ में जनरेटेड Go protobuf कोड शामिल है।KernelEye पैकेट पेलोड या एप्लिकेशन सामग्री का निरीक्षण नहीं करता है।
एकत्रित मेटाडेटा में शामिल हैं:
एकत्रित नहीं किए जाते:
ख़तरा स्कोरिंग shared/scoring/scorer.go में लागू की गई है। वर्तमान स्कोरर एक साधारण रैखिक सूत्र से अधिक सूक्ष्म है: यह SYN दर, अद्वितीय पोर्ट पहुँच, विफल हैंडशेक, बर्स्ट व्यवहार, सेवा दुरुपयोग, दिशा, विश्वास स्तर और समय के साथ स्कोर क्षय पर विचार करता है।
डिफ़ॉल्ट वर्गीकरण सीमाएँ:
< 20 normal
20-39 suspicious
>= 40 malicious
>= 40 eligible for auto-blocking when remediation is enabled
बैकएंड विश्लेषण वर्कर संचित ट्रैफ़िक विंडो का भी उपयोग करता है और उच्च-जोखिम वाले स्रोतों के लिए ब्लॉक प्रबंधन ट्रिगर कर सकता है।
जब एजेंट पर सक्षम किया जाता है तो KernelEye सक्रिय निवारण का समर्थन करता है।
| परत | कार्यान्वयन | उद्देश्य |
|---|---|---|
| XDP | agent/remediation/xdp_remediator.go | नेटवर्क स्टैक से पहले तेज़ कर्नेल-स्तरीय ड्रॉप |
| IPSet | agent/remediation/ipset_remediator.go | ipset/iptables ब्लॉक प्रबंधन |
| हाइब्रिड | agent/remediation/hybrid_remediator.go | XDP और ipset व्यवहार का समन्वय |
| ऑटो-ब्लॉकर | agent/remediation/auto_blocker.go | कॉन्फ़िगर की गई स्कोर सीमाओं से ऊपर के स्रोतों को ब्लॉक करता है |
| बैकएंड ब्लॉक प्रबंधक | backend/internal/analysis/block_manager.go | बैकएंड-जनरेटेड ब्लॉक स्थिति और कमांड का समन्वय |
डैशबोर्ड ब्लॉक किए गए IP और व्हाइटलिस्ट प्रबंधन भी प्रदान करता है।
cp .env.example .env
कम से कम ये सेट करें:
DATABASE_URL=postgres://kerneleye:<password>@localhost:5432/kerneleye?sslmode=disable
JWT_SECRET=<at-least-32-characters>
API_KEY_SECRET=<strong-secret>
CORS_ORIGINS=http://localhost:3000
वैकल्पिक एकीकरणों में Redis रेट लिमिटिंग, Mailtrap ईमेल, GitHub/Google OAuth और MaxMind GeoIP शामिल हैं।
cd backend
go mod download
go run cmd/api/main.go
बैकएंड शुरू होता है:
http://localhost:8080 पर HTTP APIlocalhost:9091 पर gRPCcd dashboard
npm install
npm run dev
http://localhost:3000 खोलें।
साइन-इन केवल OAuth के माध्यम से है। डैशबोर्ड पहुँच के लिए AUTH_OWNER_EMAIL सेट करें और कम से कम एक OAuth प्रदाता (GitHub या Google) कॉन्फ़िगर करें। केवल कॉन्फ़िगर किया गया स्वामी ईमेल ही साइन-इन कर सकता है।
cd agent
bpftool btf dump file /sys/kernel/btf/vmlinux format c > ebpf/vmlinux.h
go generate ./...
go build -o kerneleye-agent
sudo KERNELEYE_API_KEY=<server-api-key> \
KERNELEYE_SERVER=localhost:8080 \
KERNELEYE_GRPC_URL=localhost:9091 \
./kerneleye-agent
उपयोगी एजेंट फ़्लैग: