Рейтинг:0

Как создать переключатель отключения VPN для PrivateInternetAccess и Wireguard в ufw или iptables?

флаг cn

я использую коллекция скриптов ручного подключения из PrivateInternetAccess на моем безголовом сервере Ubuntu. Я запускаю сценарий установки в сервисном блоке, и мне нужно убедиться, что я не получаю доступ к чему-либо за пределами своей локальной сети при сбое Wireguard.

/etc/systemd/система/pia.service

[Ед. изм]
Description=PrivateInternetAccess (Wireguard, Швейцария)
After=network-online.target

[Оказание услуг]
Пользователь=убунту
Группа=убунту
ExecStart=/usr/bin/sudo PIA_USER=УДАЛЕНО PIA_PASS=УДАЛЕНО PIA_DNS=true PIA_PF=true DISABLE_IPV6=yes VPN_PROTOCOL=wireguard PREFERRED_REGION=swiss ./run_setup.sh
WorkingDirectory=/home/ubuntu/src/manual-connections

[Установить]
WantedBy=многопользовательская.цель

Журналы журнала:

PIA_USER=УДАЛЕНО

Получен ввод PIA_PASS.

Проверка учетных данных для входа... ОК!

PIA_TOKEN=УДАЛЕНО

Срок действия этого токена истекает через 24 часа, в среду, 24 ноября, 12:23:26 2021 года.

PIA_PF=истина

Переменная DISABLE_IPV6=yes, не начинается с 'n' для 'нет'.
По умолчанию да.

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

IPv6 был отключен, вы можете снова включить его с помощью:
sysctl -w net.ipv6.conf.all.disable_ipv6=0
sysctl -w net.ipv6.conf.default.disable_ipv6=0

AUTOCONNECT не был объявлен.

Ввод региона: швейцарский

Получение списка серверов... ОК!

Выбранный регион — Швейцария.

Скрипт нашел лучшие сервера из выбранного вами региона.
При подключении к IP (независимо от того, какой протокол) проверьте
сертификат SSL/TLS фактически содержит имя хоста, так что вы
уверены, что вы подключаетесь к защищенному серверу, проверенному
авторитет ПИА. Пожалуйста, найдите ниже список лучших IP-адресов и соответствующие
имена хостов для каждого протокола:
Метасервисы 212.102.37.176 - zurich402
WireGuard 212.102.37.187 - Цюрих402
OpenVPN TCP 212.102.37.187 - zurich402
OpenVPN UDP 212.102.37.187 - zurich402

Использование существующего токена УДАЛЕНО.

VPN_PROTOCOL=проводная защита

PIA_DNS=истина

Получение списка серверов... ОК!

Использование существующего токена УДАЛЕНО.

Скрипт ./get_region.sh начал работу с
VPN_PROTOCOL=wireguard, поэтому мы автоматически подключимся к WireGuard,
выполнив эту команду:
$ PIA_TOKEN=УДАЛЕНО \
WG_SERVER_IP=212.102.37.205 WG_HOSTNAME=Цюрих402 \
PIA_PF=true ./connect_to_wireguard_with_token.sh

Попытка подключиться к API PIA WireGuard по адресу 212.102.37.205...

Попытка отключить соединение PIA WG, если оно существует...
wg-quick: `pia' не является интерфейсом WireGuard

Пытаюсь настроить DNS на 10.0.0.243. Если у вас нет resolvconf,
эта операция завершится неудачно, и вы не получите VPN. Если у вас есть проблемы,
запустите этот скрипт без PIA_DNS.

Попытка написать /etc/wireguard/pia.conf... OK!

Пытаюсь создать интерфейс wireguard...
[#] ip-ссылка добавить wireguard типа pia
[#] wg setconf pia /dev/fd/63
[#] ip -4 адрес добавить 10.28.251.36 dev pia
[#] ip link set mtu 1420 up dev pia
[#] resolvconf -a tun.pia -m 0 -x
[#] wg set pia fwmark 51820
[#] ip -4 route add 0.0.0.0/0 dev pia table 51820
[#] правило ip -4 добавить не fwmark 51820 таблица 51820
[#] правило ip -4 добавить таблицу main submit_prefixlength 0
[#] sysctl -q net.ipv4.conf.all.src_valid_mark=1
[#] iptables-restore -n

Создан интерфейс WireGuard.

На этом этапе интернет должен работать через VPN.

Чтобы отключить VPN, запустите:

--> wg-quick down пиа <--

Этот скрипт запустился с PIA_PF=true.

Запуск перенаправления портов через 5...4...3...2...1...

Запустите процедуру включения переадресации портов, выполнив следующую команду:
$ PIA_TOKEN=УДАЛЕНО \
  PF_GATEWAY=212.102.37.205 \
  PF_HOSTNAME=Цюрих402 \
  ./port_forwarding.sh

Получение новой подписи... ОК!

Подпись УДАЛЕНА
Полезная нагрузка УДАЛЕНА

--> Порт 22419, срок его действия истекает 2022-01-25T00:25:25.06880542Z. <--

Пытаюсь привязать порт... ОК!
Перенаправленный порт 22419
Обновлено вторник, 23 ноября, 12:23:43 UTC 2021
Истекает во вторник, 25 января, 00:25:25 UTC 2022 г.

Этот скрипт должен оставаться активным, чтобы использовать переадресацию портов, и будет обновляться каждые 15 минут.

Я хотел бы иметь набор правил UFW для шлюза, описанного в журналах (при этом иметь доступ к любой из моих других машин в локальной сети). Я не могу понять, как. Я нашел несколько руководств, которые относятся только к OpenVPN, а не к новой версии Wireguard.

Аппаратное обеспечение: Raspberry Pi 3 Model B Plus Rev 1.3
ОС: Ubuntu 21.10 (GNU/Linux 5.13.0-1010-raspi aarch64)

ip ссылка показать

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    ссылка/петля 00:00:00:00:00:00 брд 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel состояние UP режим DEFAULT группа по умолчанию qlen 1000
    ссылка/эфир УДАЛЕНО brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    ссылка/эфир УДАЛЕНО brd ff:ff:ff:ff:ff:ff
4: pia: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    ссылка/нет

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.