В этом руководстве мы сосредоточимся на фундаментальных сетевых концепциях NFS, в частности, на портах, используемых службами NFS. Как только мы разберемся с конкретными портами и службами общего ресурса NFS, мы сможем использовать их для настройки таких мер безопасности, как брандмауэры и устранение неполадок.
Как работает NFS
На момент написания этой статьи поддерживаются три версии NFS. NFS v2 - самый старый и наиболее широко поддерживаемый.
NFS v3 новее, чем NFS V2, и предлагает больше функций, таких как обработка переменного размера, улучшенная отчетность об ошибках и т. Д. Однако NFS v3 несовместима с клиентами NFS v2.
Самая последняя версия NFS v4 предоставляет новые и улучшенные функции. Они включают в себя операции с отслеживанием состояния, обратную совместимость с NFS v2 и NFS v3, удаленное требование portmapper, межплатформенное взаимодействие, улучшенную обработку пространства имен, встроенную безопасность с ACL и Kerberos.
Ниже приводится сравнение NFS v3 и NFS v 4.
Характерная черта | NFS v3 | NFS v4 |
Транспортный протокол | TCP и UDP | Только UDP |
Обработка разрешений | Unix | На базе Windows |
Метод проверки подлинности | Auth_Sys - слабее | Kerberos (сильный) |
Личность | Без гражданства | С сохранением состояния |
Семантика | Unix | Unix и Windows |
В приведенной выше таблице показаны некоторые особенности протокола NFS 4 по сравнению с протоколом NFS 3. Если вы хотите узнать больше, обратите внимание на официальный документ, представленный ниже:
https://datatracker.ietf.org/doc/html/rfc3530
NFS v4 не использует portmapper, и службы, требуемые NFS V2 и V3, не требуются. Следовательно, в NFS v4 требуется только порт 2049.
Однако для NFS v2 и v2 требуются дополнительные порты и службы, которые мы собираемся обсудить в этом руководстве.
Требуемые службы (NFS v2 и V3)
Как уже упоминалось, NFS v2 и v3 используют службу portmap. Служба portmap в Linux обрабатывает удаленные вызовы процедур, которые NFS (v2 и v3) использует для кодирования и декодирования запросов между клиентом и серверами.
Для реализации совместного использования NFS требуются следующие службы. Имейте в виду, что это только для NFS v2 и v3.
- Portmapper
- Mountd
- Nfsd
- Lockd
- Статд
#: Portmapper
Служба Portmapper требуется для запуска NFS как на стороне клиента, так и на стороне сервера. Он работает на порту 111 для протоколов TCP и UDP.
Если вы используете брандмауэр, убедитесь, что этот порт разрешен для входящих и исходящих пакетов.
#: Mountd
Другая служба, необходимая для запуска NFS, - это демон mountd. Эта служба работает на сервере NFS и используется для обработки запросов монтирования от клиентов NFS. В основном это обрабатывается службой nfsd и не требует настройки пользователя.
Однако вы можете отредактировать конфигурацию, чтобы установить статический порт в файле / etc / sysconfig / nfs. Найдите / и установите:
MOUNTD_PORTзнак равно[порт]#: NFSD
Это демон NFS, который работает на серверах NFS. Это критически важная служба, которая работает с ядром Linux и обеспечивает такие функции, как серверные потоки, для всех клиентов, подключенных к серверу.
По умолчанию демон NFS уже настроен для запуска статического порта 2049. Порт является истинным для протоколов TCP и UDP.
№: Локд и Статд
Демон NFS Lock Manager (lockd) и демон Status Manager (statd) - это другие службы, необходимые для запуска NFS. Эти демоны работают как на стороне сервера, так и на стороне клиента.
Демон lockd позволяет клиентам NFS блокировать файлы на сервере NFS.
С другой стороны, демон statd отвечает за уведомление пользователей о перезапуске сервера NFS без корректного завершения работы. Он реализует протокол RPC монитора состояния сети.
Хотя обе эти службы запускаются автоматически службой nfslock, вы можете настроить их для запуска статического порта, что может быть полезно в конфигурациях брандмауэра.
Установите статический порт для демонов statd и lockd, отредактируйте / etc / sysconfig / nfs и введите следующие записи.
STATD_PORTзнак равно[порт]LOCKD_TCPPORTзнак равно[порт]
LOCKD_UDPPORTзнак равно[порт]
Краткое резюме
Давайте кратко рассмотрим то, что мы только что рассмотрели.
Если вы используете NFS v4, все, что вам нужно, - это разрешить порт 2049. Однако, если вы используете NFS v2 или v3, вам необходимо отредактировать файл / etc / sysconfig / nfs и добавить порты для следующих служб.
- Mountd - MOUNTD_PORT = порт
- Statd - STATD_PORT = порт
- LOCKD - LOCKD_TCPPORT = порт, LOCKD_UDPPORT = порт
Наконец, вам необходимо убедиться, что демон NFSD работает на порту 2049, а средство отображения портов - на порту 111.
ЗАМЕТКА: Если файл / etc / sysconfig / nfs не существует, создайте его и добавьте записи, указанные в руководстве.
Вы также можете проверить / var / log / messages, если служба NFS не запускается правильно. Убедитесь, что указанные вами порты не используются.
Пример конфигурации
Ниже приведены параметры конфигурации сервера NFS на сервере CentOS 8.
После того, как вы отредактировали конфигурацию и добавили необходимые порты, как описано в руководстве, перезапустите службу как:
судоsystemctl запустить nfs-server.serviceЗатем подтвердите, что служба запущена, с помощью команды:
судоsystemctl статус nfs-server.service
Наконец, подтвердите работу портов с помощью rpcinfo, как показано в приведенной ниже команде:
судоrpcinfo-п
Заключение
В этом руководстве обсуждались основы сетевого протокола NFS, а также порты и службы, необходимые для NFS v2, v3 и v4.
Спасибо за чтение и будьте гордым компьютерщиком!