Використання WireGuard із захистом доступу до Інтернету
Проблема
Припустимо, захист доступу до Інтернету (WAP) використовується разом із WireGuard (з використанням утиліти wg-quick у командному рядку або як служба). У такому разі підключення до Інтернету може бути втрачено, якщо ввімкнуто обидва інтерфейси (WAP і WireGuard). Це спричинено правилом, яке додається в nftables утилітою wg-quick, коли відкривається інтерфейс. Припустимо, що є інтерфейс wg0 з IP-адресою 10.10.10.2. Правило додається в таблицю wg-quick-wg0, у блок chain preraw; воно має такий вигляд:
iifname != "wg0" ip daddr 10.10.10.2 fib saddr type != local drop |
Це правило забезпечує певний рівень захисту від виникнення проблем конфігурації, а також від шкідливих пакетів.
Вирішення проблеми
У системі, яку налаштовано й захищено належним чином, правило nftables є необов’язковим. Щоб вирішити проблеми з підключенням, налаштуйте wg-quick так, щоб це правило не діяло. Наприклад, можна відредагувати файл конфігурації відповідного інтерфейсу. У розділі [Interface] додайте таку дію PostUp:
PostUp = nft flush chain wg-quick-wg0 preraw |
Зверніть увагу, що ім’я wg-quick-wg0 застосовується лише до інтерфейсу “wg0” і має бути відповідним чином змінено для інших інтерфейсів. Якщо вам потрібно отримати певний рівень захисту, ви можете замінити правило на слабкіше, наприклад таке:
PostUp = nft flush chain wg-quick-wg0 preraw; nft 'add rule wg-quick-wg0 preraw iifname != "wg0" iif != "lo" ip daddr 10.10.10.2 fib saddr type != local drop' |
Пам’ятайте, що всі згадки wg0 необхідно оновлювати після зміни імені інтерфейсу з wg0. Крім того, необхідно оновити IP-адресу, якщо адреса 10.10.10.2 вже не використовується.