Настройка файрвола на облачном сервере.

Облачный файрвол панели, файрвол ОС (ufw / firewalld), какие порты открывать и как вернуть доступ, если вы сами себя заблокировали.

3 МИН ЧТЕНИЯ

Каждому серверу, доступному из интернета, нужен файрвол. По умолчанию запрещайте всё, разрешайте только нужное. Есть два уровня на выбор — используйте любой из них или оба.

Исходное состояние

На новом облачном сервере нет файрвола, если вы не включили его при создании. Без него любой порт, который слушает программа на сервере, открыт в интернет.

Файрвол ОС (ufw / firewalld) в образе мы тоже не включаем — это решаете вы.

Одно заблокировано всегда: исходящая почта на порту 25 — для защиты от спама. Если его нужно открыть, напишите в поддержку (Помощь → Написать нам).

Вариант 1: файрвол в панели (рекомендуется)

Этот файрвол работает перед сервером, в облачной сети, — поэтому ошибка в нём не может сломать собственную конфигурацию сервера, а изменить его из панели можно всегда.

Новая панель (rivervo.com/panel): страница сервера → карточка Файрвол → Настроить файрвол. (Или включите Использовать файрвол при создании сервера.)

  • Входящие правила: проходит только трафик, подходящий под правило.
  • Исходящие правила: разрешено всё, пока вы не добавите правило.
  • У каждого правила есть порт, разрешённые Источники (или Адреса назначения для исходящих) и Заметка.
  • Готовые варианты: SSH (22), HTTP (80), HTTPS (443), Ping (ICMP) или Своё правило.

Изменить позже можно через Изменить правила → Сохранить правила или Удалить файрвол. Если ни одно из правил не разрешает порт 22, панель переспросит перед сохранением — без него вы не сможете подключиться по SSH.

Вариант 2: файрвол ОС

Внутри сервера, с помощью ufw (Ubuntu/Debian) или firewalld (Rocky, AlmaLinux, CentOS Stream, Fedora).

Ubuntu/Debian (ufw)

sudo apt install ufw            # if it isn't installed
sudo ufw allow 22/tcp           # allow SSH FIRST
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status verbose

Разрешить только с определённого IP:

sudo ufw allow from 1.2.3.4 to any port 5432 comment "Postgres from office"

Удалить правило:

sudo ufw status numbered
sudo ufw delete 4   # delete rule #4

Rocky / AlmaLinux / CentOS Stream / Fedora (firewalld)

sudo dnf install firewalld      # if it isn't installed
sudo systemctl enable --now firewalld
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
sudo firewall-cmd --list-all

Открыть порт / закрыть его:

sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --permanent --remove-port=8080/tcp
sudo firewall-cmd --reload

Стандартные порты

ПортСервис
22SSH
80HTTP
443HTTPS
25SMTP между почтовыми серверами (исходящий по умолчанию заблокирован — см. выше)
465 / 587SMTP для отправки почты из приложений
993IMAP через SSL
3306MySQL — только если нужен удалённый доступ к базе, и только с определённых IP
5432PostgreSQL — то же самое
6379Redis — почти никогда не открывается для всех
3000, 8080, 8443Распространённые порты приложений

Не заблокируйте себя

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

# Keep your current SSH session open.
# Open another terminal and SSH in fresh.
# New connection works → safe to close the original.
# New connection fails → fix it from the original session.

Восстановление доступа

  • Заблокировал файрвол панели: страница сервера → Файрвол → Изменить правила, снова добавьте SSH (22), Сохранить правила. Или Удалить файрвол.
  • Заблокировал ufw / firewalld: страница сервера → Консоль (работает в браузере, без SSH). Войдите как root с root-паролем (он показан на странице сервера; если его у вас нет — ⋯ → Сбросить root-пароль), затем:
sudo ufw allow 22/tcp           # or: sudo ufw disable
sudo systemctl stop firewalld   # on firewalld systems

fail2ban — автоматическая блокировка IP

Для SSH и веб-серверов, на которые приходит много попыток входа:

sudo apt install fail2ban    # Debian/Ubuntu
sudo dnf install fail2ban    # Rocky/Alma (from EPEL)
sudo systemctl enable --now fail2ban

Конфигурация по умолчанию блокирует IP после повторных неудачных входов по SSH. Настроить её можно в /etc/fail2ban/jail.local.

Всё ещё не можете разобраться?

Напишите живому инженеру — медианный ответ менее 3 минут в любое время суток.

Написать в поддержку