Настройка фаервола UFW в Ubuntu: как открыть SSH (порт 22) и защитить сервер
Новый Linux-сервер подключен напрямую к сети Интернет и подвергается постоянным попыткам перебора паролей (брутфорс), открытые порты баз данных (3306, 5432, 6379) доступны всему миру, и сервер необходимо срочно защитить фаерволом.
Что такое UFW (Uncomplicated Firewall)?
UFW — это простой и удобный инструмент в Ubuntu для управления правилами защиты (брандмауэром iptables/nftables). Он позволяет открывать и закрывать сетевые порты буквально в одну понятную команду.
ГЛАВНОЕ ПРАВИЛО: Не заблокируйте сами себя!
Перед тем как включать фаервол, **всегда первым шагом открывайте порт SSH (22)**, иначе после включения ваша текущая сессия заблокируется, и вы потеряете доступ к удаленному серверу!
Шаг 1. Разрешаем подключение по SSH
sudo ufw allow 22/tcp
# или по имени службы:
sudo ufw allow sshШаг 2. Разрешаем веб-трафик для сайтов (порты 80 и 443)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcpШаг 3. Включаем брандмауэр (ufw enable)
Активируйте защиту:
sudo ufw enableТерминал спросит: «Command may disrupt existing ssh connections. Proceed with operation (y|n)?». Нажмите клавишу y и затем Enter.
Шаг 4. Проверка статуса и списка открытых портов
sudo ufw status verboseОжидаемый результат:
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing)
To Action From
-- ------ ----
22/tcp ALLOW IN Anywhere
80/tcp ALLOW IN Anywhere
443/tcp ALLOW IN AnywhereВсе остальные порты теперь надежно закрыты от внешнего мира!
Частые вопросы (FAQ)
Как удалить ошибочно созданное правило в UFW?
Выведите список правил с их номерами: sudo ufw status numbered, найдите номер ненужного правила (например, [3]) и удалите его: sudo ufw delete 3.
Как временно полностью отключить UFW?
Выполните команду: sudo ufw disable. Все фильтры будут мгновенно сняты.
Как разрешить доступ к базе данных MySQL (порт 3306) только с одного конкретного IP-адреса?
Используйте правило с указанием IP источника: sudo ufw allow from 198.51.100.25 to any port 3306 proto tcp.
Что делать, если я сменил порт SSH на 2222 и включил UFW?
Обязательно выполните: sudo ufw allow 2222/tcp ДО включения ufw enable.