Samba за 5 хвилин p>
Тут описано мій досвід в установці та конфігуруванні Samba. Я постаравсяописати всі процедури для отримання працюють конфігурацій. Звичайно це неuser manual - швидше інформація для роздумів. Додатковий описустановки можна знайти у документації до вихідних текстів. p>
Не претендуючи на абсолютну істину, з нетерпінням чекаю зауважень та описипомилок, допущених мною. Буду радий обмінюватися досвідом по конфігурації
Samba.
Навіщо це потрібно. P>
Перший дзвінок. P>
Горезвісна сумісність продуктів Microsoft. P>
SysAdmin їде у відпустку (або мрії, які БУДУТЬ реальністю).
Що таке Samba.
Установка.
Конфігурація:
Samba як Primary DOMAIN Controller p>
Додаткові дірректоріі p>
PlainTextPassword p>
Правка Registry для PlainTextPassword (Windows 95 OSR2) p>
Правка Registry для PlainTextPassword ( Windows 98) p>
Правка Registry для PlainTextPassword (Windows NT) p>
Encrypted Password p>
Створення smbpasswd p>
Додавання користувачів Samba PDC p >
Приклад smb.conf для Samba PDC (для клієнтів Windows 9X) p>
Додавання учасників Samba PDC p>
Приклад smb.conf для Samba PDC (для клієнтів Windows 9X/Windows NT )
Samba як учасник NT DOMAIN p>
Приклад smb.conf для Samba file-server учасника PDC p>
Приклад smb.conf для Samba print-server учасника PDC p>
Додавання Samba -box в DOMAIN p>
Чому мені знадобилася Samba
Перший дзвінок
Приблизно 2 роки тому я встановив машину під Linux для забезпеченнякорпоративного виходу в Internet. Відразу постала проблема резервногокопіювання. Справа в тому, що файл-сервер з встановленим стримерів працювавпід управлінням Windows NT. Треба було вибирати: шукати клієнт NFS для
Windows NT або намагатися знайти інший спосіб. Тоді ж я почув назву
Samba.
Горезвісна сумісність продуктів Microsoft
У червні 1998 наша компанія купила мережевий принтер HP4000N. Сервером друкубув обраний PDC під WindowsNT3.51sp5. Windows 95 чудово працював з цимпринт-сервером, але в мережі, як на гріх, були дві Windows NT 4.0
Workstation. P>
Може бути через незнання (не думаю, що все так погано насправді), але впротягом місяця, я безуспішно намагався налаштувати друк з під Windows NT
Workstation 4.0sp3. Система наполегливо вимагала наявності драйверів на принт -сервер. Насильно установка мережевого принтера викликала зависання системи.
Втомившись від марної витрати нервів, я налаштував принт-сервер (використовуючи Linux
Slakware 3.5 і Samba 1.9p18-10). Вже кілька місяців весь офіс (приблизно
30 комп'ютерів) чудово друкує незалежно від операційної системи накомп'ютері користувача.
SysAdmin їде у відпустку (або мрії, які БУДУТЬ реальністю)
Так чи інакше, але навіть комп'ютерник має іноді відпочивати чи простоповболівати. Прекрасно, якщо він має супер-кваліфікацією і доситьсуворий, щоб натренували користувачів. Тоді один раз налаштувавши систему,він може звільнятися. p>
Але я до таких не належу, і хотів би мати можливість час від часуперевіряти працездатність системи, знаходячись поза межами офісу, і якщотреба, вносити виправлення. Як це зробити, якщо на сервері стоїть WindowsNT
(і не використовувати Remote Access, не зручно телефонувати на модем з іншогоміста або країни нарімер - адже є Internet)? p>
Можна використовувати BackOrifice ;-) або скористатися Microsoft Unix AddOn
Pack. P>
Це прекрасне рішення наштовхується на фінансові труднощі. Дуже важкопереконати начальство витратити ~ 900 $ на upgrade Windows NT3.51 до Windows
NT4.0 і ещее трохи на AddOn Pack (не впізнавав точно, але думаю не мало),щоб АДМИНИСТРАТОР комп'ютерному МЕРЕЖІ поїхав у відпустку. При цьому потрібновраховувати, що в цей комплект входить демон Телнет, паролі по мережіпередаються plain-text. За наявності у зловмисника зацікавленості іsnifer всі ваші хитрощі з безпеки будуть зведені до нуля. p>
Чи варто городити город, якщо можливість віддаленого управління давнозакладена в усі UNIX-подібні системи, а розвиток засобів криптографіїдозволяє вільно поширюваним продуктів (я маю на увазі SSH)забезпечити гарантію тривалих витрат часу і машинних ресурсів длярозшифровки мережевого трафіку? Можна було використовувати Samba, але не можнаприменшувати зручність Windows NT DOMAIN system (особливо якщо робітникистанції в мережі суцільний Wintel). І ось з'явилася Samba 2.0, з ще неповною, але досить потужною підтримкою WINDOWS NT DOMAIN. Все йде до того,що всі сервери в нашій компанії поступово будуть переведені на UNIX -подібні системи. Прошу вибачення за такий довгий передмову. P>
Що таке Samba
Samba - вільно розповсюджується програмне забезпечення (GPL),що дозволяє:а) створювати фото-і принт-серверів (для клієнтів підтримують одну зреалізацій протоколу SMB) на базі відкритих систем (OpenVMS, Digital Unix,
AIX, IRIX, HPUX, Solaris, FreeBSD, NetBSD, Linux, і т.д.);б) підтримувати (не повністю) доменну структуру NT DOMAIN;
1) функції первинного контролера NT DOMAIN (з деякими обмеженнями,більш детально - "NT DOMAIN support" на сайті Samba Team;
2) функції учасника NT DOMAIN; (з деякими обмеженнями, більш докладно
- "NT DOMAIN support" на сайті Samba Team;в) забезпечувати сервіси WINS (клієнт і сервер), TIME-server і т.д. ;
Розглядалися дві конфігурації:а) Linux-Samba - Primary DOMAIN Controller з клієнтами Windows 9x, Windows
NT 4.0;б) Linux-Samba - учасник NT DOMAIN з Primary DOMAIN Controller під Windows
NT Server 3.51 sp5.
Також були розглянуті випадки застосування encrypted і plain-text passwords івипробувана конфігурація з підтримкою квотування дисків. На даний моментвипробувані конфігурації використовуються в роботі (файл-та принт-сервери). p>
Мій досвід в установці та налаштування пакету обмежений системами на базі Linux
Slakware. Самостійно були встановлені останні стабільні версіїверсії automake, autoconf, make, binutils, egcs. Використовувалися libc5стандартної поставки Linux Slakware. Пакет shadow був перезібраний зпідтримкою md5crypt. Системи будувалися з використанням ядер версій 2.0.35і 2.2.x. В якості системи друку використовувався пакет LPRng. Останнюверсію samba-latest.tar.gz можна отримати на сайті Samba Team. p>
Установка p>
Можна скопіювати з ftp-сервера бінарні файли, скомпільовані під Вашусистему або вихідні тексти.
При використанні вихідних текстів p>
Конфігурування та складання з підтримкою syslog:hostname:/usr/src # tar-xvzf samba-2.0.4b.tar.gzhostname:/usr/src # cd samba-2.0.4b/sourcehostname:/usr/src/samba-2.0.4b/source #./configure --prefix =/usr/local/samba - with-sysloghostname:/usr/src/samba-2.0.4b/source # makehostname:/usr/src/samba-2.0.4b/source # make install
Конфігурування та складання з підтримкою syslog і quota: p>
(повинен бути встановлений пакет quota з розділу ap1)hostname:/usr/src # tar-xvzf samba-2.0.4b.targzhostname:/usr/src # cd samba-2.0.4b/sourcehostname:/usr/src/samba-2.0.4b/source #./configure --prefix =/usr/local/samba - with-syslog - with-quotahost:/usr/src/samba-2.0.4b/source # makehost:/usr/src/samba-2.0.4b/source # make install
Опція
- prefix =/usr/local/sambaзадає шлях установки. Для отримання повного списку опцій:host:/usr/src/samba-2.0.4b/source #./configure - help | more
Після цього копіюється файл smb.conf c установками за замовчуванням:host:/usr/src/samba-2.0.4b/source # cp ../examples/smb.conf.default
/ usr/local/samba/lib/smb.conf
Далі конфігурується SWAT (Samba Web-based Administrative Tool): p>
- у файл/etc/inetd.conf добавляеться рядок:
#swat stream tcp nowait.400 root/usr/local/samba/bin/swat swat
#
- У файл/etc/services добавляеться рядок:
#swat 901/tcp # Samba web-based administrative tool
#
Потім перезапускаетя daemon inetd. При зверненні до http://host:901 придопомогою браузера, після введення login & password (root), Ви отримуєте web -інтерфейс конфігурування Samba (наскільки я знаю - можлива робота з
SSL). P>
Конфігурації
Primary DOMAIN controller. P>
Сценарій установки створює наступну структуру:host:/usr/local/samba # ls-latotal 6drwxr-xr-x 8 root root 1024 Jun 16 10:34.drwxr-xr-x 26 root root 1024 Jun 8 17:06 ..drwxr-xr-x 2 root root 1024 Jun 10 09:31 bindrwxr-xr-x 3 root root 1024 May 10 17:24 libdrwxr-xr-x 6 root root 1024 May 7 13:26 mandrwxr-xr-x 5 root root 1024 May 12 21:16 swatdrwxr-xr-x 3 root root 1024 May 7 14:27 varhost:/usr/local/samba # cd libhost:/usr/local/samba/lib # ls-latotal 3drwxr-xr-x 3 root root 1024 May 10 17:24.drwxr-xr-x 8 root root 1024 Jun 16 10:34 ..drwxr-xr-x 2 root root 1024 May 7 13:26 codepages
-rw-r - r - 1 root root 971 Jun 8 17:06 smb.conf
Додаткові дірректоріі p>
Потрібно створити кілька дірректорій (дані шляху за замовчуванням, вибір залишаєтьсяза Вами - все можна описати в smb.conf:host:/usr/local/samba/lib # mkdir netlogonhost:/usr/local/samba/lib # chown root: root netlogon; chmod 751 netlogonhost:/usr/local/samba/lib # cd .. /; mkdir profileshost:/usr/local/samba # chown root: root profiles; chmod 751 profileshost:/usr/local/samba #
При використанні в якості клієнтів Windows NT Workstation або Windows
98, має сенс створювати [profiles] на квотовано розділі диска.
Windows 95 (без додаткових правок до Registry) зберігає в [profiles]тільки user.dat p>
Також слід звернути увагу, що logon-scripts треба створювати звикористанням Dos-або Windows-редактора тексту. p>
Plaintext Password p>
Слід визначитися з типом security. Хост, сконфігурованих як PDC,несе функцію авторизації. Значення ключа [security] можуть прийматизначення [share], [user], [server], [domain]. Для кожної з нижченаведених конфігурацій можна вказати різний тип [security]. p>
Ключ [encrypt password] визначає який механізм авторизації будевключений. Якщо ключу [encrypt password] присвоєно значення "No", тоавторизація користувачів здійснюється виходячи з облікових записів у passwd іshadow. У цьому випадку, паролі прередаются по мережі PlainText. Windows 95
OSR2, Windows 98, Windows NT вимагають змін у registry: p>
(не рекомендується для Windows NT) p>
Windows 95 OSR2 p>
[HKEY_LOCAL_MACHINESystemCurrentControlSetServicesVxDVNETSUP]
"EnablePlainTextPassword" = dword: 00000001 p>
Windows 98 p>
[HKEY_LOCAL_MACHINESystemCurrentControlSetServicesVxDVNETSUP]
"EnablePlainTextPassword" = dword: 00000001 p>
Windows NT p>
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesRdrParameters]
"EnablePlainTextPassword" = dword: 00000001 p>
Encripted Password
Всі подальші конфігурації рассматріваються для значення ключа [encryptedpassword] = Yes. p>
При значенні ключа [encript passwords] = Yes, авторизація проходить звикористанням файлу smbpasswd. Місце розташування за замовчуванням:
/ usr/local/samba/private/smbpasswd
За замовчуванням інсталяційний скрипт не створює private/smbpasswd. Длязанесення облікового запису користувача в файл smbpasswd, потрібно:
1. створити smbpasswdhost:/usr/local/samba # ls-latotal 6drwxr-xr-x 8 root root 1024 Jun 16 10:34.drwxr-xr-x 26 root root 1024 Jun 8 17:06 ..drwxr-xr-x 2 root root 1024 Jun 10 09:31 bindrwxr-xr-x 3 root root 1024 May 10 17:24 libdrwxr-xr-x 6 root root 1024 May 7 13:26 mandrwxr-xr-x 5 root root 1024 May 12 21:16 swatdrwxr-xr-x 3 root root 1024 May 7 14:27 varhost:/usr/local/samba # mkdir privatehost:/usr/local/samba # echo>/private/smbpasswd; cd privatehost:/usr/local/samba/private # chown root: root smbpasswd; chmod 600smbpasswd; cd .. /host:/usr/local/samba/# chown root: root private; chmod 500 private
2. повинна існувати обліковий запис Unix: p>
Потрібно відзначити, що файли passwd і shadow повинні містити облікові записи користувачів. При значенні ключа [encrypt password] = Yes, облікові записи можуть мати вигляд: passwd: p>
... username: x: 1016:100: MYGROUP User ,,,:/ home/user_name:/dev/null p>
... shadow: p>
... username: *: 10666:0:99999:7 ::: p>
...
3. використовувати smbpasswd для створення облікового запису в
/ usr/local/samba/private/smbpasswdhost: ~ #/usr/local/samba/bin/smbpasswd-a user_name
Added interface ip = xxxx broadcast = xxx255 netmask = 255.255.255.0
New SMB password:
Retype New SMB password:
Addedd user user_name
Password changed for user user_namehost: ~ #
4. активувати обліковий запис (за замовчуванням виставляється ключ [accountdisabled]):host: ~ #/usr/local/samba/bin/smbpasswd-e user_name
Added interface ip = xxxx broadcast = xxx255 netmask = 255.255.255.0
User user_name enabledhost: ~ #
При початковій установці можна використовувати скрипт mksmbpasswd.sh, що входитьв комплект поставки.host: ~ # chmod + x/usr/src/samba-2.0.4b/source/script/mksmbpasswd.shhost: ~ # cat/etc/passwd |/usr/src/samba-2.0.4b/source/script/mksmbpasswd.sh
>
/ usr/local/samba/private/smbpasswdhost: ~ #
Приклад робочої конфігурації Primary Domain Controller (клієнти Windows 9x): p>
використовується тип security = user
# Samba config file created using SWAT
# Global parameters workgroup = MYGROUP netbios name = ASERVER server string = DOMAIN Controller security = user encrypt passwords = Yes passwd program =/usr/bin/passwd log file =/usr/local/samba/var/log.% U max log size = 50 nt acl support = Yes time server = Yes socket options = SO_KEEPALIVE SO_BROADCAST TCP_NODELAY SO_RCVBUF = 4096
SO_SNDBUF = 4096 load printers = No character set = KOI8-R client code page = 866 logon script =% U.bat logon path =% NProfiles% U domain logons = Yes os level = 33 preferred master = Yes domain master = Yes dns proxy = Yes wins proxy = Yes wins support = Yes hosts allow = xxx p>
[homes] comment = Home Directories read only = No create mask = 0600 browseable = No p>
[netlogon] comment = Network Logon Service path =/usr/local/samba/lib/netlogon guest ok = No public = No locking = No share modes = No browseable = Yes p>
[Profiles] comment = Users 'Profiles path =/usr/local/samba/profiles read only = No browseable = No p>
[Public] comment = Public path =/usr/pub read only = No create mask = 0650
Все! Можна запускати:host: ~ #/usr/local/samba/bin/smbd-D-d2host: ~ #/usr/local/samba/bin/nmbd-D-d2host: ~ #
Провівши відповідні настройки в Network Neighbrohood (такі як enable
NT Domain logon і т.д), можна спробувати зайти в мережу. Для збереженняналаштувань user.dat (для Windows 95) або повного User Profile (для Windows 98)потрібно зробити:host: ~ # cd/usr/local/samba/profilshost:/usr/local/samba/profiles # mkdir user_namehost:/usr/local/samba/profiles # chown-R user_name: root user_name; chmod-R
751 user_namehost:/usr/local/samba/profiles # p>
Додавання учасників Samba PDC p>
Якщо в мережі є клієнти Windows NT, необхідно зробити деякізміни в конфігурації Samba. Також станція з Windows NT, повинна бутивключена в Samba DOMAIN, тобто в smbpasswd повинна бути внесена обліковазапис mashine account. Перш за все створюємо Unix-обліковий запис (вносимокористувача з user_name = [netbios_name що включається в NT DOMAIN робочоїстанції ]+[$], щось типу nt_ws_1 $):host: ~ # adduser
Login name for new user (8 characters or less) []: netbios_name $
User id fot netbios_name [defaults to next available]:
Initial groups for netbios_name [users]: nobodynetbios_name $ 's home directory [/ home/netbios_name]:/dev/nullnetbios_name $ 's shell [/ bin/bash]:netbios_name $ 's account expiry date [MM/DD/YY]:
Ok, I'm about to make a new account. Here's what you entered so far: p>
New login name: netbios_name $
New UID: [Next available]
Initial group: nobody
Additional groups: [none]
Home directory:/dev/null
Shell:/bin/false
Expiry date: [no expiratron] p>
This is it ... if you want to bail it out, hit Control-C. Otherwise, press
ENTER to go ahead and make the account.
Making new account ...
Changing the user information for netbios_name
Enter the new value, or press return for the default p>
Full Name []: p>
Room Number []: p>
Work Phone []: p >
Home Phone []: p>
Other []: p>
Changing password for netbios_name
Enter the new password (minimum of 8, maximum of 127 characters)
Please use a combination of upper and lower case letters and numbers.
New password: some_password_will_be_changed_to-"*- in_shadow_files
Re-enter new password: some_password_will_be_changed_to-"*- in_shadow_files
Done ...host: ~ #
Після цього я правил shadow, міняючи зашифрований пароль на "*". p>
Следуюшій крок - внесення облікового запису машини в smbpasswd:host: ~ #/usr/local/samba/bin/smbpasswd-a-m netbios_name
Added interface ip = xxxx broadcast = xxx255 netmask = 255.255.255.0
Addedd netbios_name $
Password changed for user netbios__name $host: ~ #
Зверніть увагу, що маючи Unix-обліковий запис netbios_name $, при внесеннів smbpasswd використовуємо netbios_name.
Приклад робочої конфігурації Primary Domain Controller (клієнти Windows 9x/
Windows NT): p>
використовується тип security = user
# Samba config file created using SWAT
# Global parameters workgroup = MYGROUP netbios name = ASERVER server string = DOMAIN Controller security = user encrypt passwords = Yes passwd program =/usr/bin/passwd log file =/usr/local/samba/var/log.% U max log size = 50 nt acl support = Yes time server = Yes socket options = SO_KEEPALIVE SO_BROADCAST TCP_NODELAY SO_RCVBUF = 4096
SO_SNDBUF = 4096 load printers = No character set = KOI8-R client code page = 866 logon script =% U.bat logon path =% NProfiles% U domain logons = Yes os level = 33 preferred master = Yes domain master = Yes dns proxy = Yes wins proxy = Yes wins support = Yes hosts allow = xxx p>
[homes] comment = Home Directories read only = No create mask = 0600 browseable = No p>
[netlogon] comment = Network Logon Service path =/usr/local/samba/lib/netlogon guest ok = No public = No share modes = No locking = No browseable = Yes p>
[Profiles] comment = Users 'Profiles path =/usr/local/samba/profiles read only = No browseable = No p>
[Public] comment = Public path =/usr/pub read only = No create mask = 0650
Все! Можна запускати:host: ~ #/usr/local/samba/bin/smbd-D-d2host: ~ #/usr/local/samba/bin/nmbd-D-d2host: ~ #
Після цього слід стандартна процедура підключення Windows NT
Workstation до PDC. Перевантажує Windows NT - можна спробувати зайти!
NT DOMAIN members p>
Спочатку модіфіціруeтся файл smb.conf. Нижче наведені робочі конфігураціїфайл-і принт-сервера (учасників NT DOMAIN). p>
Файл-сервер (паролі шифрувати і перевіряються на вказаному сервері,що виконує роль Primary DOMAIN controller): p>
використовується тип security = domain.
# Samba config file created using SWAT
# Global parameters workgroup = MYGROUP netbios name = FSERVER1 server string = File-server 1 security = DOMAIN encrypt passwords = Yes password server = ASERVER username map =/usr/local/samba/lib/username.map log level = 2 log file =/usr/local/samba/var/log.% U nt acl support = Yes name resolve order = host wins bcast lmhosts keepalive = 30 lpq cache time = 30 socket options = SO_KEEPALIVE SO_BROADCAST TCP_NODELAY SO_RCVBUF = 4096
SO_SNDBUF = 4096 load printers = No character set = KOI8-R client code page = 866 os level = 30 lm interval = 10 dns proxy = No wins server = xxxx hosts allow = xxx wide links = No p>
[Public] comment = Varios files path =/pub/read only = No create mask = 0744
Print-сервер (паролі шифрувати, і перевіряються на зазначеному сервер,що виконує роль Primary DOMAIN controller): p>
використовується тип security = domain
# Samba config file created using SWAT
# Global parameters
[global] workgroup = MYGROUP netbios name = PSERVER1 server string = Print server security = DOMAIN encrypt passwords = Yes password server = ASERVER username map =/usr/local/samba/lib/username.map log level = 2 syslog = 2 log file =/usr/local/samba/var/log.% U name resolve order = host wins bcast lmhosts keepalive = 60 lpq cache time = 5 socket options = SO_KEEPALIVE SO_BROADCAST TCP_NODELAY IPTOS_THROUGHPUT
SO_RCVBUF = 4096 SO_SNDBUF = 4096 load printers = No os level = 30 wins server = xxxx hosts allow = xxx printing = lprng wide links = No p>
[hp6p] print command =/usr/local/bin/lpr-h-r-P% p% s; rm% s lpq command =/usr/local/bin/lpq-P% p lprm command =/usr/local/bin/lprm-P% p% j comment = hp6p Laser Jet path =/usr/local/samba/spool/hp6p print ok = Yes printer name = hp6p
[hp4000n] print command =/usr/local/bin/lpr-h-r-P% p% s; rm% s lpq command =/usr/local/bin/lpq-P% p lprm command =/usr/local/bin/lprm-P% p% j comment = hp4000n Laser Jet path =/usr/local/samba/spool/hp4000n print ok = Yes printer name = hp4000n p>
[tek350e ] print command =/usr/local/bin/lpr-h-r-P% p% s; rm% s lpq command =/usr/local/bin/lpq-P% p lprm command =/usr/local/bin/lprm-P% p% j comment = Tektronix 350 ext path =/usr/local/samba/spool/tek350e print ok = Yes printer name = tek350e
Повинна існувати Unix-обліковий запис у passwd і shadow. P>
Потрібно відзначити, що файли passwd і shadow повинні містити облікові записикористувачів NT Domain (можна використовувати username.map).passwd:
...username: x: 1016:300: MYGROUP User ,,,:/ dev/null:/dev/null
...shadow:
...username: *: 10666:0:99999:7:::
...
Додавання Samba-box в DOMAIN p>
Після закінчення конфігурації (при незапущених демонів smbd і nmbd)вироблятися додавання Samba-box в NT DOMAIN (використовуючи Server Managerfor DOMAIN, якщо PDC - Windows NT Server або наведені вище процедуру).
Спочатку на PDC додаємо Samba-box. Далі використовуємо smbpasswd:host: ~ #/usr/local/samba/bin/smbpasswd-j MYGROUP-r PDC_netbios_name
Added interface ip = xxxx broadcast = xxx255 netmask = 255.255.255.0
YYYY/MM/DD hh: mm: ss: change_trust_account_password:
Changed password for domain MYGROUP.
Joined domain MYGROUP.host: ~ #
Можна запускати!host: ~ #/usr/local/samba/bin/smbd-D-d2host: ~ #/usr/local/samba/bin/nmbd-D-d2host :~# p>
Ресурси
Новини: вийшов другий реліз Samaba
Головний сайт: Samba Team
Архів документації: Samba Docs Arhiv
SMB HOW-TO українською: на www.linux.org.ru p>
Ілля Басина. P>
p>