- Samba
- Пример настройки smb.conf для «файлопомойки»
- Мусорная корзина для «файлопомойки»
- Монтирование ресурса Самбы через /etc/fstab
- Прозрачный доступ к samba-ресурсам с помощью smbnetfs
- Работа в домене Active Directory
- Работа в домене ALT Linux
- Использование Samba 4 в роли контроллера домена Active Directory
- Некоторые типовые проблемы при использовании samba
- Проблемы с ресурсами Windows
- Не показываются компьютеры при просмотре сети в файловых менеджерах
- Ссылки
- Альт линукс файловый сервер
- Глава 42. Samba в режиме файлового сервера
- 42.1. Настройка smb.conf
- Samba/Fileserver/AD-auth
- Параметры описанного стенда
- Подключение к домену
- Настройка Samba
- Настройка доменной аутентификации
Samba
Для корректной работы сервера должны быть установлены пакеты samba и samba-client.
Убедиться, что пакеты установлены и при необходимости установить их можно командой:
apt-get install samba samba-client
Пример настройки smb.conf для «файлопомойки»
Пример настройки smb.conf для «файлопомойки» с двумя расшаренными ресурсами и принтером, параметры, закомментированные ; — действуют по-умолчанию
workgroup = WORKGROUP netbios name = samba-server server string = Samba Server Version %v map to guest = Bad User ; idmap config * : backend = tdb guest ok = yes cups options = raw security = user ; encrypt passwords = yes ; guest account = nobody [printers] comment = All Printers path = /var/spool/samba browseable = no ; guest ok = no ; writable = No printable = yes # A publicly accessible directory, but read only, except for people in # the "staff" group [public] comment = Public Stuff path = /home/samba public = yes writable = yes ; printable = no write list = @staff ; browseable = yes [Free] path = /mnt/win/Free read only = no ; browseable = yes guest ok = yes
Мусорная корзина для «файлопомойки»
Монтирование ресурса Самбы через /etc/fstab
Пример строчки для монтирование ресурса самбы в /etc/fstab:
//server/public /mnt/server_public cifs users,credentials=/etc/samba/sambacreds,file_mode=0777,dir_mode=0777 0 0
Если монтируется ресурс на Windows XP, добавьте в строку в /etc/fstab параметр vers=1.0.
Если опустить параметры file_mode=0777,dir_mode=0777, то ресурс будет доступен на запись только root, а остальным — только для чтения.
Содержимое /etc/samba/sambacreds (создать самому, например командой mcedit /etc/samba/sambacreds )
username=имя_пользователя password=пароль
Для защиты информации, права на файл /etc/samba/sambacreds, надо установить так, что-бы файл был доступен только хозяину
chmod 600 /etc/samba/sambacreds
chown root: /etc/samba/sambacreds
Прозрачный доступ к samba-ресурсам с помощью smbnetfs
Работа в домене Active Directory
Работа в домене ALT Linux
Использование Samba 4 в роли контроллера домена Active Directory
Некоторые типовые проблемы при использовании samba
Проблемы с ресурсами Windows
Симптомы: При подключении к ресурсам на Windows 7, периодически и спонтанно отваливается ресурс.
При монтировании его это выражается в виде чего-то подобного:
mount error(121): Remote I/O error
Код ошибки иногда бывает 5, возможно сообщение о нехватке памяти.
При использовании других способов подключения происходит просто отключение ресурса и невозможно его более примонтировать до перезагрузки Windows.
Причина: Проблема, как выяснилось, имеет давнюю историю и находится в компании Microsoft. Другими словами — виноват Windows. Особенно ярко это выражено на 64 битных версиях и связано с переполнением кэша
Решение: Нужно изменить параметры работы кэша службы сервера Windows. Для этого на машине с Windows запускаем regedit.exe и в:
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\LargeSystemCache
— установить значение 1 (По умолчанию там стоит 0)
HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\Size
— установить значение 3 (По умолчанию там стоит 1)
После этого, перезапустить службу server (в русской версии сервер) или просто перезагрузить компьютер с win.
Не показываются компьютеры при просмотре сети в файловых менеджерах
После нахождения уязвимости в Samba просмотр компьютеров в сети (доступный по протоколу версии SMB1) стал недоступен. Подробнее: https://unix.stackexchange.com/questions/453944/samba-network-discovery-fails-through-file-managers-but-works-with-smbtree
Вы можете использовать версию Samba 4.10 (включить службы smb и nmb) или указать в /etc/samba/smb.conf :
[global] . client max protocol = NT1 client min protocol = CORE
systemctl restart smb nmb
Ссылки
Альт линукс файловый сервер
Глава 42. Samba в режиме файлового сервера
Samba — пакет программ, которые позволяют обращаться к сетевым дискам и принтерам на различных операционных системах по протоколу SMB/CIFS. Имеет клиентскую и серверную части.
42.1. Настройка smb.conf
После редактирования файла /etc/samba/smb.conf , следует запустить команду testparm для проверки файла на синтаксические ошибки:
#systemctl restart smb
#systemctl restart nmb
Каждый раздел в файле конфигурации (кроме раздела [global]) описывает общий ресурс. Название раздела — это имя общего ресурса. Параметры в разделе определяют свойства общего ресурса.
Общий ресурс состоит из каталога, к которому предоставляется доступ, а также описания прав доступа, которые предоставляются пользователю.
Разделы — это либо общие файловые ресурсы, либо службы печати. Разделам может быть назначен гостевой доступ, в этом случае для доступа к ним не требуется пароль (для определения прав доступа используется специальнаяя гостевая учетная запись). Для доступа к разделам, к которым запрещен гостевой доступ, потребуется пароль.
Samba использует отдельную от системной базу данных пользователей. Для возможности доступа пользователя к папке (если запрещен гостевой доступ) необходимо внести его в базу данных Samba и установить пароль для доступа к общим ресурсам (он может совпадать с основным паролем пользователя). Следует учитывать, что в базу данных Samba можно добавлять пользователей, которые уже есть в системе.
Добавить пользователя в базу данных Samba можно, выполнив команду (должен быть установлен пакет samba-common-client ):
Параметры в этом разделе применяются к серверу в целом или являются значениями по умолчанию для разделов, и могут быть переопределены в разделе.
Используется для подключения домашних каталогов пользователей. При каждом обращении Samba сначала ищет имя запрошенного ресурса в списке общих ресурсов, и если имя не найдено проверяет наличие в конфигурации секции [homes]. Если такая секция есть, то имя трактуется как имя пользователя, и проверяется по базе данных пользователей сервера Samba. Если имя найдено в базе данных пользователей, то Samba предоставляет в качестве общего ресурса домашний каталог этого пользователя. Аналогичный процесс происходит, если имя запрошенного ресурса — «homes», за исключением того, что имя общего ресурса меняется на имя запрашивающего пользователя.
Если в файле конфигурации имеется раздел [printers], пользователи могут подключаться к любому принтеру, указанному в файле printcap локального хоста.
Для возможности использования файлового ресурса [homes], необходимо добавить каждого локального пользователя в список пользователей Samba, например:
# smbpasswd -a user
New SMB password: Retype new SMB password: Added user user.
Если в разделе [homes] указан гостевой доступ (guest ok = yes), все домашние каталоги будут видны всем клиентам без пароля. Если это действительно нужно (хотя маловероятно), разумно также указать доступ только для чтения (read only = yes).
Флаг browseable для домашних каталогов будет унаследован от глобального флага browseable , а не флага browseable раздела [homes]. Таким образом, установка browseable = no в разделе [homes] скроет общий ресурс [homes], но сделает видимыми все автоматические домашние каталоги.
browseable — определяет, отображается ли этот общий ресурс в списке доступных общих ресурсов в сетевом окружении и в списке просмотра (по умолчанию: browseable = yes);
read only — если для этого параметра задано значение «yes», то пользователи службы не могут создавать или изменять файлы в каталоге (по умолчанию: read only = yes);
write list — список пользователей, которым будет предоставлен доступ для чтения и записи. Если пользователь находится в этом списке, ему будет предоставлен доступ для записи, независимо от того, какой параметр установлен для параметра read only . Список может включать имена групп с использованием синтаксиса @group;
read list — список пользователей, которым будет предоставлен доступ только для чтения. Если пользователь находится в этом списке, ему не будет предоставлен доступ для записи, независимо от того, какой параметр установлен для параметра read only . Список может включать имена групп;
guest ok — если этот параметр имеет значение «yes», то для подключения к ресурсу не требуется пароль (по умолчанию: guest ok = no);
printable — если этот параметр имеет значение «yes», то клиенты могут открывать, писать и ставить задания в очередь печати (по умолчанию: printable = no);
map to guest — определяет что делать с запросами, которые не удалось аутентифицировать («Never» — запросы с неправильными паролями будут отклонены; «Bad user» — запросы с неправильными паролями будут отклонены, если такое имя пользователя существует;) (по умолчанию: map to guest = Never).
Пример настройки /etc/samba/smb.conf для работы Samba в режиме файлового сервера с двумя открытыми для общего доступа ресурсами, домашними каталогами пользователей и принтером (закомментированные параметры действуют по умолчанию):
[global] workgroup = WORKGROUP server string = Samba Server Version %v security = user log file = /var/log/samba/log.%m max log size = 50 guest ok = yes cups options = raw map to guest = Bad User ; idmap config * : backend = tdb [homes] comment = Home Directory for '%u' browseable = no writable = yes guest ok = no [share] comment = Commonplace path = /srv/share read only = No [printers] comment = All Printers path = /var/spool/samba browseable = no ; guest ok = no ; writable = no printable = yes # Каталог доступный только для чтения, за исключением пользователей # входящих в группу "staff" [public] comment = Public Stuff path = /home/samba public = yes writable = yes write list = +staff ; browseable = yes [Free] path = /mnt/win/Free read only = no ; browseable = yes guest ok = yes
# smbclient -L 192.168.0.157 -Uuser
Password for [WORKGROUP\user]: Sharename Type Comment --------- ---- ------- share Disk Commonplace public Disk Public Stuff Free Disk IPC$ IPC IPC Service (Samba Server Version 4.15.9) user Disk Home Directory for 'user'
Обращение к домашней папке пользователя выполняется по имени пользователя (например, smb://192.168.0.157/user).
Для ознакомления с прочими возможностями, читайте руководство по smb.conf. Для этого используйте команду man smb.conf .
Samba/Fileserver/AD-auth
Задача: поднять файловый сервер на samba с авторизацией доменных пользователей и беспарольным доступом к общей папке.
Параметры описанного стенда
Имя домена: TEST.ALT Рабочая группа: TEST Имя компьютера в netbios: DC Имя пользователя-администратора: Administrator Пароль администратора: Pa$$word Контроллер домена: dc.test.alt Файл-сервер samba: fileserver.test.alt
Подключение к домену
Вводим файл-сервер в домен, настраиваем аутентификацию и авторизацию SSSD согласно инструкции.
Настройка Samba
Создадим директорию на файл-сервере, куда будем предоставлять доступ доменным пользователям:
Изменим группу владельцев папки на доменных пользователей:
# chown :"TEST\domain users" /mnt/share/sambashare
Отредактируем /etc/samba/smb.conf, указав доступность папки:
[sambashare] comment=shared files path=/mnt/share/sambashare read only=no browseable=yes
Настройка доменной аутентификации
Создадим keytab-файл и пропишем в /etc/samba/smb.conf kerberos-аутентификацию. Инструкция
Добавим в keytab-файл принципала сервиса «CIFS»:
# net ads keytab add CIFS -U Administrator Processing principals to add…
Скопируем /etc/krb5.keytab в /etc/samba/:
cp /etc/krb5.keytab /etc/samba/
Укажем в /etc/samba/smb.conf путь к keytab-файлу:
dedicated keytab file = /etc/samba/krb5.keytab kerberos method = dedicated keytab
Попробуем зарегистрироваться с помощью keytab-файла:
# kinit -V -k CIFS/fileserver.test.alt -t /etc/samba/krb5.keytab Using default cache: persistent:0:0 Using principal: CIFS/fileserver.test.alt@TEST.ALT Using keytab: /etc/samba/krb5.keytab Authenticated to Kerberos v5
После выполненных действий при открытии сетевого окружения с хоста, где выполнен вход от доменного пользователя, нам без дополнительного ввода пароля будет доступен наш файл-сервер и папка, к которой мы открывали доступ.