Сире сканування 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. Якщо рукостискання не вдалося, запишіть локальний рядок помилки замість узагальнень про тунель. Тримайте нотатку про обсяг поруч із результатом, бо наступній людині треба знати, який метод його створив.