Хадавы скан Nmap не працуе праз VPN, але злучэнне -sT працуе?
Хадавое сканаванне пакетаў і звычайнае TCP-злучэнне патрабуюць розных прывілеяў. Спачатку выканайце праверку злучэння, прачытайце кожны сцяг літаральна, потым спыніцеся на выніку.
Старонка загружаецца праз тунель, а сканаванне партоў паведамляе, што хост недаступны, і першая думка — што VPN нешта блакуе. Звычайна ён не блакуе нічога новага. Два тэсты патрабуюць ад аперацыйнай сістэмы розных магчымасцей, і толькі аднаму з іх патрэбны хадавы доступ да пакетаў. Вызначце, якая магчымасць адмовіла, перш чым чапаць тунель.
Аддзяліце магчымасць ад тунеля
Звычайная праграма просіць ядро адкрыць TCP-злучэнне, і ядро выконвае рукапацісканне без адмысловых прывілеяў. Хадавое сканаванне само будуе пакеты, а для гэтага патрэбны хадавы сокет або драйвер перахопу ў залежнасці ад платформы. Гэта пытанні дазволаў і драйвераў, і яны існуюць незалежна ад таго, ці падключаны VPN.
Гэтае адрозненне тлумачыць звычайную асіметрыю. curl спраўляецца, бо шлях сокета працуе, а скан SYN не працуе, бо працэс не можа адкрыць хадавы сокет на інтэрфейсе тунеля. Яно таксама тлумачыць адваротны выпадак, калі хадавое сканаванне паведамляе пра фільтраванне, бо шлях скідвае спробу, а шлях праграмы застаецца добрым.
Ні адзін з вынікаў не апісвае аддаленую службу. Абодва апісваюць адзін шлях пры адным метадзе, таму трымайце метад прывязаным да высновы.
Выканайце праверку злучэння на адным дазволеным хосце
Выберыце адзіны хост, які ахоплівае ваша задача, затым выкарыстайце рэжым, якому не патрэбны хадавы доступ. Прыклад мэты тут — 198.51.100.24, прастора дакументацыі, зарэзерваваная для такога ілюстравання.
Адзін радок, адзін хост, адзін порт, без этапу выяўлення:
nmap -sT -Pn -p 443 --unprivileged 198.51.100.24-sT выбірае поўнае TCP-злучэнне, таму ён праходзіць той жа шлях ядра, што і праграма, і не патрабуе драйвера перахопу. -Pn прапускае выяўленне хоста; nmap усё ящэ выконвае развязанне канальнага ўзроўню для мэт у лакальным сегменце, так што сцяг не абяцае нулявога папярэдняга трафіку. --unprivileged кажа nmap меркаваць, што ў яго няма правоў на хадавыя пакеты або перахоп, што змяняе метад і нічога не дае.
Чытайце кожны сцяг як адно змяненне, а не як рамонт
Успрымайце кожную опцыю як сцвярджэнне пра метад. Ні -sT, ні -Pn, ні --unprivileged не дадае маршрут, не адкрывае аддалены файрвол і не правярае сертыфікат. Сканаванне злучэння таксама завяршае сапраўднае рукапацісканне, якое служба запісвае, таму дазволеная праверка і недазволенае прачынанне выглядаюць з боку сервера аднолькава, акрамя абсягу і тэмпу. Награмаджванне опцый, пакуль вынік не зменіцца, — гэта спосаб запісаць праблему метаду як сеткавую знаходку.
Калі вынік кажа «закрыта», нешта адказала скідам, і гэта іншая знаходка, чым цішыня. Калі вынік кажа «фільтруецца», прылада скінула спробу або яе адказ, і VPN можа быць выпадковым. Запішыце дакладную фармулёўку, бо вырак этапу выяўлення і збой на ўзроўні спробы паказваюць на розныя пласты.
Калі прывілеяваны рэжым сапраўды патрэбны, уладальнік платформы вырашае, ці падтрымліваюцца прывілей, драйвер і схема інтэрфейсаў. Павышэнне таго ж выкліку не змяняе яго метад.
Спыніцеся на транспартным выніку, потым праверце службу
Завершанае рукапацісканне адказвае на адно пытанне пра адзін адрас, порт, крыніцу і момант. Яно не даказвае, што бэкенд здаровы, бо балансіроўшчык навантажэння або прамы проксі можа прыняць злучэнне, пакуль праграма за ім не працуе.
Дапаўніце гэта ўласным кліентам службы, каб ідэнтычнасць TLS і паводзіны праграмы назіраліся як асобныя факты:
openssl s_client -connect 198.51.100.24:443 -servername staging.example.net </dev/null 2>/dev/null | openssl x509 -noout -subject -dates
curl -sS -o /dev/null -w '%{http_code}\n' https://staging.example.net/healthЯшчэ адна звычка робіць вынік карысным. Запішыце дакладную каманду, крынічны адрас, які яна выкарыстала, і час, бо транспартны вынік без гэтага кантэксту немагчыма ўзнавіць або параўнаць.
Калі сертыфікат называе хост, якога вы не чакалі, транспарт працаваў і маршрутызацыя ніколі не была праблемай; збой у віртуальным хостынгу або DNS. Калі рукапацісканне не ўдалося, запішыце лакальны радок памылкі замест абагульненняў пра тунель. Трымайце нататку пра абсяг побач з вынікам, бо наступнаму чалавеку трэба ведаць, які метад яго даў.