Запускаю UFW, делаю блокирующее правило, а оно не работает

мне нужно закрыть порты некотрых сервисов на публичном хостинге. Пока экспериментирую на локальном сервере. Установлена Ubuntu 24 LTS, postgres запущен в докере.

Устанавливаю ufw:

   sudo apt-get install ufw

Запихиваю в сервисы:

    systemctl enable --now ufw

Добавляю правило разрешающее ssh:

    sudo ufw allow ssh

Проверяю список правил через

    sudo ufw show added

Вроде всё нормально.

Проверяю порт с другой машины через nmap:

    sudo nmap -p 5432 192.168.0.106

вижу что порт открыт:

    5432/tcp open  pgbouncer

Окей, думаю я. Добавляю общее правило:

    sudo ufw default deny incoming

растарую службу

   sudo systemctl restart ufw.service

порт открыт.

В недоумении я добавляю именно этот порт отдельным правилом:

    sudo ufw deny 5432

перегружаю сервер. Порт открыт.

Сейчас конфишурация ufw выглядит вот так:

    sudo ufw show added:
    ufw allow 22/tcp
    ufw deny 5432

команда

    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 IN    Anywhere
    5432                       DENY IN     Anywhere
    22/tcp (v6)                ALLOW IN    Anywhere (v6)
    5432 (v6)                  DENY IN     Anywhere (v6)

и порт остаётся открытым.... и я понимаю, что лыжи - не едут

Посоветуйте, пожалуйста, как правильно закрыть порт?

Спасибо.


Ответы (1 шт):

Автор решения: Pak Uula

не нужно экспериментировать с UFW в докере. Можно сразу пойти на публичный хостинг и

  1. Запретить по-умолчанию все входящие порты:

    sudo ufw default deny incoming

    опционально. по-умолчанию ufw и так запрещает всё, что не разрешает

  2. Разрешить SSH: sudo ufw allow ssh

  3. Включить UFW: sudo ufw enable

Порядок важен! Если сначала включить UFW, он сразу отрубит все соединения, и вы больше никогда не зайдёте в свой сервер.

после этого можно уже вдумчиво разрешать те порты, которые вам нужны.

→ Ссылка