Установка AmneziaWG на сервер Debian 12 Bookworm
Введение
ДАННАЯ СТАТЬЯ НЕ РАССКАЗЫВАЕТ О СПОСОБАХ ОБХОДА БЛОКИРОВОК К ЗАПРЕЩЕННЫМ РЕСУРСАМ В КАКОЙ ЛИБО ИЗ СТРАН. АВТОР НИКАК НЕ ПОДРАЗУМЕВАЕТ ИСПОЛЬЗОВАНИЕ ТЕХНОЛОГИЙ, ОПИСАННЫХ В СТАТЬЕ, В КАЧЕСТВЕ СПОСОБА ОБХОДА БЛОКИРОВОК ЗАПРЕЩЕННЫХ РЕСУРСОВ. ЦЕЛЬ СТАТЬИ - РАССКАЗАТЬ О СПОСОБЕ ЗАЩИТЫ СОЕДИНЕНИЯ.
Доброго времени суток, дорогой читатель. Если ты здесь, то наверняка ты ищешь информацию про Wireguard, Amnezia, ну и в частности про AmneziaWG (далее AWG), пропатченный Wireguard, который работает в условиях DPI.
Использование AWG актуально в построении виртуальных частных сетей между устройствами. В этой статье я расскажу про то, как поднять сервер AWG на Debian 12 “Bookworm”.
Установка
Прежде всего нам понадобится добавить репозиторий с AWG в sources.list
пакетного менеджера apt
.
Для этого нам понадобится установить несколько пакетов:
1
sudo apt install -y software-properties-common python3-launchpadlib gnupg2 linux-headers-$(uname -r)
Теперь добавим ключ Ubuntu в apt
, так как репозиторий с AWG находится в сервисе Launchpad:
1
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 57290828
Добавляем репозиторий в sources.list
:
1
2
echo "deb https://ppa.launchpadcontent.net/amnezia/ppa/ubuntu focal main" | sudo tee -a /etc/apt/sources.list
echo "deb-src https://ppa.launchpadcontent.net/amnezia/ppa/ubuntu focal main" | sudo tee -a /etc/apt/sources.list
Обновляем репозитории и устанавливаем AWG:
1
2
sudo apt-get update
sudo apt-get install -y amneziawg amneziawg-tools
На данный момент установку можно считать завершенной.
Настройка
Люди, которые уже настраивали Wireguard сейчас ощутят чувство дежавю, ведь AWG является форком Wireguard, поэтому в целом настройка AWG во многом схожа, но я все равно распишу всё полностью, чтобы у вас не возникло проблем.
Файлы конфигурации AWG хранятся в директории /etc/amnezia/amneziawg
. Давайте начнем создавать файлы конфигурации. Для начала сгенерируем приватный и публичный ключ сервера.
1
2
sudo mkdir -p /etc/amnezia/amneziawg
wg genkey | sudo tee /etc/amnezia/amneziawg/privatekey | wg pubkey | sudo tee /etc/amnezia/amneziawg/publickey
После этого вы сможете посмотреть эти ключи и скопировать:
1
2
sudo cat /etc/amnezia/amneziawg/privatekey
sudo cat /etc/amnezia/amneziawg/publickey
Далее, давайте создадим файл конфигурации, используйте свой любимый текстовый редактор:
1
sudo nano /etc/amnezia/amneziawg/wg0.conf
Ну и давайте наконец настроим AWG:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[Interface]
Address = 10.0.8.1/24 # Подсеть, которая будет испол
ListenPort = 33733 # Порт сервера
PrivateKey = # Вместо этого комментария вставьте содержимое приватного ключа /etc/amnezia/amneziawg/privatekey
# Если вы хотите, чтобы через этот сервер можно было выходить в Интернет, раскомментируйте следующие строчки и вместо interface_name впишите название интерфейса, через который ваш сервер выходит в Интернет
#PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
#PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE
# Далее идет список специальных настроек "мусора", добавленных в AWG
Jc = # Количество мусорных пакетов, рекомендуется число от 3 до 10 включительно
Jmin = 50 # Минимальный размер мусорного пакета, рекомендованно значение 50
Jmax = 1000 # Максимальный размер мусорного пакета, рекомендовано значение 1000
S1 = # Начальный размер мусорного пакета, рекомендовано число от 15 до 150 включительно
S2 = # Размер ответного мусорного пакета, рекомендовано число от 15 до 150 включительно
# Разработчки AWG утверждают, что значения, при которых S1 + 56 = S2 не рекомендуются
# Следующие H1/H2/H3/H4 НЕ ДОЛЖНЫ БЫТЬ ОДИНАКОВЫМИ, это должны быть случайные числа от 5 до 2147483647
H1 = # Заголовок пакета инициализации
H2 = # Заголовок пакета ответа
H3 = # Заголовок пакета под нагрузкой
H4 = # Заголовок транспортного пакета
# Типовая настройка пира
[Peer]
PublicKey = # Публичный ключ пира
AllowedIPs = 10.0.8.2/32
Замечу, что все настройки мусора (кроме Jc) должны быть одинаковыми на всех пирах!
Примечание: для того чтобы был доступ в интернет внутри сети, нужно включить IP Forwarding, как это сделать, вы можете посмотреть здесь.
Запуск
К сожалению AWG не обладает интеграцию с systemd
, поэтому нам придется сделать её самостоятельно:
1
sudo nano /etc/systemd/system/awg-quick@.service
И вставим следующее содержимое:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[Unit]
Description=WireGuard via awg-quick(8) for %I
After=network-online.target nss-lookup.target
Wants=network-online.target nss-lookup.target
Documentation=man:awg-quick(8)
Documentation=man:awg(8)
Documentation=https://www.wireguard.com/
Documentation=https://www.wireguard.com/quickstart/
Documentation=https://git.zx2c4.com/wireguard-tools/about/src/man/wg-quick.8
Documentation=https://git.zx2c4.com/wireguard-tools/about/src/man/wg.8
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/awg-quick up %i
ExecStop=/usr/bin/awg-quick down %i
ExecReload=/bin/bash -c 'exec /usr/bin/awg syncconf %i <(exec /usr/bin/awg-quick strip %i)'
Environment=WG_ENDPOINT_RESOLUTION_RETRIES=infinity
[Install]
WantedBy=multi-user.target
Перезагрузим демон systemd
:
1
sudo systemctl daemon-reload
И наконец запустим:
1
sudo systemctl start awg-quick@wg0.service
После запуска можно проверить статус сервиса:
1
sudo systemctl status awg-quick@wg0.service
Ну и проверить наличие интерфейса Wireguard:
1
ip a
Заключение
На этом я завершаю эту статью. Если у вас возникли вопросы, вы можете оставить в комментариях, возможно я их прочитаю.
Comments powered by Disqus.