Будем устанавливать WireGuard на сервер и настраивать клиента. Сервер ubuntu 22.04, клиент manjaro linux.
Серверная часть
Обновляем пакеты
apt update && apt upgrade -y
Устанавливаем wireguard
apt install -y wireguard
Перейдем для удобства в настройки wireguard
cd /etc/wireguard
Генерируем приватный и публичный ключ wiregurd
wg genkey | tee /etc/wireguard/private.key | wg pubkey | tee /etc/wireguard/public.key
Команда
teeпринимает данные, записывает их в файл и отправляет их дальше в stdout. Таким образом у нас создадутся 2 файла private.key и public.key с ключами.
Создаем файл с конфигурацией
vim wg0.conf со следующим содержимым:
[Interface]
PrivateKey = <Приватный ключ сервера из файла private.key>
Address = 10.0.0.1/24 # Внутренний IP сервера
ListenPort = 51820 # Порт для подключения
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
#[Peer]
#PublicKey = < Публичный ключ клиента 1>
#AllowedIPs = 10.0.0.2/32
#[Peer]
#PublicKey = < Публичный ключ клиента 2>
#AllowedIPs = 10.0.0.3/32
В этот файл мы должны вставить приватный ключ из private.key. Адрес 10.0.0.1/24 будет для сервера. Сервер будет доступен по этому адресу. Также у нас есть 2 клинта с адресами 10.0.0.3 и 10.0.0.2. Пока все что относится к клиентам закоментировано.
Настройка проброски портов
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
Проверка sysctl -p должна вывести net.ipv4.ip_forward=1
Создаем службу wireguard
systemctl enable wg-quick@wg0
После успешного создания стартуем
systemctl start wg-quick@wg0
Проверяем статус
systemctl status wg-quick@wg0
Начинаем добавлять клиентские ключи
wg genkey | tee /etc/wireguard/client1_private.key | wg pubkey | tee /etc/wireguard/client1_public.key
wg genkey | tee /etc/wireguard/client2_private.key | wg pubkey | tee /etc/wireguard/client2_public.key
Раскомментируем в файле wg0.conf и вставим ключи из client1_public.key и client2_public.key
[Peer]
PublicKey = < Публичный ключ клиента 1>
AllowedIPs = 10.0.0.2/32
[Peer]
PublicKey = < Публичный ключ клиента 2>
AllowedIPs = 10.0.0.3/32
Рестарт wireguard
systemctl restart wg-quick@wg0
На этом настройка сервера закончена. Приступаем к клиенту.
Клиентская часть
Создаем конфигурационный файл для клиента wireguard wg_client1.conf
[Interface]
PrivateKey = <Приватный ключ клиента 1>
Address = 10.0.0.2/32
DNS = 8.8.8.8
[Peer]
PublicKey = <Публичный ключ сервера>
Endpoint = <публичный адрес сервера>:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 20
Создаем конфигурационный файл для клиента wireguard wg_client2.conf
[Interface]
PrivateKey = <Приватный ключ клиента 1>
Address = 10.0.0.3/32
DNS = 8.8.8.8
[Peer]
PublicKey = <Публичный ключ сервера>
Endpoint = <публичный адрес сервера>:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 20
Для запуска можно использовать любые клиенты для android, windows, linux. Для запустка в linux manjaro устанавливаем клиента
sudo pacman -S wireguard-tools
Копируем конфигурационныe файлы
sudo cp wg_client1.conf /etc/wirequard/client1.conf
sudo cp wg_client2.conf /etc/wirequard/client2.conf
Запускаем клиента
sudo wg-quick up client1 или sudo wg-quick up client2
Останавливаем
sudo wg-quick down client1
Top comments (0)