Как указать конкретный адрес привязки для nfs-kernel-server в Debian 11.4

Я просто отказываюсь верить, что это не какая-то функция, мне нужно заставить NFS прекратить прослушивание адресов IPv6 сервера, а также ограничить, какие из его адресов IPv4 он также прослушивает.

Я исследовал проблему часами, но все время находил одни и те же четыре или пять ответов на разных сайтах, которые не дают подходящего решения.

Когда я запускаю сервер, я вижу, что NFS открыла больше, чем несколько портов:

      rpc.mount 7609 root    8u  IPv4 124179      0t0  UDP *:34231
rpc.mount 7609 root    9u  IPv4 124181      0t0  TCP *:55443 (LISTEN)
rpc.mount 7609 root   10u  IPv6 124183      0t0  UDP *:46874
rpc.mount 7609 root   11u  IPv6 124185      0t0  TCP *:55829 (LISTEN)
rpc.mount 7609 root   12u  IPv4 124187      0t0  UDP *:52359
rpc.mount 7609 root   13u  IPv4 124189      0t0  TCP *:37975 (LISTEN)
rpc.mount 7609 root   14u  IPv6 124191      0t0  UDP *:41861
rpc.mount 7609 root   15u  IPv6 124193      0t0  TCP *:33973 (LISTEN)
rpc.mount 7609 root   16u  IPv4 124195      0t0  UDP *:40059
rpc.mount 7609 root   17u  IPv4 124197      0t0  TCP *:50589 (LISTEN)
rpc.mount 7609 root   18u  IPv6 124199      0t0  UDP *:40265
rpc.mount 7609 root   19u  IPv6 124201      0t0  TCP *:35625 (LISTEN)
rpcbind   8103 _rpc    4u  IPv4  13941      0t0  TCP *:111 (LISTEN)
rpcbind   8103 _rpc    5u  IPv4  71849      0t0  UDP *:111
rpcbind   8103 _rpc    6u  IPv6  13945      0t0  TCP *:111 (LISTEN)
rpcbind   8103 _rpc    7u  IPv6  23221      0t0  UDP *:111

Мне нужно отключить все IPv6 и отключить прослушивание IPv4.*слушать дальше172.24.24.21,172.24.24.22, и172.24.24.23

Неэффективный метод №1:

Согласно https://wiki.debian.org/NFSServerSetup , я мог бы добиться этого, изменив/etc/default/nfs-kernel-serverсодержать эту строку:

      RPCMOUNTDOPTS="-H 172.24.24.21 -H 172.24.24.22 -H 172.24.24.23"

Апон перезапускает обаrpcbindиnfs-kernel-serverвывод остается неизменным, он отображает ту же информацию, что и показанная в примере выше.

Неэффективный метод №2:

Чтобы хотя бы исправить rpcbind, файл/etc/default/rpcbindзаявляет следующее:

      # Uncomment the following line to restrict rpcbind to localhost only for UDP requests
#OPTIONS="${OPTIONS} -h 127.0.0.1 -h ::1"

Я попытался раскомментировать эту строку и заменить ее следующим:

      OPTIONS="${OPTIONS} -h 172.24.24.21"

Мало того, что выходные данные остались прежними после перезапуска обеих служб, htop также показал, что физическая команда, выполняемая systemd для запуска службы, была буквально:

      /sbin/rpcbind -f ${OPTIONS} -h 172.24.24.21

Я попробовал вручную заменить${OPTIONS}с правильным значением в файле, например:

      OPTIONS="-w -h 127.0.0.1"

Что правильно установило команду, запускаемую systemd, как показано в htop:

      /sbin/rpcbind -f -w -h 172.24.24.21

Но все же выводlsof -i -Pостается точно таким же, как и в начале этого поста, все порты по-прежнему открыты для всех IPv4 и IPv6, как для TCP, так и для UDP, что вызывает у меня много паранойи, зная, что к машине можно получить глобальный доступ по ее адресам IPv6.

Неэффективный метод №3:

я должен редактировать/etc/nfs.confи определитьhost=, но, похоже, это метод только для всех наиболее престижных дистрибутивов Linux. Я всегда предпочитал обезглавленный Debian для серверов, и я не хочу просто искоренить всю свою инфраструктуру и установить совершенно другой дистрибутив на мой основной сервер хранения файлов, чтобы решить эту проблему, потому что это заняло бы неделю простоя и возни, с которой я просто не иметь

Неэффективный метод №4:

Создайте сценарий для автоматической настройки iptables, чтобы блокировать определенные порты, открываемые при каждом перезапуске службы.

Нет, я этого не делаю, это смешно. Я отказываюсь верить, что не существует способа просто правильно изменить адрес привязки, как это позволяет сделать любая другая сетевая служба в 2022 году.

Другие вопросы:

Systemd уже прослушивает четыре:111адреса со своим собственным сервисом «rpc». Насколько я понимаю, rpcbind не должен запускаться, когда служба systemd уже связала порты, но это явно так. Если предположить, что это ошибка, какой процесс получает какие-либо соединения с портом 111 в этом сломанном состоянии? Как запретить systemd открывать эти порты? Мне также не нужно, чтобы компоненты systemd rpc сидели и ждали, пока кто-нибудь взломает.

Кто-нибудь, скажите мне, пожалуйста, что здесь происходит, я потратил на это полдня.

0 ответов

Другие вопросы по тегам