Проблемы NAS с SMB/CIFS; как ‘увидеть’ сообщения клиент-сервер?

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

У меня есть новый NAS от Synology (DS1621+), и я начал интеграцию его в свою домашнюю сеть. У меня возникли некоторые проблемы с его использованием на моих Linux-узлах. Я могу примонтировать NAS, но разрешения (как их видит Linux) не такие, какие я хочу. У меня есть впечатление, что собственность и разрешения могут быть “отображены” с NAS на мои Linux-клиенты, но мне неясно, как это делается. Все мои Linux-узлы основаны на Debian, а файловые службы, предоставляемые NAS от Synology, осуществляются через SMB. В Linux я использую cifs-utils suite (mount -t cifs ...) для монтирования разделов.

Я связался с Synology и был удивлен узнать:

1: Synology не предоставляет техническую поддержку пользователям “командной строки”.
2: Synology утверждала, что их реализация SMB является проприетарной и не предоставляет никакой (полезной) документации по интерфейсу.

Я подозреваю, что реализация Synology не так далека от мейнстрима, но после некоторых проб и ошибок у меня по-прежнему есть “проблемы с разрешениями”. Также в руководстве mount.cifs много параметров, чье назначение и эффект пока неясны мне.

Существуют ли какие-либо инструменты для Linux, которые могут помочь определить, как различные параметры и параметры в mount.cifs влияют на разрешения с точки зрения клиента Linux? Я хотел бы исключить как можно больше проб и ошибок.

Я заинтересован в использовании SMB вместо NFS, потому что слышал больше негативного о NFS, чем о SMB.

Я создал пользователей на стороне Synology и добавил их в конфигурацию SMB там.

ИЗМЕНЕНИЕ: 2022-07-12; Дополнительное чтение, результаты

Переменные, которые, похоже, играют роль, это:

  1. состояние реализации Linux “Unix Extensions” для SMB и версия на моем клиентском компьютере
  2. состояние реализации сервера (Synology) SMB/Samba
  3. состояние реализации сервера (Synology) “Unix Extensions”

В попытке улучшить качество этого вопроса я попытался определить эти переменные в контексте моего вопроса:

  1. Что касается состояния реализации Linux “Unix Extensions”:
$ mount.cifs --version
mount.cifs версия: 6.11
# ЗАМЕТКА1: Unix Extensions включены по умолчанию согласно man mount.cifs 
# ЗАМЕТКА2: см. также 'modinfo cifs' 
  1. Что касается версии SMB/Samba сервера (Synology):
$ ssh admin@SynologyNAS-1
/$ samba --version
Версия 4.10.18 
/$ uname -srm
Linux 4.4.180+ x86_64
  1. Что касается версии сервера (Synology) “Unix Extensions”

    Я не знаю, как это сделать, поэтому я попробовал smbclient:

$ smbclient \\\\SynologyNAS\\rpi_share -U=pi
Введите пароль WORKGROUP\pi:
Попробуйте "help", чтобы получить список возможных команд.
smb: \> help
?              allinfo        altname        archive        backup
blocksize      cancel         case_sensitive cd             chmod
chown          close          del            deltree        dir
du             echo           exit           get            getfacl
geteas         hardlink       help           history        iosize
lcd            link           lock           lowercase      ls
l              mask           md             mget           mkdir
more           mput           newer          notify         open
posix          posix_encrypt  posix_open     posix_mkdir    posix_rmdir
posix_unlink   posix_whoami   print          prompt         put
pwd            q              queue          quit           readlink
rd             recurse        reget          rename         reput
rm             rmdir          showacls       setea          setmode
scopy          stat           symlink        tar            tarmode
timeout        translate      unlock         volume         vuid
wdel           logon          listconnect    showconnect    tcon
tdis           tid            utimes         logoff         ..
!
smb: \> ? posix
ПОМОЩЬ posix:
    включить все возможности POSIX

smb: \> posix
Сервер не поддерживает UNIX CIFS расширения.
smb: \> ? chmod
ПОМОЩЬ chmod:
    <src> <mode> установить права на файл с использованием UNIX разрешений

smb: \> chmod test-touch-4B.txt 666
Сервер не поддерживает вызовы UNIX CIFS.
...

2022-07-12; Выводы & Пересмотренные вопросы?

Вышеуказанные результаты с smbclient предполагают, что с точки зрения SMB/CIFS мое клиентское программное обеспечение соответствует требованиям, но мой новый NAS от Synology далеко отстает.

Мой изначальный вопрос теперь становится: “Эти результаты точны; есть ли более убедительный или точный метод для определения статуса продукта, когда производитель отказывается предоставлять любую информацию о нем?”

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

В моем случае: Я mount с помощью учетных данных пользователя Synology pi. Это оставляет моего пользователя Linux pi неспособным записывать в смонтированный раздел – несмотря на то, что пользователю Synology pi были даны права на чтение и запись в Synology DSM. Я обнаружил, что добавление опций uid=pi и gid=pi к моей команде mount -t cifs как минимум позволяет пользователю Linux pi записывать в раздел SMB на сервере Synology. Почему это работает, я должен оставить на усмотрение других.

Дополнительное чтение:

  1. Википедия о UNIX Extensions для SMB
  2. CIFS VFS – Протокольные расширения для общих интернет-файловых систем для улучшения семантики POSIX I/O
  3. Поиск: что такое “Unix Extensions” для SMB/CIFS/Samba?.
  4. Версия Samba 4.3 или новее поддерживает SMB 3.1.1
  5. Почтовый список linux cifs
  6. mount.cifs и mount.smb3 являются почти одинаковыми; см. man mount.cifs, который также является руководством для mount.smb3.
  7. Википедия о SMB3-Linux
  8. Совпадают ли SMB POSIX Extensions с Unix Extensions?… Похоже, что нет
  9. Обновление расширений протокола CIFS, fm 2006 (это заняло ГОДЫ на разработку)
  10. Обзор расширений протокола CIFS и клиента Linux CIFS, fm. 2008.
  11. Фаза 2 расширений SMB3 POSIX … что дальше? (fm. 2020)
  12. Видео по пункту 10 выше
  13. Руководство пользователя и администратора ядра Linux » CIFS (примечание: больше текста от Стива Френча)
  14. Что такое протокол SMB и почему он вызывает беспокойство по поводу безопасности?
  15. Server Message Block – Википедия

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

Проблемы NAS с SMB/CIFS: Как «видеть» клиент-серверное взаимодействие

Введение

Интеграция нового NAS-сервера на базе Synology (DS1621+) в домашнюю сеть может выглядеть просто, однако некоторые пользователи сталкиваются с проблемами, особенно при взаимодействии с Linux-хостами. Основные сложности связаны с управлением правами доступа и настройкой конфигурации SMB. В данной статье мы рассматриваем, как диагностировать и решать проблемы, связанные с правами доступа через SMB/CIFS, и как эффективно «видеть» сообщения между клиентом и сервером.

Основные проблемы

На первый взгляд, вы можете подключить ваш Synology NAS по протоколу SMB, используя пакет cifs-utils, но по умолчанию права и владение файлами могут работать некорректно. При этом, как вы заметили, Synology не предоставляет документацию для продвинутых пользователей.

Основные факторы, которые могут влиять на проблемы с правами доступа:

  1. Использование расширений UNIX в SMB: Все ли необходимые расширения поддерживаются на стороне сервера и клиента?
  2. Версии SMB/CIFS: Убедитесь, что у вас актуальная версия SMB на NAS и клиенте.
  3. Настройки пользователя и группы: Корректно ли настроены права доступа и соответствие пользователей на обеих сторонах?

Шаги по диагностике и решению проблем

1. Проверка конфигурации клиента

Для начала убедитесь, что на вашей Linux-машине установлены и обновлены cifs-utils. Выполните следующую команду:

mount.cifs --version

Проверьте, что у вас установлена версия 6.11 или выше, так как поддержка расширений UNIX включена по умолчанию.

2. Проверка конфигурации сервера

Чтобы проверить версию Samba на вашем Synology NAS, выполните:

ssh admin@SynologyNAS-1
samba --version
uname -srm

Убедитесь, что ваш сервер поддерживает необходимые версии протокола.

3. Настройка параметров монтирования

При монтировании используйте ключи uid и gid, чтобы строго обозначить, какие пользователи и группы должны управлять файлами. Пример команды монтирования:

sudo mount -t cifs //SynologyNAS/rpi_share /mnt/share -o username=pi,password=yourpassword,uid=pi,gid=pi,file_mode=0775,dir_mode=0775

Этот подход позволит вам избежать проблем с правами при наличии пользовательских настроек на Synology.

4. Диагностика взаимодействия

Чтобы «увидеть» сообщения, отправляемые между клиентом и сервером, вы можете использовать инструменты для захвата сетевого трафика, такие как Wireshark или tcpdump. Применение фильтра smb поможет вам отслеживать конкретные вызовы к серверу. Пример команды для tcpdump:

sudo tcpdump -i any -s 0 -w smb_traffic.pcap port 445

Файл smb_traffic.pcap можно проанализировать в Wireshark, чтобы увидеть взаимодействие между клиентом и сервером более подробно.

Выводы

Решение проблем с SMB/CIFS на Synology NAS требует комплексного подхода: от настройки на стороне клиента до диагностики сетевого взаимодействия. Ключевыми моментами являются правильная конфигурация прав доступа, совместимость версий SMB и использование подходящих инструментов диагностики.

Использование команд для монтирования с корректными параметрами и диагностика трафика между клиентом и сервером помогут вам не только устранить текущие проблемы, но и лучше понять, как функционирует ваш NAS в рамках локальной сети. Для дальнейшего изучения рекомендуем ознакомиться с документацией по Samba и CIFS.

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

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