Быстрая и простая настройка samba. Настройка файлового сервера в локальной сети на Windows/Linux

Windows 1709 и новее не видит сервер samba при просмотре сети

В Windows 10 версии 1511 поддержка SMBv1 и, соответственно, обнаружение устройств NetBIOS были отключены по умолчанию. Более новые версии Windows, начиная с версии 1709 (“Fall Creators Update”), больше не позволяют установить клиент SMBv1. Это приводит к тому, что хосты с Samba не отображаются в просмотре сети в Проводнике.

Хотя проблем с подключением нет и Samba будет работать нормально, пользователи могут захотеть, чтобы их хосты Samba всё-таки отображались. wsddAUR реализует демон Web Service Discovery.

Благодаря ему (Samba) хосты, такие как NAS, могут быть обнаружены клиентами Web Service Discovery, такими как Windows. Настройки по умолчанию должны работать для большинства установок, и всё, что вам нужно сделать, это запустить и включить службу wsdd.service.

Настройки по умолчанию (представлять себя, используя имя хоста машины и рабочую группу “WORKGROUP”) должна подходить в большинстве случаев. Если нужно, вы можете изменить настройки, передав wsdd дополнительные аргументы, добавив их в /etc/conf.d/wsdd (подробности есть в руководстве wsdd).

wsdd2AUR делает то же самое, но написан на C, а не на Python. По умолчанию он берёт параметры netbios name и workgroup из файла smb.conf.

Бантики

По умолчанию лог файлы находятся в папке

/var/log/samba

. При необходимости получить подробные логи, в раздел [global] необходимо добавить параметр log level = 2 или 3. По умолчанию используется значение 1, значение 0 отключает ведение логов.

[global]
log level = 2

Как вы можете знаете, предоставление доступа к файлам это только часть функционала SAMBA. Если на сервере будут только файловые ресурсы, службу печати логично отключить. В разделе [global] добавьте следующие параметры

[global]
load printers = no
show add printer wizard = no
printcap name = /dev/null
disable spoolss = yes

Конфигурация SAMBA находиться в каталоге

/etc/samba

, а логи в каталоге

/var/log/samba

Мне удобней все инструменты держать по рукой, по этому я монтирую необходимые мне каталоги в

/samba

Создаем каталоги, в которые будет все монтироваться

mkdir /samba/smbconf
mkdir /samba/smblogs

Редактируем конфиг файл

/etc/fstab

, я предполагаю что вы знаете за что отвечает

mcedit /etc/fstab

Добавляем следующие строки

/etc/samba /samba/smbconf none bind 0 0
/var/log/samba /samba/smblogs none bind 0 0


Монтируем без перезагрузки

mount -a

Задание кодовых страниц

Для задания кодировок используются следующие новые параметры
smb.conf:

unix charset = <charset>
dos charset = <charset>
display charset = <charset>
                

где <charset> — любая кодировка,
поддерживаемая iconv. Список возможных
кодировок можно узнать, выполнив команду iconv
-list.

Параметры client code page и
character set больше не поддерживаются.
Параметр unix charset указывает кодировку, в
которой будут храниться файлы на диске, в которой заданы
параметры в smb.conf. Наконец-то
появилась возможность хранить имена файлов в
UTF-8!

Параметр dos charset указывает кодировку, в
которой Samba будет общаться с
клиентами, не поддерживающими Unicode. Все
версии Windows, начиная с 95,
понимают Unicode — но все же стоит
установить dos charset = cp866, что
соответствует client code page = 866 в более
старых версиях.

Параметр display charset указывает в какой
кодировке должны выводить информацию программы,
непосредственно обменивающиеся информацией с пользователем,
например smbclient, net,
wbinfo и другие.

Имена хостов netbios/wins

Клиенты Samba обрабатывают имена хостов NetBIOS автоматически по умолчанию (поведение регулируется опцией name resolve order в smb.conf). Другие программы (в том числе mount.cifs) используют Name Service Switch, который не использует NetBIOS по умолчанию.

Пакет smbclient предоставляет драйвер libnss для разрешения имён NetBIOS. Для его использования установите его вместе с пакетом samba (который предоставляет демон winbindd), запустите и включите службу winbind.service и добавьте wins в строку hosts в файле nsswitch.conf(5):

/etc/nsswitch.conf
...
hosts: mymachines resolve [!UNAVAIL=return] files myhostname dns wins
...

Теперь в процессе разрешения имён (например, при использовании mount.cifs или просто ping имя-netbios) демон winbindd будет отправлять запросы с использованием протокола NetBIOS Name Service (NBNS, также известен как WINS).

По умолчанию он отправляет широковещательный (broadcast) запрос в локальную сеть. Если у вас есть WINS-сервер, вы можете добавить wins server = ip-сервера-wins в smb.conf и перезапуститьwinbind.service, тогда winbindd и другие клиенты Samba станут отправлять unicast-запросы на указанный IP.

Если вы хотите, чтобы разрешение имени локального компьютера (которое указывается в опции netbios name в smb.conf) тоже работало, запустите и включите службу nmb.service, которая будет обрабатывать входящие запросы.

Вы можете протестировать разрешение WINS с помощью nmblookup. По умолчанию он отправляет широковещательные запросы в вашу локальную сеть независимо от значения опции wins server.

Имейте в виду, что WINS использует трафик, приходящий из порта 137.

Использование winbind

Сервис winbind является новым средством, предназначенным для
более полной интеграции Samba в
домены Windows; он появился,
начиная с Samba 2.2.0. Данный
сервис считывает свою конфигурацию из
/etc/samba/smb.conf и динамически
взаимодействует с PDC домена, автоматически
синхронизируя списки пользователей и групп домена и машины
Samba.

Работа данного сервиса происходит без изменения содержимого
каких либо авторизационных файлов в /etc
и при перезагрузке машины доменные пользователи появляются в
системе только после запуска winbindd.

Если
во время работы остановить winbindd, то
доменные пользователи и группы не исчезнут из системы до
перезагрузки, однако динамического обновления списков имен и
паролей происходить не будет.

Для того, что бы при рестарте компьютера (или только сервиса
winbindd) не нарушались соответствия
внутренних UID и доменных
SID, он сохраняет текущее состояние списков
в файлах /var/cache/samba/winbindd*.tdb.


Для нормального функционирования winbindd в
файле /etc/samba/smb.conf обязательно
должны быть объявлены следующие директивы:

[global]

# Диапазон номеров локальных пользователей, который будет
# использован для динамического создания пользователей домена.
winbind uid = 10000-20000

# Диапазон номеров локальных групп пользователей, который будет
# использован для динамического создания групп пользователей
# домена.
winbind gid = 10000-20000

# Символ-разделитель, используемый для составления доменных имен
# пользователей и располагающийся между именем домена и именем
# пользователя.
winbind separator =  

# Интервал времени (в секундах) между запросами winbind к PDC
# в целях синхронизации списков пользователей и групп.
winbind cache time = 10

# Шаблон имени домашних каталогов доменных пользователей,
# автоматически присваиваемых каждому пользователю. Сами каталоги,
# однако, динамически не создаются. Вместо переменой %D подставляется
# имя домена, а вместо %U подставляется имя пользователя.
template homedir = /home/%D/%U

# Командный интерпретатор, назначаемый по умолчанию для
# пользователей, авторизованных через winbindd.
template shell = /bin/bash
                
passwd: files winbind
group: files winbind
                

С этого момента можно использовать имена доменных
пользователей в /etc/samba/smb.conf с
целью разграничения доступа, в правах на файлы и каталоги, для
подключения к сетевым ресурсам данного хоста со стороны других
хостов.

Клиент

Установите пакет smbclient, который предоставляет ftp-подобный интерфейс командной строки. Часто используемые команды описаны в smbclient(1).

В качестве легковесной альтернативы (без возможности посмотреть список общих ресурсов и т.д.) можно использовать cifs-utils, который предоставляет команду /usr/bin/mount.cifs.

Некоторые среды рабочего стола также имеют графический интерфейс для доступа к общим ресурсам и управления ими (смотрите #Настройка файлового менеджера).

Настройка анонимного доступа к директории

Для множества задач самым оптимальным и простым решением является настройка анонимного доступа к ресурсу. Это значит, что клиент имеет возможность обратиться к ресурсу на сервере без авторизации. Например, можно создать директорию с общим доступом, в которой хранится информация, которой не требуется безопасность.

Важно: данный способ используется очень редко. Это крайне небезопасно оставлять ресурс в таком состоянии. Обычно это делается для маленькой soho-сети в самых крайних случаях.

Создадим директорию, к которой будет предоставлен доступ:

sudo mkdir /var/anonimus_share

И добавим директории полные права для всех:

sudo chmod 775 /var/anonimus_share

Директория var использована как пример, в реальных задачах может быть предоставлен доступ к папке с логами, чтобы их изучить без подключения к серверу, или создание папки с общим доступом для обмена файлами. Такие права также назначены в ознакомительных целях.

Следующим шагом будут внесены изменения в директивы конфигурационного файла, в данной инструкции для этих целей использован текстовый редактор nano.

sudo nano /etc/samba/smb.conf

Добавим в файл следующий директивы:

[anonimus_share]                                                                                                
    comment = Directory anonimus                                                                       
    path = /var/anonimus_share                                                                            
    public = yes                                                                                                      
    writable = yes                                                                                                   
    read only = no                                                                                                  
    guest ok = yes                                                                                                  
    create mask = 0775                                                                                          
    directory mask = 0775                                                                                      
    force create mode = 0775                                                                                
    force directory mode = 0775  

Рассмотрим более подробно:

[anonimus_share] 一 имя ресурса, отображаемое клиенту при подключении;                                                                                 

Настройка общего публичного каталога на windows

Для общего доступа к файлам по сети в Windows используются стандартные средства ОС.

Чтобы пользователи локальной сети могли без пароля подключаться к общему ресурсу, необходимо в панели управления снять ограничения защиты. Откройте панель управления и перейдите в раздел Сеть (Network and Internet) -> Центр управления сетями и общим доступом (Network and Sharing Center) ->

Далее, чтобы настроить общий доступ к каталогу на Windows необходимо создать или выбрать нужный и открыть его свойства. В свойствах перейдите во вкладку Доступ (Sharing) и нажмите Расширенная настройка (Advanced Sharing).

В открывшемся окне отметьте галочкойОткрыть общий доступ к этой папке (Share this folder), для того чтобы она стала общедоступной. В полеИмя общего ресурса (Share name) введите имя, которое будет видно всем пользователям. Далее нажмитеРазрешения (Permissions)для настройки прав доступа.

Выберете нужные права доступа для всех пользователей (Everyone). НажмитеПрименить (Apply), чтобы изменения вступили в силу.

Теперь в свойствах каталога нажмитеОбщий доступ (Share).

В поле поиска введитеВсе пользователи (Everyone)и нажмитеДобавить (Add). Для полного доступа выберете праваRead/Writeи нажмите Поделиться (Share).

Теперь ваш каталог Windows доступен всем пользователям локальной сети без пароля.

Настройка сетевой корзины

По умолчанию файлы из директории удаляются совсем. При определенных условиях необходимо иметь возможность восстановить эти файлы. В Samba данная возможность реализована с использованием сетевой корзины. Алгоритм работы следующий: настраивается скрытый каталог, в который при удалении перемещаются файлы.

Первым этапом создадим директорию для корзины и назначим ей права:

sudo mkdir /var/recycle | sudo chmod 777 /var/recycle

Внесем блок директив в конфигурационный файл: 

sudo nano /etc/samba/smb.conf
[Recycle]
    comment = rec_dir
    path = /var/recycle
    public = yes
    browseable = yes
    writable = yes
    vfs objects = recycle
    recycle:repository = .recycle/%U
    recycle:keeptree = Yes
    recycle:touch = Yes
    recycle:versions = Yes
    recycle:maxsize = 0
    recycle:exclude = *.tmp, ~$*
    recycle:exclude_dir = /tmp

Значения директив:

[Recycle] 一имя ресурса, отображаемое клиенту при подключении;                                                                                 

Некоторые вопросы безопасности


Данный раздел относится в основном к серверной части
Samba.

Прежде всего необходимо определить, какие интерфейсы должны
прослушиваться Samba в ожидании
запроса на соединение (по умолчанию прослушиваются все
имеющиеся в системе).

Например, для того, чтобы ограничить прослушивание локальным
хостом и первой сетевой картой, необходимо написать в
/etc/samba/smb.conf:

[global]

interfaces = 127.0.0.1 eth0
bind interfaces only = Yes
                  

Далее можно ограничить диапазоны адресов, с которых
позволительно обращаться к данному серверу. Действие данных
директив аналогично воздействию
/etc/hosts.allow и
/etc/hosts.deny на
xinetd и ssh: если
IP-адрес хоста не подпадает под разрешающее
правило, то соединение не будет установлено вовсе.

[global]

hosts allow = 192.168.1. 192.168.2. 127.
hosts deny = 192.168.1.12
                

Во избежание перехвата чувствительных данных при передаче их
по сети открытым текстом принято шифровать
пароли. Samba и все версии
Windows, начиная с версии
Win98, по умолчанию используют
шифрование паролей. Данная директива включает его в
Samba:

[global]

encrypt passwords = yes
                

Общие сведения о samba

Данный продукт представляет собой комплект серверного и
клиентского программного обеспечения для осуществления связи
UNIX-машин с сетями
Microsoft™ и
LanManager, которые сами по себе
представляют собой подклассы
[8]
сетей SMB.

Исходно сети SMB были разработаны фирмой
IBM™, базировались на протоколе
NetBIOS, предназначились прежде всего для
сетей Token Ring и были в полной мере
реализованы в OS/2 Warp
LanServer. Позднее в Windows
95 этот протокол был заменен на
NetBEUI (несколько упрощенная версия
NetBIOS).

Чуть ранее в OS/2 Warp и
NT 3.5 была реализована более удобная
для сложных гетерогенных сетей реализация, работающая поверх
TCP/IP —
“NetBIOS over
TCP/IP”. Ввиду явных преимуществ
данного подхода он используется и поныне.

Когда где-либо в
Windows вы организовываете работу с
сетевыми разделяемыми ресурсами по
TCP/IP, то на самом деле используется
“NetBIOS over
TCP/IP” (о чем, например, в
Win95 в свойствах
TCP/IP в закладке NetBIOS
есть соответствующая отметка).

Samba также использует протокол
“NetBIOS over
TCP/IP”, что позволяет ей успешно
взаимодействовать с такими реализациями SMB,
как входящие в OS/2 3-4,
Windows 9X-ME,
NT3.5-4/2000/XP,
UNIX-системами с
Samba и, возможно, другими
подобными.


Итак, для работы в сетях SMB необходимы:

Все это есть в пакетах samba-client,
samba-client-cups,
samba-common, samba,
samba-swat, входящих в состав дистрибутива.

При использовании SMB доступны следующие
ресурсы:

Первые три пункта поддерживаются
Samba в полном обьеме, последний
— частично, но это направление стремительно развивается и
весьма полно реализовано в Samba 3.0,
описанной ниже.

Также доступен весьма объемный комплект документации в пакете
samba-doc; большинство ссылок данного
раздела будут указывать именно на содержимое этого пакета.

Ограничение версии протокола для повышения безопасности

Важно: По умолчанию Samba версии 4.11 допускает соединение с использованием устаревшего и небезопасного протокола SMB1. Для этих версий Samba крайне рекомендуется задать опцию server min protocol = SMB2_02 для защиты от ransomware атак. В Samba 4.11 и новее по умолчанию используется SMB2, так что изменения не требуются.

В файле /etc/samba/smb.conf добавьте опции server min protocol и server max protocol для ограничения используемых версий протокола:

/etc/samba/smb.conf
[global]
  server min protocol = SMB2_02
  ; server max protocol = SMB3

См. server max protocol в smb.conf(5) для обзора поддерживаемых протоколов.

Для совместимости со старыми клиентами и/или серверами вам может понадобиться указать client min protocol = CORE или server min protocol = CORE, но имейте в виду, что это делает вас уязвимым в связи с эксплойтами в SMB1, в том числе к ransomware атакам.

Совет: Используйте server min protocol = SMB3_00 если хотите использовать только самый новый протокол SMB3, например с клиентами на Windows 8 и новее.

Клиентам, использующим mount.cifs, может понадобиться указать правильный vers=*, например:

Особенности использования samba 3.0

Samba 3.0 имеет заметные отличия от
более ранних версий; наиболее выдающимися из них являются
улучшенная по сравнению с версией 2.2 поддержка
Unicode, поддержка гораздо большего
количества кодовых страниц, новая утилита администрирования
net, призванная заменить
smbpasswd.


В поставку входят пакеты samba3-client,
samba3-client-cups,
samba3-common, samba3,
samba3-swat.

Задание кодовых страниц

Для задания кодировок используются следующие новые параметры
smb.conf:

unix charset = <charset>
dos charset = <charset>
display charset = <charset>
                

где <charset> — любая кодировка,
поддерживаемая iconv. Список возможных
кодировок можно узнать, выполнив команду iconv
-list
.

Параметры client code page и
character set больше не поддерживаются.
Параметр unix charset указывает кодировку, в
которой будут храниться файлы на диске, в которой заданы
параметры в smb.conf. Наконец-то
появилась возможность хранить имена файлов в
UTF-8!

Параметр dos charset указывает кодировку, в
которой Samba будет общаться с
клиентами, не поддерживающими Unicode. Все
версии Windows, начиная с 95,
понимают Unicode — но все же стоит
установить dos charset = cp866, что
соответствует client code page = 866 в более
старых версиях.

Параметр display charset указывает в какой
кодировке должны выводить информацию программы,
непосредственно обменивающиеся информацией с пользователем,
например smbclient, net,
wbinfo и другие.

Управление машиной с samba из
microsoft management console

Начиная с версии 2.2, Samba имеет
возможность удаленного администрирования из
MMC (Microsoft Management
Console). Эта возможность полезна, когда
Samba является членом
NT-домена или AD.
Администратор домена может создавать, удалять и изменять
сетевые ресурсы на UNIX-машине с запущенной
Samba.

Как сконфигурировать Samba для
удаленного администрирования? Для управления ресурсами служат
параметры /etc/samba/smb.conf:

[global]

add share command = <add script>
                

Параметр указывает скрипт, который будет вызван при попытке
создания нового ресурса в MMC. Скрипту
передается четыре параметра:

Скрипт должен завершаться с кодом 0 в
случае успешного создания и ненулевым в случае ошибки.

change share command = <change script>
                

Параметр указывает скрипт, который будет вызван при попытке
изменения существующего ресурса в
MMC. Скрипту передается четыре параметра:

Скрипт должен завершаться с кодом 0 в
случае успешного создания и ненулевым в случае ошибки.

delete share command = <delete script>
                

Параметр указывает скрипт, который будет вызван при попытке
удаления существующего ресурса в MMC (Stop
sharing). Скрипту передается два параметра:

Скрипт должен завершаться с кодом 0 в
случае успешного создания и ненулевым в случае ошибки.

Чтобы скрипты могли изменять конфигурационные файлы Samba, они
должны выполняться с правами root. Для этого нужно установить
отображение пользователей домена, имеющих право изменять
ресурсы, в root. Это можно сделать либо с помощью файла
/etc/samba/smbusers, прописав там строку вида

root = administrator <user 1> ... <user n>
                

либо с помощью параметра admin users в
/etc/samba/smb.conf:

admin users = administrator
                

При создании нового ресурса Windows позволяет просматривать
дерево директорий. Для этого в
/etc/samba/smb.conf нужно задать
служебные ресурсы, заканчивающиеся символом “$”,
например:

[C$]

path = /drives/c
                

После этого при создании нового ресурса можно будет
просматривать и выбирать все директории ниже
/drives/c.

Работа в среде active directory

Для объединения компьютеров в домены Widows 2000
Server использует схему, отличную от
NT-доменов, которая называется Active
Directory; эта схема обладает гораздо большей
масштабируемостью и позволяет централизованно
администрировать машины, входящие в домен. Active Directory
базируется на протоколе авторизации
Kerberos, при котором имя пользователя и
пароль не передаются по сети, а используется механизм так
называемых билетов, выдаваемых сервером на определенное
время. Получив билет, машина, входящая в домен, может
авторизоваться на других машинах домена без участия сервера.

Установка samba

Samba 3.0, в отличие от более
ранних версий Samba, имеет
возможность работать в сетях
Wndows, работающих в режиме
Active Directory (или Windows
2000 native mode). Если требуется эта
функциональность, следует установить пакет
samba3-3.0 вместо
samba-2.2.

Active Directory имеет другую схему именования доменов,
компьютеров и пользователей, основанную на
DNS. Допустим, существует сеть с именем
my.firm.com и компьютерами
host1.my.firm.com,
host2.my.firm.com,
host3.my.firm.com; тогда домен Active
Directory будет называться my.firm.com,
а пользователи Active Directory будут иметь имена вида
[email protected].

Настройка

/etc/krb5.conf должен содержать по
крайней мере следующие строки:

[realms]

MY.FIRM.COM = {
kdc = your.kerberos.server
}
                  

где MY.FIRM.COM – имя домена (или
“царства”, в терминологии
Kerberos; задается обязательно в верхнем
регистре), а your.kerberos.server
— имя или IP-адрес
KDC (Kerberos Domain Controller), аналог
PDC (Primary Domain Controller) в доменах
Windows NT — например,
server.my.firm.com или
192.168.117.11.

Правильность указания параметров можно проверить, выполнив
команду (замените имя пользователя на актуальное —
например, [email protected]):

# kinit username@REALM
                  

и убедившись, что пароль был принят
сервером. REALM всегда задается в верхнем
регистре.

Вы также должны убедиться, что возможно получить имя
KDC по его IP адресу
(так называемый Reverse DNS lookup). Имя
KDC должно либо совпадать с
NetBIOS-именем компьютера (имя машины в
сети Windows без указания домена)
либо состоять из NetBIOS-имени и имени
домена. Если получить имя KDC по адресу
невозможно, вы получите ошибку “local
error” при попытке войти в домен.

Если ваш DNS не поддерживает Reverse
lookup либо KDC не зарегистрирован в
DNS, вы можете указать соответствие
IP-адреса и имени в
/etc/hosts.

Особенности локализации клиента и сервера

Для того, чтобы все компоненты Samba правильно работали с
русскими именами файловых объектов и ресурсов, в
/etc/samba/smb.conf необходимо добавить следующие директивы:

[global]

client code page =
character set =
                  

Далее приводятся наборы значений этих директив и системных
кодировок, наиболее часто используемых в России, Белорусии и
на Украине:

$LANG = ru_RU.KOI8-R
client code page = 866
characte set = koi8-r

$LANG = ru_RU.CP1251
client code page = 866
characte set = 1251

$LANG = be_BY.CP1251
client code page = 866
character set = 1251

$LANG = uk_UA.KOI8-U
client code page = 1125
character set = koi8-u

$LANG = uk_UA.CP1251
client code page = 1125
character set = 1251U

$LANG = ru_UA.CP1251
client code page = 1125
character set = 1251U
                

В двух последних случаях 1251U —
специальное обозначение внутри
Samba для комбинации локально
“1251 — удаленно
1125”. В
Samba определение удаленной
кодировки делается по имени локальной
[11].

Также необходимо проследить, чтобы на тех компьютерах
Windows, с которыми предполагается
взаимодействие через Samba, были
установлены соответствующие системные настройки локализации. В
противном случае велика вероятность, что вместо кириллических
символов будут отображены знаки “?” либо другие
непрошенные символы.

Указанные директивы /etc/samba/smb.conf
воздействуют на работу всех компонентов
Samba — и серверных, и
клиентских. На данный момент поддерживаются кириллические
написания имен — файлов, каталогов и ресурсов.

Подключение диска

Держать ресурс с общим доступом на системном диске без квоты, не лучший выбор. С квотами я решил не связываться, мне проще подключить отдельный «физический» диск.

Для получения списка устройств можно использовать команду lsblk

lsblk

Создание таблицы разделов на диске /dev/sdb

parted /dev/sdb mklabel msdos

или

parted /dev/sdb mklabel gpt


Подробную информация про gpt можно прочитать

Создание раздела на весь диск sdb, в лучших традициях жанра я решил сделать отступ 1MiB в начале диска.

parted /dev/sdb mkpart primary ext4 1MiB 100%

Создаем файловую систему ext4

mkfs.ext4 /dev/sdb1

Редактируем fstab

mcedit /etc/fstab


Добавляем еще одну строку

/dev/sdb1 /samba/guest ext4 defaults 0 0

Монтирование

mount –a

Проверяем результат

df -h


Назначение прав

chmod 777 /samba/guest

Подключение образа диска

Если вам не нужны большие объемы, и достаточно ресурса размером ххх мб, можно подключить образ диска из файла.

Создаем каталог для хранения образов

mkdir /samba/smbimg	


Создаем файл образа размером 100 мб

dd if=/dev/zero of=/samba/smbimg/100M.img bs=100 count=1M

Про команду dd много интересного можно прочитать

В варианте с образом я решил не создавать таблицу разделов, просто создаем файловую систему ext4.

mkfs.ext4 /samba/smbimg/100M.img

Редактируем fstab

mcedit /etc/fstab


Конфиг для монтирования образа

/samba/smbimg/100M.img /samba/guest ext4 defaults 0 0

Монтирование

mount -a

Проверяем результат

df -h


Назначение прав

chmod 777 /samba/guest

Проблемы подключения к windows 7 – mount error(12): cannot allocate memory

Известная ошибка Windows 7 “mount error(12): cannot allocate memory” может быть исправлена установкой пары ключей в реестре системы Windows:

  • HKLMSYSTEMCurrentControlSetControlSession ManagerMemory ManagementLargeSystemCache (установить значение 1)
  • HKLMSYSTEMCurrentControlSetServicesLanmanServerParametersSize (установить значение 3)

В качестве альтернативы можно запустить командную строку от имени Администратора и выполнить следующее:

reg add "HKLMSYSTEMCurrentControlSetControlSession ManagerMemory Management" /v "LargeSystemCache" /t REG_DWORD /d 1 /f
reg add "HKLMSYSTEMCurrentControlSetServicesLanmanServerParameters" /v "Size" /t REG_DWORD /d 3 /f

Выполните одно из следующих действий, чтобы изменения вступили в силу:

  • Перезагрузите Windows
  • Перезапустите службу на сервере через services.msc
  • Выполните в командной строке net stop lanmanserver и net start lanmanserver; после остановки служба может перезапуститься автоматически

Примечание: Поиск решения в интернете подскажет другое решение, рекомендующее пользователям добавить ключ, изменяющий размер “IRPStackSize”. Это неправильное решение для устранения проблемы в Windows 7. Не применяйте его.

Исходная статья.

Работа в среде active directory

Для объединения компьютеров в домены Widows 2000
Server использует схему, отличную от
NT-доменов, которая называется Active
Directory; эта схема обладает гораздо большей
масштабируемостью и позволяет централизованно
администрировать машины, входящие в домен.

Active Directory
базируется на протоколе авторизации
Kerberos, при котором имя пользователя и
пароль не передаются по сети, а используется механизм так
называемых билетов, выдаваемых сервером на определенное
время.

Установка samba

Samba 3.0, в отличие от более
ранних версий Samba, имеет
возможность работать в сетях
Wndows, работающих в режиме
Active Directory (или Windows
2000 native mode). Если требуется эта
функциональность, следует установить пакет
samba3-3.0 вместо
samba-2.2.

Active Directory имеет другую схему именования доменов,
компьютеров и пользователей, основанную на
DNS. Допустим, существует сеть с именем
my.firm.com и компьютерами
host1.my.firm.com,
host2.my.firm.com,
host3.my.firm.com; тогда домен Active
Directory будет называться my.firm.com,
а пользователи Active Directory будут иметь имена вида
[email protected].

Настройка

/etc/krb5.conf должен содержать по
крайней мере следующие строки:

[realms]

MY.FIRM.COM = {
kdc = your.kerberos.server
}
                  

где MY.FIRM.COM – имя домена (или
“царства”, в терминологии
Kerberos; задается обязательно в верхнем
регистре), а your.kerberos.server
— имя или IP-адрес
KDC (Kerberos Domain Controller), аналог
PDC (Primary Domain Controller) в доменах
Windows NT — например,
server.my.firm.com или
192.168.117.11.

Правильность указания параметров можно проверить, выполнив
команду (замените имя пользователя на актуальное —
например, [email protected]):

# kinit username@REALM
                  

и убедившись, что пароль был принят
сервером. REALM всегда задается в верхнем
регистре.

Вы также должны убедиться, что возможно получить имя
KDC по его IP адресу
(так называемый Reverse DNS lookup). Имя
KDC должно либо совпадать с
NetBIOS-именем компьютера (имя машины в
сети Windows без указания домена)
либо состоять из NetBIOS-имени и имени
домена. Если получить имя KDC по адресу
невозможно, вы получите ошибку “local
error” при попытке войти в домен.

Если ваш DNS не поддерживает Reverse
lookup либо KDC не зарегистрирован в
DNS, вы можете указать соответствие
IP-адреса и имени в
/etc/hosts.

Увеличение пропускной способности

Важно: Помните, что это может привести к проблемам с подключением и потенциально сломать ваш стек TCP/IP.

Большинству пользователей подойдут настройки по умолчанию. Однако корректное использование ‘socket options’ может улучшить производительность, но ошибки в настройке также могут и ухудшить её. Проверяйте эффекты, прежде чем вносить какие-либо серьезные изменения.

Читайте smb.conf(5) прежде чем применять описанные здесь опции.

Эти опции прописываются в файле /etc/samba/smb.conf в секции [global].

SMB3 multi-channel может улучшить производительности, однако иногда может испортить данные из-за race conditions. В будущих версиях ситуация может улучшиться:

server multi channel support = yes

Ограничение времени бездействия полезно для предотвращения исчерпания ресурсов сервера из-за большого количества неактивных подключений:

deadtime = 30

Использование sendfile улучшает эффективность использования процессора и повышает скорость Samba:

use sendfile = yes

Установка min receivefile size разрешает zero-copy запись непосредственно из буфера сокета в кэш файловой системы (если доступен). Это может улучшить производительность, но требует тестирования:

min receivefile size = 16384

Асинхронное чтение/запись файлов может повысить производительность:

aio read size = 1
aio write size = 1

Увеличение размера буферов приёма/отправки и флаги оптимизации сокетов могут быть полезны для улучшения производительности. Рекомендуется протестировать каждый флаг отдельно, так как они могут вызывать проблемы в некоторых сетях:

socket options = IPTOS_LOWDELAY TCP_NODELAY IPTOS_THROUGHPUT SO_RCVBUF=131072 SO_SNDBUF=131072

Управление машиной с samba из
microsoft management console

Начиная с версии 2.2, Samba имеет
возможность удаленного администрирования из
MMC (Microsoft Management
Console). Эта возможность полезна, когда
Samba является членом
NT-домена или AD.
Администратор домена может создавать, удалять и изменять
сетевые ресурсы на UNIX-машине с запущенной
Samba.


Как сконфигурировать Samba для
удаленного администрирования? Для управления ресурсами служат
параметры /etc/samba/smb.conf:

[global]

add share command = <add script>
                

Параметр указывает скрипт, который будет вызван при попытке
создания нового ресурса в MMC. Скрипту
передается четыре параметра:

Скрипт должен завершаться с кодом 0 в
случае успешного создания и ненулевым в случае ошибки.

change share command = <change script>
                

Параметр указывает скрипт, который будет вызван при попытке
изменения существующего ресурса в
MMC. Скрипту передается четыре параметра:

Скрипт должен завершаться с кодом 0 в
случае успешного создания и ненулевым в случае ошибки.

delete share command = <delete script>
                

Параметр указывает скрипт, который будет вызван при попытке
удаления существующего ресурса в MMC (Stop
sharing). Скрипту передается два параметра:

Скрипт должен завершаться с кодом 0 в
случае успешного создания и ненулевым в случае ошибки.

Установка

Установите пакет samba.

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

В связи с тем, что пакет samba поставляется без данного файла, вам нужно создать его перед запуском smb.service.

Вы можете воспользоваться документированным примером, как в smb.conf.default из git-репозитория Samba для создания /etc/samba/smb.conf.

Примечание:

  • Значение log file в стандартном файле настроек указывает в место, доступное только для чтения, что будет вызывать ошибки. Можно воспользоваться одним из следующих решений:
    • Задайте расположение, доступное для записи: log file = /var/log/samba/%m.log
    • Используйте бекенд для нефайлового журналирования: замените logging = syslog на syslog only = yes или используйте logging = systemd
  • Если требуется; workgroup, указанная в секции [global], должна соответствовать домашней группе (workgroup) Windows (по умолчанию: WORKGROUP).
Похожее:  ИДЦ - Иркутский диагностический центр

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *