Автор в течение нескольких лет применяет Linux в качестве средства
разработки технологических решений.
Занимается контроллерами устройств под Linux, работает в области
коммуникаций, сетевой безопасности, обработки сигналов.
Специалист по электронике, автоматике и компьютерным наукам.
Участвует в разработке свободного программного обеспечения, которое
распространяется под лицензией GNU/GPL.
Резюме:
Эта заметка продолжает рассказывать о настройке пакета
Samba, который предназначен для разделения ресурсов в
гетерогенных (разнородных) Unix/Windows сетях. Здесь
рассказывается о том, как настроить сервер Samba под Linux,
чтобы получить такую же, как и при использовании Windows-сервера,
функциональность.
Samba не только раскрывает мощность и гибкость ОС Linux, но
она также дает определенные выгоды:
Пусть наш Linux-сервер с установленным на нем пакетом Samba выступает
в роли основного контроллера домена (PDC), где каждый зарегистрированный
пользователь имеет доступ к двум разделяемым директориям (shared directories):
для общего и для персонального (приватного) доступа. Такая конфигурация является
довольно распространенной.
Зададим следующие названия:
NetBIOS-имя
Linux/Samba-сервера: SMBServer
Имя домена Windows или рабочей группы: THEDOMAIN
Персональный раздел для каждого пользователя: H: (Windows) =>
/home/ (Linux-сервер)
Общий раздел: P: (Windows) =>
/home/public (Linux-сервер)
На рисунке 1 показана схема небольшой сети, в которой клиентские
Windows-машины используют разделяемые ресурсы Windows NT/2000
сервера. Он может быть заменен Linux-сервером с запущенным на
нем демоном Samba.
Конфигурация включает в себя следующие шаги:
1) Создание на Linux-сервере нового пользователя.
Для этого используются команды adduser, useradd
или userconf; также можно использовать подходящую
графическую утилиту (Webmin, Linuxconf, Yast и т. п.).
Если вы хотите, чтобы пользователь имел доступ лишь к службам
Samba и не мог зайти на сервер в оболочку shell, в файле
/etc/passwd в качестве домашней директории укажите
/dev/null, а в
качестве оболочки - /bin/false.
2) Сконвертируйте файл /etc/passwd в файл smbpasswd:
cat /etc/passwd |
mksmbpasswd.sh > /etc/samba/smbpasswd
Для создания пользователей и паролей можно применять другие команды:
smbadduser
smbpasswd,
которые работают подобно командам adduser и passwd.
3) Отредактируйте конфигурационный файл Samba (smb.conf) в соответствии со
своими потребностями:
netbios name = SMBServer
workgroup = THEDOMAIN
server string = Linux/Samba-сервер
log file = /var/log/samba/%m.log
max log file = 0
security = user
encrypt password = yes
smb password file = /etc/samba/smbpasswd
ssl CA certificate = /usr/share/ssl/.... (cancel comment)
socket options = (cancel comment)
local master = yes
preferred master = yes
domain master = yes
domain logons = yes
logon script = logon.bat
wins support = yes
[netlogon]
comment = Сценарии входа
path = /home/netlogon
read only = yes
guest ok = yes
browseable = no
[home]
comment = Директория пользователя
path = /home/%U
browseable = yes
writable = yes
[public]
comment = Общая директория
path = /home/public
browseable = yes
writable = yes
guest ok = yes
create mask = 0777
force create mask = 0777
net time \\SMBServer /y
(или /yes)
net use H: \\SMBServer\home -y
(или /yes)
net use P: \\SMBServer\public -y
Не забудьте произвести настройку свойств клиента для сетей Microsoft. Для этого в ОС Windows 95/98/ME выполните:
Start (Пуск) => Setup (Настройка) => Control Panel (Панель управления) => Network (Сеть) =>Network Client for Microsoft Networks (Клиент для сетей Microsoft) => Properties (Свойства).
В Свойствах установите флажок "Start session in Windows
NT/2000 domain" ("Входить в домен Windows NT") и задайте имя
домена (или рабочей группы): THEDOMAIN.
Похожим образом настраивается и Windows NT/2000
(Workstation/Professional).
Работающий конфигурационный файл Samba приведен ниже. Данная
конфигурация проверялась на нескольких дистрибутивах Linux.
Вы можете использовать этот пример в качестве базового для
создания и настройки своей собственной конфигурации.
Для тех, кто хочет иметь дружественный интерфейс для быстрой
настройки Samba, можно порекомендовать использовать такие
инструменты, как Webmin и/или SWAT.
#============================================================#
# /etc/smb.conf
#------------------------------------------------------------------------------------------------------------#
# Главный конфигурационный файл Samba (файл-образец).
# Настройте конфигурацию в соответствии со
# своими потребностями.
#------------------------------------------------------------------------------------------------------------#
# Протестировано в следующих ОС:
# RedHat 6.0, 7.0, 7.1
# Solaris 7
# Slackware 7.x
# Mandrake 6.1, 7.0, 8.1
# SuSe 7.2
#------------------------------------------------------------------------------------------------------------#
# Дата последней модификации: 08/12/2001.
# Sebastian Sasias - sasias(at)linuxmail(dot)org
#============================================================#
#
# При создании данного файла использовалось руководство по настройке
# Samba smb.conf(5).
#
# Примечание: после изменения этого файла не забудьте протестировать его
# с помощью "testparm" (и перезапустить демон smbd - прим. перев.)
#
#==================== Глобальные настройки ====================#
#
# Основная конфигурация
#
[global]
#......................................................................................................................................#
# Workgroup = имя NT-домена (или рабочей группы):
THEDOMAIN.
workgroup =
THEDOMAIN
#......................................................................................................................................#
# NetBIOS-имя, под которым будет виден сервер остальным
машинам сети.
netbios name =
SMBServer
#......................................................................................................................................#
# Комментарий, появляющийся рядом с именем машины в "Сетевом
окружении" Windows.
server string = Это Samba-сервер
#......................................................................................................................................#
# Следующий параметр влияет на безопасность. Hosts allow разрешает
машинам с
# указанными IP-адресами присоединяться к
Samba-серверу.
# В этом примере доступ разрешен компьютерам,
имеющим IP-адрес из диапазона
# локальных адресов 192.168.8.0 (класс C) и
через интерфейс "обратной петли" (loopback).
# Более подробно см. в man smb.conf.
; hosts allow = 192.168.8.
127.
#......................................................................................................................................#
# Раскомментируйте этот параметр для автоматической загрузки
списка принтеров
# из файла printcap.
; load printers =
yes
#......................................................................................................................................#
# Параметр Printcap name задает альтернативное расположение файла
printcap.
; printcap name =
/etc/printcap
#......................................................................................................................................#
# В SystemV для работы с системой печати используется программа
lpstat. Для
# автоматического получения списка принтеров от системы
печати SystemV задайте
# опцию Printcap name = lpstat.
; printcap name =
lpstat
#......................................................................................................................................#
# Если вы имеете нестандартную систему печати, вам
необходимо указать ее тип,
# в противном случае этот параметр можно опустить.
# В настоящее время поддерживаются следующие системы печати:
# bsd, sysv, plp, lprng, aix, hpux, qnx.
; printing =
bsd
#......................................................................................................................................#
# Раскомментируйте строчку Guest account для предоставления
беспарольного ("гостевого")
# входа на Samba-сервер. В /etc/passwd необходимо
добавить pcguest, в противном случае
# будет использоваться учетная запись "nobody".
; guest account =
pcguest
#......................................................................................................................................#
# Для каждой машины %m, подключенной к Samba-серверу,
использовать свой log-файл.
log file =
/var/log/samba/log.%m
#......................................................................................................................................#
# Максимальный размер log-файла - 50 килобайт.
max log size = 50
#......................................................................................................................................#
# Параметр Security определяет, каким образом будет
осуществляться проверка пароля
# пользователя. Security = user означает использование
файла паролей smbpasswd.
# Более подробно см. в документации по Samba (файл security_level.txt).
security = user
#......................................................................................................................................#
# В случае, если Security = server, проверка пароля производится
другим сервером.
# Параметр Password server используется только совместно
с опцией Security = server.
# Password server = [IP-адрес аутентифицирующего сервера].
; password server =
<Имя NT-сервера>
#......................................................................................................................................#
# Опция включает поддержку шифрованных паролей. Почитайте
сначала ENCRYPTION.txt,
# Win95.txt и WinNT.txt из документации по Samba.
# Не включайте данный параметр до тех пор, пока
полностью не изучите его назначение.
# К сведению: ОС Win95, Win98 и WinNT отсылают
пароли в зашифрованном виде.
encrypt passwords =
yes
#......................................................................................................................................#
# Используя следующий параметр, вы сможете создать отдельную
конфигурацию для
# каждой машины домена.
# Вместо пары символов %m при входе подставляется NetBIOS-имя машины.
; include =
/usr/local/samba/lib/smb.conf.%m
#......................................................................................................................................#
# В документации и в полезных советах говорится, что с
помощью следующего параметра
# можно повысить производительность Samba-сервера.
Возможно, вы захотите
# поэкспериментировать с этим. Подробности смотрите
в документации (man pages) по
# Samba и в файле Speed.txt.
socket options =
TCP_NODELAY
#......................................................................................................................................#
# По умолчанию демон Samba слушает все активные сетевые
интерфейсы. С помощью
# параметра Interfaces можно выбрать
только те интерфейсы, которые необходимо
# прослушивать.
; interfaces =
192.168.8.2/24 192.168.12.2/24
#......................................................................................................................................#
# Установите Local master в "no", чтобы Samba-сервер не мог
стать обозревателем
# сети (в противном случае сервер будет принимать
участие в выборах обозревателя
# сети - прим. перев.)
local master =
yes
#......................................................................................................................................#
# Параметр OS Level задает приоритет данного сервера при выборах
обозревателя сети
# (master browser) . Обычно значение
по умолчанию подходит для большинства
# случаев.
; os level =
33
#......................................................................................................................................#
# Параметр Domain master делает Samba-сервер главным обозревателем
домена
# (Domain Master Browser). Это позволяет Samba выполнять
функции контроллера
# домена, а также создавать список машин из других
подсетей, имеющих
# отношение к данному домену.
# Не используйте этот параметр, если в вашей сети
уже имеется контроллер домена
# на Windows NT/2000, выполняющий те же функции.
domain master =
yes
#......................................................................................................................................#
# Параметр Preferred master позволяет Samba-серверу при старте
инициировать выборы
# обозревателя сети; при этом Samba-сервер получает довольно
высокие шансы на
# победу в этих выборах.
# Если в сети имеется более одного сервера, то наиболее
желательным (favorite) для
# клиентов будет "предпочтительный обозреватель" (preferred master).
preferred master =
yes
#......................................................................................................................................#
# Используйте следующую опцию только в случае, если в вашей
сети имеется
# Windows NT/2000 сервер, работающий в качестве PDC.
; domain controller =
<SMB-имя контроллера домена>
#......................................................................................................................................#
# Для того, чтобы клиенты Windows 9x/Me могли использовать сервер
Samba для
# входа в домен, укажите следующий параметр.
domain logons =
yes
#......................................................................................................................................#
# Если параметр Domain logons установлен в "yes", вы имеете
возможность указывать
# для пользователя (%u) или рабочей станции (%m) свой
сценарий входа (logon script).
# Сценарий входа для рабочей станции:
; logon script =
%m.bat
# Сценарий входа для пользователя:
; logon script =
%U.bat
#......................................................................................................................................#
# Данный параметр задает место размещения перемещаемых
профилей (roving (или
# roaming - прим. перев.) profiles).
# Вместо %L подставляется NetBIOS-имя данного сервера,
вместо %U - имя пользователя.
# Не забудьте раскомментировать секцию [Profiles] в
конфигурационном файле.
; logon path =
\\%L\Profiles\%U
#......................................................................................................................................#
# Поддержка WINS - службы имен Windows (WINS - Windows Internet Name Service).
# Данный параметр указывает демону NMBD включить свой сервер WINS.
# WINS, подобно службе DNS, сопоставляет IP-адрес машины с ее именем.
; wins support =
yes
#......................................................................................................................................#
# Параметр WINS Server задает IP-адрес WINS-сервера,
используемого в сети, и
# указывает на то, что в этом случае Samba-сервер
является WINS-клиентом.
# Не забывайте, что Samba-сервер может быть либо
WINS-сервером, либо
# WINS-клиентом (но не обоими сразу).
; wins server =
192.168.8.1
#......................................................................................................................................#
# Samba умеет определять не-WINS клиентов, находящихся в сети.
Для этого нужно
# указать параметр WINS Proxy = yes. Для правильной
работы WINS Proxy необходимо,
# чтобы в сети имелся по крайней мере один WINS-сервер.
# Значение по умолчанию - "no".
; wins proxy =
yes
#......................................................................................................................................#
# Если задан параметр DNS Proxy, Samba будет пытаться выполнять
преобразование
# NetBIOS-имен посредством запросов к DNS. По умолчанию
для версии 1.9.17 этот
# параметр установлен в "yes". Начиная с версии 1.9.18
параметр DNS Proxy по
# умолчанию равен "no".
# dns proxy = yes
# dns proxy = no (преобразование имен ведется с помощью файла lmhosts)
#......................................................................................................................................#
# Параметр Logon drive задает букву диска, к которому будет
монтироваться домашняя
# (home) директория пользователя. Эта опция имеет смысл,
только если Samba настроена
# в качестве Logon server'а. Если параметр Logon drive
не задан, используется Z:.
logon drive = P:
#......................................................................................................................................#
# После удачного входа на Samba-сервер на машине клиента выполняется
сценарий
# SAMBA.BAT (полный путь - /etc/samba/netlogon/SAMBA.BAT),
который с помощью
# команды "net use" производит подключение сетевых дисков (а
также может выполнять
# другую полезную работу, например, синхронизацию времени -
прим. перев.)
logon script =
SAMBA.BAT
#============== Определение разделяемых ресурсов
================#
# Персональная директория для каждого пользователя.
# Диск P:
[homes]
comment = Домашние директории
browseable = no
writable = yes
readonly = no
force create mode = 0700
create mode = 0700
force directory mode = 0700
directory mode = 700
#------------------------------------------------------------------------------------------------------------#
# Директория для временных файлов.
# Диск T:
[tmp]
comment = Временные файлы
path = /tmp
readonly = no
public = yes
writable = yes
force create mode = 0777
create mode = 0777
force directory mode = 0777
directory mode = 0777
#------------------------------------------------------------------------------------------------------------#
# Привод CD-ROM сервера.
# Диск L:
[cdrom]
comment = CD-ROM
path = /mnt/cdrom
public = yes
writable = no
#------------------------------------------------------------------------------------------------------------#
# Ресурс группы ("/home/grp.имя_группы"), к которой принадлежит пользователь (%u).
# /home/%u/group является ссылкой на
"/home/grp.имя_группы".
# "grp.имя_группы" имеет права доступа 770.
# Диск G:
[group]
comment = Директория группы
path = /home/%u/group
writable = yes
readonly = no
force create mode = 0770
create mode = 0770
force directory mode = 0770
directory mode = 0770
#------------------------------------------------------------------------------------------------------------#
# Этот ресурс предназначен для хранения приложений, дистрибутивов,
# корпоративного ПО (corporative software) и т. д.
# Права доступа для /net и /net/install - 755, то есть владелец ресурса - root.
# Диск N:
[net]
comment = Ресурс Net
path = /net
writable = yes
readonly = no
force create mode = 0750
create mode = 0750
force directory mode = 0750
directory mode = 0750
#------------------------------------------------------------------------------------------------------------#
[netlogon]
comment = Logon Services in the Network
path = /etc/samba/netlogon
guest ok = yes
writable = no
locking = no
public = no
browseable = yes
share modes = no
#------------------------------------------------------------------------------------------------------------#
#============================================================#
И пакет Samba, и многие другие инструменты Linux находятся в
непрерывном развитии, поэтому вполне возможно, что некоторые детали,
имеющиеся в этой заметке, могут потерять свою актуальность.
В ходе развития Samba некоторые параметры конфигурационного
файла слегка изменялись, чтобы добиться стройности системы.
Если при конфигурации Samba-сервера вы получите сообщения о
неизвестных параметрах, есть пара способов разрешить эту
проблему:
Samba - программный продукт, распространяемый под лицензией
GPL.
Linux - зарегистрированная марка Линуса Торвальдса (Linus Torvalds).
Solaris - операционная система и зарегистрированная марка Sun Microsystems.
MS Windows - операционная система и зарегистрированная марка Microsoft.
Использование Samba дает большую экономию на лицензионных отчислениях для Microsoft.