Wive-NG routers firmware (dsl/rtnl/mt).
Главная > Другое > Документация > Настройка SAMBA

Настройка SAMBA

Настройка samba длядомашней локальной сети.


И так, у нас есть настроенный DHCPD (по материалам прошлой статьи), теперь можно приступить к конфигурации WINS сервера и файлового SMB сервера, для доступа windows клиентов через стандартное для них сетевое окружение.


В linux обе этих функции берет на себя пакет по имени samba. На момент написания статьи пакет включен во все популярные дистрибутивы Linux. Текущая версия 3.0.23b, вот от неё и будем отталкиваться.


В общем зачем нам файлсервер понятно без объяснений, а вот зачем нужен WINS думаю стоит прояснить. Придется мне таки процитировать ненавистный мне майкрософт, ведь именно им мы обязаны не вписывающимися не в какие стандарты решение, и тут не обошлось без этого. Видети ли, не устроил господ из мелкософта стандартный DNS вот и решили они изобрести, и даже изобрели (в отличии интернета =))) некий собственный сервер имен со своим протоколом (надо заметить достаточно тупым протоколом) и назвали они его WINS. Ну что же т.к. винда в домашних сетях стоит на 90% клиентских машин, то нам Придется воевать и с этим.


Обещанная цитата: «WINS — это реализация стандартов IETF, описывающих способ просмотра системы NetBIOS и разрешение имен в среде протокола TCP/IP, согласно спецификациям RFC 1001 и RFC 1002. Поэтому данная служба обеспечивает не только отображение имен компьютеров и адресов TCP/IP, но также и просмотр сети и определение местоположения служб; эти услуги предоставляются, например, контроллерам доменов и рабочим группам.»
В общем-то как видно это всего лишь сервер имен в microsoft network и в общем-то даже есть какое-то описание в rfc =) Ну да пора закончить лирическое отсупление и рассмотреть зачем же оно нам нужно.


Как происходит обзор сети в сети без WINS сервера? Все очень просто. Каждая машина сети обращается к мастербраузеру у которого храниться (должен храниться) относительно актуальный список имен. Мастер браузер выбирается на «выборах» периодически инициируемых какой-либо системой в сети и побеждает та система OS Level которой больше. Если имя не было отрезолвлено то машина грубо говоря кричит на всю сеть «Кто здесь?» или лучше сказать «Ты тут?» на что машина с запрашиваемым именем должна ответить « Я тут и у меня такой-то IP». На самом деле все веселее, например представим такую ситуацию когда машина которая была мастербраузером по каким-либо причинам внезапно отключилась от сети? Все сеть можно сказать парализовано до тех пор пока на какой-нибудь машине в сети не придет в голову устроить «перевыборы». Но это еще полбеды, а если в сети 300-400 компьютеров и в сети есть потери? Правильно перевыборы винды будут устраивать чуть ли не каждые 30 секунд. Сеть при этом будет достаточно сильно притормаживать. Более того если вдруг в выборах победит машина на самом узком и самом некачественном канале. то вам остается только сочувствовать. В общем весь этот бред напомнил мне наше правительство, где тоже постоянные тайм ауты из-за выборов, дикие накладные расходы и Все это фоне просто ничтожного КПД. Собственно сервер WINS и призван решить все вышеописанные проблемы.


Ну что же, приступим. Стaвим необходимые пакеты (urpmi -a samba-server), после этого в системе должны быть доступны следующие пакеты: samba-server и samba-common.


Конфигурационные файлы самбы находятся в /etc/samba/, нас интересует конкретно smb.conf (очень советую прочесть man smb.conf).


Поехали:
bind interfaces only = Yes
interfaces = lo eth0
socket address = 127.0.0.1 10.0.0.254
Это заставит самбу слушать только на 2х интерфейсах с указанными IP адресами (задайте правильные параметры для своей сети).
hosts allow = 127. 10.
Устанавливает разрешение на доступ только с хотов из подсетей 127/8 и 10/8 (задайте правильные параметры для своей сети).
wins support = yes
Включаем WINS сервер.
name resolve order = lmhosts host bcast
Как wins будет резолвить имена в данном случае сначала будут просмотрены файлы lmhost затем hosts и только потом будет послан широковещательный запрос (т.к. другого винс сервера у нас в сети нет, то директива wins отсутствует)
domain master = yes
preferred master = yes
local master = yes
os level = 255
Говорим нашему будущему серверу имен что он мастер домена, мастер браузер сети и локальный мастербраузер. За счет максимального OS Level заставим самбу всегда побеждать в выборах (что на самом деле не всегда верно, замечена особенная тяга у винды стать мастером даже если os level у нее ниже плинтуса).
netbios name = server
server string = SadNET
workgroup = Krutanet
Имя сервера, комментарий и рабочая группа соответственно.
enhanced browsing = yes
Заставляет самбу просматривать все рабочие группы, что является некоторым нарушением протокола МС, но способно частично решить проблему в сетях где пользователи любят произвольно менять рабочие группы (убил бы).
time server = yes
И будет наш сервер еще и сервером времени виндовс.... Приятная опция, но непонятно зачем МС тут снова изобретал велосипед и для синхронизации времени использовал свой протокол, ну да ладно.


dos charset = 866
unix charset = KOI8-R


Указываем кодировки 866 оставляем в покое, т.к. именно она используется в виндовс при работе с сетью мс (как всегда бардак, но от МС я другого и не ждал). KOI8-R нужно заменить на кодировку установленную в локали Linux (часто используемые у нас KOI8-R, KOI8-U, UTF-8).


debug level = 0
log level = 0 vfs:3
syslog = 2
max log size = 50
log file = /var/log/samba/samba.log
Опции логирования, читаем соответствующий раздел в man smb.conf и думаем, думаем думаем...


security = share
guest account = nobody


Говорим, что привилегии определяются шарами (см smb.conf) для анонимного использования нам больше и не нужно.


preserve case = yes
Сохранять регистр в именах файлов и папок.


Теперь опишим несколько сетевых ресурсов:


[public]
comment = pub
path = /mnt/svalka/samba/out
public = yes
browseable = yes
guest ok = yes
guest only = yes
writable = no
Ресурс зовут public комментарий pub лежит оно в path опубликована и доступна для обзора. Доступ гостям разрешен, причем только им. Разрешено только чтение.


[incoming]
comment = in
path = /mnt/svalka/samba/in
public = yes
browseable = yes
guest ok = yes
guest only = yes
writable = yes
Ресурс зовут incoming комментарий ip лежит оно в path опубликована и доступна для обзора. Доступ гостям разрешен, причем только им. Разрешена запись.


Вот в общем-то все основные моменты описаны, перезапускам самбу (service smbd restart)


Если вы правильно настроили dhcpd то ваша клиентская машина уже знает о нашем WINS сервере, иначе Придется вручную добавить адрес wins сервера в конфигурации TCP/IP в настройках сетевого адаптера. В сети машина также будет видна как виндовс машина с 2мя сетевыми ресурсами. Если все сделано правильно то вы заметите что ваше сетевое окружение стало работать гораздо быстрее.


P.S. Т.е. все хорошо, но иногда мы видим что машина под виндовс таки побеждает в выборах, хотя не должна что замедляет работу, а администраторского доступа до машины нет. Собсно вопрос что делать? Есть решение хотя и не совсем правильное но работает достаточно корректно хотя и несколько увеличивает паразитный траффик, что слихвой компенсируется уже наличием WINS сервера в сети. И так... Добавляем в крон от root
раз в час исполнять smbcontrol nmbd force-election > /dev/null , это заставит самбу раз в час инициировать перевыборы и автоматом побеждать в них =)


Наслаждаемся быстрой работой сети. В следующих статьях речь пойдёт о настроке pdnsd (DNS сервера) и динамического обновления локальных DNS имен из WINS.




Маначкин Егений Романович
27.11.2006



Rambler's Top100
Locations of visitors to this page