Установка и базовая настройка
UFW обычно предустановлен в Ubuntu. Если нет — установите и задайте политику по умолчанию:
sudo apt install ufw sudo ufw default deny incoming sudo ufw default allow outgoing
Это базовый и самый безопасный подход: сервер может обращаться куда угодно, но извне доступны только явно разрешённые порты.
Разрешаем SSH, HTTP, HTTPS
Прежде чем включить файрвол, обязательно откройте SSH — иначе потеряете доступ к серверу:
sudo ufw allow ssh sudo ufw allow http sudo ufw allow https
Если вы сменили порт SSH на 2222, вместо
allow ssh используйте:sudo ufw allow 2222/tcp
Теперь можно безопасно включить файрвол.
Включение и проверка статуса
Включите UFW:
sudo ufw enable
Система предупредит, что существующие SSH-соединения могут быть прерваны — если вы уже открыли порт SSH, соглашайтесь. Проверьте статус и список правил:
sudo ufw status verbose
Вы увидите все активные правила и политику по умолчанию. Для компактного вывода с нумерацией правил:
sudo ufw status numbered
Это пригодится для удаления конкретных правил.
Добавление пользовательских портов
Для нестандартных сервисов открывайте порты по мере необходимости. Например, для PostgreSQL:
sudo ufw allow 5432/tcp
Для диапазона портов (например, пассивный FTP):
sudo ufw allow 40000:50000/tcp
Можно ограничить доступ конкретным IP:
sudo ufw allow from 203.0.113.5 to any port 5432
Так к PostgreSQL сможет подключиться только указанный адрес. Это особенно полезно для баз данных и административных панелей, которые не должны быть доступны всему интернету.
Удаление и изменение правил
Чтобы удалить правило, сначала посмотрите номера правил:
sudo ufw status numbered
Затем удалите по номеру:
sudo ufw delete 3
Также можно удалить по описанию:
sudo ufw delete allow 5432/tcp
Для полного сброса всех правил:
sudo ufw reset
Это отключит файрвол и удалит все настройки. После reset нужно заново задать правила и включить UFW. Будьте осторожны с reset на удалённом сервере — убедитесь, что у вас есть доступ к консоли через панель хостинга.