Дозвольте порт VPN у хмарній політиці, і рукостискання все одно може померти на інстансі: гість запускає власний фільтр і власне прив’язування слухача, і кожен із них може відкинути те, що схвалила хмара. Буває й навпаки, коли правило хоста дозволяє порт, а політика вище відкидає його першою. Два власники, два набори правил, один шлях пакета. Пройдіть його по порядку, замість того щоб гадати на найпідозрілішому рівні.

Почніть з краю і рухайтеся всередину

Порядок фіксований: публічна кінцева точка, інтерфейс ресурсу, приєднана хмарна політика, адреса гостя, слухач процесу, локальні правила входу. Кожен етап або пропускає пакет, або завершує розслідування, тому початок із гостьової системи втрачає найбільше часу.

Перенаправлений клієнтський трафік — окремий етап, який перевіряють після декапсуляції тунелю. Хмарний рівень бачить лише зовнішній тунель, тому може схвалити з’єднання і при цьому не мати жодного стосунку до запиту внутрішньої служби. Тунель, який з’єднується, але не досягає внутрішнього хоста, зазвичай указує на перенаправлення, а не на закритий порт.

Прочитайте хмарну політику, перш ніж торкатися гостьової системи

Підтвердьте правило входу для порту VPN, його протокол і діапазон джерела, що відповідає вашому тестовому клієнту. Перевірте також список контролю доступу підмережі: другий фільтр зі своїми правилами та значеннями за замовчуванням. Обидва мають дозволяти потік, перш ніж пакет дійде до інстансу. Дозвіл в одному і заборона в іншому — звичайна форма цієї помилки.

Звужуйте діапазон, доки він щось означає. Відкрити порт VPN для всього інтернету легко довести і важко захистити, а правило, прибите до однієї адреси, ламається, коли ваш тестовий клієнт змінює мережу. Запишіть ідентифікатор правила і власника політики, щоб наступну зміну можна було простежити до людини.

Підтвердьте слухача, потім ланцюжок входу

На інстансі перевірте, чи процес VPN прив’язаний до очікуваної адреси й порту, наприклад за допомогою ss -lntp 'sport = :1194'. Демон, прив’язаний лише до 127.0.0.1, приймає локальних клієнтів і нічого через тунель, а ззовні це виглядає точно як відфільтрований порт.

Потім прочитайте локальні правила в тому синтаксисі, який ви використали б для їх зміни, наприклад iptables -S INPUT або nft list chain inet filter input. Правило, записане у файл, але так і не завантажене, або відкидання за замовчуванням без відповідного дозволу тихо відкидає пакети. Для шлюзу з перенаправленням перевірте також налаштування перенаправлення й зворотного шляху. Саме вони вирішують, що відбувається з пакетами, маршрутизованими через інстанс, а не адресованими йому.

Зі станом на одному рівні, без стану на наступному

Групи безпеки пам’ятають дозволені ними потоки і впускають відповіді назад. Списки контролю доступу підмереж і багато міжмережевих екранів хоста такого стану не зберігають, тому правило, що охоплює лише вихідний напрямок, пропускає запит і відкидає відповідь. Ніколи не переносьте припущення про зворотний трафік між рівнями, не прочитавши правило другого рівня (second layer's rule).

Лічильники вирішують це швидше, ніж читання кожного правила в акаунті. Зростаючий лічильник означає, що пакет дійшов і був відкинутий там, а застиглий на нулі — що він туди так і не дістався; iptables -vnL INPUT і nft list ruleset показують ці числа, коли правила завантажені з лічильниками.

Перевіряйте новою сесією, а не живою

Залиште вихідну мережу й тестовий профіль незмінними, поки порівнюєте подання, і відкривайте нове з’єднання після кожної зміни. Доступ до вебконсолі на 443 нічого не каже про те, чи прив’язаний демон VPN до 1194, тому перевіряйте потрібний вам порт. Наявна сесія тут найгірший свідок. Вона продовжує працювати, поки кожен новий вхід відхиляється.

Перш ніж редагувати віддалену політику, забезпечте шлях повернення, що не залежить від шляху, який ви змінюєте. Потім відкрийте другу адміністративну сесію поруч із тестом VPN: та, що встановлена раніше, може пережити правило, яке блокує нові. Запишіть обох власників політик, щоб жодна перебудова не відновила половину шляху; якщо обидва рівні згодні, а тунель усе одно не працює, захопіть трафік на інтерфейсі гостя й перевірте адресу та порт, які клієнт справді використовує.

Схожі статті