![]() |
|
|
|
Samba за 5 минут
Почему мне понадобилась SambaПервый звонокПримерно 2 года назад я установил машину под Linux для обеспечения корпоративного выхода в Internet. Сразу встала проблема резервного копирования. Дело в том, что файл-сервер с установленным стримером работал под управлением Windows NT. Нужно было выбирать: искать клиент NFS для Windows NT или пытаться найти другой способ. Тогда же я услышал название Samba. Пресловутая совместимость продуктов MicrosoftВ июне 1998 наша компания купила сетевой принтер HP4000N. Сервером печати был выбран PDC под WindowsNT3.51sp5. Windows 95 прекрасно работал с этим принт-сервером, но в сети, как на грех, были две Windows NT 4.0 Workstation. Так или иначе, но даже компьютерщик должен иногда отдыхать или просто поболеть. Прекрасно, если он обладает супер-квалификацией и достаточно суров, чтобы выдрессировать пользователей. Тогда один раз настроив систему, он может увольняться. Что такое SambaSamba - свободно распространяемое програмное обеспечение (GPL), позволяющее:
Также были рассмотрены случаи применения encrypted и plain-text passwords и опробована конфигурация с поддержкой квотирования дисков. На данный момент опробованные конфигурации используются в работе (файл- и принт-серверы).
УстановкаМожно скопировать с ftp-сервера бинарные файлы, скомпилированные под Вашу систему или исходные тексты. При использовании исходных текстовКонфигурирование и сборка с поддержкой syslog: hostname:/usr/src# tar -xvzf samba-2.0.4b.tar.gz hostname:/usr/src# cd samba-2.0.4b/source hostname:/usr/src/samba-2.0.4b/source# ./configure \Конфигурирование и сборка с поддержкой syslog и quota: (должен быть установлен пакет quota из раздела ap1) hostname:/usr/src# tar -xvzf samba-2.0.4b.targz hostname:/usr/src# cd samba-2.0.4b/source hostname:/usr/src/samba-2.0.4b/source# ./configure \Опция --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#Далее конфигурируется SWAT (Samba Web-based Administrative Tool): - в файл /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). КонфигурацииPrimary DOMAIN controller.Сценарий установки создаёт следующую структуру: host:/usr/local/samba#ls -la total 6 drwxr-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 bin drwxr-xr-x 3 root root 1024 May 10 17:24 lib drwxr-xr-x 6 root root 1024 May 7 13:26 man drwxr-xr-x 5 root root 1024 May 12 21:16 swat drwxr-xr-x 3 root root 1024 May 7 14:27 var host:/usr/local/samba#cd lib host:/usr/local/samba/lib#ls -la total 3 drwxr-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Дополнительные дирректории Нужно создать несколько дирректорий (даны пути по умолчанию, выбор остаётся за Вами - всё можно описать в smb.conf: host:/usr/local/samba/lib# mkdir netlogon host:/usr/local/samba/lib# chown root:root netlogon ; chmod 751 netlogon host:/usr/local/samba/lib# cd ../ ; mkdir profiles host:/usr/local/samba# chown root:root profiles ; chmod 751 profiles host:/usr/local/samba# При использовании в качестве клиентов Windows NT Workstation или Windows 98, имеет смысл создавать [profiles] на квотированном разделе диска. Windows 95 (без дополнительных правок в Registry) сохраняет в [profiles] только user.dat
Plaintext PasswordСледует определиться с типом security. Хост, сконфигурированный как PDC, несёт функцию авторизации. Значения ключа [security] могут принимать значения [share], [user], [server], [domain]. Для каждой из ниже приведённых конфигураций можно указать различный тип [security].
Windows 95 OSR2[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP] "EnablePlainTextPassword"=dword:00000001 Windows 98[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP] "EnablePlainTextPassword"=dword:00000001 Windows NT[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Rdr\Parameters] "EnablePlainTextPassword"=dword:00000001 Encripted PasswordВсе дальнейшие конфигурации рассматриваються для значения ключа [encrypted password] = Yes.При значении ключа [encript passwords] = Yes , авторизация проходит с использованием файла smbpasswd. Месторасположение по умолчанию: /usr/local/samba/private/smbpasswdПо умолчанию инсталяционный скрипт не создаёт private/smbpasswd. Для внесения учётной записи пользователя в файл smbpasswd, нужно:
используется тип 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 \Всё! Можно запускать: host:~#/usr/local/samba/bin/smbd -D -d2 host:~#/usr/local/samba/bin/nmbd -D -d2 host:~# Проведя соответствующие настройки в Network Neighbrohood (такие как enable NT Domain logon и т.д), можно попробовать зайти в сеть. Для сохранения настроек user.dat (для Windows 95) или полного User Profile (для Windows 98) нужно сделать: host:~#cd /usr/local/samba/profils host:/usr/local/samba/profiles#mkdir user_name host:/usr/local/samba/profiles# Добавление участников Samba PDCЕсли в сети есть клиенты 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]: nobody netbios_name$'s home directory [/home/netbios_name]: /dev/null netbios_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: 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] 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 Full Name []: Room Number []: Work Phone []: Home Phone []: Other []: 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, меняя зашифрованный пароль на "*". host:~# /usr/local/samba/bin/smbpasswd -a -m netbios_name Added interface ip=x.x.x.x broadcast=x.x.x.255 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):используется тип 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 \Всё! Можно запускать: host:~#/usr/local/samba/bin/smbd -D -d2 host:~#/usr/local/samba/bin/nmbd -D -d2 host:~#После этого следует стандартная процедура подключения Windows NT Workstation к PDC. Перегружаем Windows NT - можно попробовать зайти! NT DOMAIN membersСначала модифицируeтся файл smb.conf. Ниже приведены рабочие конфигурации файл- и принт-сервера (участников NT 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 \Print-сервер (пароли шифрованы, и проверяются на указанном сервер, выполняющем роль Primary DOMAIN controller): используется тип 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 \ Должна существовать Unix-учётная запись в passwd и
shadow. passwd: ... username:x:1016:300:MYGROUP User,,,:/dev/null:/dev/null ... shadow: ... username:*:10666:0:99999:7::: ... Добавление Samba-box в DOMAIN host:~#/usr/local/samba/bin/smbpasswd -j MYGROUP -r PDC_netbios_name Added interface ip=x.x.x.x broadcast=x.x.x.255 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 -d2 host:~#/usr/local/samba/bin/nmbd -D -d2 host:~#--> |