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

Намалюйте обидва потоки до редагування політики

Запишіть потоки рядками з джерелом, призначенням, протоколом і портом. На зовнішньому шляху джерело — це публічна адреса клієнта, а призначення — порт прослуховування шлюзу; Shorewall розглядає це як трафік з інтернету до міжмережевого екрана. На внутрішньому шляху джерело — діапазон адрес тунелю, а призначення — схвалена служба. Два рядки мають різних власників, навіть коли один адміністратор супроводжує обидва.

FlowZone relationshipWhat to constrain
Encrypted OpenVPN transportInternet to the firewall hostThe listener's actual protocol and port
Decrypted request to a LAN serviceVPN clients to the LAN zoneOne approved server and service
Decrypted request to the gatewayVPN clients to the firewall hostOnly the local services required
Request to another VPN clientVPN clients to VPN clientsDenied unless deliberately required

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

Призначте зону тунелю та охоплення інтерфейсу

Зона мандрівника оголошується в /etc/shorewall/zones, інтерфейс тунелю підключається в /etc/shorewall/interfaces, а зовнішнє з’єднання описується в /etc/shorewall/tunnels. Узгодьте синтаксис зі встановленим випуском, бо порядок стовпців і назви параметрів змінилися між основними версіями. Приклад порту з посібника не є причиною дозволяти порт, відмінний від того, на якому демон справді слухає. TCP і UDP не є взаємозамінними лише тому, що числа збігаються.

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

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

Дозвольте лише той шлях, який ви класифікували

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

Трафік між клієнтами потребує окремого рішення. client-to-client в OpenVPN і routeback у Shorewall обидва впливають на те, чи можуть клієнти досягати один одного, і жоден із них не слід вмикати лише заради роботи однієї програми в LAN. Вирішіть, де застосовується ізоляція, перш ніж її перевіряти.

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

Перевірте, а потім доведіть обидва шляхи

Перевірте конфігурацію перед будь-яким перезапуском і тримайте відкритою незалежну адміністративну сесію на випадок, якщо нова політика хибна.

shorewall check

Після чистої перевірки застосуйте конфігурацію й прочитайте, що завантажив Shorewall. Ці читання описують робочу політику, а не те, що нібито каже файл.

shorewall show zones
ip route get 192.168.10.20

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

Схожі статті