Конфигурационный файл “/etc/smb.conf”
Файл “/etc/smb.conf” – это основной конфигурационный файл сервера Samba, в котором вы можете определить каталоги к которым предоставляете доступ, с каких IP адресов разрешен доступ и пр. Первые несколько строк в секции [global] содержат глобальные конфигурационные директивы, которые являются общими для всех разделяемых ресурсов (пока они не переписаны в конкретных секциях для каждого ресурса), далее идут секции, отвечающие за конкретные ресурсы. Существует множество опций, и нужно обязательно прочитать документацию, поставляемую вместе с Samba, чтобы получить информацию о каждой из них.
Следующий пример представляет из себя минимальную рабочую конфигурацию для Samba с поддержкой шифрованных паролей. Также, замечу, что мы прокомментируем только те параметры, которые связаны с безопасностью и оптимизацией, а остальные оставим для вашего собственного изучения.
В нашем примере, мы создаем только один каталог, “[tmp]”, и позволяем доступ только машинам с IP адресами диапазона класса C. Также мы не используем сервис печати.
Редактируйте файл smb.conf (vi /etc/smb.conf) и добавьте/измените следующие параметры: [global] workgroup = OPENNA server string = R&D of Open Network Architecture Samba Server encrypt passwords = True security = user smb passwd file = /etc/smbpasswd log file = /var/log/samba/log.%m socket options = IPTOS_LOWDELAY TCP_NODELAY domain master = Yes local master = Yes preferred master = Yes os level = 65 dns proxy = No name resolve order = lmhosts host bcast bind interfaces only = True interfaces = eth0 192.168.1.1 hosts deny = ALL hosts allow = 192.168.1.4 127.0.0.1 debug level = 1 create mask = 0644 directory mask = 0755 level2 oplocks = True read raw = no write cache size = 262144
[homes] comment = Home Directories browseable = no read only = no invalid users = root bin daemon nobody named sys tty disk mem kmem users
[tmp] comment = Temporary File Space path = /tmp read only = No valid users = admin invalid users = root bin daemon nobody named sys tty disk mem kmem users
Эта опции говорят Samba следующее:
[global]
workgroup = OPENNA
Опция “workgroup” определяет рабочую группу в которую входит ваш сервер. Важно, чтобы клиенты и сервер входили в одну и туже группу.
server string = R&D of Open Network Architecture Samba Server
Опция “server string” определяет строку, которую получат пользователи в блоке комментария к принтеру в менеджере принтеров, или при IPC соединении по команде "net view" на Windows машинах.
encrypt passwords = True
Опция “encrypt passwords” если установлена в “True” инструктирует Samba использовать шифрованные пароли вместо паролей с открытым текстом. Снифферы несмогут определить ваш пароль, если он зашифрован. Эту опцию из соображений безопасности нужно установить в “True”.
security = user
Опция “security”, если установлена в “user”, определяет, что клиент должен вначале пройти аутентификацию по правильному имени и паролю, или соединение будет разорвано. При этом способе имя пользователя и пароль должно существовать в файле “/etc/passwd” Linux сервера и в файле “/etc/smbpasswd” Samba сервера, или соединение с клиентом не состоится. Смотрите “Безопасность samba” в этой главе для получения большей информации о файле “smbpasswd”.
smb passwd file = /etc/smbpasswd
Опция “smb passwd file” определяет путь к файлу с шифрованными паролями “smbpasswd”. Файл “smbpasswd” это копия файла “/etc/passwd” Linux системы содержащий разрешенные имена и пароли клиентов, которым разрешен доступ к серверу Samba. Samba читает этот файл, когда получает запрос на соединение.
log file = /var/log/samba/log.%m
Опция “log file” определяет месторасположение и имена файлов регистрации Samba. С расширением “%m”, у вас будут создаваться независимые файлы регистрации для каждого пользователя или машины, соединяющихся к вашему Samba серверу (например, log.machine1).
socket options = IPTOS_LOWDELAY TCP_NODELAY
Опция “ socket options” определяет параметры, которые вы можете включить в вашу конфигурацию Samba для настройки и улучшения сервера samba на оптимальную производительность. По умолчанию, мы выбрали настройку сервера на локальную сеть и улучшили производительность сервера Samba при пересылке файлов.
domain master = Yes
Опция “domain master” определяет, что один из демонов Samba, “nmbd”, будет установлен как домен мастер броузер для данной рабочей группы. Эта опция обычно устанавливается в “Yes” только на одном сервере Samba в некоторой сети и рабочей группе.
local master = Yes
Опция “local master” позволяет “nmbd” становится локальным мастер броузером в подсети. Подобно предыдущей опции эта опция должна быть установлена в “Yes” только на одном Samba сервере в подсети.
preferred master = Yes
Опция “preferred master” определяет и контролирует является ли “nmbd” привилегированным (preferred) мастер броузером рабочей группы. Опять же, эта опция обычно выставляется в “Yes” на одном сервере на вашей сети.
os level = 65
Опция “os level” определяет значение имеет ли “nmbd” шанс стать локальным мастер броузером для рабочей группы в локальной широковещательной области. Число 65 позволит победить любой NT сервер. Если в вашей сети есть NT сервер и вы хотите, чтобы Linux Samba сервер стал локальным мастер броузером, вы должны установить этот параметр равным 65. Эта опция должна быть определена только на одном Linux Samba сервере в сети, а на остальных ее надо отключить.
dns proxy = No
Опция “dns proxy” если установлена в “Yes” определяет, что “nmbd” когда выступает как WINS сервер и определяет, что Net BIOS имя не было зарегистрировано, должен интерпретировать Net BIOS имя слово в слово как DNS имя и делает lookup на DNS сервер действуя от имени клиента, запрашивающего данное имя. Так как мы не настраиваем Samba сервер как WINS сервер, нам не нужно устанавливать эту опцию в “Yes”. Устанавливая эту опцию в “Yes” мы ухудшим производительность Samba.
name resolve order = lmhosts host bcast
Опция “name resolve order” определяет, в каком порядке используются сервисы имен для резолвинга имени хоста в IP адрес. Параметры, который мы выбрали говорят использовать в первую очередь локальный “lmhosts” файл.
bind interfaces only = True
Опция “bind interfaces only” если установлена в “True”, позволяет вам ограничивать интерфейсы на которых будет принимать запросы “smb”. Эта возможность улучшающая безопасность системы. Опция “interfaces = eth0 192.168.1.1” дополняет данную опцию.
interfaces = eth0 192.168.1.1
Опция “interfaces” позволяет вам переписать список интерфейсов по умолчанию, на которых Samba будет обрабатывать запросы. По умолчанию, Samba принимает список из всех активных интерфейсов и любые интерфейсы (исключая 127.0.0.1), на которых поддерживается возможность широковещательных запросов. С этой опцией, Samba будет слушать только интерфейс “eth0” с IP адресом 192.168.1.1. Это возможность улучшающая безопасность, и дополняет ранее приведенную опцию “bind interfaces only = True”.
hosts deny = ALL
Опция “hosts deny” определяет список хостов, которым запрещен доступ к сервису Samba, если определенные сервисы не имеют собственных списков доступа. Для простоты, мы запрещаем доступ всем хостам по умолчанию, и разрешаем доступ некоторым компьютерам в опции “hosts allow =”, приведенной ниже.
hosts allow = 192.168.1.4 127.0.0.1
Опция “hosts allow” определяет, каким хостам разрешен доступ к Samba сервису. По умолчанию, мы пускаем компьютер с IP адресом класса C 192.168.1.4 и наш localhost 127.0.0.1. Заметим, что доступ с localhost должен быть всегда разрешен, иначе вы будете получать сообщения об ошибках.
debug level = 1
Опция “debug level” позволяет вам определить уровень регистрации. Если вы установите уровень отладки больше чем 2, то это приведет к падению производительности. Это связано с тем, что сервер сбрасывает информацию в файл регистрации после каждой операции, которые могут быть очень интенсивными.
create mask = 0644
Опция “create mask” определяет и устанавливает нужные права доступа, связывая таким образом режимы DOS с правами UNIX. С этой опцией установленной в 0644, все файлы копируемые или создаваемые из Windows систем на Unix будут иметь права доступа 0644.
directory mask = 0755
Опция “directory mask” определяет и устанавливает режим, который используется для конвертирования DOS режимов в UNIX режимы, когда создается UNIX каталог. С этой опцией установленной в 0755, все каталоги копируемые или создаваемые из Windows систем на Unix будут иметь права доступа 0755.
level2 oplocks = True
Опция “level2 oplocks”, если установлена в “True”, увеличит производительность множественного доступа к файлам, которые обычно не записываются (такие как файлы приложений .EXE).
read raw = no
Опция “read raw” контролирует будет или нет сервер осуществлять “необработанное” (raw) чтение SMB запросов, когда пересылает данные клиенту. Заметим, что распределение памяти не использует операцию "read raw". Таким образом, вы можете обнаружить, что распределение памяти более эффективно, если вы отключите "read raw", используя параметр "read raw = no".
write cache size = 262144
Опция “write cache size” позволяет Samba улучшить производительность систем у которых дисковая подсистема является узким местом. Значение этой опции определяется в байтах. Значение этой опции определяется в байтах, следовательно 262,144 представляет 256k кэш на файл.
[tmp]
comment = Temporary File Space
Опция “comment” позволяет вам определить комментарии, которые появляются, когда клиент организует запросы на сервер.
path = /tmp
Опция “path” определяет каталог, в который пользователю разрешается доступ. В нашем примере, это каталог “tmp”.
read only = No
Опция “read only” определяет должен ли пользователь иметь доступ “только на чтение” или нет. В нашем примере, так как это конфигурация для каталога “tmp”, пользователь может иметь больший доступ, чем “только на чтение”.
valid users = admin
Опция “valid users” определяет список пользователей, которые могут подключаться к этому сервису. В нашем примере, только пользователю “admin” разрешен доступ к каталогу “/tmp”.
invalid users = root bin daemon nobody named sys tty disk mem kmem users
Опция “invalid users” определяет список пользователей которым не разрешается подключаться к этому сервису. Это абсолютно "параноидальная" проверка, которая гарантирует, что неправильные установки не нарушат безопасность системы. Рекомендуется, чтобы вы включили в эту строку всех пользователей, созданных в системе по умолчанию, от имени которых запускаются демоны на сервере.