Настройте статические порты для NFS v3 на сервере Ubuntu 20.x

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

Я пытаюсь использовать NFSv3 на сервере Ubuntu 20.x и мне нужно установить статические порты для использования UFW. К сожалению, Windows 10, который должен подключаться к этому серверу, поддерживает только NFSv3, поэтому оставлять открытым только порт 2049 недостаточно.

Я пытался добавить порты в файл /etc/default/nfs-kernel-server:

# Количество серверов для запуска
RPCNFSDCOUNT=64

# Приоритет выполнения сервера (см. nice(1))
RPCNFSDPRIORITY=0

# Опции для rpc.mountd.
# Если у вас есть брандмауэр на основе портов, вы можете установить
# фиксированный порт здесь, используя опцию --port. Для получения дополнительной информации
# смотрите rpc.mountd(8) или http://wiki.debian.org/SecuringNFS
# Чтобы отключить NFSv4 на сервере, укажите '--no-nfs-version 4' здесь
RPCMOUNTDOPTS="--manage-gids"

# Хотите ли вы запустить демон svcgssd? Он необходим только для экспорта Kerberos.
# Действительные альтернативы - "yes" и "no"; по умолчанию "no".
NEED_SVCGSSD=""

# Опции для rpc.svcgssd.
RPCSVCGSSDOPTS=""

LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
STATD_PORT=662
RQUOTAD_PORT=875

Хотя конфигурация приняла количество серверов 64 для запуска, она не приняла настройки портов внизу, даже после перезагрузки.

Кто-нибудь знает, где я могу правильно установить эти параметры?

Я выяснил это, для статических портов необходимо редактировать следующие файлы:

/etc/default/nfs-kernel-server для MOUNTD:

Исходный:

RPCMOUNTDOPTS="--manage-gids"

Новый:

RPCMOUNTDOPTS="--manage-gids -p 892"

/etc/default/nfs-common для STATD:

Исходный:

STATDOPTS=

Новый:

STATDOPTS="--port 662"

/etc/default/quotas для квот:
Я решил не использовать квоты для этого проекта. Тем не менее, это должно быть:

RPCRQUOTADOPTS="-p 875"

/etc/sysctl.conf для LOCKD:

Добавить:

fs.nfs.nlm_tcpport = 32803
fs.nfs.nlm_udpport = 32769

Затем просто выполните:

sysctl -p
systemctl restart nfs-kernel-server

Мне нужно использовать версию nfs 3 в организации для Bitbucket Data Center.

Я выполнил следующие шаги.

1) Обновления конфигурации NFS сервера
Отредактировал /etc/default/nfs-kernel-server, чтобы отключить версии NFS 2 и 4 и установить фиксированный порт для mountd:

RPCMOUNTDOPTS=”–manage-gids –port 9024″
RPCNFSDOPTS=”-N 4 -N 2″

Настроил /etc/default/nfs-common, чтобы установить фиксированные порты для statd и lockd:
NEED_STATD=yes
STATDOPTS=”–port 9028 –outgoing-port 9029″
LOCKD_OPTS=”-p 9027 -o 9026″

Обновил /etc/modprobe.d/lockd.conf, чтобы установить конкретные TCP и UDP порты для lockd:

options lockd nlm_tcpport=9027
options lockd nlm_udpport=9028

Применил конфигурации и перезапустил службы:

sudo systemctl restart nfs-kernel-server rpcbind
sudo systemctl daemon-reload

Наблюдения из вывода rpcinfo -p:
После применения вышеуказанных конфигураций вывод rpcinfo -p показал следующее:

program vers proto port service

100005 1 udp 40661 mountd
100005 1 tcp 45805 mountd
100005 2 udp 55256 mountd
100005 2 tcp 50431 mountd
100005 3 udp 34768 mountd
100005 3 tcp 47275 mountd

Несмотря на установку RPCMOUNTDOPTS="--port 9024" в /etc/default/nfs-kernel-server, mountd продолжал использовать случайные порты (например, 40661, 45805). Это предполагает, что конфигурация могла не примениться корректно.

Ошибка монтирования (mount.nfs: Подключение завершилось таймаутом) может возникнуть из-за того, что служба mountd связывается со случайными портами вместо указанного порта (9024). Это приводит к несоответствию конфигураций брандмауэра и групп безопасности, что в итоге вызывает таймаут во время попытки монтирования.

Пожалуйста, не пропустил ли я что-то? Нужно ли мне где-то изменить настройки, чтобы использовать фиксированный порт для mountD?

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

Установка статических портов для NFS v3 на сервере Ubuntu 20.x

Настройка NFS v3 на сервере Ubuntu 20.x с использованием статических портов необходима, чтобы обеспечить корректную работу с файрволом UFW. Это важно в случаях, когда клиенты, такие как Windows 10, требуют специфических настроек для подключения.

Шаг 1: Измените конфигурацию NFS

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

1.1. Настройка /etc/default/nfs-kernel-server

Для управления портами, связанными с mountd, следует внести изменения в следующий пропертю файл:

# Редактируйте файл /etc/default/nfs-kernel-server и укажите:
RPCMOUNTDOPTS="--manage-gids --port 9024"

# Чтобы отключить NFS версии 2 и 4, можно дополнительно указать:
RPCNFSDOPTS="-N 2 -N 4"

Эти параметры определяют, что mountd будет привязан к статическому порту 9024.

1.2. Настройка /etc/default/nfs-common

Файл /etc/default/nfs-common также требует доработки для настройки портов statd и lockd:

# Редактируйте файл /etc/default/nfs-common и укажите:
NEED_STATD=yes
STATDOPTS="--port 9028 --outgoing-port 9029"
LOCKD_OPTS="-p 9027 -o 9026"

1.3. Настройка /etc/modprobe.d/lockd.conf

Чтобы статические порты для lockd также были правильно определены, необходимо отредактировать файл, как показано ниже:

# Добавьте следующие строки в /etc/modprobe.d/lockd.conf
options lockd nlm_tcpport=9027
options lockd nlm_udpport=9028

1.4. Настройка /etc/sysctl.conf

Дополнительно, для корректной работы lockd, добавьте настройки в /etc/sysctl.conf:

# Добавьте следующие строки:
fs.nfs.nlm_tcpport = 32803
fs.nfs.nlm_udpport = 32769

После этого выполните команды для применения изменений:

sudo sysctl -p
sudo systemctl restart nfs-kernel-server rpcbind
sudo systemctl daemon-reload

Шаг 2: Проверка конфигурации

После внесения всех изменений рекомендуется проверить, какие порты используются rpcbind:

rpcinfo -p

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

Устранение ошибок

Если после изменений mountd по-прежнему использует случайные порты, это может быть связано с неверной структурой конфигураций или тем, что нужные параметры не были правильно применены. Убедитесь, что:

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

Следуя указанным шагам и рекомендациям, вы сможете успешно настроить статические порты для NFS v3 на сервере Ubuntu 20.x и обеспечить стабильную работу с клиентами, включая Windows 10. Обязательно проведите тестирование после всех изменений, чтобы удостовериться в успешной настройке и совместимости.

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

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