Skip to main content

WireGuard VPN Client/Server

Настройка WireGuard VPN Клиент/Сервер                                                                                                
Установка VPN клиента
sudo apt install resolvconf -y
sudo apt install wireguard -y
sudo touch /etc/wireguard/wg0.conf && sudo chmod 600 -R /etc/wireguard/

Создание конфигурационного файла

sudo tee /etc/wireguard/wg0.conf << 'EOF'
[Interface]
PrivateKey = <>
Address = 10.8.0.3/24
DNS = 1.1.1.1

[Peer]
PublicKey = <>
PresharedKey = <>
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 0
Endpoint = x.x.x.x:51820
EOF

Значения PrivateKey, PublicKey, PresharedKey берутся из файла конфигурации, созданного средствами VPN сервера.

Запуск VPN клиента

sudo wg-quick up wg0

После запуска VPN клиента активируется сетевой интерфейс и у ВМ изменится IP адрес.
Мы потеряем текущее SSH подключение и к ВМ и нужно будет подключиться по локальному IP внутри VPN сети.

Проверка статуса VPN

sudo wg show

Отключение VPN канала

sudo wg-quick down wg0

Мы вновь потеряем текущее SSH подключение и к ВМ и нужно будет подключиться по публичному IP.

Установка wg-easy VPN Server Docker

Github Repo

Остановка/Удаление старых контейнеров/образов

docker stop wg-easy docker rm wg-easy docker pull ghcr.io/wg-easy/wg-easy docker rmi 

Генерация bcrypt hash для создания пароля к Web Интерфейсу

docker run -it ghcr.io/wg-easy/wg-easy wgpw Password
PASSWORD_HASH='<pass>'

Первичный запуск и преднастройка нового VPN сервера

docker run -d \
  --name=wg-easy \
  -e LANG=en \
  -e WG_HOST=x.x.x.x \
  -e PASSWORD_HASH='<pass>' \
  -e PORT=51821 \
  -e WG_PORT=51820 \
  -v ~/.wg-easy:/etc/wireguard \
  -p 51820:51820/udp \
  -p 51821:51821/tcp \
  --cap-add=NET_ADMIN \
  --cap-add=SYS_MODULE \
  --sysctl="net.ipv4.conf.all.src_valid_mark=1" \
  --sysctl="net.ipv4.ip_forward=1" \
  --restart unless-stopped \
  ghcr.io/wg-easy/wg-easy

Проверка корректности отправки docker скрипта и HASH-а пароля

docker inspect \
 --format "$(curl -s https://gist.githubusercontent.com/efrecon/8ce9c75d518b6eb863f667442d7bc679/raw/run.tpl)" \
 wg-easy

Расположение конфигурации клиентов

/home/xeon/.wg-easy/wg0.conf