Linux serverlarni SSH orqali kuzatish
Serverni manzili va hisobi bilan qo'shing — platforma har 30 soniyada kirishlar, portlar, administratorlar, muhim fayllar va o'z canary fayllarini kuzatadi, hech narsa o'rnatmasdan.
Serverlar agentsiz kuzatiladi. Har bir tenantning o’z Ed25519 kalit juftligi bor; platforma u bilan kiradi va administrator uname, last, w, ss va sha256sum bilan o’qiy oladigan narsani o’qiydi. U Linux uchun qurilgan: signallar standart Linux buyruqlari bilan o’qiladi, shuning uchun SSH serveri bor boshqa tizimlar ulanadi, lekin kamroq ma’lumot beradi.
Server qo’shish
«Server qo’shish» bo'limi-
Serverlar bo’limini oching. Platforma kaliti sahifa tepasidagi kalit seyfida: barmoq izini hamma ko’radi, kalitning o’zini esa administrator Kalitni ko’rsatish va hozirgi autentifikator kodi bilan 60 soniyaga ochadi. Berilgan qatordan nusxa oling.
-
Shu qatorni serverdagi platforma foydalanadigan hisobning
~/.ssh/authorized_keysfayliga qo’shing. Qator cheklangan:no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty— kalit faqat platforma buyruqlarini bajara oladi, boshqa hech narsa; o’g’irlangan nusxa bilan shell yoki tunnel ochib bo’lmaydi. Unifrom=bilan Legit AI manziliga ham bog’lash mumkin (seyf serverlaringiz ko’radigan manzilni taklif qiladi): unda nusxa boshqa joyda yaroqsiz, lekin manzil o’zgarsa hech bir server javob bermay qoladi.Yoki qo’shish formasiga o’sha hisob parolini yozing: platforma u bilan bir marta kiradi va kalitni o’zi o’rnatadi. Parol faqat shu bitta kirish uchun ishlatiladi va hech qachon saqlanmaydi.
-
username@hostyokiusername@host:port, ixtiyoriy nom kiriting va Qo’shish va Sinash tugmasini bosing.
Serverni qabul qilishdan oldin platforma shu manzil va portda nimadir javob berayotganini tekshiradi — xato yozilgan host fonda abadiy muvaffaqiyatsiz bo’lib turmaydi, darhol rad etiladi.
Serverni qo’shish uchun ishlatilgan hisob avtomatik ravishda serverning ruxsat etilgan foydalanuvchilari ro’yxatiga qo’shiladi.
Server qo’shishda port faqat SSH server salom bersa o’tadi; boshqa har qanday port yopiq port bilan bir xil javob oladi. Bulutda hisob 15 daqiqada 10 ta ishlamagan manzilni, soatiga 60 ta manzilni va bitta serverda 15 daqiqada 5 ta parolni sinashi mumkin. Aynan bitta manzilga qayta urinish hisoblanmaydi.
Ko’p serverni qo’shish
«Ko’p serverni qo’shish» bo'limiQo’shish formasi ostidagi Bir nechta server qo’shish ro’yxatni oladi — har qatorga bitta user@host yoki user@host:port, xuddi inventar yoki Ansible hosts faylida bo’lgani kabi — va har birini navbat bilan qo’shib tekshiradi, har bir server uchun bir qator natija bilan.
Uning yonida avval platforma kalitini hammasiga qo’yadigan buyruq turadi. Uni ularga SSH orqali allaqachon kira oladigan mashinada, manzillari hosts.txt da bo’lgan holda ishga tushiring:
while read -r host; do ssh -n "$host" "mkdir -p ~/.ssh && chmod 700 ~/.ssh && grep -qF '<kalit>' ~/.ssh/authorized_keys 2>/dev/null || echo '<cheklangan qator>' >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"done < hosts.txtKalit ko’rsatilgach (administrator, yangi kod) konsol qatorni o’zi qo’yadi; kalit allaqachon bor serverga tegilmaydi.
Tarmoqni skanerlash
«Tarmoqni skanerlash» bo'limiTarmoq xaritasi → Aniqlash bo’limida Bu tarmoqni skanerlash ulangan serverning o’zidan butun tarmog’ini tekshiradi: qaysi qurilmalar javob beradi, qaysi portlar ochiq, ular nimani e’lon qiladi. Hech narsa o’rnatilmaydi, root kerak emas, serverda python3 bo’lishi yetarli.
| Usul | Nima beradi | Nimasi kerak |
|---|---|---|
| TCP ulanish, ARP | Jonli qurilmalar, MAC, ochiq portlar | Hech narsa |
| Banner, HTTP | SSH versiyasi, veb sahifa nomi, Server sarlavhasi |
Hech narsa |
| NetBIOS, DNS, NTP, mDNS | Qurilma nomi, UDP xizmatlari | Hech narsa |
| UPnP/SSDP | Ishlab chiqaruvchi, model, qurilma turi | Qurilmada UPnP yoqilgan bo’lsa |
| SNMP v2c/v3 | Firmware, nomi, ishlash vaqti, interfeyslar, ulangan qurilmalar, LLDP qo’shnilari | Siz bergan faqat o’qish kirishi; v3 uchun serverda net-snmp |
nmap |
Xizmat versiyalari, OS | Serverda nmap bo’lsa. OS uchun root yoki setcap cap_net_raw,cap_net_admin,cap_net_bind_service+eip /usr/bin/nmap |
Har bir fakt tasdiqlangan (qurilmaning o’zi aytgan) yoki taxminiy (MAC prefiksi, portlar, TTL) deb belgilanadi, usuli va dalili bilan. O’qib bo’lmagan narsa noma’lum deb, nima yordam berishi bilan yoziladi.
Chegaralar. Faqat ichki diapazonlar, bir skanda 4096 manzilgacha, tezligi cheklangan. Boshlash uchun ADMIN, yangi authenticator kodi va tarmoq sizniki ekanini tasdiqlash kerak; bu audit jurnaliga yoziladi. Skan faqat o’qiydi: parol taxmin qilmaydi, zaiflikdan foydalanmaydi va hech narsani o’zgartirmaydi. To’xtatish uni darhol tugatadi. Birinchi skan baza hisoblanadi, keyingilarda yangi qurilma va o’ta xavfli ochiq xizmat alert ochadi.
Routerni ichidan o’qish
«Routerni ichidan o’qish» bo'limiSkan routerni tashqaridan ko’radi. Login bo’lsa, Router kirishi routerning o’z ro’yxatlarini o’qiydi: ulangan qurilmalar va ularning ijaralari, firmware, model, seriya raqami, ishlash vaqti, interfeyslar, marshrutlar va qo’shni qurilmalar. Bu faktlar tasdiqlangan deb belgilanadi, faqat router biladigan qurilma ham ro’yxatga va xaritaga qo’shiladi. O’qish har skan bilan takrorlanadi, keyin paydo bo’lgan qurilma alert ochadi.
| Turi | Qanday o’qiladi | Nimada sinalgan |
|---|---|---|
| MikroTik | REST (RouterOS 7), binary API (RouterOS 6 va 7) yoki SSH | RouterOS 7.16.2. 6.43 dan eski versiyalarning challenge logini protokolga muvofiq, qurilmada sinalmagan |
| OpenWrt | ubus API yoki SSH | OpenWrt 24.10.4 |
| OPNsense | API kaliti | OPNsense 25.7 |
| UniFi | Kontroller yoki UniFi OS logini, yoki API kaliti | Kirish va saytlar UniFi Network 9.0.114 da, qurilmalar ulanmagan holda. Qurilma va mijoz qatorlari, UniFi OS va API kaliti Ubiquiti formatlariga muvofiq, qurilmada sinalmagan |
| FortiGate | REST API tokeni | Fortinet hujjatlariga muvofiq, qurilmada sinalmagan |
| Cisco IOS, Huawei VRP, Juniper, VyOS, EdgeOS, FortiOS | SSH: show turidagi qat’iy buyruqlar ro’yxati |
Har ishlab chiqaruvchining chiqish formatiga muvofiq, qurilmada sinalmagan. Model boshqacha javob bersa, tegishli jadval bo’sh qoladi |
Uy yoki provayder routerida (ZTE, Huawei HG va shunga o’xshash) odatda ochiq API yo’q, SSH esa o’chiq. SNMP’ni yoqing, provayder ruxsat bersa SSH’ni ham; aks holda skanning tashqi ko’rinishi bilan cheklanasiz.
Faqat SHA-1 SSH algoritmlarini taklif qiladigan juda eski routerlarga ulanilmaydi: bunday sessiya parolni himoya qilmaydi. Firmware’ni yangilang yoki SNMP’dan foydalaning.
Faqat o’qish hisobidan foydalaning. MikroTik’da: /user add name=legit group=read password=.... Login routerni o’zgartira olsa, Legit AI ogohlantiradi.
Qanday himoyalangan.
- Faqat o’qiydi. Buyruqlar va API chaqiruvlari qat’iy ro’yxat, hech kimdan buyruq qabul qilinmaydi. Ishlab turgan konfiguratsiya o’qilmaydi: unda parol xeshlari va kalitlar bor.
- Parol serveringizga tushmaydi. SSH yoki TLS sessiyasi Legit AI’dan routergacha boradi; serveringizda faqat baytlarni o’tkazadigan kichik relay ishlaydi, unga
python3kerak. - Router kaliti yoki sertifikati birinchi ulanishda qulflanadi va parol yuborilishidan oldin tekshiriladi. U o’zgarsa, parol yuborilmaydi, alert ochiladi, ADMIN yangi kod bilan tasdiqlamaguncha o’qish to’xtaydi.
- Router rad etgan login bir marta sinaladi. Siz o’zgartirmaguningizcha qayta sinalmaydi, shuning uchun hisob bloklanmaydi va parol taxmin qilinmaydi.
- Shifrlanmagan login rad etiladi, agar shu router uchun o’zingiz yoqmasangiz; shunda Legit AI har o’qishda ogohlantiradi.
- Faqat ichki manzillar. Login berish uchun ADMIN, yangi authenticator kodi va router sizniki ekanini tasdiqlash kerak. U shifrlanadi, qayta ko’rsatilmaydi, server bilan birga o’chadi, har o’zgarish va o’qish audit jurnaliga yoziladi.
Nima kuzatiladi
«Nima kuzatiladi» bo'limiHar 30 soniyada, bitta ulanish orqali platforma quyidagilarni o’qiydi:
| Signal | Nima ko’taradi |
|---|---|
Oxirgi kirishlar (last, w) |
Serverning ruxsat etilganlar ro’yxatida yo’q hisob kirsa — critical alert: forensik dalillar darhol yig’iladi va manba manzil tekshiriladi |
sudo (yoki wheel) guruhi a’zolari |
Kimdir qo’shilsa — critical alert (T1098) |
| Tinglayotgan portlar | Yangi port ochilsa — high alert (T1571) |
/etc/passwd, /etc/ssh/sshd_config, /etc/crontab, /etc/hosts va hisobning authorized_keys fayli SHA-256 qiymati |
Ulardan biri o’zgarsa — alert |
| Auth logning inode’i, o’zgartirilgan vaqti va qatorlar soni | Log rotatsiya qilinmasdan qatorlari kamaysa yoki o’zgartirilgan vaqti orqaga ketsa — alert (T1070.002) |
| Serverga qo’ygan canary fayllaringiz | Biri o’qilsa, o’zgartirilsa yoki o’chirilsa — alert |
| Standart yo’nalish, qo’shnilar jadvali, ochiq TCP ulanishlar, DNS serverlar | Tarmoq xaritasi: router (manzili, MAC va ishlab chiqaruvchisi), shu server aloqada bo’lgan qurilmalar va tahdid ro’yxati bilan solishtirilgan ulanishlar. Bu server biladigan narsa, tarmoqni skanerlash emas |
| OS, yadro, CPU, xotira, disk, eng og’ir jarayonlar, o’rnatilgan paketlar, OpenSSH versiyasi | Server kartochkasi va uning o’zgarishlar tarixi |
Javob bermay qolgan yoki xotirasi yoki diski tugayotgan server o’zining sog’liq tarixiga yoziladi. Bu hujum emas, operatsion holat, shuning uchun alertlar navbatiga tushmaydi.
Ruxsat etilgan foydalanuvchilar
«Ruxsat etilgan foydalanuvchilar» bo'limiServerni Tahrirlash → Ruxsat Etilgan Foydalanuvchilar (ADMIN) kirishi kutilgan hisoblarni, ixtiyoriy ravishda ma’lum tarmoq diapazonidan, sanab o’tadi. Ularning kirishi jim qoladi; boshqa har qanday kirish — alert.
Talab bo’yicha tekshiruvlar
«Talab bo’yicha tekshiruvlar» bo'limi| Tekshiruv | Qanday |
|---|---|
| Server OpenSSH’idagi ma’lum zaifliklar — NVD’dan, EPSS ekspluatatsiya ehtimoli bilan | Server kartochkasidagi Skanerlash tugmasi. Tashqi razvedka so’rovlariga ruxsat kerak, shuning uchun air-gap deploymentda ishlamaydi. |
Doimiylik: cron vazifalari, ishlayotgan systemd xizmatlari, SUID fayllar, /etc/ld.so.preload |
POST /api/ssh/servers/{id}/scan-persistence |
Host kalitlari
«Host kalitlari» bo'limiServerga birinchi ulanish uning host kalitini mahkamlaydi. Keyin boshqa kalit ko’rsatilgan har qanday ulanish rad etiladi va audit logga yoziladi — tarmoq yo’lidagi boshqa mashina o’zini server deb ko’rsata olmaydi. Server haqiqatan qayta o’rnatilgan bo’lsa, ADMIN uning mahkamlanishini tozalaydi (DELETE /api/ssh/servers/{id}/host-key) va keyingi ulanish yangi kalitni mahkamlaydi.
Platforma kalitini almashtirish
«Platforma kalitini almashtirish» bo'limiAlmashtirish (administrator, yangi kod va joriy barmoq izining oxirgi olti belgisini yozish) yangi kalitni onlayn bo’lgan har bir serverga yuboradi va almashtirishdan oldin u bilan kirib ko’radi. Yangi kalit eski kalit qatorini uning sozlamalari bilan egallaydi — from= bog’lanishi saqlanadi. Biror serverga yangi kalit bilan kirib bo’lmasa, almashtirish to’xtaydi va eski kalit ishlatilishda qoladi. 90 kundan keyin seyf almashtirishni taklif qiladi.