sudo bilan ishga tushirilganda port skanerlash nima uchun o’zgaradi
Xom soketlar mavjud bo’lmaganda, Nmap SYN skanerlashni TCP connect skanerlash bilan jimgina almashtiradi, shuning uchun root va oddiy foydalanuvchi turli yo’llarni o’lchaydi.
Nmap har doim siz so’ragan deb o’ylagan paketni yubormaydi. Xom soketlar mavjud bo’lmaganda, u standart SYN skanerlashni TCP connect skanerlash bilan almashtiradi, shuning uchun oddiy foydalanuvchi sifatida ishga tushirish va sudo ostida ishga tushirish bir xil port haqida turli savollarga javob berishi mumkin. Natijalar ruxsat muammosiga o’xshaydi, lekin odatda bu usul o’zgarishi. Usulni aniq ko’rsatish ikkala ishga tushirishni solishtirishning yagona yo’li.
Ikki zond, bir port, turli kod yo’llari
SYN skanerlash TCP sarlavhasini o’zi quradi, uni xom soketdan yuboradi va yadro TCP stegi tugallangan ulanishni qayd etishidan oldin javobni tarmoqdan o’qiydi. connect skanerlash operatsion tizimdan oddiy soket ochishni so’raydi va connect() nima qaytarishini xabar qiladi. Ikkalasi ham portni ochiq deb atashi mumkin, lekin yarim ochiq urinishni faqat biri qoldiradi va yuboruvchi jarayonga bog’langan soket darajasidagi siyosatga faqat biri bo’ysunadi.
Xom yo’l CAP_NET_RAW talab qiladi, shuning uchun bu imkoniyat bo’lmaganda standart skanerlash jimgina zaiflashadi. Nmapning o’z skanerlash texnikalari ma’lumotnomasi bu almashtirishni hujjatlashtiradi: connect skanerlash zaxira variant, chunki u hech qanday maxsus ruxsat talab qilmaydi. Almashtirish ko’p ishga tushirishlarda ogohlantirishsiz sodir bo’ladi va aynan shu uni noto’g’ri o’qishni osonlashtiradi. Zaxira variant borligini bilganingizdan so’ng, “root sifatida ochiq, foydalanuvchi sifatida yopiq” degan gap ruxsat xatosiga o’xshamaydi va ikki xil o’lchovga o’xshay boshlaydi.
sudo skanerlashda aslida nimani o’zgartiradi
Ruxsatlarni oshirish xom soket yo’lini tiklaydi va bu hukmdan ko’proq narsani o’zgartiradi. Manba portni tanlash, paketlar vaqti, qayta yuborish xatti-harakati va filtrlangan javobni tasniflash usuli — barchasi boshqa koddan keladi. SYN tezligini cheklovchi oraliq qurilma maqsadli xost bir xil bo’lsa ham ikki ishga tushirishga teng bo’lmagan munosabatda bo’ladi.
Maqsad tomonidagi jurnal yozish ham farq qiladi. Tugallangan qo’l siqish xizmatga va har qanday soket hisobiga ko’rinadi, qayta o’rnatilgan yarim ochiq zond esa ko’pincha ko’rinmaydi. Agar siz jurnallarini ham o’qiydigan xostga qarshi ishga tushirishlarni solishtirsangiz, ko’rgan farqning bir qismi kuzatishning o’zidir.
Ikkala ishga tushirishda usulni doimiy saqlang
Ikkala chaqiruvda bir xil texnikani majburan qo’llang va solishtirish mazmunli bo’la boshlaydi. -sT bayrog’i connect skanerlashni aniq talab qiladi, -Pn xostlarni aniqlashni, -n nomlarni hal qilishni olib tashlaydi va bitta -p port ro’yxatidagi farqlarni olib tashlaydi.
nmap -sT -Pn -n -p 8443 198.51.100.77
sudo nmap -sT -Pn -n -p 8443 198.51.100.77
Manzil va portni sinashga ruxsatingiz bor xost bilan almashtiring; yuqoridagi hujjat diapazoni namuna, maqsad emas. Agar ikki ishga tushirish endi mos kelsa, dastlabki farq skanerlash usulidan kelgan. Agar ular hali ham mos kelmasa, trafikni boshqa narsa tasniflaydi va keyingi bo’lim qarash kerak bo’lgan joy.
Hisob konteksti faqat ruxsat bayrog’i emas
VPN joylashtirish paketlarni UID bo’yicha, cgroup bo’yicha yoki soketni ochgan jarayonga bog’langan qoida bo’yicha tasniflashi mumkin. Shunda root trafigi va foydalanuvchi trafigi turli marshrutlash jadvallaridan chiqadi yoki turli qoidalar to’plamiga uriladi va skanerlash usulining hech qanday tartibi ularni yarashtira olmaydi.
Ruxsatni emas, siyosatni tekshiring. Linuxda nftables buni meta skuid bilan, iptables esa egasi mosligi bilan ifodalaydi va ikkalasidan biri bitta UIDni tunnelga yuborishi mumkin, ikkinchisi esa jismoniy standart yo’lni ishlatishda davom etadi.
sudo nft list ruleset | grep -n skuid
sudo iptables-save | grep -n uid-owner
ip rule show
ip route get 198.51.100.77
Natijalarni solishtirishdan oldin zondni tasdiqlang
Xulosa qilishdan oldin qaysi zond ishlaganini isbotlang. Nmap texnikani o’z chiqishida nomlaydi va --reason har bir holat ortidagi dalilni qo’shadi, qo’l siqish haqiqatan tugaganini aytadigan qism ham shu.
nmap --reason -sT -Pn -n -p 8443 198.51.100.77
sudo nmap --reason -sS -Pn -n -p 8443 198.51.100.77
getcap "$(command -v nmap)"
capsh --print | grep -i net_raw
Bir holatni turli sabablar bilan xabar qiluvchi ikki ishga tushirish qarama-qarshilik emas, bir sabab bilan turli holatlarni xabar qiluvchi ikki ishga tushirish esa skanerlashga emas, marshrutlash yoki siyosatga ishora qiladi. Maqsad, port, nom maydoni va vaqtni bir xil saqlang, so’ng bir vaqtda bitta o’zgaruvchini o’zgartiring. Xizmatni root sifatida ishga tushirish siyosat nomuvofiqligining tuzatishi emas; tuzatish — ko’zlangan siyosatni xizmat egasi orqali ifodalash.