Инструменты пользователя

Инструменты сайта


wiki:wg-proxy

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
wiki:wg-proxy [2025/08/12 23:06] adminwiki:wg-proxy [2025/08/13 20:18] (текущий) – [Настройка логики] admin
Строка 33: Строка 33:
 Генерируем публичный ключ на основе приватного: Генерируем публичный ключ на основе приватного:
 <code>wg pubkey < privatekey > publickey</code> <code>wg pubkey < privatekey > publickey</code>
 +или
 +<code>wg genkey | tee privatekey | wg pubkey > publickey</code>
  
 Конфиг шлюза: Конфиг шлюза:
Строка 47: Строка 49:
 PersistentKeepalive = 25 PersistentKeepalive = 25
 </code> </code>
 +
 +Тестируем туннель:
 +<code>wg-quick down wg0
 +wg-quick up wg0</code>
 +на обоих хостах
 +<code>wg</code>
 +чекаем latest handshake
 +
 +Если всё работает, то:
 +<code> systemctl enable wg-quick@wg0
 +systemctl start wg-quick@wg0</code>
 +
 +====== Настраиваем маршрутизацию для клиентов на шлюзе ======
 +
 +<code>echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/99-forward.conf</code>
 +
 +<code>iptables -t nat -A POSTROUTING -o wg0 -j MASQUERADE</code>
 +
 +Сохраняем конфиг. 
 +<code> apt install iptables-persistent</code>
 +Можно заребутиться для проверки. 
 +
 +Всё, в данный момент шлюз работает, гоняя всё через тоннель. Приступаем к настройке алгоритма, чтобы только указанные сайты шли через тоннель, по списку. 
 +
 +===== Настройка логики =====
 +<code>mkdir /etc/iproute2</code>
 +создаём таблицу маршрутизации
 +<code>echo 200 vpn >> /etc/iproute2/rt_tables</code>
 +добавляем маршрут по этой таблице
 +<code>ip route add default dev wg0 table vpn</code>
 +проверяем:
 +<code>#ip route show table vpn</code>
 +должно быть:
 +''default dev wg0 scope link''
 +
 +добавляем правило для пометки пакетов:
 +<code>iptables -t mangle -A PREROUTING -m set --match-set vpn_sites dst -j MARK --set-mark 42</code>
 +[[iptables_mangle| разбор команды]]
 +
 +добавляем правило, чтобы помеченные пакеты шли через таблицу vpn:
 +<code>ip rule add fwmark 42 table vpn</code>
 +
 +проверяем, что у нас за правила на mangle:
 +<code>sudo iptables -t mangle -L -v -n --line-numbers</code>
 +чтобы удалить дубликаты (если есть):
 +<code>iptables -t mangle -D POSTROUTING 2<code>
 +добавляем NAT для пакетов с меткой "42"
 +<code>iptables -t nat -A POSTROUTING -m mark --mark 42 -o wg0 -j MASQUERADE</code>
 +
 +теперь заполняем таблицу vpn айпишниками нужных сайтов.
 +<code>apt install dnsutils</code> (нам понадобится команда dig для извлечения всех ip из адреса)
 +<code>apt install ipset</code>
 +создаём [[parse_vpn_list|скрипт]] и список сайтов.
 +
 +
 +
 +
 +
 +
  
wiki/wg-proxy.1755039994.txt.gz · Последнее изменение: admin

DokuWiki Appliance - Powered by TurnKey Linux