Nmap показывает открытые порты, хотя nftables настроены на сброс.

Вопрос или проблема

На свежей установке Debian 12 у меня есть следующая конфигурация nftables, которая, как я считаю, выполняет следующее после активации:

  • трафик с localhost принимается
  • установленный/связанный трафик принимается
  • TCP-трафик через порт 22 принимается
#!/usr/sbin/nft -f

flush ruleset

table inet filter {
        chain input {
                type filter hook input priority 0; policy drop;

                # принимать любой трафик с локалхоста
                iifname lo accept

                # принимать трафик, исходящий от нас
                ct state established,related accept

                tcp dport 22 accept
        }

        chain forward {
                # Отбросить все (предполагает, что это устройство не является маршрутизатором)                  
                type filter hook forward priority 0; policy drop;
        }
}

Обратите внимание, что для переключения с конфигурации с правилами на конфигурацию без правил, я сначала выполняю systemctl restart nftables, а затем проверяю применяемые правила с помощью nft list ruleset.

Учитывая случай с примененными правилами, я ожидаю, что nmap покажет только открытый порт 22. Однако я получаю следующее:

$ nmap <DEBIAN12_IP_ADDRESS>
Запуск Nmap 7.92 ( https://nmap.org ) в 2024-10-17 10:46 CEST
Отчет сканирования Nmap для <DEBIAN12_HOSTNAME> (<DEBIAN12_IP_ADDRESS>)
Хост активен (0.043s задержка).
Не показано: 990 отфильтрованных tcp-портов (нет ответа)
PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
80/tcp   open  http
82/tcp   open  xfer
84/tcp   open  ctf
85/tcp   open  mit-ml-dev
443/tcp  open  https
554/tcp  open  rtsp
1723/tcp open  pptp
5060/tcp open  sip

Сканирование завершено: 1 IP-адрес (1 хост активен) просканирован за 8.25 секунд

Не выполняет ли конфигурация nftables то, что я думаю?
Не понимаю ли я вывод nmap?

Ответ или решение

Ваша проблема с выводом Nmap, показывающим открытые порты, несмотря на настройки nftables, может возникать по нескольким причинам. Давайте детально разберем вашу конфигурацию и результаты Nmap, чтобы понять, что могло пойти не так.

Анализ конфигурации nftables

В вашей конфигурации nftables указано следующее:

  1. Правило по умолчанию "drop": Это означает, что все входящие пакеты будут заблокированы, если не соответствуют указанным правилам.
  2. Принятие трафика из localhost: Пакеты, поступающие из интерфейса lo (localhost), будут приняты.
  3. Принятие установленного/сопутствующего трафика: Пакеты, которые являются частью уже установленного соединения или сопутствующих соединений, будут приняты.
  4. Принятие TCP-трафика на порт 22: SSH-соединения будут приняты на стандартный порт.

Вероятные причины проблем

1. Необнаруженные правила:

Ваша конфигурация действительно указывает, что все входящие соединения, кроме SSH (порт 22), должны быть отклонены. Однако, Nmap показывает много открытых портов (например, 21, 80, 443 и т.д.). Вот несколько возможных объяснений:

  • Службы, работающие на машине: Если на вашем сервере запущены службы, которые слушают на многих портах (например, FTP, HTTP и т.д.), это может объяснить их состояние "open". Nmap не всегда отображает отфильтрованные порты, особенно если служба отвечает на запросы.

  • Неправильные фильтрации: Возможно, что конфигурация nftables не применена корректно, возможны следующие случаи:

    • При перезапуске службы могли остаться старые правила, которые не были очищены.
    • Проблемы с правами при применении правил или их конфликт с другими инструментами безопасности или фаерволами.

2. Проверка ваших комплексов и конфигураций:

  • Выполните команду nft list ruleset, чтобы убедиться, что ваши правила действительно загружены в систему.
  • Проверьте, нет ли других сервисов безопасности, которые могут конфликтация с nftables (например, ufw, firewalld).

3. Тестирование на другие порты:

Для тестирования работы nftables вы можете временно отключить службы, работающие на других портах, и проверить результаты Nmap:

systemctl stop <имя_сервиса>
nmap <DEBIAN12_IP_ADDRESS>

Заключение

На основании вашей конфигурации, nftables действительно должен блокировать доступ к всем портам, кроме 22. Если же Nmap все равно показывает открытые порты, это указывает на то, что конфигурация nftables может не применяться должным образом или существуют другие службы, которые отвечают на запросы. Рекомендуется проверить действующие правила, активные службы и возможности протоколов на этом сервере.

Эти шаги должны помочь вам выявить причину проблемы с фильтрацией портов и правильно настроить nftables, чтобы все работало так, как вы ожидаете.

Оцените материал
Добавить комментарий

Капча загружается...