Вопрос: Какие порты мне нужно открыть в брандмауэре для использования NFS?


Я запускаю Ubuntu 11.10 - настройка NFS для совместного использования каталога между многими другими серверами. Какие порты необходимо открыть на брандмауэре?


53
2018-04-05 21:01


Источник


Это зависит от версии протокола, который вы намерены использовать. Для NFS 4 требуется только 2049, в то время как более старые версии требуют больше. - lzap


Ответы:


rpcinfo -p | grep nfs

Порт 111 (TCP и UDP) и 2049 (TCP и UDP) для сервера NFS.

Существуют также порты для состояния кластеров и клиентов (порт 1110 TCP для первого и 1110 UDP для последнего), а также порт для диспетчера блокировки NFS (порт 4045 TCP и UDP). Только вы можете определить, какие порты вам нужно разрешить, в зависимости от того, какие службы необходимы для межсетевого шлюза.


75
2018-04-05 21:03



Я не знал о rpcinfo, это очень полезно. Я не видел порт 111 с grep nfs, но я оставил grep, чтобы узнать, что 111 для portmapper, Также приятно знать! (и, как вы упомянули, необходимо) - kenny
@KennyYounger rpcinfo тоже полезен. Если это ответит на ваш вопрос, не забудьте отметить его как ответ на благо будущих зрителей. - Wesley
Когда вы впервые монтируете файловую систему, вам нужно открыть mountd. Он работает на динамическом порту, поэтому он не всегда будет таким же. В моем ответе я привел ссылку на руководство. - bonsaiviking
@bonsaiviking Отлично! Спасибо. - Wesley
Спасибо @bonsaiviking. Критическая информация для этого процесса. Я поддержал ваш ответ! - kenny


В дополнение к 111 для portmapper и 2049 для nfs, вам нужно будет разрешить порт mountd и, возможно, rquotad, lockd и statd, все из которых могут быть динамическими. Это отличное руководство по безопасности NFS рекомендует изменять сценарии запуска и конфигурации модуля ядра, чтобы заставить их использовать статические порты.

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


20
2018-04-05 21:22



Мы действительно предпочитаем контент, а не указатели на контент. Прецензия содержимого со ссылкой тоже одобрена и предпочтительна для ссылки. - Iain
Не уверен в 2012 году, но рекомендация в ссылках, похоже, сильно устарела. NFS по протоколу TCP предпочтительнее для разных причин, а NFS через UDP может привести к бесшумному повреждению данных на быстрой ссылке из-за ограничений протокола. В руководстве по безопасности нет упоминаний о Kerberos / GSS и т. Д. - Maciej Piechotka


Я нашел полезные направления для своей проблемы на этой странице, но рецепт был нелегким. Итак, вот мой рецепт.

TL; DR - необходимо разрешить как порты nfs (111, 2049), так и порт mountd после его фиксации.

Инструкции:


Настройка фиксированного порта для mountd

gksudo gedit /etc/default/nfs-kernel-server
  • прокомментируйте эту строку: RPCMOUNTDOPTS=--manage-gids
  • добавьте это вместо: RPCMOUNTDOPTS="--port 33333"

Или любой другой номер порта.

теперь попробуйте перезагрузить nfs, используя:

sudo service nfs-kernel-server restart

И проверьте, помогло ли это:

rpcinfo -p | grep tcp.*mountd

Для меня этого было недостаточно, но полный перезапуск исправил проблему.

(кредит)


Настройка брандмауэра

(1) удалить старые правила, сделать это вручную или сбросить, если это единственное использование для брандмауэра:

sudo ufw reset
sudo ufw enable

(2) добавить порты nfs и mountd

sudo ufw allow in from 10.0.0.1/20 to any port 111 
sudo ufw allow in from 10.0.0.1/20 to any port 2049
sudo ufw allow in from 10.0.0.1/20 to any port 33333

(Переход на локальный IP-адрес или на "any" вместо 10.0.0.1/20)

Вот и все.


7
2017-12-29 16:47



Вам не нужно перезапускать все поле. Просто sudo service nfs-config restart перед перезапуском nfs-kernel-server будет прекрасно. - showp1984
@ showp1984 спасибо, я попробую в следующий раз - auval


С помощью FERM можно использовать Обратные кавычки для получения портов из rpcinfo, например:

Сервер:

proto tcp {saddr ($CLIENT) {
  dport (`rpcinfo -p | perl -e 'while(<>){/\s+\d+\s+\d\s+(?:tcp)\s+(\d+)/ and $ports{$1}=1}; $, = " "; print sort(keys(%ports)),"\n"'`) ACCEPT; # NFS
}}
proto udp {saddr ($CLIENT) {
  dport (`rpcinfo -p | perl -e 'while(<>){/\s+\d+\s+\d\s+(?:udp)\s+(\d+)/ and $ports{$1}=1}; $, = " "; print sort(keys(%ports)),"\n"'`) ACCEPT; # NFS
}}

Клиент:

proto udp {saddr ($SERVER) {ACCEPT;}}  # NFS

(Если вы собираетесь использовать только TCP, вам понадобится только proto tcp часть).


3
2017-08-13 21:39





Это даст список всех портов, используемых всей программой, связанной с NFS:

rpcinfo -p | awk '{print $3" "$4}' | sort -k2n | uniq

2
2017-07-02 13:54





Для записей мне пришлось добавлять разрешения для портов 111, 2049 А ТАКЖЕ 1048 для конфигурации, в которой общий ресурс NFS экспортируется сервером Windows 2008 R2, а клиентами - Ubuntu 12.04.4.

Я надеюсь, что это помогает кому-то.


0
2017-12-16 08:13



Это может помочь объяснить, почему вам нужен порт 1048 и как вы это определили. - HBruijn♦
Честно говоря, я не знаю, почему мне нужно было добавить разрешение для 1048, но добавив, что решила мою проблему. Я просто хотел поделиться, если это может сэкономить время кому-то еще в будущем. Мне жаль, что я не смог ответить на этот вопрос. - Erdem KAYA