Допустим, что у вас есть роутер, который не поддерживает Amnezia протокол, а вам необходимо пустить часть домашнего трафика через VPN соединение. Эту задачу можно решить, подняв в вашей сети хост с Amnezia клиентом и передавая трафик через него.
Итак дано:
Почему мы выбираем Debian? Он стабилен, быстр и потребляет мало ресурсов. Нам хватит хоста с 1 vCPU и 738 МБ RAM (можно даже с 512, но это будет в притык). В примере ниже будет использоваться Debian 13, т.к. это последняя поддерживаемая на данный момент версия ОС. Скачать ISO образ можно с официального сайта.
План сетапа таков:
Для начала установим зависимости:
apt update
apt install libxcb-cursor0 libxcb-xinerama0 libxcb-icccm4 libxcb-keysyms1 libopengl0
apt install -y python3-launchpadlib gnupg2 linux-headers-$(uname -r) Затем, добавим ключ keyserver.ubuntu.com и репозиторий ppa, т.к. родных пакетов для Debian нет.
TMP_DIR=$(mktemp -d)
gpg --homedir "$TMP_DIR" --keyserver hkps://keyserver.ubuntu.com --recv-keys 57290828
gpg --homedir "$TMP_DIR" --export --export-options export-minimal 57290828 | tee /etc/apt/keyrings/amnezia.gpg > /dev/null
rm -rf "$TMP_DIR"
chmod 644 /etc/apt/keyrings/amnezia.gpg
echo "deb [signed-by=/etc/apt/keyrings/amnezia.gpg] https://ppa.launchpadcontent.net/amnezia/ppa/ubuntu noble main" | tee -a /etc/apt/sources.list.d/amnezia.list echo "deb [signed-by=/etc/apt/keyrings/amnezia.gpg] https://ppa.launchpadcontent.net/amnezia/ppa/ubuntu jammy main" | tee /etc/apt/sources.list.d/amnezia.list Установим пакеты awg и зависимости:
apt update
apt search amnezia
apt-get install -y amneziawg amneziawg-tools resolvconf iptables curl Включим маршрутизацию на уровне ядра и создадим клиента:
sysctl -w net.ipv4.ip_forward=1
mkdir -p /etc/amnezia/amneziawg
nano /etc/amnezia/amneziawg/awg0.conf
awg-quick up awg0 В файл etc/amnezia/amneziawg/awg0.conf необходимо положить конфигурацию awg клиента, которую вы получили с сервера awg.
Если вы не хотите пускать весь трафик через awg на данном хосте, то в awg0.conf в поле AllowedIPs необходимо указать список хостов и сетей, которые будут маршрутизироваться через сетевой адаптер awg0.
В общем случае ваш файл должен иметь такую структуру (все поля необходимо заполнить значениями):
[Interface]
PrivateKey =
Address =
DNS =
MTU =
Jc =
Jmin =
Jmax =
S1 =
S2 =
S3 =
S4 =
H1 =
H2 =
H3 =
H4 =
[Peer]
PublicKey =
PresharedKey =
Endpoint =
AllowedIPs = 5.28.192.0/21, 91.105.192.0/23, 91.108.4.0/16, 149.154.160.0/20, 149.154.164.0/22, 34.160.111.145/32, ::/0
PersistentKeepalive = Приведен пример с маршрутизацией только telegram серверов.
Когда мы выполняем команду awg-quick up, то запускает скрипт, который создает сетевой адаптер awg0 и добавляет маршруты в таблицу маршрутизации. Вручную это делать не требуется. Ниже пример успешного запуска скрипта:
Проверить состояние адаптера можно командой: ifconfig awg0, а таблицу маршрутов командой ip route.
Обратите внимание, что в случае перезагрузки хоста, адаптер не поднимется автоматически. Для включения этой возможности, необходимо настроить службу systemd (в имени службы после @ указывается актуальное имя сетевого адаптера):
systemctl enable awg-quick@awg0 Второй момент, который надо учесть — если вы оставите конфигурацию AllowedIPs клиента по-умолчанию, то после подключения, вы потеряете доступ к хосту по ssh. Надо исключать подсети, с которых вы будете подключаться к хосту для его администрирования.
Теперь у нас есть хост с поднятым amneziawg клиентом. Необходимо роутить на него только избранный трафик. Для этого в Mikrotik делаем L7 маршрутизацию по спискам.
chain = prerouting
dst. address list = VPN-AWG-DE (тот, что создали в п.1)
in interface = bridge
action = mark routing
new routing mark = to-awg (тот, что создали в п.2) Routing -> Tables создаем новую таблицу маршрутизации и указываем ту метку, что создали в пункте 2. У меня это to-awg.IP -> Routes создаем статическую запись для той таблицы, которую. мы только что сделали (в моем случае to-awg) и указываем статический IP хоста Debian (192.168.88.45 в моем примере).DST address может быть как 0.0.0.0 (и тогда мы руководствуемся адресными списками выше, ^1031 указывает на номер такого списка, у меня их несколько; между собой списки для 0.0.0.0 ранжируются по полю Distance 1 = высший приоритет) так и просто статическим адресом назначения (то, что идет через список main):В примере выше через таблицу to-awg на debian пойдут хосты, которые указаны в списке VPN-AWG-DEи также статически прописаны в таблице маршрутов (8.6.112.0/24).
Когда вы создали VM WSL, то по умолчанию, её диск создается по пути C:\Users\%UserName%\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu24.04LTS_*\LocalState\ext4.vhdx где…
Файл гибернации hyberfil.sys в Windows переместить нельзя, он всегда находится в корне системного диска и…
Разберу процесс загрузки компьютера с установленной Astra Linux по шагам - от включения питания до появления рабочего стола. Шаг 1. Включение питания и инициализация аппаратного обеспечения При нажатии кнопки питания: блок питания подаёт напряжение на компоненты компьютера; процессор выполняет код из микросхемы BIOS/UEFI; BIOS/UEFI проводит самотестирование POST (Power‑On Self‑Test): проверяет работоспособность процессора, памяти, видеоадаптера и других ключевых устройств; после успешного POST BIOS/UEFI ищет устройство для загрузки (согласно приоритету в настройках). Шаг 2. Поиск и запуск загрузчика BIOS/UEFI обращается к жёсткому диску (или другому заданному устройству) и читает…
В предыдущей статье мы рассмотрели, какие встречаются схемы питания в компьютерной технике в целом, а…
В статье рассмотрим, какие бывают схемы питания в материнских платах различных устройств: компьютеров, ноутбуков, планшетов,…
Сегодня в ремонте у нас программируемый терморегулятор теплого пола AC603H c Wi-Fi. Интересно, что одновременно…