Пересилати все на один хост чи переписувати й порт?
Трансляція адреси й трансляція порту — окремі рішення. Прочитайте транслірований кінцевий пункт, перш ніж вирішувати, яка частина хоста VPN справді доступна.
Пересилання всього на ваш VPN-сервер може описувати два дуже різні правила. Одне змінює адресу призначення й зберігає вхідний порт; інше ще й переписує порт на одного-єдиного слухача. Експозиція не однакова, і рішення залежить від трьох умов, а не від напису, який використовує інтерфейс маршрутизатора.
Умова перша: які поля змінює правило?
Трансляція адреси призначення й трансляція порту призначення — окремі операції. Правило може виконати лише першу або обидві разом, і різниця визначає, які служби на цільовому хості доступні. Більшість інтерфейсів виробників ховають цей вибір за одним написом. Читання основного правила — єдиний спосіб дізнатися, яке ви отримали.
Читайте фактичне правило, а не напис у меню. Екран із написом DMZ або всі порти описує намір, а не шлях пакета. Документація Netfilter NAT розділяє дві трансляції, і це правильна розумова модель, навіть коли маршрутизатор перед вами — споживчий пристрій.
Два поля, два різні питання.
Умова друга: що слухає на збережених портах?
Якщо правило зберігає вхідний порт, кожен прихідний порт доставляється на той самий номер на хості VPN, з урахуванням вхідної політики цього хоста. Це включає служби, про які ви, можливо, забули, що вони слухають. Правило не створювало цих служб, і тепер воно — шлях до них.
Якщо правило переписує порт, відбувається протилежне: багато зовнішніх портів згортаються на одного слухача, і ніщо інше на хості через це правило не доступне. Перезапис на фіксований порт не стає доступом до кожної локальної служби лише тому, що з ним збігся широкий діапазон зовнішніх портів. Два рішення відмовляють у різних напрямках, і саме режим відмови ви обираєте. Виберіть той, з чиєю відмовою ви можете жити.
Проведіть інвентаризацію слухача, перш ніж вибирати.
Умова третя: наскільки широкий зовнішній вхід?
Публікація одного вибраного порту вужча за публікацію діапазону, і обидва варіанти вужчі за приймання всього. Зовнішня ширина й внутрішня трансляція — незалежні вибори, і більшість плутанини виникає, коли змінюють одне, описуючи інше.
Для звичайного входу VPN опублікуйте транспорт і слухача, які справді потрібні проєкту. Потім перегляньте ще три речі: фактичне відображення маршрутизатора, власні вхідні правила цільового хоста й те, чи публікує слухач IPv6 ту саму службу. Правило, яке виглядає вузьким в одній родині адрес, може бути широким в іншій.
Запишіть транслірований кінцевий пункт повністю: протокол, зовнішній порт, внутрішня адреса, внутрішній порт.
Чого не дає жодне з правил
Жодне з двох рішень не доводить, що служба вільна від уразливостей, і жодне не захищає доступність. Автентифікація, оновлення й відновлення залишаються в області охоплення незалежно від того, наскільки вузьке відображення портів. Вузьке відображення зменшує досяжну поверхню; воно не робить слухача безпечним.
Широке правило, яке вже підтримує іншу законну службу, — це залежність, а не просто помилка. Проведіть його інвентаризацію й замініть його через власника, перш ніж видаляти, інакше зміна виглядатиме як збій, спричинений виправленням безпеки. Та сама обережність стосується перезапису на фіксований порт, на який щось інше тихо покладається.
Аналіз експозиції — про те, що чого може досягти, а не про напис на екрані.
Вирішуйте, тримаючи транслірований кінцевий пункт у руках
Запишіть результат правила як речення: публічний порт UDP X досягає адреси Y, порт Z. Потім запитайте, які служби на Y можуть відповісти на Z і кому вони належать.
nft list ruleset
Якщо відповідь — той єдиний слухач, який ви задумали, правило робить свою роботу.
Якщо відповідь — кілька, ви вибрали пересилання на весь хост, незалежно від того, чи називав це так інтерфейс.