Безопасность и оптимизация Linux.Редакция для Red Hat

       

Конфигурационный файл “/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” определяет список пользователей которым не разрешается подключаться к этому сервису. Это абсолютно "параноидальная" проверка, которая гарантирует, что неправильные установки не нарушат безопасность системы. Рекомендуется, чтобы вы включили в эту строку всех пользователей, созданных в системе по умолчанию, от имени которых запускаются демоны на сервере.


Содержание раздела