Назад | Перейти на главную страницу

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

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

$ rpcinfo -p | grep nfs

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

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

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

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

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

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)

Вот и все.

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

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

С 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 часть).

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

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

Чтобы подключить Synology к системе Ubuntu 18.04, мне пришлось включить порты 111,892,2049

При подключении я вижу следующее (NFS 4 не включен на моем Synology):

root@ub18ovh# mount -a -vv
mount.nfs: trying text-based options 'vers=4.2,addr=5.6.7.8,clientaddr=1.2.3.4'
mount.nfs: mount(2): Protocol not supported
mount.nfs: trying text-based options 'vers=4.1,addr=5.6.7.8,clientaddr=1.2.3.4'
mount.nfs: mount(2): Protocol not supported
mount.nfs: trying text-based options 'vers=4.0,addr=5.6.7.8,clientaddr=1.2.3.4'
mount.nfs: mount(2): Protocol not supported
mount.nfs: trying text-based options 'addr=5.6.7.8'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: trying 5.6.7.8 prog 100003 vers 3 prot TCP port 2049
mount.nfs: prog 100005, trying vers=3, prot=17
mount.nfs: trying 5.6.7.8 prog 100005 vers 3 prot UDP port 892
successfully mounted