Категории

Как настроить WireGuard, UFW и fail2ban

2025-08-17 13:22:28 | Linux
Как настроить WireGuard, UFW и fail2ban

Если вы настраиваете VPN через WireGuard на сервере под Ubuntu/Debian, важно правильно настроить брандмауэр (UFW) и защиту от брутфорса (fail2ban), чтобы:

1. Установка WireGuard

sudo apt update
sudo apt install wireguard -y

2. Генерация ключей

wg genkey | sudo tee /etc/wireguard/private.key
sudo chmod 600 /etc/wireguard/private.key
wg pubkey < /etc/wireguard/private.key | sudo tee /etc/wireguard/public.key

3. Настройка сервера (/etc/wireguard/wg0.conf)

[Interface]
PrivateKey = <ваш_приватный_ключ>
Address = 10.8.0.1/24
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]
# Клиент 1
PublicKey = <публичный_ключ_клиента>
AllowedIPs = 10.8.0.2/32

Важно: замените eth0 на ваш внешний интерфейс (узнать: ip route | grep default).

4. Включить IP-форвардинг

echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

5. Запустить WireGuard

sudo wg-quick up wg0
sudo systemctl enable wg-quick@wg0

6. Установка UFW

sudo apt install ufw -y

7. Разрешить нужные порты

sudo ufw allow 22/tcp     # SSH
sudo ufw allow 80/tcp     # HTTP
sudo ufw allow 443/tcp    # HTTPS
sudo ufw allow 51820/udp  # WireGuard

8. Критически важный шаг: настройка UFW для WireGuard

UFW по умолчанию блокирует форвардинг. Отредактируйте файл:

sudo nano /etc/ufw/before.rules

Добавьте в начало (перед *filter):

# NAT для WireGuard
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
COMMIT

# Разрешить трафик через wg0
*filter
:ufw-before-forward - [0:0]
-A ufw-before-forward -i wg0 -j ACCEPT
-A ufw-before-forward -o wg0 -j ACCEPT
COMMIT

Замените:

9. Включить UFW

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw enable

10. Установка fail2ban

sudo apt install fail2ban -y

11. Настройка защиты (пример: SSH)

Создайте файл:

sudo nano /etc/fail2ban/jail.local

Содержимое:

[sshd]
enabled = true
maxretry = 3
bantime = 1h
findtime = 10m

[nginx-http-auth]
enabled = true

[php-url-fopen]
enabled = true

12. Перезапустить fail2ban

sudo systemctl restart fail2ban

Проверка работы

Если интернет пропал после UFW

Чаще всего проблема в том, что:

  1. Нет IP-форвардинга
  2. Нет MASQUERADE в iptables
  3. UFW перезаписал правила

Решение — вернуться к шагу 8 и убедиться, что before.rules настроены.

Заключение

WireGuard + UFW + fail2ban — мощная и безопасная комбинация. Главное — не забывать про NAT и форвардинг, иначе клиенты будут подключаться, но не смогут выходить в интернет.

Сохраните эту инструкцию — пригодится после перезагрузки или развёртывания нового сервера.

Комментарии

Пока нет комментариев. Будьте первым!

Оставить комментарий

← Назад к списку статей

DISCLAIMER: Блог-эксперимент

Внимание: Cтатьи здесь сгенерированы нейросетью, пока не правил ошибки, только запустил его да и не до этого. Просто чтобы вы знали и не запускали ядерный реактор по моим статьям ))
НО!
Каждый кейс я реально делал минимум один раз. Серьёзно.
Сервера стоят, клиенты довольны, дата-центры не горят.
Это не просто копипаста — это опыт, выстраданный в бою, просто пересказанный через ИИ.
Если у вас есть вопросы, или Нашли неточность? пишите в коментах — вместе поправим и сделаем статью более качественной. Я лично объясню нюансы из практики.

Посетителей сегодня: 0


© Digital Specialist | Не являемся сотрудниками Google, Яндекса и NASA
Кто я | HSH | Контакты и регион