Windows сервер под управлением linux

Замена файл-сервера Windows NT/2000 на Linux/Samba

Эта заметка продолжает рассказывать о настройке пакета Samba, который предназначен для разделения ресурсов в гетерогенных (разнородных) Unix/Windows сетях. Здесь рассказывается о том, как настроить сервер Samba под Linux, чтобы получить такую же, как и при использовании Windows-сервера, функциональность.
Samba не только раскрывает мощность и гибкость ОС Linux, но она также дает определенные выгоды:

  • нет необходимости выплачивать лицензионные отчисления за использование ОС Windows на своих серверах;
  • даже на менее мощном, чем требует Windows-сервер, оборудовании (процессор, память) может быть достигнута такая же или лучшая производительность.

При хорошей настройке Samba возможен полный переход с сервера под управлением Windows NT/2000 на сервер под Linux. Samba позволяет создавать разделяемые ресурсы, обеспечивает доступ к службе каталогов Active Directory (ADS — Active Directory Service), а также может выступать в роли основного (первичного) контроллера домена (PDC — Primary Domain Controller), выполняя аутентификацию пользователей, работающих под Windows 95/98/NT/2000, обеспечивая разделение ресурсов (директорий и принтеров) и настройку пользовательских сессий (users sessions). Ниже рассматриваются некоторые из этих возможностей.

В результате, во многих случаях Linux/Samba-сервер обеспечивает такую же, как и Windows-сервер, функциональность, при этом не требуя дополнительной настройки клиентских машин.
Далее будем считать, что пакет Samba уже установлен на машине и что читатель знаком с основными концепциями ОС Linux и Windows.

Пример из жизни

Пусть наш 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

Замечание:
Чтобы задать для каждого пользователя отдельный сценарий входа (logon script), установите logon script = %U.bat (или %u.bat). Также вы можете использовать спецификатор %g (или %G) для того, чтобы выполнялся сценарий группы, к которой принадлежит пользователь (см. также man smb.conf).

4) Создание разделяемых ресурсов.
Отредактируйте описания разделяемых ресурсов в файле smb.conf, удаляя (или комментируя знаком ‘;’) ненужные ресурсы и добавляя необходимые:

[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

Читайте также:  Windows добавить виртуальный привод

Сохраните полученный файл smb.conf.

5) С помощью команды testparm проверьте синтаксис конфигурационного файла smb.conf. При наличии ошибок будут выданы соответствующие сообщения.

6) Создайте директории /home/netlogon (с правами доступа 0754) и /home/public (с правами доступа 0777).

7) Отредактируйте сценарий входа logon.bat.
Обратите внимание: для создания logon.bat необходимо использовать текстовый редактор для DOS/Windows (Notepad, Edit и т. п.). Также можно использовать текстовый редактор под Linux, не забывая, однако, сконвертировать полученный текст в совместимый с DOS/Windows формат. К примеру, в редакторе vim это делается с помощью команды «:set textmode». Сценарий logon.bat может выглядеть, например, так:

net time \\SMBServer /y (или /yes)
net use H: \\SMBServer\home -y
(или /yes)
net use P: \\SMBServer\public -y

8) В файл /etc/samba/lmhosts (или /etc/lmhosts) добавьте запись о вашем Samba-сервере (SMBServer).
Например:

9) Запустите/перезапустите демон Samba (smbd):

service smb restart

Если с первого раза система не заработала нормально, попробуйте выполнить следующее:
ps -auxgx | grep smb
kill -9
smbd

10) Для проверки работоспособности Samba-сервера используйте smbclient:

smbclient -L //SMBServer

Если будет выдано приглашение «Password:», нажмите «Enter», в ответ сервер покажет список своих разделяемых ресурсов.

11) С машины, работающей под Windows 95/98/NT, попробуйте войти в созданный только что домен THEDOMAIN. Для входа используйте имя пользователя и пароль, созданные на шаге 1 и 2.

Не забудьте произвести настройку свойств клиента для сетей 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 =
#. #
# Опция включает поддержку шифрованных паролей. Почитайте сначала 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 =
#. #
# Для того, чтобы клиенты Windows 9x/Me могли использовать сервер Samba для
# входа в домен, укажите следующий параметр.
domain logons = yes
#. #
# Если параметр Domain logons установлен в «yes», вы имеете возможность указывать
# для пользователя (%u) или рабочей станции (%m) свой сценарий входа (logon script).

Читайте также:  Rocketdock для windows 10 mac

# Сценарий входа для рабочей станции:
; 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

Читайте также:  Duckduckgo privacy browser для windows

# Персональная директория для каждого пользователя.
# Диск 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

#————————————————————————————————————#
# Ресурс группы («/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-сервера вы получите сообщения о неизвестных параметрах, есть пара способов разрешить эту проблему:

  • проверить конфигурацию файла smb.conf; внимательно прочесть комментарии, которые могут содержать важную информацию о проблематичных параметрах;
  • почитать документацию по Samba, начав с файла, в котором описываются последние изменения пакета.

Ссылки: библиография и программы

  • Samba, официальный сайт: http://www.samba.org.
  • Webmin, официальный сайт: http://www.webmin.com. Webmin — инструмент для удаленного администрирования UNIX-систем.
  • Проект GNU и Фонд Свободного Программного Обеспечения: http://www.gnu.org.
  • Интересный сайт, посвященный пакетам RPM: http://www.rpmfind.net.
  • Домашняя страница LinNeighborhood: http://www.bnro.de/

schmidjo. LinNeighborhood — интересный инструмент под Linux для работы с разделяемыми сетевыми ресурсами через SMB.

Samba — программный продукт, распространяемый под лицензией GPL.
Linux — зарегистрированная марка Линуса Торвальдса (Linus Torvalds).
Solaris — операционная система и зарегистрированная марка Sun Microsystems.
MS Windows — операционная система и зарегистрированная марка Microsoft.
Использование Samba дает большую экономию на лицензионных отчислениях для Microsoft.

Оцените статью