Proxmox LXC Контейнер установка WireGuard VPN

Автор: | 23 февраля, 2023

WireGuard — коммуникационный протокол и бесплатное программное обеспечение с открытым исходным кодом, который реализует зашифрованные виртуальные частные сети (VPN).

Скачаем шаблон lxc

Нажимаем кнопку Create TC

Сопоставьте содержимое следующей команды «Container_ID» с трехзначным идентификационным номером вашего контейнера Linux, который вы только что создали.

nano /etc/pve/lxc/ Container_ID .conf
nano /etc/pve/lxc/102.conf

В самом низу файла добавьте эти две строчки:

lxc.cgroup.devices.allow: c 10:200 rwm 
lxc.mount.entry: /dev/net dev/net none bind,create=dir

Сохраните изменения (CTRL+S) и выйдите из редактора nano (CTRL+X).

Теперь нам еще нужно ввести права доступа для определенного каталога. Вы можете сделать это с помощью этой команды:

chown 100000:100000 /dev/net/tun
ls -l /dev/net/tun

Когда наш недавно настроенный контейнер запущен, пришло время нажать на кнопку консоли и начать настройку WiredGuard VPN, выполнив команды ниже.

apt update && apt upgrade -y

Теперь мы устанавливаем WireGuard, используя очень простой скрипт установки, который мы можем скачать и запустить с помощью следующей команды:

wget git.io/wireguard -O wireguard-install.sh && bash wireguard-install.sh
Welcome to this WireGuard road warrior installer!

This server is behind NAT. What is the public IPv4 address or hostname?
Public IPv4 address / hostname [79.123.45.67]: vpn.5house.win

What port should WireGuard listen to?
Port [51820]: 

Enter a name for the first client:
Name [client]: mobile1

Select a DNS server for the client:
   1) Current system resolvers
   2) Google
   3) 1.1.1.1
   4) OpenDNS
   5) Quad9
   6) AdGuard
DNS server [1]: 1

BoringTun will be installed to set up WireGuard in the system.
Should automatic updates be enabled for it? [Y/n]: y

WireGuard installation is ready to begin.
Press any key to continue...

Скрипт установки уже сделал большую часть работы за нас. Однако нам все еще нужно внести небольшую корректировку в файл конфигурации WireGuard, чтобы клиенты, подключенные к серверу, также могли правильно взаимодействовать (маршрутизация).

Сначала откройте файл с помощью редактора nano и добавьте следующие строки в сегмент [Interfaces]:

nano /etc/wireguard/wg0.conf

[Interfaces]
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

Сначала проверьте, правильно ли работает служба WireGuard. Для этого вы можете использовать следующую команду:

systemctl status wg-quick@wg0
* wg-quick@wg0.service - WireGuard via wg-quick(8) for wg0
     Loaded: loaded (/lib/systemd/system/wg-quick@.service; enabled; vendor preset: enabled)
    Drop-In: /etc/systemd/system/wg-quick@wg0.service.d
             `-boringtun.conf
     Active: active (exited) since Thu 2023-02-23 21:10:59 UTC; 1min 26s ago

Проверка открытых портов

ss -lntup
root@WireGuard:/tmp# ss -lntup
Netid  State   Recv-Q  Send-Q     Local Address:Port      Peer Address:Port  Process                                    
udp    UNCONN  0       0                0.0.0.0:51820          0.0.0.0:*                                                
udp    UNCONN  0       0          127.0.0.53%lo:53             0.0.0.0:*      users:(("systemd-resolve",pid=99,fd=13))  
udp    UNCONN  0       0                   [::]:51820             [::]:*                                                
tcp    LISTEN  0       4096       127.0.0.53%lo:53             0.0.0.0:*      users:(("systemd-resolve",pid=99,fd=14))  
tcp    LISTEN  0       100            127.0.0.1:25             0.0.0.0:*      users:(("master",pid=305,fd=13))          
tcp    LISTEN  0       4096                   *:22                   *:*      users:(("systemd",pid=1,fd=39))           
tcp    LISTEN  0       100                [::1]:25                [::]:*      users:(("master",pid=305,fd=14))     

Просмотр сетевых интерфейсов

ip a
wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
    link/none 
    inet 10.7.0.1/24 scope global wg0
       valid_lft forever preferred_lft forever

Первый клиент для WireGuard VPN был создан во время установки. В данном руководстве ему присвоено имя [client1]. Нам нужна отдельная конфигурация для каждого клиента, который должен быть подключен к VPN-серверу. Мы можем использовать скрипт установки, который мы загрузили ранее, чтобы создать больше клиентов.

Инструмент управления можно вызвать с помощью этой команды:

bash wireguard-install.sh

Создайте свой QR-код

qrencode -t ansiutf8 < /etc/wireguard/clients/mobile.conf

Для создания подключения к WireGuard на мобильном телефоне, открываем клиента WireGuard. Нажимаем синюю кнопку справа снизу и из открывшегося меню выбираем: Сканировать QR-код.

После добавления всех нужных профилей осталось лишь добавить сервер WireGuard в автозапуск и включить его:

systemctl enable wg-quick@wg0
systemctl start wg-quick@wg0
systemctl status wg-quick@wg0

https://www.wireguard.com/quickstart/

Как узнать внешний публичный IP-адрес в Linux

IP адреса в локальной сети должны находится в таких диапазонах:

От 192.168.0.0 до 192.168.255.255
От 10.0.0.0 до 10.255.255.255
От 172.16.0.0 до 172.31.255.255
От 100.64.0.0 до 100.127.255.255
Эти адреса зарезервированы для локальных сетей и в качестве публичных адресов использоваться не могут.

wget -qO-  ifconfig.me
curl ifconfig.me
curl ipinfo.io/ip
curl ipecho.net/plain
curl icanhazip.com
curl ipecho.net/plain
curl ident.me
curl api.ipify.org
traceroute 8.8.8.8
mtr 8.8.8.8

Динамический DNS (DDNS или Dyn DNS)

служба DNS, которая предоставляет возможность отображения доменных имен на IP-адреса. Т.е. можно одному веб-адресу указывать на изменяющийся IP-адрес. На практике это означает, что, если вы хотите удаленно подключиться к вашему ПК или настроить домашний веб-сервер, то динамический DNS — это один из самых простых способов настройки.

https://ydns.io/ Основанная в Германии, YDNS является провайдером freeDdynamic DNS, который запрашивает только ваш адрес электронной почты и пароль, прежде чем вы начнете использовать его. https://github.com/ydns/bash-updater https://www.duckdns.org/

Переадресация портов WireGuard из Интернета — в роутере

WireGuard с CMS https://www.firezone.dev/

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *