Nmap ар дайым сиз сурады деп ойлогон пакетти жөнөтө бербейт. Чийки сокеттер жеткиликсиз болгондо, ал демейки SYN скандоосун TCP connect скандоосу менен алмаштырат, ошондуктан кадимки колдонуучу катары иштетүү жана sudo астында иштетүү бир порт жөнүндө ар башка суроолорго жооп бере алат. Жыйынтыктар укук маселесине окшош, бирок адатта бул ыкманын өзгөрүүсү. Ыкманы ачык-айкын кылуу эки иштетүүнү салыштыруунун жалгыз жолу.

Эки зонд, бир порт, ар башка код жолдору

SYN скандоо TCP аталышын өзү куруп, аны чийки сокеттен жөнөтөт жана ядронун TCP стек толукталган байланышты каттоодон мурун жоопту тармактан окуйт. connect скандоо операциялык системадан кадимки сокет ачууну сурайт жана connect() эмнени кайтарарын билдирет. Экөө тең портту ачык деп атай алат, бирок жарым ачык аракетти бирөө гана калтырат жана жөнөтүүчү процесске байланган сокет деңгээлиндеги саясатка бирөө гана баш ийет.

Чийки жолго CAP_NET_RAW керек, ошондуктан бул мүмкүнчүлүк жок болгондо демейки скандоо үнсүз начарлайт. Nmapтын өзүнүн скандоо техникалары боюнча колдонмосу ушул алмаштырууну документтештирет: connect скандоо камдык вариант, анткени ал эч кандай өзгөчө укукту талап кылбайт. Алмаштыруу көпчүлүк иштетүүлөрдө эскертүүсүз болот, ошондуктан аны туура эмес окуу оңой. Камдык вариант бар экенин билгенден кийин, «root катары ачык, колдонуучу катары жабык» деген укук катасына окшошпайт жана эки ар башка өлчөмгө окшошо баштайт.

sudo скандоодо чынында эмнени өзгөртөт

Укуктарды көтөрүү чийки сокет жолун калыбына келтирет, жана бул өкүмдөн көбүрөөк өзгөртөт. Баштапкы портту тандоо, пакеттердин убактысы, кайра жөнөтүү жүрүм-туруму жана чыпкаланган жоопту классификациялоо ыкмасы — баары башка коддон келет. SYN ылдамдыгын чектеген ортолук түзмөк максаттуу хост бирдей болсо да эки иштетүүгө тең эмес мамиле кылат.

Максат тараптагы журналдоо да айырмаланат. Аякталган кол кармашуу кызматка жана ар кандай сокет эсебине көрүнөт, ал эми кайра коюлган жарым ачык зонд көбүнчө көрүнбөйт. Эгер иштетүүлөрдү журналдарын өзүңүз да окуган хост менен салыштырсаңыз, көргөн айырмачылыктын бир бөлүгү — байкоонун өзү.

Эки иштетүүдө ыкманы туруктуу кармаңыз

Эки чакырууда тең эле техниканы мажбурлап колдонуңуз, ошондо салыштыруу мааниге ээ боло баштайт. -sT желеги connect скандоону ачык сурайт, -Pn хостторду аныктоону алып салат, -n аттарды чечүүнү алып салат, ал эми бир -p порт тизмесинин айырмачылыктарын алып салат.

nmap -sT -Pn -n -p 8443 198.51.100.77
sudo nmap -sT -Pn -n -p 8443 198.51.100.77

Дарек менен портту текшерүүгө укугуңуз бар хост менен алмаштырыңыз; жогорудагы документтик диапазон үлгү, максат эмес. Эгер эки иштетүү эми дал келсе, баштапкы айырма скандоо ыкмасынан келген. Эгер алар дагы эле дал келбесе, трафикти башка нерсе классификациялайт, жана кийинки бөлүм — кароо керек болгон жер.

Аккаунт контексти жөн гана укук желеги эмес

VPN жайгаштыруу пакеттерди UID боюнча, cgroup боюнча же сокетти ачкан процесске байланган эреже боюнча классификациялай алат. Анда root трафиги менен колдонуучу трафиги ар башка маршруттоо таблицаларынан чыгат же ар башка эрежелер топтомуна туш болот, жана скандоо ыкмасынын эч бир тартиби аларды элдештире албайт.

Укукту эмес, саясатты текшериңиз. Linuxта nftables муну meta skuid аркылуу, iptables ээсинин дал келиши аркылуу билдирет, жана экөөнүн кайсынысы болбосун бир UIDди туннелге жөнөтө алат, экинчиси физикалык демейки маршрутту колдонууну улантат.

sudo nft list ruleset | grep -n skuid
sudo iptables-save | grep -n uid-owner
ip rule show
ip route get 198.51.100.77

Жыйынтыктарды салыштырмастан мурун зондду ырастаңыз

Корутунду чыгаруудан мурун кайсы зонд иштегенин далилдеңиз. Nmap техниканы өз чыгымында атайт, ал эми --reason ар бир абалдын артындагы далилди кошот, жана дал ошол бөлүк кол кармашуу чын эле аяктаганын айтат.

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

Бир абалды ар башка себептер менен билдирген эки иштетүү карама-каршылык эмес, ал эми бир себеп менен ар башка абалдарды билдирген эки иштетүү скандоого эмес, маршруттоого же саясатка көрсөтөт. Максатты, портту, ат мейкиндигин жана убакытты бирдей кармаңыз, анан бир убакта бир өзгөрмөнү өзгөртүңүз. Кызматты root катары иштетүү саясат шайкешсиздигин оңдоо эмес; оңдоо — көздөлгөн саясатты кызматтын ээси аркылуу билдирүү.

Тектеш макалалар