====== Установка и настройка WG сервера ======

  - <code bash>sudo apt update && sudo apt upgrade</code>
  - <code bash>sudo sh -c "echo 'deb http://deb.debian.org/debian $(lsb_release -cs)-backports main contrib non-free' > /etc/apt/sources.list.d/$(lsb_release -cs)-backports.list" && sudo apt update</code>
  - <code bash>sudo apt install wireguard</code>
  - Проверим, как все прошло: <code bash>sudo modprobe wireguard</code> Если ничего не выводит - значит все хорошо. Если будет ошибка на подобии этой: <code bash>modprobe: FATAL: Module wireguard not found in directory /lib/modules/4.19.0-12-686</code> Тогда доставим заголовки: <code bash>sudo apt install linux-headers-$(uname --kernel-release)</code>
  - <code bash>sudo nano /etc/sysctl.conf</code> <code bash>net.ipv4.ip_forward = 1
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.all.forwarding = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0</code>
  - Затем необходимо выполнить команду sysctl -p чтобы система перечитала конфигурацию: <code bash>sudo sysctl -p</code>
  - Для сервера надо создать приватный и публичный ключ. Эти ключи, потом надо будет записать в конфигурационный файл сервера и клиента, сами файлы ключей вам не нужны, поэтому можете создавать их где хотите, например, в домашней папке: <code bash>wg genkey | tee server.private.key && wg pubkey < server.private.key > server.public.key</code>
  - Аналогичным образом создаём ключи для клиента. Команда та же: <code bash>wg genkey | sudo tee client.private.key | wg pubkey | sudo tee client.public.key</code>
  - <code bash>sudo nano /etc/wireguard/wg0.conf</code> <code bash>[Interface]
# Server address inside wg network
Address = 10.0.0.1/24,fd42:42:42::1/64
ListenPort = 63665
# Server private key
PrivateKey = OFCMMpdPYUTndTkTuCDCZDg6uYrzGcjcL6Tg4aAp5kU=
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o enp0s8 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o enp0s8 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o enp0s8 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o enp0s8 -j MASQUERADE
[Peer]
# Client public key
PublicKey = 2g8MWhxN1QGLAfGwEnxHG38/krdcPbgjo87zSKurP1g=
# Client address inside wg network
AllowedIPs = 10.0.0.2/32,fd42:42:42::2/128</code>
  - Для запуска сервера используйте такую команду: <code bash>sudo wg-quick up wg0</code> Для остановки выполняем: <code bash>sudo wg-quick down wg0</code> С помощью systemd можно настроить автозагрузку сервиса: <code bash>sudo systemctl enable wg-quick@wg0</code>