Вопрос или проблема
У меня есть локальный сервер. Спецификации ниже
Distributor ID: Ubuntu
Description: Ubuntu 22.04.5 LTS
Release: 22.04
Codename: jammy
Я настроил файловую систему NFS, и она работала несколько месяцев. Однако я только что понял, что не включил брандмауэр UFW. Я это сделал, и вот текущие правила UFW
sudo ufw status verbose Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip To Action From -- ------ ---- 2049 ALLOW IN 192.168.5.0/24 2049 ALLOW IN 192.168.5.249 8096/tcp ALLOW IN 192.168.5.0/24 22/tcp ALLOW IN 192.168.5.0/24 111 ALLOW IN 192.168.5.0/24
К сожалению, я больше не могу подключиться к своему NFS-серверу, и не могу понять, почему. Если я отключаю брандмауэр UFW, я снова могу подключиться, так что я знаю, что проблема в брандмауэре. Может кто-нибудь помочь, пожалуйста?
Результаты RPCinfo:
rpcinfo -p
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100005 1 udp 60077 mountd
100005 1 tcp 40319 mountd
100005 2 udp 47683 mountd
100005 2 tcp 35457 mountd
100005 3 udp 43621 mountd
100005 3 tcp 50491 mountd
100024 1 udp 43570 status
100024 1 tcp 33041 status
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 3 tcp 2049
100021 1 udp 40469 nlockmgr
100021 3 udp 40469 nlockmgr
100021 4 udp 40469 nlockmgr
100021 1 tcp 35909 nlockmgr
100021 3 tcp 35909 nlockmgr
100021 4 tcp 35909 nlockmgr
Ответ или решение
Чтобы решить проблему с подключением к вашему NFS-серверу через брандмауэр UFW на Ubuntu Server, вам необходимо убедиться, что все необходимые порты и службы, используемые NFS, правильно настроены в правилах UFW.
Шаг 1: Понимание необходимых портов
NFS обычно использует следующие порты:
- TCP и UDP 2049 — основной порт NFS.
- TCP и UDP 111 — порт для rpcbind (portmapper), который помогает клиентам найти другие порты, используемые NFS.
- TCP и UDP 60077 и различные другие порты — это порты, используемые службой
mountd
. Порты дляmountd
могут изменяться, так как они динамически назначаются, если только вы не сконфигурировали их статически.
Шаг 2: Проверка правил UFW
Из вашего вывода видно, что вы уже добавили правила для портов 2049 и 111, но не забывайте о других динамических портах, которые могут понадобиться.
Шаг 3: Настройка правил UFW
Для обеспечения корректной работы NFS добавьте правило, разрешающее все необходимые порты, связанные с mountd
. Вы можете сделать это следующим образом:
-
Добавьте правило для разрешения всех портов, которые использует
mountd
:
Если вы хотите временно открыть диапазон портов, вы можете использовать команды:sudo ufw allow from 192.168.5.0/24 to any port 60000:61000 proto tcp sudo ufw allow from 192.168.5.0/24 to any port 60000:61000 proto udp
Обратите внимание, что значения 60000:61000 являются общим диапазоном для
mountd
, используемым по умолчанию в типичных конфигурациях. -
Если вы хотите указать статические порты для
mountd
:
Откройте файл конфигурации NFS, обычно это файл/etc/nfs.conf
, и добавьте или измените следующие строки, чтобы задать статические порты:[mountd] Port=20048 [rpcbind] Port=10000
После внесения изменений перезапустите соответствующие службы:
sudo systemctl restart nfs-server
Затем добавьте соответствующие правила в UFW:
sudo ufw allow from 192.168.5.0/24 to any port 20048 sudo ufw allow from 192.168.5.0/24 to any port 10000
Шаг 4: Проверьте статус UFW
После внесения изменений проверьте статус UFW снова:
sudo ufw status verbose
Убедитесь, что все необходимые порты открыты.
Шаг 5: Попробуйте снова подключиться
Попробуйте снова подключиться к вашему NFS-серверу. Если проблема не решена, проверьте логи UFW и системные логи на наличие сообщений об ошибках, связанных с подключением, которые могут помочь вам в диагностике.
Заключение
Следуя указанным шагам, вы сможете настроить брандмауэр UFW для работы с вашим NFS-сервером. Убедитесь, что все порты, необходимые для NFS, открыты, и протестируйте подключение снова. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их.