Страницы

суббота, 17 марта 2012 г.

Samba сервер на HP Proliant Microserver

Старая добрая Samba.  С ней постоянного какие-то проблемы. Что-то да забудешь.
Samba требуется в Linux, чтобы "расшарить папку".

Что нужно учесть при настройке Samba сервиса на сервере Ubuntu 12.04.

SMB/CIFS - протокол прикладного уровня фирмы Microsoft, известный как "Сеть Windows" (Microsoft Windows Network).
SAMBA - свободная реализация этого протокола в семействе Linux и пр.

В Ubuntu server 12.04 и ранее, SAMBA устанавливается просто, а настраивается сложно.
$ sudo apt-get install smbd smb-common
Samba идет в поставке практически не настроенная на нормальное использование "из коробки".

Главный конфигурационный файл Samba - /etc/samba/smb.conf
Длинное руководство по Samba man smb.conf

Сервис smbd - отвечает за доступ к файлам по протоколу SMB/CIFS, для клиентов Windows и Linux.
Сервис nmbd - отвечает за способ просмотра общих ресурсов и преобразование имен NETBIOS в IP-адрес. Без него можно будет обращаться только на прямую по IP адресу.

Устаревший способ управления сервисом Samba из командной строки.
$ sudo service smbd stop
$ sudo service nmbd stop
$ sudo service smbd start
$ sudo service nmbd start

Также более правильно использовать системные команды Upstart.
$ stop smbd
$ start smbd
$ status smbd
$ reload smbd

Немного о сети, в которой настраивается Samba.
home - ethernet интерфейс домашней сети на микросервере (быв. eth0). Сеть в "серых" адресах. 192.168.3.0/24. Клиенты сети настраиваются динамически, через DHCPd микросервера.
beeline - ethernet интерфейс локальной сети провайдера (быв. eth1).
192.168.3.1 - статический ip-адрес микросервера
microserver - имя хоста (как в hostname).
HOME - принятая домашняя группа samba в моей домашней сети.

Samba настраивается таким образом, чтобы общие ресурсы не были видны в сети провайдера, а были видны клиентам только домашней сети.

Сохраним оригинальный файл smb.conf
$mv /etc/samba/smb.conf /etc/samba/smb.conf.orig

$touch /etc/samba/smb.conf

Отредактируем файл
$sudo nano /etc/samba/smb.conf

# Основные параметры сервиса Samba на микросервере HP Proliant Microserver
# ОС Ubuntu 12.04
# сервер: микросервер
# 17 марта 2012
# Особенности:
# - минимальные настройки для обмена файлами
[global]
workgroup = HOME
server string = %h - hp proliant microserver

# Указываем интерфейсы, на которых будет работать сервис Samba. Этим мы отсекаем сервис от локальной сети провайдера и пользователей локальной сети провайдера от сервиса.

interfaces = 127.0.0.0/8 home
bind interfaces only = yes

# Выбираем самый простейший способ доступа к общим папкам на сервере 
security = user
client lanman auth = yes
guest account = iam

# Русские буквы в SAMBA
dos charset = cp866
unix charset = utf8
display charset = utf8

# Настройка папок общего доступа

# 1. Сделаем общую папку для обмена в домашней директории пользователя ( у кого какое)
# т.к. первый пользователь iam создается в системе при установке
# у него такая-же группа - iam


[avoska]
path = /home/iam/avoska
comment = авоська для обмена
public = yes
browseable = yes
read only = no
map archive = no


Для нормальной комфортной работы сервиса Samba в локальной сети, рекомендую почитать заметку - Настройка доменных имен в Ubuntu. Разрешение имен довольно сильно влияет на доступность ресурсов и возможность их просмотра из Windows Explorer, Nautilus.

Windows 7 & Ubuntu Samba
Для доступа из Windows 7 к общему ресурсу по протоколу Samba (SMB/CIFS) на микросервере.
Операционная система Windows 7 запрашивает имя пользователя и пароль при доступе к ресурсу на микросервере, через "Сеть".
Надо добавить существующего пользователя iam и задать ему пароль, который будет использоваться Windows 7 в диалоговом окне.
root@microserver :# smbpasswd -a iam
New SMB password:
Retype SMB password:
Added username iam.

Также вполне может потребоваться переключить в "Центре управления сетями и общим доступом" - "Дополнительные параметры общего доступа" - режим шифрования в 40-бит.


Диагностика
1. Тестирование корректного синтаксиса и опций конфигурационного файла
testparm -s /etc/samba/smb.conf

2. nmblookup microserver - широковещательно запрашивает сеть на предмет преобразования NETBIOS имени samba сервера в IP.
querying MICROSERVER on 192.168.3.255
192.168.3.1 MICROSERVER<00>

3. smbtree - выводит дерево общих ресурсов на samba-серверах. Полезна для быстрого просмотра из консоли.

4. smbstatus - выводит подключения машин и пользователей к ресурсам микросервера.

Основные трудности
- Новый файлы создаются с битом исполнения. Эта особенность сохранения архивного бита файла Windows в бите исполнения Unix, отключается опцией в секции ресурса: map archive = no
- В процессе эксплуатации выяснился глюк с длинными именами файлов, при доступе к ресурсу сервера с домашнего компьютера Ubuntu 11.10, средой Gnome, Nautilus. Это работа опции name mangling (переименование в DOS-совместимые имена формата 8.3). Теперь задача - отключить эту опцию: mangled names = no . После этого имена с русскими буквами пропали из ресурса. Это было из-за символа ":" в именах файлов (время указывалось). В принципе можно опцию вернуть, чтобы знать, что есть проблемы.


Ресурсы

. Главный сайт Samba. http://www.samba.org/
. Книга по Samba, на главном сайте. http://www.samba.org/samba/docs/using_samba/ch00.html
. Все о самба. http://smb-conf.ru
. Статья о SMB в Википедии. http://ru.wikipedia.org/wiki/Server_Message_Block
. Изучаем Linux, 302 (смешанные среды): Роли Samba. http://www.ibm.com/developerworks/ru/library/l-lpic3-310-2/index.html


Комментариев нет: