Взаємодія комп'ютерів в мережі windows

Що таке Samba?

Я думаю, що твердження про те, що найпопулярнішою операційною системою для клієнтських машин є Windows, не викличе серйозних суперечок. Хоча з появою таких продуктів, як OpenOffice.ru, і активному просуванню своїх продуктів компаніями AltLinux і ASPLinux, становище дещо змінилося, але до масовості ще справа не дійшла. Тому більшість користувачів продовжують набирати документи в Word і бродити по Інтернету за допомогою Internet Explorer. А ось як сервер положення останньої вже не так однозначно, тут вже грають роль NetWare від Novell і, звичайно ж, UNIX. Плюс за останній рік довелося всім потіснитися через появу нових «гравців» на цьому ринку - операційних систем з відкритим кодом - Linux, FreeBSD і OpenBSD, які вже зараз займають чималий відсоток ринку серверів. Перш за все через свою надійності, стійкості, сумісності з безліччю платформ і безпеки. Тому зараз системному адміністратору доводиться часто вирішувати питання інтеграції серверів під управлінням Linux / UNIX в мережу, де переважають клієнтські машини від Microsoft, особливо в якості файл-серверів або серверів друку.

Так як чуда від Microsoft особливо чекати не доводиться і Windows врядли навчиться працювати з мережевої файлової системою UNIX (NFS) стандартними засобами, то за принципом гори і Магомета, просто навчили UNIX прикидатися, нібито він - Windows NT.

  • тільки для читання - читання, запис для власника;
  • архівний - виконання для власника;
  • системний - виконання для групи;
  • прихований - виконання для групи.

Ось з проблемами так чи інакше розібралися. Давайте розберемося тепер конкретно з реалізацією і налаштуванням SAMBA в Linux. Для роботи Samba необхідно, щоб були запущені два демона: smbd забезпечує роботу служби друку і поділу файлів для клієнтів Samba, таких як Windows всіх мастей; демон nmbd забезпечує роботу служби імен NetBIOS, а також може використовуватися для запиту інших демонів служб імен. Для доступу до клієнтів використовується протокол TCP / IP. Як правило, Samba встановлюється разом з дистрибутивом Linux. Як перевірити? Просто дайте команду:

sergej @ grinder sergej] $ whereis samba

і ви повинні отримати щось на зразок цього:

samba: / usr / sbin / samba / etc / samba /usr/share/man/man7/samba.7.gz

Якщо немає, то йдіть на ftp://ftp.samba.org/pub/samba/samba-latest.tar.gz або практично на будь-який сервер з програмами для Linux і качайте у вигляді rpm або початкових кодів. Пакет простий в установці, тому, щоб не займати місця, будемо вважати, що він у вас встановлений. Тепер давайте перевіримо, чи запущений демон:

[Sergej @ grinder sergej] $ ps -aux | grep smbd

root 1122 0.0 0.6 4440 380. S 16:36 0:00 smbd -D

У мене вже запущений. Якщо у вас немає, то в Linux Mandrake, наприклад, щоб він запускався при старті відзначте потрібний пункт в: DrakConf - стартові сервіси або control-panel - Servise Configuration в Red Hat, зазвичай цього буває достатньо, або запускайте вручну. /etc/rc.d/init.d/smb start. Єдиний конфігураційний файл Samba називається smb.conf і знаходиться в каталозі / етс іноді (в AltLinux, наприклад, в каталозі / etc / samba). Сервіс SAMBA зчитує його кожні 60 секунд. Тому зміни внесені в конфігурацію вступають в силу без перезавантаження, але не поширюються на вже встановлені з'єднання.

Значення типових параметрів секції global:

workgroup = імя_группи # назва робочої групи в мережі Windows

netbios name = ім'я сервера в мережі

guest ok = yes # дозвіл гостьового входу (guest ok = no - гостьовий вхід заборонений)

security = user # Рівень доступу.

user - на рівні користувача,

security = share - аутентифікація на основі імені і пароля.

При зберіганні бази паролів на іншому SMB-сервері використовуються значення security = server і password server = name_server_NT. У разі якщо сервер є членом домена використовується значення security = domain, пароль для доступу вказується у файлі певному за допомогою опції smb passwd file = / path / to / file.

Крім того, при реєстрації можуть використовуватися шифровані (encrypted) і незашифровані (plain-text) паролі. Останні використовуються в старих Windows (Windows for Workgroups, Windows 95 (OSR2), всі версії Windows NT 3.x, Windows NT 4 (до Service Pack 3). Для включення варіанти використання шифрованого пароля використовується опція encrypt password = yes (за замовчуванням використовуються НЕ шифровані паролі).

Для правильного відображення російських імен файлів використовуються наступні опції: client code page = 866 і character set = koi8-r.

Опція interfaces = 192.168.0.1/24 - вказує в якій мережі (інтерфейсі) повинна працювати, програма якщо сервер підключений відразу до декількох мереж, а при установці параметра bind interfaces only = yes, сервер буде відповідати на запити тільки з цих мереж.

hosts allow = 192.168.1. 192.168.2. 127. - визначає клієнтів, яким надано дозвіл на доступ до сервісу.

У секції global можливе використання різних змінних для більш гнучкого налаштування роботи сервера, після установки з'єднання замість них підставляються реальні значення. Наприклад, в директиві log file = /var/log/samba/%m.log. параметр% m допомагає визначити окремий лог-файл для кожної клієнтської машини. Найбільш вживані змінні, використовувані в секції global:

Включення параметрів preserve case і short preserve case змушують сервер зберігати всю інформацію, що вводиться з урахуванням регістру символів (в Windows регістр не має значення, а у всіх UNIX це не так).

Розділ [homes] дозволяє користувачам підключатися до своїх робочих каталогах без явного їх опису. При запиті клієнтом свого каталогу, наприклад // sambaserver / sergej, система шукає відповідний опис у файлі і, якщо не знаходить його, то переглядає наявність цього розділу. Якщо розділ існує, то проглядається файл паролів для пошуку робочого каталогу користувача, який зробив запит і при знаходженні робить його доступним для користувача.

Типове опис розділу:

writable = yes # дозволяє (no - забороняє) запис в домашню директорію

create mode = 0750 # права доступу для новостворених файлів

directory mode = 0775 # теж, але тільки для каталогів

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

comment = Public Stuff

write list = administrator, @sales

Параметр path вказує на каталог, в якому розташовується ресурс, параметр public вказує, чи може користуватися ресурсом гість, а printable - чи може використовуватися даний ресурс для друку. Параметр write list дозволяє задати користувачів, яким дозволений запис в ресурс незалежно від значення writable (в даному прикладі це користувач administrator і група sales). Можливе використання і протилежної списку - read list. Якщо є необхідність приховати деякі файли, то в UNIX / Linux для цього назва файлу має починатися з точки (параметр hide dot files, який регулює відображення прихованих файлів, за замовчуванням = yes). Але крім цього є можливість задати шаблони імен прихованих файлів, для цього використовується параметр hide files. Кожен шаблон починається і закінчується з символу косої риски «/» і може містити символи, що застосовуються в регулярних виразах. Наприклад: hide files = /*.log/. tmp /. Але всі ці хитрощі обходяться користувачам дуже просто - установкою режиму «показувати приховані і системні файли» провідника Windows. Для впевненого обмеження доступності (можливості видалення) файлу (каталогу) використовуйте параметри: veto files і delete veto files. З CD-ROM дисками справа дещо складніша.

Вся справа в тому, що в UNIX-подібних системах поняття диска відсутнє як таке, і для того щоб отримати доступ до потрібного пристрою, воно спочатку має бути змонтовано в дерево каталогів (# mount -t iso9660 / dev / cdrom / mnt / cdrom) . А після використання, щоб не зруйнувати файлову систему, має бути демонтувати (# umount / dev / cdrom), інакше пристрій просто не віддасть диск. Якщо у вас на сервері запущено демон autofs, то проблема вирішується просто. Для того щоб пристрій яке не використовується протягом деякого часу, було автоматично демонтувати, встановіть потрібне значення параметра timeout в файлі /etc/auto.master, наприклад:

/ Mnt /etc/auto.misc --timeout = 60

А потім встановіть параметри для відповідного пристрою в файлі /etc/auto.misc:

cdrom fstype = iso9660, ro, nosuid, nodev: / dev / cdrom

Після всього прописуємо в /etc/smb.conf наступні рядки, щоб зробити доступним даний ресурс:

Другий варіант полягає у використанні директив preexec і postexec, які вказують які команди необхідно виконати при зверненні до ресурсу і після від'єднання від нього.

# Монтувати ресурсу має право тільки root

root preexec = mount / mnt / cdrom

# Природно ці точки монтування повинні бути описані у файлі / etc / fstab, інакше необхідно вказати і інші дані.

root postexec = umount / mnt / cdrom

Тепер при зверненні до ресурсу автоматично монтується CD-ROM. А в ідеальних випадках і размонтіруйте. Вся проблема в тому, що рішення про закриття ресурсу повинен прийняти сервер і все тому, що клієнти, як правило, не сповіщають про це. Але найбільш частою причиною є те, що ресурсом можуть одночасно користуватися відразу кілька користувачів або на одному комп'ютері залишений відкритий файл на даному ресурсі. Тому CD-ROM автоматично НЕ размонтіруйте, єдиний прийнятний спосіб, щоб звільнити ресурс - подивитися за допомогою утиліти smbstatus номер процесу, що використовує даний ресурс, і вбити його командою:

# Kill pid_number # або kill -s HUP pid_number

Встановивши необхідну конфігурацію необхідно тепер створити облікові записи користувачів (за винятком гостьового входу з мінімальними правами nobody). Для інтентіфікаціі користувачів SAMBA використовується файл / etc / samba / smbpasswd, в якому містяться імена і зашифровані паролі користувачів. Так як механізм шифрування в мережах Windows-машин не сумісний зі стандартними UNIX механізмами, то для заповнення файлу паролів використовується окрема утиліта - smbpasswd.

# Useradd -s / bin / false -d / home / samba / sergej -g sales sergej

# Smbpasswd -a sergej

У цьому прикладі додається новий користувач sergej з фіктивною оболонкою, що належить групі sales і домашнім каталогом / home / samba / sergej. Потім створюється пароль для користувача sergej.

За допомогою SAMBA можна організувати можливість мережевого друку з комп'ютерів під управлінням Windows (якщо планується окремий сервер друку, то для цього буває достатньо і машини на базі 486 процесора).

Для цього в секції [global] необхідно записати такі рядки:

printcap name = / etc / printcap # файл опису принтерів, підключених до системи

load printers = yes #, вказує на необхідність автоматичного включення в список мережевих ресурсів

printing = lprng # система друку (для Linux може ще використовуватися bsd)

Далі кожен принтер описується як дисковий ресурс з єдиним винятком, параметр printable = yes. наприклад:

path = / var / spool / samba # указує на каталог в який поміщаються завдання на друк

Після створення файлу протестуйте його за допомогою утиліти testparm, але за допомогою даної програми можна виявити лише синтаксичні помилки, а не логічні, тому немає ніякої гарантії, що описані у файлі сервіси будуть коректно працювати (при тестуванні будуть виведені всі установки - навіть ті, які встановлені за замовчуванням). Але якщо програма не лається, можете сподіватися, що при запуску файл буде завантажений без проблем. А правильність установки принтера можна перевірити за допомогою утиліти - testprns. Плюс не забувайте про log-файлах - при виникненні проблем там іноді можна знайти рішення.

Тепер трохи про хороше. Конфігурація Samba - досить складна процедура, але з дистрибутивом поставляється інструмент адміністрування на основі Web, який називається swat (Samba Web Administration Tool). Swat запускається у вигляді сервісу або за допомогою сервера Apache, і призначений для редагування файлу smb.conf, а також для перевірки стану, запуску і зупинки демонів Samba. Для роботи у вигляді сервісу в файлі / etc / services повинна бути обов'язково рядок swat 901 / tcp, а в файлі /etc/inetd.conf - swat stream tcp nowait.400 root / usr / local / samba / bin / swat swat. Тепер для запуску Swat у вікні браузера введіть:

Після всіх змін у файлі smb.conf іноді потрібно перезапустити демон smb: /etc/rc.d/init.d/smb restart.

Якщо після всіх перерахованих дій так і не вдалося організувати доступ до ресурсів SAMBA, то в подальшій настройці допоможуть такі утиліти, як ping, nmblookup або на крайній випадок tcpdump. От і все.

Схожі статті