Загальний доступ до мережевих ресурсів. Боремося з вірусами та інфраструктурою, або відключення SMB v1

Існує маса різних реалізацій роздачі «мережева куля» в локальної мережіАле вдалося отримати щось середньо-бюджетне і захищене.

Zyxel Keenetic

Підключили та прибрали… ну, наприклад, у шафу.

Конфігурація

Для початку потрібно створити масив.
Створимо не складними маніпуляціями RAID на CFI B8253-JDGG із встановленими 4ТВ дисками.

На задній частині пристрою розташовані DIP-перемикачі та виразна схема апаратного RAID-контролера. Я виставив RAID5 на дисках 4 TB. Ініціалізуємо диски просто підключивши накопичувач до ПК на Win 7. На цьому етапі конфігурація DAS закінчена. Отримали GPT NTFS розміром 16ТВ.

Тепер перейдемо до конфігурації роутера Zyxel Keenetic
Переходимо на WebUI та ставимо кілька галок.

Включаємо CIFS на роутері, автоматичне монтування, щоб не відвалювався наш пристрій і дозволимо доступ без авторизації (далі докачаємо та встановимо пакет для роутера, який дозволить розмежувати права доступу за уч. записами)
Маршрутизатор надає можливість налаштовувати права доступу мережного диска. Ми можемо створювати свої облікові записи мережного протоколу доступу до файлів, принтерів та інших мережевим ресурсаму мережах Windows. Можна налаштувати права доступу кожного користувача та папку. Можливі наступні видиправ доступу:

При підключенні DAS'a до роутера бачимо наш розділ:

Тепер розмежуємо права доступу, для цього я встановив декілька компонентів:

Ці компоненти дозволили потрапити у вкладку «Права доступу»

Створення користувачів також передбачено й керування доступом.

Роздача прав доступу

Навіщо нам взагалі підключати DAS до роутера?
Все просто, в роутері є вбудований bittorrent клієнт, завдяки якому можна одразу качати на DAS фільми/музику тощо. і роздавати все це через мережу.
Даємо адміну права на torrent

Увімкнемо файл підкачки, для чого він описаний на скріншоті.

Transmission вже встановлений у моєму роутері, перейдемо в браузері 192.168.1.1 :8090/ та авторизуємось під admin

"Сгодуємо" torrent-файл.

Як ми можемо спостерігати, система працює і встановлений на роутер Transmission з успіхом зміг скористатися наданою йому зовнішньою ємністю для складування одержуваного контенту.
І тепер до найголовнішого все працює, але яка ж швидкість читання/запису при доступі до DAS по мережі?
Спробуємо записати/завантажити файл за SAMBA
Результат:

Треба розуміти, що отриманий швидкісний результат обміну мережею прямо залежить від продуктивності процесора та інтерфейсу роутера. Тобто в даному випадкуми бачимо не швидкість DAS CFI, а швидкість, яку здатний «перетравити і видати» Zyxel Keenetic через USB в мережу по SAMBA. Показники невеликі, але для домашнього та бюджетного рішення цього достатньо. Незважаючи на те, що швидкість прямого доступу невелика, хоча теж прийнятна - для отримання з DAS потоку відео на TV або медіаплеєр, або, планшет по квартирі через wi-fi - більш ніж достатня.

Підключимо DAS до ПК USB3.0 і переконаємося в тому, що швидкість обмежується пропускною здатністю USBінтерфейсу Zyxel Keenetic
Результат:

Сам по собі DAS при прямому підключенні до ПК видає у мене більше 200МБ/с при RAID5. Відповідно, зі зростанням продуктивності роутерів або просто виборі іншого роутера (при можливості звичайно ж перевірю і прикріплю UPD), швидкість може змінюватися і хочеться сподіватися на краще.

Та й комерційна сторона зібраної системи на момент написання:
CFI-B8253JDGG - від 10 756 рублів, Zyxel Keenetic - 990 рублів. У сумі менше ніж 12 000 рублів. І якщо порівняти з 4-х дисковим NAS(ціна починається від 18 000 рублів) економічна вигода очевидна.
Вирішення завдання не єдине, але дуже працездатне і цікаве.

Одним із способів доступу зі STB до файлів, розміщених на мережевих комп'ютерах, є протокол загального доступу SMB, який є стандартним протоколом Microsoft Windows і забезпечує функції «Мережі Microsoft Windows» та «Спільного використання файлів та принтерів».
Samba - вільна реалізація протоколу SMB для UNIX-подібних та інших операційних систем.

Застосування протоколів SMB/Samba дозволяє здійснювати доступ із STB (працює під керуванням ОС Linux) до папок та файлів, розташованих на мережевих комп'ютерах (працюючих під керуванням ОС Linux, Windows та ін.). Таким чином, користувачі STB отримують можливість програвати на STB медіа-файли (відео, аудіо, зображення), які розташовані на мережевих комп'ютерах, які працюють під керуванням одного з типів ОС, що підтримує протоколи SMB або SAMBA.

Протокол SMB / Samba є прикладним протоколом(У термінах мережевої моделі OSI). Для обміну даними використовує протокол TCP/IP.
Протокол SMB / Samba використовує архітектуру клієнт - сервер: як сервер виступає ПК, на якому розміщуються певні мережеві ресурси (папки) з медіа-файлами, як клієнт - STB, з якого медіа-файли програються.

Мережеві ресурси відображаються в STB, в меню , відповідно до стандартної мережевої LAN-архітектури Windows: Мережа / Робоча група / Комп'ютер / Папка.

За промовчанням доступ до ресурсів комп'ютера закрито настройками на стороні комп'ютера. При необхідності отримати доступ з боку до певної папки мережі, користувач необхідного комп'ютеравідкриває доступ до цієї папки. Для керування доступом до папок використовується процедураОС Windows Загальний доступ до файлів".

Передбачено два типи мережного доступу до папок (тип доступу визначається на боці комп'ютера):

  • по паролю - для доступу до папки мережі з боку STB використовується процедури Авторизації (необхідно ввести ім'я (login) певного користувачакомп'ютера та його пароль (password);
  • без пароля - доступ до папки мережі відкритодля всіх користувачів без необхідності вводити пароль.

Виявлення загальних мережевих ресурсів на стороні STB відбувається автоматично (якщо це не заборонено на стороні комп'ютера або, крім випадків, пов'язаних з некоректною роботоюмережі). З'єднання з мережевою папкою встановлюється, коли користувач STB відкриває папку мережі. Якщо використовується доступ до папки пароля, користувачеві видається запит, вказати loginі password.

Також передбачено можливість ручного підключення мережевих папок (якщо їх не було виявлено автоматично). Налаштування та доступ до ресурсів мережі за протоколом SMB/ Sambaна STB проводиться у меню Home media .

Нижче розглянуто приклад, як підключити мережну папку ПК з Windows 10 для відтворення медіа-файлів зі STB.
Примітка.Підтримка протоколу SMB ОС Windows 10 включена за замовчуванням.

Приклад налаштування з'єднання між STB та ПК з Windows 10

Основні параметри, які використовуються в прикладі

Комп'ютер (файловий сервер):

  • Операційна система - Windows 10 64-bit;
  • Ім'я комп'ютера My_ computer(Вибрано для прикладу);
  • Робоча група - WORKGROUP (ім'я робочої групи"за замовчуванням" в ОС «Windows»);
  • IP-адреса ПК: 192.168.1.186.
  • Ресурс для розшарування (папка з медіа-файлами) - папка Video_ E1.
  • Ім'я користувача - Usr.

STB (клієнт)

  • IP-адресаSTB: 192.168.1.230

Перевірка доступності мережного з'єднання між ПК та STB

Перед налаштуванням з'єднання переконайтеся в наявності мережного з'єднання між ПК та STB – «пропінгуйте» STB з боку ПК.

Налаштування на стороні ПК (відкриття доступу до папки)

  1. Відкрийте доступ до папки Video_E1: Властивості Доступ⇒ Загальний доступ.
  2. Якщо потрібно надавати доступ до папки лише для поточного користувача ПК, залиште у списку користувачів лише поточного користувача ( Usr). У цьому випадку доступ до папки буде надаватися по паролю - для з'єднання з папкою на STB буде запрошено логін (ім'я користувача комп'ютера) та пароль (пароль користувача комп'ютера).

Врахуйте!Якщо доступ відкритий лише поточному користувачу, необхідно використовувати певне значення пароля для облікового запису користувача. Відсутність пароля призведе до неможливості доступу до папки!

Нижче на малюнку наведено варіант налаштування надання безпарольного доступу до папки Video_E1для всіх мережевих користувачів.

5. На ПК відкрити «Центр управління мережами та спільним доступом»та налаштувати параметри загального доступу для трьох профілів ( Приватна, Гостьова або загальнодоступнаі Усі мережі):

Приватна

Гостьова або загальнодоступна

Усі мережі

З'єднання з мережевою папкою на стороні STB

  1. У вбудованому порталі зайти в Головне вікно HomeMedia Network WORKGROUP

2. У папці WORKGROUPЗ'являються мережні комп'ютери робочої групи.
Відкрийте ярлик необхідного мережевого комп'ютера My_ Комп'ютер(в папці My_ Комп'ютервідображаються папки, для яких встановлено спільний доступ).

3. Для контролю автоматичного визначеннямережного ресурсу та типу протоколу необхідно виділити папку та скористатися кнопкою «i» (INFO) на ПДУ:

4. Відкрити папку Video_E1. Усередині папки пройти по шляху, яким знаходиться медіа-файл, який необхідно відтворити.

5. Якщо для папки встановлений доступ за паролем, або з яких-небудь причин STB не може «примонтувати» папку (тобто отримати доступ до неї - див. розділ ), то при спробі відкрити дану папку відкривається вікно "Network connection".

6. Запустити медіа-файл.

Примусове встановлення з'єднання до папки мережі

У деяких випадках (при проблемах автоматичного з'єднання) передбачено ручне налаштування доступу до мережної папки:
  • Увійти Головне вікноHomeMediaNetworkWORKGROUP
  • Викликати вікно Operations (Операції) - кнопка Менюна ПДК.
  • Натиснути MountShare (Підключити ресурс).
  • У вікні " Підключення мережної папки" ("Connect network folder") ввести параметри підключення
    • Адреса сервера (Server Address) – IP-адреса ПК (файлового сервера), де розміщена необхідна мережева папки;
    • Папка на сервері (Server folder) - ім'я "розшарованої" на ПК папки;
    • Локальна папка (Local folder) – ім'я папки на STB (зазвичай, збігається з ім'ям папки на сервері);
    • Тип з'єднання (Connection type) – SMB.
    • Логін (Login) – збігається з ім'ям користувача ПК – вводиться, якщо для папки використовується доступ за паролем;
    • Пароль (Password) – пароль доступу до папки – вводиться, якщо для папки використовується доступ із паролем.

Вимкнення папки мережі, зміна настройок з'єднання на STB

Для примусового відключення певної папки мережі використовуйте для цієї папки команду Вимкнути NFS/SMB.

У разі потреби внести зміни в налаштування з'єднання на стороні, використовуйте для цієї папки команду Редагувати (англ. Edit share).

Монтування папки

Встановлення з'єднання до певної папки, описане в підрозділах і супроводжується автоматичним монтуванням папки на STB. Якщо певна папка "примонтована" на STB, її ярлик з'являється на верхньому рівніменю Home media.

Користувач також може монтувати необхідну папкувручну (це також веде до з'єднанню з папкою), для цієї мети використовується команда Підключити ресурс (англ. Mount share).
Для "розмонтування" папки у STB (це також веде до роз'єднання папки від STB) використовується команда Вимкнути ресурс (англ. Unmount share).

Проблеми отримання доступу до мережевих ресурсів

  1. У вікні « Home media » не відкриваються закладки "Network", "WorkGroup":
    • Перевірити налаштування мережі та стан мережі на стороні STB та комп'ютера;
    • Переконайтеся, що на сервері (ПК, з якого налаштовується доступ) включено підтримку протоколу SMB версії 1 і 2.
    • Перезавантажити STB та ПК.

2. Якщо розділи "Network", "WorkGroup"відображаються, але не відображається ярлик необхідного мережного комп'ютера:

    • Переконайтеся, що комп'ютер відображається у розділі "Мережа"на комп'ютері;
    • Пропінгувати STB з боку ПК (переконатися, що обидва пристрої можуть взаємодіяти через мережу).
    • Перезавантажити комп'ютер.

3. Якщо на STB не відображаються доступні папки або доступ до папки закрито:

    • Переконайтеся, що папки, до яких відкритий доступ, відображаються у розділі "Мережа"на комп'ютері;
    • Якщо є можливість, перевірити доступ до папки з інших мережевих комп'ютерів;
    • На комп'ютері перевірте параметри загального доступу у властивостях папки та « Додаткові параметризагального доступу Профілі».
    • Перезавантажити STB.

4. Якщо при відкритті папки мережі на STB пропонується виконати авторизацію, але для папки доступ по паролю не призначався:

    • Перевірити, щоб у властивостях папки був відкритий доступ для користувача "Всі";

5. Якщо при відкритті папки на STB пропонується виконати авторизацію (ввести логін, пароль), але значення пароля не встановлено (порожній пароль):

    • встановити певне значення пароля користувача комп'ютера;
    • Якщо доступ не відновився, перезавантажте STB.

6. Якщо файл не відкривається:

    • перевірити, чи файл програється локально на ПК;
    • спробувати запустити з STB інші файли з тієї ж мережі папки, з інших мережевих папок;
    • спробувати програти файл іншого формату (бажано перевірити файл, який на STB раніше відтворювався, наприклад, з USB-носія). Можливо, цей формат файлу не підтримується програвачем STB.

1.3 Технології CIFS та SMB

Загальний протокол доступу до файлів Internet (Common Internet File System- CIFS) своїм походженням завдячує технології блоку серверних повідомлень (Server Message Block - SMB), яка вперше з'явилася в MS DOS 3.3. У стандарті SMB описаний протокол надсилання команд файлової системи(відкрити файл, рахувати, записати, блокувати та закрити) від клієнта до файлового сервера.
Перед обговоренням технічних подробиць технологій CIFS та SMB необхідно з'ясувати основні відмінності між ними. Спочатку існувала тільки технологія SMB, яка використовувалася як клієнт-серверний файловий протокол у світі персональних комп'ютерів. У середині 1980-х років компанія Microsoft дала своєї реалізації протоколу SMB назву CIFS і почала позиціонувати CIFS як прямого конкурентастандартів WebNFS та NFS. Компанія Microsoft надала ознайомлювальний документ RFC на розгляд IETF (Internet Engineering Task Force), і згодом термін дії документа минув без спроб перетворити RFC на одну зі специфікацій IETF.
Незалежні від компанії Microsoft постачальники пристроїв NAS розпочали розробку специфікації CIFS та організували кілька заходів для популяризації CIFS. Асоціація SNIA (Storage Networking Industry Association) взяла на себе завдання публікації CIFS. Компанія Microsoft також випустила специфікацію CIFS (вона називалася Common Internet Filesystem Access Protocol), що поширювалася безкоштовно.
У схожих один на одного специфікаціях SNIA CIFS та CIFS від компанії Microsoft описується протокол, який використовується клієнтами Windows NT 4.0 для отримання доступу до ресурсів серверів Windows NT. В обох специфікаціях не розглядається протокол SMB, який застосовується в нових версіях Windows (наприклад, не торкається клієнтського кешування, яке підтримується у Windows 2000). Крім того, у специфікаціях не описано всіх протоколів взаємодії між серверами. Новий стандарт SMB, що не стосується безкоштовних специфікацій, описаний у відповідній специфікації, яка за певну плату поширюється компанією Microsoft, що стало можливим завдяки судовим рішенням Європейського Союзу та уряду США.
Таким чином, компанія Microsoft знову стала називати свою реалізацію описаної технології блоком SMB. По суті, SMB від Microsoft – це закритий протокол, що є розширеною версією індустріального стандарту CIFS.
Крім того, слід звернути увагу на історичний зв'язок між SMB/CIFS та NetBIOS. Програмний інтерфейс NetBIOS (рівень сеансу моделі OSI) на Наразібезнадійно застарів. Інтерфейс реалізує рівень абстракції, який дозволяє програмам працювати з різними транспортними протоколами, наприклад TCP/IP, NetWare або вже забутим протоколом XNS (Xerox Network System). Необхідність у програмному інтерфейсідодатків, що надає можливість створення додатків, які не залежать від мережевого протоколу, існує й досі. Однак у теперішній моментдля цього зазвичай використовується інтерфейс сокетів, зокрема у світі Windows – інтерфейс Winsock.
Компанія Microsoft використовувала NetBIOS для перетворення імен (перетворення імені сервера в мережева адреса), але зараз для цього призначено стандартну службу DNS.
Спочатку Microsoft не використовувала TCP/IP як транспортного протоколу, що кардинально змінилося з часом, проте підтримка NetBIOS продовжувала бути присутньою. Проте роль NetBIOS постійно зменшувалася. Після призначення порту TCP/IP для файлових серверів SMB залежність від NetBIOS була повністю "вилікована", Крайній мірів контексті базового протоколу. Але ситуація залишалася заплутаною, оскільки деяким вторинним службам клієнтів та серверів Windows все одно був потрібний протокол NetBIOS. Хорошим прикладом буде оголошення серверами про свою присутність у мережі та надання списку доступних служб, а також надсилання цих оголошень клієнтам іншими серверами. З часом служби були перероблені і NetBIOS був повністю знятий з рахунків з виходом Windows 2000.
Нарешті, спадщину SMB можна помітити у кожному запиті CIFS, оскільки кожен запит та відповідь повинні починатися зі значення "0xFF", після чого слідують такі символи ASCII, як "SMB".

1.3.1 Різновиди стандарту CIFS

На жаль, точного визначення стандарту CIFS немає. Різні типипротоколи SMB називаються діалектами. Ось кілька можливих варіантів:
■ застосовуваний клієнтами DOS та Windows 3.x;
■ використовується при підключенні до серверів, які не працюють під керуванням Windows;
■ застосовуваний клієнтами під керуванням Windows NT.
Найчастіше клієнт надсилає серверу запит на встановлення сеансу і передає список всіх варіантів протоколу, що підтримуються. Сервер вибирає найбільш функціональний варіант та надсилає клієнту відповідний запит. Залежно від протоколу, про який домовилися клієнт і сервер, деякі запити та відповідні їм відповіді можуть бути неприпустимими. Узгоджений варіант протоколу не однозначно визначає фактичну реалізацію функцій протоколу, що вносить ще більшу плутанину; для вказівки підтримки певних функцій деякі прапори можуть бути встановлені або скинуті. Іншими словами, навіть при виборі протоколу існують різні варіантифункцій, що надаються: наприклад, один з прапорів може вказувати на наявність підтримки довгих імен файлів.
Як описано в документі RFC компанії Microsoft (за правилами IETF на даний момент він уже застарів), протокол CIFS забезпечує взаємодію клієнта та сервера для доступу до файлів та управління ними. Такі функції, як оголошення про наявність у мережі доступних принтерів та серверів, виходять за межі можливостей протоколу CIFS.
Організація SNIA продовжує роботу над специфікацією CIFS. Крім того, SNIA проводить щорічну конференцію, присвячену CIFS, та організовує інші заходи, на яких обговорюються питання взаємодії систем за протоколом CIFS.
Специфікація SMB стала стандартом з 1992 року (X/Open CAE Specification С209) і описує SMB як протокол забезпечення взаємодії між комп'ютерами під управлінням DOS, Windows, OS/2 і UNIX.

1.3.2 Опис протоколу CIFS

Запити та відповіді CIFS мають чітку, зрозумілу структуру. Поля пакетів SMB також стандартизовані, і відмінності залежать від обраного різновиду CIFS і функцій, що підтримуються як клієнтом, так і сервером.
Зверніть увагу, що показано лише загальні елементи для всіх варіантів SMB. Подробиці будови кожного варіанта пакета SMB виходять за межі теми цієї статті.
Деякі поля у таблиці вимагають більше повного опису. Поле команди має розмір один байт і визначає тип запиту. Сервер копіює це значення у відповідь, що дозволяє клієнту аналізувати останній. Специфікація CIFS містить значення та визначення для цього поля. Описані команди дозволяють виконувати такі операції, як відкриття файлу, читання, запис та блокування певного діапазону файлу. Всі ці операції виконуються як відповідь на запит програми.
Крім того, запити клієнта CIFS (і пов'язані з ними відповіді сервера) ініціюються кодом перенаправника без явного втручання програми. Прикладами будуть кешування та опортуністичні блокування (opportunistic locking). У специфікаціях CIFS RFC та SNIA, а також Open Group визначено значення та семантика коду команди CIFS розміром 1 байт.

ТаблицяСтруктура заголовка SMB

Поле

Розмір

Опис

Завжди має значення 0 xFFSMB

Вказівка ​​типу запиту

32-розрядний код помилки (генерується серверами Windows NT і повертається у вигляді 32-розрядного коду помилки клієнтам, які підтримують коди помилок Windows NT) АБО

Для старіших клієнтів, які не підтримують 32-розрядні коди помилок, повідомлення про помилку перетворюється на старий структурний тип. Старий тип включає:

■ 8-розрядний клас помилки, який свідчить про її різновид, тобто. повідомляється ця помилка операційною системою сервера чи самим сервером; крім того, це може бути помилка апаратного забезпечення або протоколу SMB;

■ 8 розрядів ігноруються;

■ 16-розрядний код помилки, який має значення лише в межах певного класу помилки

Семантика представлена ​​у табл. 3.2

Семантика представлена ​​у табл. 3.3

Заповнення/

Заповнення/підпис. Розглядається

у тексті розділу

Tid- значення

Використовується для ідентифікації сервера, який запитується клієнтом. Вказується за допомогою запиту SMB TreeConnect

Опис

Ідентифікатор

2 байт, але

Встановлюється клієнтом. Вказівка ​​на

процесу (Pid)

при необхо-

клієнтський процес, який здійснює

запит. Використовується сервером для

може бути

відстеження режиму відкриття файлів

розширено до

та для блокувань. Надсилається сервером

назад клієнту разом із ідентифікатором мультиплексора (mid) для унікальної. ідентифікація запитів, на які відповідає сервер

Ідентифікатор

Встановлюється та використовується клієнтом.

мультиплексора

Сервер повертає отриманий Mid у відповіді

на запит. Клієнт використовує значення Mid та Pid, ​​щоб ідентифікувати запит, для якого надійшла відповідь

Uid-значення

Призначається сервером після автентифікації клієнта. Клієнт повинен використовувати Uid у всіх запитах

Параметри

Змінна

Складається з 16-розрядного лічильника слів, який вказує на кількість 16-розрядних слів, що наступають за лічильником. Для кожної команди SMB цей лічильник зазвичай є фіксованим значенням з одним лічильником слів для команди і другим - для відповіді. Зазвичай цей лічильник має значення 5 або менше

Змінна

Складається з 16-розрядного лічильника слів, що вказує на кількість наступних за лічильником байт (8-розрядних слів) даних. Порівняно з полем параметрів поле даних може мати набагато більший розмірнаприклад 1 Кбайт і більше. У запитах SMB на читання та запис це поле містить фактичні дані, які зчитуються або записуються

Пам'ятайте, що нові значення та семантика полів можуть з'явитися без попередження з виходом нових версій Windows, оскільки протокол CIFS продовжує розвиватися.
Існує кілька команд для виконання однакових базових операцій; наприклад, для відкриття, читання та запису існує кілька разів особистих команд. Деякі команди вже не застосовуються, а в ряді випадків можуть використовуватись альтернативні команди, залежно від вибраного діалекту протоколу.
Далі наведено приклади функцій, описаних у полі команди.
■ Вибір SMB.
■ Встановлення сеансу зв'язку.
■ Перехід до каталогів та перерахування файлів та каталогів.
■ Відкривання, створення, закриття або видалення файлів.
■ Блокування та розблокування певних фрагментів файлу.
■ Операції друку.
■ Сповіщення про зміну файлів та каталогів.
■ Транзакції, у яких вказуються дані, параметри та операції. Сервер CIFS виконує запитану операцію та повертає результат - дані та параметри. Прикладами транзакцій можуть бути посилання у розподіленій файловій системі та управління розширеними атрибутами.

ТаблицяСемантика поля Flags

Значення

Опис

Зарезервувало. Використовується застарілими запитами

Зарезервовано. Має бути рівним нулю

Вказує на необхідність урахування регістру в іменах файлів

та каталогів

Зарезервовано

Зарезервовано. Використовується застарілими запитами

Зарезервовано. Використовується застарілими запитами

Вказівка, що це відповідь SMB

У полі Flag2 описано ще більше необов'язкових функцій. Значення цього поля наведено у таблиці нижче.
Поле Заповнення/підпис спочатку являло собою послідовність "холостих" байт. Згодом значення цього поля змінилося. Поле заповнення тепер може включати такі елементи:

ТаблицяСемантика поля Flags2

Значення

Опис

Клієнт підтримує довгі імена файлів. Сервер може повертати довгі імена файлів

Клієнт підтримує розширені атрибути OS/2

Увімкнено підписування пакетів SMB

Зарезервовано

Зарезервовано

Зарезервовано

Кожне ім'я шляху в запиті є довгим ім'ям

Зарезервовано

Зарезервовано

Зарезервовано

Зарезервовано

Вказівка ​​на використання розширеного механізму безпеки, що розглядається у розділі 3.3.3

Шляхи у запиті мають бути перетворені засобами розподіленої файлової системи

Сторінне введення-висновок, що вказує на те, що читання має бути дозволене, коли клієнт має відповідний дозвіл

Вказує на повернення 32-розрядного коду помилки. Якщо прапор не встановлено, використовується код помилки у стилі DOS

Якщо прапорець встановлений, шляхи SMB вказані у форматі Unicode . В іншому випадку застосовується кодування ASCII

■ 2 байти ідентифікатора процесу, що дозволяє вказувати 32-розрядні ідентифікатори процесу;
■ 8 байт для зберігання підпису пакета SMB, якщо ця функція активована (див. опис поля Flags2);
■ 2 байти, що не використовуються.

1.3.3 Безпека CIFS

Протокол CIFS забезпечує безпеку засобами сервера. Адміністратор може вимкнути систему вбудованої безпеки CIFS, в чому навряд чи з'явиться необхідність, тому система безпеки увімкнена за умовчанням.
У старих варіантах CIFS допускається надсилання незашифрованого текстового паролявід клієнта до сервера, який категорично не рекомендується. Протокол CIFS дозволяє захистити ресурси сервера за допомогою паролів окремих користувачів (це називається безпекою на рівні користувача). Для забезпечення зворотної сумісності сервери CIFS підтримують захист спільного ресурсу на основі пароля, однакового для всіх користувачів. Оскільки ресурс буде надано у спільне користування, цей метод називається безпекою на рівні ресурсу. Використовувати механізм безпеки на рівні ресурсу не рекомендується, і Windows 2000 Server ця система відсутня. Перший пакет SMB, який надсилається серверу клієнтом, називається SMB_NEG0TIATE_PR0T0C0L. Пакет використовується для вибору типу CIFS. У відповідь на запит SMB_NEG0TIATE_PR0T0C0L сервер повідомляє про механізм безпеки (рівень користувача або ресурсу).
Починаючи з Windows NT4 SP3 та Windows 2000, компанія Microsoft надала можливість розміщення у пакетах SMB цифрового підпису. Сервер може бути налаштований на обов'язкову вимогу цифрового підпису від клієнта; інакше клієнту буде заборонено доступ до ресурсів. Використання цифрового підпису відбивається на продуктивності сервера і клієнта, але це ціна, яку доводиться платити за безпеку. Зауважте, що підписування і перевірка мають двонаправлену природу, тобто. клієнт підписує запити, що надсилаються, сервер перевіряє підпис клієнта і підписує відповіді, що відправляються, після чого клієнт перевіряє підпис сервера. Підпис SMB зберігається в полі Заповнення/підпис.
Відповідь на запит SMB_NEG0TIATE_PR0T0C0L використовується для надання клієнту інформації про підтримку сервером підписування пакетів SMB та необхідність обов'язкового підписування пакетів SMB.

1.3.4 Аутентифікація CIFS

Протокол CIFS дозволяє визначати рівень безпеки під час взаємодії серверів та клієнтів. Сервер може бути налаштований на відмову в обслуговуванні клієнтів, які пропонують занадто низький рівеньбезпеки.
Протокол CIFS надає механізми автентифікації, необхідні серверу для автентифікації клієнта. Крім того, надаються методи автентифікації сервера клієнтом. У базовому рівніавтентифікації клієнт повідомляє ім'я користувача та незашифрований пароль. З очевидних причин такий підхід є небажаним. Більше того, сервер можна налаштувати на відмову в обслуговуванні клієнтів, які надсилають паролі у незашифрованому вигляді.
Аутентифікація може виконуватися за допомогою технології, яка називається протокол запит/відповідь (challenge/response protocol). При надсиланні клієнтом пакета SMB_NEGOTIATE_PROTOCOL для вибору типу CIFS прапор у відповіді сервера вказує на можливість використання протоколу запит/відповідь. Якщо сервер підтримує цей протокол, у відповіді сервера надається 8-байтовий запит. Запит – це випадкове значення з дуже низькою ймовірністю повторної генерації. І клієнт та сервер формують ключ із пароля користувача. Після цього запит шифрується за допомогою ключа та алгоритму DES (Data Encryption Standart). Клієнт відправляє запит серверу, а сервер порівнює відповідь із власним підрахованим значенням. Якщо два значення збігаються, клієнт доводить знання пароля та підтверджує свою автентичність.
Крім того, протокол CIFS підтримує систему розширеної безпеки (можете і не сподіватися, що читач, який здогадається про вказівку на підтримку розширеної безпеки у відповіді сервера на запит SMB_NEGOTIATE_PROTOCOL, отримає нагороду). Механізм розширеної безпеки надає можливість підтримки довільного протоколу автентифікації у рамках протоколу CIFS. При виборі розширеної безпеки перший двійковий об'єкт безпеки надається у відповідь на запит SMB_NEGOTIATE_PROTOCOL. Двійкові об'єкти безпеки не обробляються протоколом CIFS. У цьому він покладається на механізми клієнта та сервера, призначені для генерації та обробки двійкових об'єктів. Наступні двійкові об'єкти безпеки можуть передаватись з даними SMB.
Використання механізму розширеної безпеки дозволило Microsoft забезпечити підтримку протоколу Kerberos у Windows 2000 та пізніших версіях. Реалізація Kerberos у Windows 2000 є прикладом використання закритих елементів. Наприклад, деякі поля мандатів Kerberos застосовуються передачі інформації про групи, куди входить клієнт. Реалізація Kerberos від Microsoft допускає взаємну аутентифікацію, коли сервер проводить аутентифікацію клієнта, а й навпаки, клієнт аутентифікує сервер.
Компанія Microsoft пропонує ще один спосіб встановлення сеансу зв'язку між клієнтом та сервером, який називається Netlogon. При цьому використовуються дані про комп'ютер (а не про користувача). Протокол Netlogon потрібний для встановлення безпечного сеансу RPC і має набагато більше можливостей, оскільки підтримує маркери доступу користувачів, які не підтримуються під час реєстрації засобами протоколу CIFS. Зазвичай Netlogon використовується зв'язку між серверами (один сервер виступає ролі клієнта іншого сервера).
Нарешті, сервер CIFS не обов'язково має забезпечувати роботу механізму автентифікації. Протокол CIFS підтримує наскрізну автентифікацію, коли сервер отримує запит у іншого сервера, передає запит клієнту і повертає відповідь клієнта серверу аутентифікації. Якщо сервер автентифікації відповідає позитивно, клієнту надається доступ до запитаних ресурсів. Цей механізм відомий як наскрізна автентифікація.

1.3.5 Можливості оптимізації CIFS

Протокол CIFS має різні можливості оптимізації взаємодії між клієнтом і сервером.

1.3.5.1 Функція CIFS AndX

Протокол CIFS дозволяє формувати послідовність запитів, що взаємно залежать один від одного, тому оптимізація цих операцій дозволяє завершити виконання запиту за одне звернення до сервера. Ця функція називається AndX; Файлова система NFS версії 4 забезпечує подібну функцію як процедури COMPOUND. Приклад може бути відправка запитів OpenAndRead або WriteAndClose серверу CIFS. При цьому замість відправлення окремих двох запитів, наприклад Open, а потім Read, та отримання двох відповідей надсилається один запит OpenAndRead і виходить одна відповідь. Це має особливе значення в тому випадку, коли час звернення запит/відповідь занадто великий.

1.3.5.2 Оппортуністична блокування

Протокол CIFS підтримує таку технологію оптимізації продуктивності, як опортуністична блокування (opportunistic locking або oplock). Існує дві основні причини для використання опортуністичного блокування.
Перша полягає у блокуванні файлу та ініціалізації його локального кешування. Коли умова блокування більше не підтримується, протокол допускає певну затримку, протягом якої клієнт повинен очистити кеш. Блокування та розблокування виконуються непомітно для програми за допомогою механізмів CIFS клієнтської та серверної систем. Для підвищення продуктивності модифікації програми не потрібно.

Уявіть собі програму, яка відкриває файл на мережевому серверідля читання та запису та записує у файл 128-байтові записи. Без опортуністичного блокування кожен запис розміром 128 байт вимагатиме передачі даних по мережі. Використання oplock дозволяє локально кешувати файл на клієнтській системі та об'єднувати кілька операцій запису в одну, що призводить до передачі даних через мережу. Наприклад, припустимо, що клієнт використовує буфери розміром 4096 і записує послідовно у файл по 128 байт. Перший буфер міститиме дані 32 операцій запису (4096/128 = 32), і всі дані 32 записів будуть передані по мережі одним запитом на запис файлу. Якщо операція запису не може бути кеширована, по мережі буде передаватися 32 операції запису (а не одна, як при кешуванні). Скорочення кількості операцій запису з 32 до однієї призводить до значного зниження навантаження на мережу та суттєвого підвищення продуктивності.
Другим призначенням опортуністичного блокування є розширення умов, за яких подібне блокування можливе. При використанні оплок можна збільшити ефективність кешування. Розширення умов, за яких можливе опортуністичні блокування, надає кілька додаткових переваг. Припустимо, що екземпляр програми відкриває файл (на мережному сервері) для читання та запису. При цьому запитується та надається опортуністична блокування. Програмний код клієнта може кешувати операції запису у файлі. Припустимо, що інший екземпляр тієї ж програми запущено іншому клієнті. Одним із виходів з подібної ситуації буде зняття опортуністичного блокування та використання мережного вводу-виводу для передачі запитів на запис у файл від обох додатків. Ще одним способом буде зняття опортуністичного блокування в той момент, коли другий екземпляр програми спробує виконати операцію запису. Дуже часто програми взагалі не виконують операції запису.
При зміні умов сервер надсилає повідомлення клієнту про зняття опортуністичного блокування. Як приклад ситуації, коли сервер надсилає сповіщення про зняття опортуністичного блокування, можна вказати запит на доступ до файлу або запис даних у файл іншим клієнтом. Сервер забезпечує очищення даних стану сервера (включаючи закриття сеансу клієнта), якщо клієнт не відповідає на запит про зняття опортуністичного блокування. Клієнт запитує oplock тільки у разі потреби; наприклад, якщо програма запитує відкриття файлу для ексклюзивного доступу, запит опортуністичного блокування просто не має сенсу.
Оппортуністичні блокування реалізуються у трьох варіантах:

Послідовність операцій при ексклюзивному опортуністичному блокуванні

■ ексклюзивне опортуністичне блокування;
■ пакетне опортуністичне блокування;
■ опортуністичне блокування другого рівня. Далі ці сценарії описуються докладніше.

Ексклюзивне опортуністичне блокування

Цей варіант блокування запитується міні-перенаправником CIFS, коли програма відкриває файл для читання або запису. Сервер надає опортуністичне блокування, якщо файл ще не відкритий іншим клієнтом. Послідовність операцій показано малюнку.
Для початку перший клієнт надсилає запит на відкриття файлу, запитуючи ексклюзивне опортуністичне блокування. Сервер виконує необхідну перевірку та надає її. Перший клієнт починає кешування файлу, виконуючи операції запобіжного читання та відкладеного запису. Через деякий час інший клієнт, наприклад, клієнт 2 відправляє серверу запит на відкриття того ж файлу. Сервер зазначає, що клієнт 1 володіє ексклюзивним опортуністичної блокуванням для запитаного файлу, і надсилає повідомлення про зняття блокування клієнту 1. Клієнт 1 очищає буфери даних, відправляючи необхідні запити на запис та блокування файлу. Як тільки дані стану файлу будуть записані, клієнт 1 повідомляє серверу, що обробка повідомлення про зняття опортуністичного блокування завершено. На цьому етапі сервер надсилає відповідь клієнту 2, дозволяючи йому відкрити файл. Клієнт 1 продовжує роботу з файлом, не проводячи локального кешування. В даному випадку передбачається, що клієнт 1 відкрив файл у режимі, що дозволяє відкриття файлу іншими клієнтами.

Оппортуністична блокування другого рівня

Дуже часто клієнти відкривають файл у режимі читання/запису та нічого не записують у файл до його закриття. Оппортуністична блокування другого рівня проектувалась для забезпечення спільного використання та кешування файлів у такій ситуації. Ексклюзивне опортуністичне блокування та пакетне опортуністичне блокування (воно розглядається в наступному розділі) завжди надаються на запит клієнта. Але опортуністична блокування другого рівня ніколи не запитується клієнтом. Клієнт починає з запиту ексклюзивного опортуністичного блокування. Якщо таке блокування надається, сервер при виконанні певних умов (вони описані далі) може знизити ексклюзивне опортуністичне блокування до блокування другого рівня.
Клієнт 1 починає роботу із запиту ексклюзивного опортуністичного блокування і приступає до локального кешування файлу. Зокрема, клієнт 1 проводить попереджувальне читання і локально кешує дані, що блокуються. Пам'ятайте, що клієнт не збирається записувати дані у файл. На певному етапі клієнт 2 запитує доступ до цього файлу. Сервер відправляє клієнту 1 повідомлення з вимогою знизити ексклюзивне опортуністичне блокування до блокування другого рівня. Клієнт анулює блокування та повідомляє, що обробка повідомлення завершена. Далі сер вер надсилає клієнту 2 повідомлення про успішне відкриття файлу і надає клієнту опортуністичну блокування другого рівня. В даному випадку передбачається, що клієнт 1, відкриваючи файл, повідомив сервер, що інші клієнти також можуть отримати доступ до файлу.
При використанні опортуністичного блокування другого рівня клієнтам заборонено буферизувати блоковані дані. Перевага цієї схеми полягає в спрощеній когерентності даних на стороні сервера, в той час як клієнт кешуватиме дані, що зчитує, що дозволяє скоротити обсяг інформації, що передається по мережі. Як тільки один із клієнтів видає запит на запис, сервер знімає опортуністичне блокування другого рівня, після чого блокувань взагалі не залишається. Оскільки жоден із клієнтів не буферизує блоковані дані за наявності блокувань другого рівня, успішна операція запису означає, що запис виконувався в область файлу, не заблоковану іншими клієнтами. Після зняття опортуністичного блокування другого рівня клієнтам забороняється буферизувати лічені дані.

Оппортуністична блокування другого рівня

Пакетне опортуністичне блокування

Цей варіант блокування використовується для оптимізації швидкодії обробки командних файлів. Командний процесор зазвичай відкриває файл, шукає необхідний рядок, зчитує його, закриває файл і обробляє прочитаний рядок засобами інтерпретатора. командного рядка. Після цього файл знову відкривається, в ньому знаходиться наступний рядок, файл закривається, і наступний рядок обробляється інтерпретатором командного рядка. Цей цикл виконується, поки всі рядки командного файлу не закінчаться.

Пакетне опортуністичне блокування

Вище наведено послідовність операцій. Клієнт 1 відкриває командний файл і запитує пакетне опортуністичне блокування. Припустимо, що сервер надає пакетне блокування, оскільки ніхто не виконує запис даних у файл. Клієнт 1 шукає у файлі певний рядок та здійснює операцію читання. Інтерпретатор виконує прочитаний рядок. Потім файл закривається. Міні-перенаправник CIFS не виконує жодних дій при отриманні запиту закриття файлу (тобто виконується операція відкладеного закриття). Інтерпретатор командного рядка відкриває файл, але міні-перенаправник CIFS не виконує операцію відкриття, а просто скасовує розміщену в черзі операцію відкладеного закриття файлу. Коли інтерпретатор командного рядка виконує операції пошуку та читання рядка, міні-перенаправник CIFS надсилає запити на пошук та читання.
В результаті скорочується обсяг даних, що передаються по мережі (виконується менше запитів на відкриття та закриття файлу). Крім того, оптимізується використання ресурсів сервера, так як від сервера не потрібно негайно обробляти запит на закриття файлу з подальшим його повторним відкриттям.

Вивчаємо Linux, 302 (змішані середовища)

Інтеграція з протоколом CIFS

Використання Linux як клієнта серверів SMB/CIFS

Серія контенту:

Про цю серію

Ця стаття серії допоможе вам освоїти завдання адміністрування операційної системи Linux. Ви можете використовувати матеріали цих статей для підготовки до іспитів програми LPIC третього рівня (LPIC-3).

Щоб переглянути опис статей цієї серії та отримати посилання на них, зверніться до нашого . Цей перелік постійно доповнюється новими статтями в міру їхньої готовності та містить поточні (станом на листопад 2010 року) ціліекзаменів сертифікації LPIC-3

У цій статті розглядаються такі теми:

  • Протоколи Server Message Block (SMB) та Common Internet File System (CIFS).
  • Можливості та переваги використання CIFS.
  • Встановлення загальних файлових ресурсів CIFS на клієнтах Linux.

Ця стаття допоможе вам підготуватися до складання іспиту LPI 302 (спеціалізація "Змішані середовища") та містить матеріали мети 314.1 теми 314. Ціль має вагу 3.

Попередні вимоги

Щоб отримати найбільшу користь з наших статей, необхідно мати просунуті знання про Linux і мати працездатний комп'ютер з Linux, на якому можна буде виконувати всі команди, що зустрічаються. Зокрема, передбачається, що читач уміє працювати з командним рядком Linux, знає основи конфігурування Samba та має загальне уявлення про структуру конфігураційного файлу smb.conf. Необхідно також знати основи монтування локальних та віддалених файлівих систем (за допомогою команди mountта файлу /etc/fstab). Знання про команду ftp , що входить до стандартного набору текстових команд Linux вітаються, хоча не обов'язкові.

Що таке SMB/CIFS

Про факультативний іспит LPI-302

Як і багато інших програм, програма сертифікації Linux Professional Institute (LPIC) передбачає різні рівні сертифікації, де для отримання кожного наступного рівня необхідно мати більш глибокі знання та практичний досвід. Іспит LPI-302 – це факультативний іспит третього рівня програми LPIC, що вимагає просунутих знань у галузі системного адміністрування Linux.

Для отримання сертифіката LPIC третього рівня (LPIC-3) необхідно успішно скласти два іспити першого рівня (101 і 102), два іспити другого рівня (201 та 202), а також базовий іспит 301 третього рівня (LPIC-3). Якщо ви отримали сертифікат третього рівня, ви можете складати факультативні іспити за певними спеціалізаціями, наприклад, екзамен LPI-302.

Перш ніж переходити до розповіді про те, як використовувати Linux як клієнт сервера SMB/CIFS, корисно розповісти про особливості цих протоколів і з'ясувати, наскільки повно вони забезпечують використання файлової системи при роботі з Linux. Ми пояснимо, як працює вивчення оригінального протоколу SMB і які нові функції реалізовані в його модифікації CIFS. Ви можете звернутися до статті developerWorks, яка містить матеріали мети 310.1 іспиту LPI, в якій розглядаються деякі основні принципи SMB/CIFS (див. посилання у розділі ).

Основні можливості SMB

SMB має кілька унікальними можливостямиз погляду роботи у мережі, включаючи власну систему іменування комп'ютерів (Network Basic Input/Output System, NetBIOS), робочі групи та протоколи аутентифікації. Для того щоб зрозуміти, як SMB і CIFS працюють з Linux-клієнтами загальних файлових ресурсів, потрібно розповісти про найбільш важливу функцію цих протоколів, а саме, про набір метаданих.

Метадані- Це дані, пов'язані з файлом, але не є його частиною. Прикладом метаданих є позначка часу, власник, права доступу і навіть ім'я файлу. Безсумнівно, ви знаєте про деякі способи використання метаданих на комп'ютерах Linuxі, можливо, про їх деякі відмінності в Linux та інших операційних системах, наприклад, Windows. Оскільки протокол SMB був розроблений для DOS, Windows та IBM Operating System/2® (OS/2), він містить багато метаданих, специфічних для цих операційних систем. Однак важливіше те, що SMB не підтримує такі метадані UNIX® та Linux, як власники, групи та більшість прав доступу. Крім того, SMB не підтримує символічні та жорсткі посилання, а також інші спеціальні типи файлів, наприклад файли пристроїв. SMB містить кілька типів метаданих, які не розпізнаються Linux у звичайному режимі, наприклад, біти hidden(прихований) , archive(архівний) та system(Системний). Біт Read-only (тільки читання) можна зіставити біту дозволів Write (запис) у Linux.

Створіть свій власний канал

Ви можете створити власний RSS, Atom або HTML канал оновлень і отримувати повідомлення про нові або оновлені статті нашого сайту. Для цього перейдіть на сторінку, виберіть зону Linux, встановіть прапорець Статтіі введіть ключову фразу Linux Professional Institute , після чого виберіть потрібний тип каналу.

Іншим обмеженням SMB є максимальний розмірфайлу, що дорівнює двом гігабайтам. Це обмеження є очевидною проблемою у сьогоднішньому світі багатогігабайтових архівів, мультимедіа-файлів тощо.

Для того щоб клієнти Linux могли працювати з SMB з урахуванням перерахованих вище особливостей, вони повинні або ігнорувати їх, або мати можливість використовувати "підроблені" дані. Ці можливості схожі на ті, що використовуються при монтуванні в Linux файлових систем NTFSабо FAT. На щастя, протокол CIFS надає ширший набір інструментів, які дозволяють обходити деякі з цих обмежень.

Необхідно також знати і про мережеві порти, що використовуються протоколом SMB. Це UDP-порти (User Datagram Protocol) 137 і 138, і навіть TCP-порт 139 (служби сеансів – іншими словами, передача файлів). Ця інформація буде потрібна при налагодженні SMB за допомогою низькорівневих утилітдіагностики мережі

Розширення CIFS для протоколу SMB

У середині 1990-х років компанія Microsoft® змінила назву протоколу SMB на CIFSі одночасно додала до нього низку нових можливостей, включаючи підтримку символічних та жорстких посилань, а також файлів великого обсягу. Також CIFS підтримує доступ до сервера захищеного TCP-порту 445 на додаток до стандартному порту 139.

Не менш важливими, ніж власні розширення Microsoft для SMB, виявилися інші розширення CIFS. Зокрема, ряд функціональних можливостей, відомий як UNIX extensions(Розширення UNIX), забезпечує підтримку власників та прав доступу до файлів поряд з іншими типами метаданих UNIX. Якщо і клієнти, і сервер підтримують ці розширення, використання протоколу CIFS замість протоколу SMB може забезпечити набагато більше ефективну роботуклієнтів під керуванням Linux. Як і можна було очікувати, ці розширення не підтримуються операційними системами сімейства Windows Server®, тому вони корисні тільки тоді, коли клієнти Linux підключаються до сервера Samba. Сервер повинен бути налаштований за допомогою наступного глобального параметра:

unix extensions = Yes

За замовчуванням цей параметр був встановлений у No у всіх версіях Samba, менше 3.0, але в Samba 3.0 за замовчуванням він встановлений у Yes, що позбавляє необхідності налаштовувати його вручну.

Використання smbclient

Можливо, найпростіший спосіб отримати доступ до сервера SMB/CIFS з клієнта Linux– це використовувати утиліту командного рядка smbclient. Ця утиліта схожа на класичну команду ftp, тому якщо ви знайомі з ftp, то ви легко освоїте і smbclient. Якщо ви не знайомі з ftp , достатньо знати, що ця програма забезпечує з'єднання з сервером безстандартного монтування загальних файлових ресурсів Натомість для перегляду, видалення, завантаження або передачі файлів користувач виконує різні команди.

Для використання smbclient необхідно набрати в командному рядку ім'я цієї команди та ім'я служби у наступному форматі: // СЕРВЕР / СЛУЖБА. Наприклад, якщо необхідно отримати доступ до спільного ресурсу GORDON на сервері TANGO, слід вказати ім'я //TANGO/GORDON. Залежно від конфігурації сервера може знадобитися ввести пароль. Якщо введено правильний пароль, можна вводити різні команди для доступу до файлів, що зберігаються на сервері. У таблиці 1 перераховані деякі найважливіші команди smbclient; Для отримання інформації про інші більш екзотичні команди зверніться до сторінки цієї утиліти.

Таблиця 1. Найважливіші команди smbclient
КомандаДія
? або helpВиводить список усіх команд
cdЗмінює робочу директорію на віддаленому сервері
delВидаляє файл
dir або lsВиводить список файлів у поточній (або вказаній) директорії
exit або quitЗавершує сеанс роботи
getПередає файл із сервера клієнту
lcdЗмінює робочу директорію на локальному комп'ютері
md або mkdirСтворює директорію на віддаленому сервері
mgetПередає кілька файлів із сервера клієнту
moreВиводить список віддалених файлів за допомогою локальної команди посторінкового виводу
mputПередає кілька файлів із клієнта на віддалений сервер
putПередає файл із клієнта на віддалений сервер
rd або rmdirВидаляє директорію
renameПерейменовує файл на віддаленому сервері
rmВидаляє один або кілька файлів на віддаленому сервері

За промовчанням для підключення до сервера smbclient використовує поточне ім'я користувача, проте можна вказати ім'я за допомогою опції -U . Насправді можна використовувати кілька опцій командного рядка, включаючи опції, що дозволяють передавати файли без входу в інтерактивний режим smbclient. Таким чином, smbclient можна використовувати у сценаріях для виконання автоматичної передачі файлів. За додатковою інформацією зверніться до сторінки цієї утиліти.

Сеанс роботи з smbclient виглядає приблизно так:

Лістинг 1. Приклад сеансу роботи з smbclient
$ smbclient //TANGO/GORDON/ Enter gordon"s password: Domain= OS= Server= smb: \> cd mystuff smb: \mystuff\> ls. D 0 Mon May 16 19:20:08 2011 .. D 0 Mon May 16 19:18:12 2011 xv-3.10a-1228.1.src.rpm 3441259 Tue May 18 19:09:26 2010 License.txt 27898 Mon May 16 19:17:15 2012 18:13 2011 51198 blocks of size 2097152. 2666 blocks available smb: \mystuff\> get xorg.conf Get file \mystuff\xorg.conf size 1210 as xorg.conf (9.4 KiloBytes/sec) ) smb: \mystuff\> exit

Порада.Утиліта smbclient є чудовим інструментом налагодження. Незважаючи на свою простоту, вона дозволяє отримати доступ до мережного оточення без монтування ресурсів, що може спрощувати пошук та усунення проблем.

Монтування файлових ресурсів SMB/CIFS

Не дивлячись на всю свою ефективність, smbclient не дозволяє отримати такий прозорий доступ до сервера, як при роботі з Windows-клієнтом. Якщо вам потрібен саме такий доступ, необхідно використовувати інші засоби, що дозволяють монтувати загальні ресурси SMB/CIFS. Це можна зробити за допомогою стандартної команди Linux mount або редагуючи файл /etc/fstab для автоматичного монтування ресурсів SMB/CIFS під час завантаження комп'ютера.

Тимчасове монтування загальних ресурсів

Файловий ресурс SMB/CIFS можна змонтувати за допомогою команди mount, яка також використовується для монтування локальних томівабо спільно використовуваних ресурсів NFS. Можна вказати тип файлової системи CIF або в більшості випадків mount визначить необхідність використання того чи іншого драйвера на основі синтаксису команди. Крім того, можна безпосередньо викликати допоміжну програму mount.cifs. По суті, монтування локальної та віддаленої файлової системи відрізняється лише типом пристрою, що монтується; таким чином, для монтування ресурсу GORDON, розташованого на сервері TANGO, достатньо виконати від імені користувача root наступну команду:

# mount //TANGO/GORDON /mnt

На практиці така команда може створити проблему: як ім'я користувача вона передає на сервер ім'я root , і якщо цього користувача не дозволено підключатися до сервера, то монтування завершиться з помилкою. Цю проблему можна виправити за допомогою опції -o user=ім'я для передачі імені користувача на сервер.

# mount -o user=gordon //TANGO/GORDON /mnt Password:

Можна використовувати кілька інших опцій монтування, які передаються команді mount за допомогою опції -o . Найкорисніші з них перераховані в таблиці 2. За додатковою інформацією про інші опції зверніться до man-сторінки mount.cifs .

Таблиця 2. Найважливіші опції mount.cifs
ОпціяДія
user= name or username= name Визначає ім'я користувача, яке передається на сервер.
password= pass Визначає пароль для передачі на сервер. Якщо пароль не вказано, mount.cifs використовує значення змінної оточення PASSWD; якщо значення PASSWD не встановлено, програма запитує пароль у користувача.
credentials= filename Визначає файл, що містить ім'я користувача, пароль та необов'язкове ім'я робочої групи. Кожне значення вказується в окремому рядку, що починається з username= , password= і workgroup= відповідно.
uid= UID Визначає ідентифікатор (ID) користувача, який буде власником файлів змонтованого ресурсу.
gid= GID Аналогічна опції uid= UID, але застосовується до ідентифікаторів груп (GID), а не до ідентифікаторів користувачів (UID).
file_mode= mode Встановлює режим файлів (дозвіл) у числовій формі, який буде призначений файлам на сервері.
dir_mode= mode Аналогічна опції file_mode = mode, але застосовується не до файлів, а до директорій.
guestЗапобігає запитам на введення пароля. Зазвичай ця опція працює тільки в тому випадку, якщо ресурс має гостьовий доступ.
hardЯкщо сервер стає недоступним, то процеси, які намагаються отримати доступ до розміщених на ньому файлів, залишаються в стані, доки доступ до сервера не буде відновлений.
softЯкщо сервер стає недоступним, процеси, які намагаються отримати доступ до файлів, одержують повідомлення про помилки. Ця дія використовується за умовчанням.

Параметри uid , gid , file_mode та dir_mode зазвичай не є обов'язковими при підключенні до сервера з підтримкою розширень UNIX, реалізованих у CIFS. Проте ці параметри можна використовувати для перевизначення значень, встановлених на сервері. Також відзначимо, що всі ці параметри впливають на те, як видно файли. клієнту; вони не впливають на дозволи та права володіння файлами на сервері.

Після того, як загальний ресурс SMB/CIFS змонтований, можна отримати до нього доступ так само, як і до локальному дискучи тому NFS. Можна копіювати та видаляти файли командами cp та rm , редагувати їх у текстових редакторах чи інших програмах тощо. Однак пам'ятайте, що якщо сервер не підтримує певні можливості, то ви не зможете їх використовувати. Наприклад, неможливо змінити режим файлу за допомогою chmod, якщо сервер не підтримує розширення UNIX (приватним винятком у випадку з chmod є можливість зміни дозволів на запис - ці дозволи інверсно зіставлені біту "тільки читання" протоколу SMB).

Коли робота із загальним ресурсом закінчена, його можна розмонтувати за допомогою команди umount як звичайну локальну файлову систему:

# umount /mnt
Монтування файлових ресурсів за допомогою SMB

Ядра Linux до версії 2.6.37 містили окремі драйвери SMB та CIFS та дозволяли змонтувати загальний ресурс з використанням оригінальних протоколів SMB; для цього потрібно було або вказати як тип файлової системи smbfs, або використовувати команду smbmount. При цьому все працювало майже так, як і при використанні типу файлової системи cifs або команди mount.cifs, хоча були деякі відмінності в деталях. Використання протоколу SMB унеможливлювало використання функцій, властивих тільки CIFS, наприклад, розширень UNIX.

Раніше іноді мало сенс використовувати SMB; наприклад, можна було монтувати файлові ресурси дуже старих комп'ютерів під керуванням Windows 9x/Me, використовуючи драйвер Linux smbfs, але не використовуючи cifs. Сьогодні такі ситуації трапляються дуже рідко, оскільки в сучасній реалізації cifs була усунена б обільша частина його обмежень, що колись існували. Тим не менш, якщо ви зіткнулися з подібною проблемою, спробуйте інсталювати ядро Linuxз версією до 2.6.37 та перевірити, чи допоможе драйвер smbfs вирішити її.

Постійне монтування загальних ресурсів

Якщо необхідно змонтувати файловий ресурс SMB/CIFS на постійній основі, для цього потрібно додати запис у файл /etc/fstab. Ці зміни схожі на інші зміни файлу /etc/fstab, які виникають в процесі роботи команди mount . Однак є одна опція, яка заслуговує особливої ​​увагиу цій ситуації, а саме credentials . Оскільки більшість SMB/CIFS серверів використовують для аутентифікації паролі, для монтування файлових ресурсів за допомогою /etc/fstab необхідно зберігати постійний пароль. Хоча пароль можна зберігати безпосередньо у файлі /etc/fstab (використовуючи опцію password), робити цього не рекомендується – оскільки файл /etc/fstab має бути доступним для читання всім користувачам, будь-який користувач може також побачити і пароль. Використання опції credentials дозволяє зберігати паролі у файлі, доступному для читання лише користувачеві root, що підвищує їхню захищеність.

Робочий запис у файлі /etc/password для загального ресурсу SMB/CIFS може виглядати так:

//TANGO/BACKUPS /saveit cifs credentials=/etc/samba/creds.txt 0 0

Пов'язані з нею облікові дані можуть мати такий вигляд:

username=buuser password=Iw2bUmS)