Установка серверной части AmneziaWG на Ubuntu/Debian VPS

В прошлой статье мы разобрали, как AmneziaWG обманывает DPI с помощью шумовых пакетов, мимикрии под QUIC и шифрования заголовков. Теперь — практика. Будем поднимать сервер. Хорошая новость: вам не нужен мощный VPS. AmneziaWG работает на модуле ядра Linux, а значит, потребляет минимум ресурсов. Хватит самого дешёвого сервера за 2–4 $ в месяц с 1 vCPU и 512 МБ ОЗУ. Если планируете подключать много клиентов или гонять 4K-видео — берите 1 ГБ ОЗУ для комфорта. Что понадобится VPS с Ubuntu 24.04 LTS, Ubuntu 22.04 или Debian 12/13. Поддерживаются и другие версии, но на этих всё проверено. Доступ по SSH с правами root (или sudo). 2 ГБ свободного места на диске — минимум. Лучше 3+. 15–20 минут времени. 💡 Важно: В отличие от Marzban, для AmneziaWG не нужен домен, SSL-сертификат или reverse-proxy. Сервер работает на уровне ядра и общается с клиентами напрямую по UDP. Это одновременно и проще, и безопаснее — меньше поверхности для атаки. Шаг 1. Подготовка сервера ...

🛡️ UFW: Ваш личный телохранитель в мире цифрового хаоса

 Вы когда-нибудь задумывались, сколько раз за день кто-то пытается постучаться в ваш сервер? Спойлер: намного больше, чем вы думаете.


🤔 Вместо введения: что такое брандмауэр и зачем он вам?

Представьте, что ваш сервер — это дом. В нём живут важные данные, работают сервисы, общаются пользователи. И каждую секунду кто-то пытается открыть дверь — проверить, не оставили ли вы её незапертой.

Брандмауэр — это дверной замок. Только умный.

Он решает, кому входить, а кому оставаться за порогом. И если в реальной жизни вы сами решаете, открывать ли дверь незнакомцу, то в цифровом мире этим занимается брандмауэр. UFW — это тот самый замок, который не требует от вас быть дипломированным слесарем, чтобы его настроить.


📜 Немного истории: почему UFW вообще появился?

В далёком 1998 году, когда интернет был медленным, а хакеры — редкими, управлять брандмауэром в Linux могли только избранные. Всё потому, что использовался iptables — мощнейший, но невероятно сложный инструмент.

Чтобы просто открыть порт для SSH, нужно было вводить команду на несколько строк:

sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

sudo iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT

И это только для одного порта. А если нужно было открыть веб-сервер, почту, базу данных? Готовьтесь к многочасовым ритуалам с магией командной строки.

Разработчики Ubuntu посмотрели на это и сказали: «Эй, а давайте сделаем что-то простое!» Так в 2012 году, с выходом Ubuntu 12.04, появился Uncomplicated Firewall — «Несложный брандмауэр». Главная философия проекта: предоставить пользователю понятный интерфейс, не требующий глубоких знаний синтаксиса.

И знаете что? У них получилось. Сегодня одна команда sudo ufw allow ssh заменяет две громоздкие строки iptables.


🧠 Как UFW устроен изнутри?

UFW — это не самостоятельный брандмауэр. Это надстройка (или, если хотите, «обёртка») над iptables и Netfilter — ядром Linux, которое реально фильтрует трафик.

Простая аналогия:

  • Netfilter — это сам закон.
  • iptables — это сложный юридический кодекс на 1000 страниц.
  • UFW — это краткая памятка с простыми правилами.

Когда вы вводите sudo ufw allow 80, UFW «переводит» эту команду на язык iptables и передаёт ядру. Всё остальное происходит за кулисами. Вы просто говорите, чего хотите, а UFW делает это за вас.


🚀 Первые шаги: настройка UFW с нуля

Допустим, у вас есть свежий сервер. Он как новенькая квартира: двери открыты, окна распахнуты — все приглашаются. Это опасно.

Шаг 1. Проверяем статус

sudo ufw status

Скорее всего, вы увидите:

Status: inactive

Это значит, что брандмауэр выключен. Все порты открыты.

Шаг 2. Настраиваем базовые правила (самый важный момент!)

Перед тем как включить брандмауэр, нужно сказать ему, что делать. Иначе вы рискуете заблокировать самого себя — особенно если работаете по SSH на удалённом сервере.

Вот золотое правило: сначала разрешите SSH, только потом включайте брандмауэр.

# Разрешаем SSH (порт 22)

sudo ufw allow ssh

# или

sudo ufw allow 22

Теперь можно настраивать политику по умолчанию: запрещаем все входящие, разрешаем все исходящие.

sudo ufw default deny incoming

sudo ufw default allow outgoing

Это стандартная и безопасная политика. Исходящие соединения (например, когда ваш сервер сам скачивает обновления) не блокируются. А вот кто-то снаружи не сможет зайти без вашего разрешения.

Шаг 3. Включаем брандмауэр

sudo ufw enable

Вы увидите:

Firewall is active and enabled on system startup[reference:16]

Поздравляю! Ваш сервер теперь под защитой.

Шаг 4. Проверяем статус с деталями

sudo ufw status verbose

Вывод покажет что-то вроде:

Status: active

Logging: on (low)

Default: deny (incoming), allow (outgoing), deny (routed)

New profiles: skip

 

To                         Action      From

--                         ------      ----

22/tcp                     ALLOW       Anywhere


🎯 Практические примеры: открываем порты для сервисов

Теперь, когда брандмауэр включён, давайте научимся открывать порты. UFW делает это настолько просто, что вы удивитесь.

🔓 Самые частые сценарии

SSH (порт 22) — удалённое управление сервером:

sudo ufw allow ssh

# или через порт

sudo ufw allow 22/tcp

HTTP (порт 80) и HTTPS (порт 443) — веб-сервер:

sudo ufw allow http

sudo ufw allow https

# или

sudo ufw allow 80/tcp

sudo ufw allow 443/tcp

WireGuard (порт 51820/udp) — ваш VPN:

sudo ufw allow 51820/udp

База данных (порт 3306 для MySQL / 5432 для PostgreSQL) — если нужен доступ извне:

sudo ufw allow 3306/tcp   # MySQL

sudo ufw allow 5432/tcp   # PostgreSQL

⚠️ Важно: базы данных лучше держать закрытыми от внешнего мира и открывать только для доверенных IP-адресов. О том, как это сделать, читайте ниже.

🔒 Открываем порт только для конкретного IP

Представьте: вы хотите, чтобы к админке вашего сайта имели доступ только вы и ваш коллега. Остальным — вход воспрещён.

sudo ufw allow from 123.45.67.89 to any port 22

Здесь 123.45.67.89 — это IP-адрес, которому вы доверяете. Теперь даже если кто-то узнает пароль от SSH, он не сможет зайти с другого адреса.

🚫 Блокируем нежелательный IP

В прошлых статьях мы обсуждали атаки на ваш сервер — помните IP-адреса из логов fail2ban? Их можно заблокировать вручную:

sudo ufw deny from 103.189.235.167

🎨 Открываем диапазон портов (для игр или P2P)

Некоторым приложениям нужно много портов сразу:

sudo ufw allow 1000:2000/tcp


🧠 Продвинутые техники: когда просто «allow» недостаточно

UFW умеет больше, чем кажется.

🔐 Открываем порт только для определённого интерфейса

На сервере может быть несколько сетевых интерфейсов: публичный (eth0) и внутренний (eth1). Вы можете разрешить доступ к сервису только через внутреннюю сеть:

sudo ufw allow in on eth1 to any port 3306

Это значит: база данных доступна только с других серверов в вашей внутренней сети.

🧩 Удаляем правило

Ошиблись? Не проблема:

# Посмотреть номера правил

sudo ufw status numbered

 # Удалить правило №3

sudo ufw delete 3

🧪 Сброс всех правил (осторожно!)

Если вы всё испортили и хотите начать заново:

sudo ufw reset

Эта команда вернёт UFW к настройкам по умолчанию и отключит его. После этого вы сможете настроить всё с чистого листа.


⚠️ Ошибки, которые совершают даже опытные администраторы

На первый взгляд UFW кажется простым. И это его главный коварство. Вот самые частые ловушки:

1. «Включил UFW — и потерял доступ к серверу»

Классика. Вы подключаетесь к серверу по SSH, включаете UFW без предварительного разрешения SSH — и всё. Сессия обрывается. Доступ потерян.

Решение: всегда сначала sudo ufw allow ssh, потом sudo ufw enable. И желательно держать открытой вторую SSH-сессию на случай, если что-то пойдёт не так.

2. «Правило есть, а трафик не проходит»

Вы открыли порт, а подключение всё равно не работает. Возможно, сервис слушает только на локальном интерфейсе (127.0.0.1) и не принимает соединения извне. Проверьте:

sudo netstat -tulpn | grep :80

Если в строке указано 127.0.0.1:80, значит, сервис доступен только с самого сервера.

3. «Docker обходит UFW»

Это известная проблема. Docker по умолчанию создаёт свои собственные правила iptables, которые могут игнорировать настройки UFW. В результате порты контейнеров могут быть открыты миру, даже если UFW говорит обратное.

Решение: нужно настроить Docker на использование UFW или явно указывать интерфейсы при запуске контейнеров.

4. «Статус показывает ALLOW, а соединения нет»

Бывает, что UFW показывает правило, но трафик всё равно блокируется. Проверьте:

sudo ufw status verbose

Обратите внимание на политику Default. Если там deny (incoming), а вы открыли порт только для определённого IP — проверьте, что ваш IP совпадает.


📊 Как проверить, что UFW реально работает?

Простой способ — попробовать подключиться к серверу с другого компьютера или использовать онлайн-инструменты проверки портов. Но есть и командный способ:

# Проверить, какие порты слушает сервер

sudo netstat -tulpn | grep LISTEN

# Сравнить с правилами UFW

sudo ufw status numbered

Если порт есть в netstat, но нет в ufw status — он недоступен извне. Если есть в обоих — всё работает.


💎 Итог: почему UFW — ваш лучший друг в мире серверов?

  • Простота: одна команда вместо нескольких строк iptables.
  • Надёжность: UFW использует проверенный годами механизм Netfilter.
  • Гибкость: можно открывать порты для конкретных IP, интерфейсов, диапазонов портов.
  • Безопасность: по умолчанию блокирует всё входящее, разрешает всё исходящее.

UFW — это не просто инструмент. Это философия: безопасность должна быть доступной. Не нужно быть гуру сетевых технологий, чтобы защитить свой сервер. Достаточно знать несколько простых команд и понимать логику работы.

В следующей статье мы разберём, как работает WireGuard — современный VPN-протокол, который идеально сочетается с UFW и даёт максимальную безопасность и скорость. Оставайтесь на связи! 🚀


📚 Источники

Материалы подготовлены на основе открытых источников:

  1. Википедия — Uncomplicated Firewall
  2. Ubuntu Documentation — Firewall
  3. Cloud.ru — UFW в Ubuntu: полный путеводитель
  4. ZDNet — An uncomplicated introduction to Uncomplicated Firewall
  5. LinuxSecurity — UFW Important Firewall Misconfigurations and Risks
  6. LinuxSecurity — Ubuntu UFW Firewall Advisory on Security Pitfalls

 

Комментарии

Популярные сообщения

🧬 ChaCha20 и Curve25519: Криптография под капотом WireGuard

Немного о том, зачем это нужно.

🔌 L2TP: протокол, который объединил лучшее от двух миров

⚡ ИИ-помощник (на OpenRouter)

Спросите про VPN, протоколы или настройку серверов.