Настройка samba в debian 10

Общий доступ к папке Ubuntu

Сначала давайте создадим общую папку доступную всем. То есть с анонимным доступом, без авторизации samba.

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

После того как папка создана, нужно сделать для нее правильные права доступа. Следующие команды разрешают доступ к папке для всех и делают владельцем nobody:

Следующим шагом будет описать папку allaccess в файле настройки samba:

Теперь ваш конфигурационный файл должен выглядеть вот так:

Рассмотрим подробнее опции, которые были здесь использованы:

  • path — путь к папке, которую нужно расшарить;
  • browsable — будет ли папка отображаться в списке доступных шар;
  • writable — будет ли папка доступна для записи;
  • read only — папка доступна только для чтения;
  • guest ok, public — будет ли разрешен гостевой доступ;
  • only guest — если установлено yes, то папка будет доступна только гостям;
  • hosts allow — ip адреса, с которых можно получить доступ к этому серверу;
  • valid users — по умолчанию могут авторизоваться все пользователи, если в этом параметре передать список пользователей, то авторизоваться смогут только они;
  • create mask — маска прав для создаваемых файлов.

Чтобы применить изменения, перезапустите сервер Samba:

Настройка Samba Ubuntu для анонимного доступа завершена. Теперь вы можете проверить доступность общей папки allaccess из Windows, для этого нажмите Win+R и выполните:

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

Также вы можете подключится к этому серверу из Linux с помощью Nautilus для этого достаточно набрать адрес smb://ip-сервера, в разделе другие места:

Установка и настройка Samba, Winbind

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

1 apt-get install samba cifs-utils winbind libnss-winbind-y

Конфигурационный файл Samba (/etc/samba/smb.conf) приводим к виду:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53

global

#ОБЩИЕПАРАМЕТРЫСЕТЕВОЙШАРЫ

realm=JAKONDA.LOCAL

workgroup=JAKONDA

security=ads

encrypt passwords=yes

netbios name=DATASTORE1

server string=%hserver

domain master=no

local master=no

preferred master=no

os level=

domain logons=no

dns proxy=no

socket options=TCP_NODELAY

unix charset=UTF-8

dos charset=866

#Конфигурацияпо-умолчаниюдлялокальныхпользователейигрупп

idmap config*backend=tdb

idmap config*range=3000-7999

#КонфигурациядлядоменаJAKONDAиегопользователейигрупп

idmap config JAKONDAbackend=rid

idmap config JAKONDArange=10000-999999

#ПАРАМЕТРЫWINBIND

winbind enum users=yes

winbind enum groups=yes

winbind refresh tickets=yes

winbind use default domain=yes

#ПОДКЛЮЧЕНИЕМОДУЛЕЙVFS(Virtual File System)

vfs objects=acl_xattr

#ПоддержкаWindows ACLs

mapacl inherit=yes

store dos attributes=yes

#ОТКЛЮЧЕНИЕПОДДЕРЖКИСЕТЕВЫХПРИНТЕРОВ

load printers=no

show add printer wizard=no

printcap name=devnull

disable spoolss=yes

#ПАРАМЕНТЫЛОГИРОВАНИЯ

log level=vfs1

Обращаю внимание что в параметрах realm, workgroup указываем название своего домена. Подробное описание используемых параметров можно по этой ссылке. . Так как в Linux по-умолчанию установлен лимит на 1024 одновременно открытых файлов, а в Windows он 16384, поэтому увеличим лимит в Debian до значения 16384

Так как в Linux по-умолчанию установлен лимит на 1024 одновременно открытых файлов, а в Windows он 16384, поэтому увеличим лимит в Debian до значения 16384.

В файле (/etc/security/limits.conf) дописываем в самый конец строки:

1
2

*-nofile16384

root-nofile16384

Перезагружаем систему для применения изменений:

1 reboot

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

1 testparm

1
2
3
4
5

Load smb config files frometcsambasmb.conf

Loaded services file OK.

Server roleROLE_DOMAIN_MEMBER

Press enter to seeadump of your service definitions

Проверка заданной конфигурации Samba правильная, ошибок и предупреждений нет, а поэтому можно вводить систему в домен, выполняем команду:

1 net ads [email protected]

Вывод об успешном присоединении к домену:

1
2
3

Enter [email protected]’s password:

Using short domain name — JAKONDA

Joined ‘DATASTORE1’ to dns domain ‘jakonda.local’

Теперь чтобы система использовала winbind для поиска пользователей и групп в файле (/etc/nsswitch.conf) к параметрам passwd, group добавляем параметр winbind:

1
2
3
4
5

7
8
9
10
11
12
13
14
15
16
17
18

#Example configuration of GNU Name Service Switch functionality.

#Ifyou have the`glibc-doc-reference’ and `info’packages installed,try

#`info libc»Name Service Switch»‘forinformation about this file.

passwdcompat winbind

shadowcompat

gshadowfiles

hostsfiles dns

networksfiles

protocolsdb files

servicesdb files

ethersdb files

rpcdb files

netgroupnis

Перезапускаем службы Samba и Winbind для применения изменений:

1
2

etcinit.dsmbd restart

etcinit.dwinbind restart

Проверим, что Winbind установил доверительные отношения с Active Directory, выполним команду:

1
2

wbinfo-t

Для проверки видит ли Winbind пользователей и группы из Active Directory, выполним команды:

1
2

wbinfo-u

wbinfo-g

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

Так же удостоверится в корректной работе Winbind можно запросив данные по доменному пользователю (прим. ранее созданного пользователя datastore1):

1
2

id datastore1

uid=14389(datastore1)gid=10513(пользователидомена)группы=10513(пользователидомена),14389(datastore1),10001(BUILTIN\users)

Дата и время

Настройка

С консоли время в системе можно установить так:

# date MMDDhhmmCCYY.ss
#или
# date --set 4/13/2004 
# date --set 14:46:27

Где MM — месяц, DD — день месяца, hh — часы, mm — минуты, CCYY — 4 цифры года, ss — секунды.

Синхронизация локально

Если вам не нужно раздавать время на другие машины, можете довольствоваться пакетом ntpdate, который не запускает свой демон при старте системы.

# aptitude install ntpdate
# ntpdate-debian
# ntpdate-debian -bs

Вторая команда выдает разницу во времени с дебиановскими серверами, а третья — однократно синхронизирует время на вашей машине с одним из них. Можно также использовать другие сервера.

Синхронизация для клиентов в сети

Устанавливаем ntp: — комплекс программ, позволяющих получить текущее время со специальных серверов в интернет и стать таким сервером для локальной сети.

# aptitude install ntp

По-умолчанию все настройки рабочие. Время забирается с сервера ntp.pool.org, служба автоматически синхронизирует время сразу после запуска. Настройки службы находятся в файле /etc/ntp.conf. Для включения возможности приёма запросов от клиентов в локальной сети на обновление времени нужно добавить строку

Пример для сети 192.168.0.xx

restrict 192.168.0.0 mask 255.255.255.0 trust notrap nomodify nopeer noquery

Перезапускаем службу для применения новых настроек

/etc/init.d/ntp restart

Далее можно прописывать IP адрес компьютера в качестве источника синхронизации.

Как отключить ipv6 в Debian

Пока еще новая версия протокола ip не получила широкого распространения, если он вам специально не нужен, ipv6 можно отключить. Прежде чем отключать, необходимо узнать, какие сервисы в настоящее время его используют и перенастроить их, отключив у них ipv6. Если этого не сделать, то в работе этих программ могут возникнуть ошибки. Скорее всего не критичные, но все равно, сделаем все аккуратно и правильно. Сначала проверим, что у нас работает на ipv6:

На свежеустановленном сервере debian программы ssh, exim, dhclient и rpcbind используют ipv6. Отключим это. Начнем с ssh. Открываем файл /etc/ssh/sshd_config и раскомментируем параметр ListenAddress:

Перезапускаем ssh:

Сделаем то же самое с exim4. Открываем файл конфигурации /etc/exim4/exim4.conf.template и в самом начале, после вступительных комментариев пишем:

Перезапускаем exim:

В dhclient для отключения ipv6 в конфиге убираем все параметры в запросе request, начинающиеся с dhcp6. Должно получиться вот так:

Перезапускаем сеть:

Отключаем ipv6 в rpcbind. Открываем конфигурацию /etc/netconfig и комментируем 2 строки с udp6 и tcp6:

Перезапускаем службу rpcbind и nfs-common, которая от него зависит:

Проверяем, что у нас осталось:

dhclient почему-то остался висеть на ipv6 порту, но ладно, это не страшно, запрашивать по ipv6 он все равно ничего не будет. Теперь полностью отключаем ipv6 в Debian:

Добавьте эти строки в любое место конфига, например, в самый конец. Перезапустим sysctl для применения настроек:

Проверяем свойства сетевых интерфейсов командами ifconfig и ip. Информации об ipv6 быть не должно, мы его полностью отключили.

Более подробно по об отключении ipv6 в различных приложениях читайте в отдельной статье — как отключить ipv6.

На клиентах

Для того, чтобы команда smbtree корректно запрашивала разделяемые ресурсы можно в параметрах команды принудительно указать протокол:

smbtree -N «—option=client min protocol=NT1» 

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

client min protocol = NT1

После этого запросы к серверам samba версии 4.9 будут отправляться и отрабатываться корректно, запросы к настроенным по умолчанию серверам версии 4.11 и новее будут завершаться ошибкой вида:

smbtree -N

\\CE-2-13-3-1115                Samba 4.12.5-Debian smbXcli_negprot_smb1_done: No compatible protocol selected by server.

Работа с файлом hosts

В папке /etc любого linux дистрибутива, в том числе debian есть файл hosts. Разберемся немного что это за файл и для чего он нужен. По-умолчанию он выглядит следующим образом:

Представим, что у нас в локальной сети есть некий сервер с именем server  и ip 192.168.1.50 Мы хотим к нему обращаться по имени. Тогда добавляем запись в файл hosts:

Теперь мы можем обращаться к серверу просто по имени server.

Сервер будет в первую очередь смотреть информацию в файле hosts, только потом в dns сервере. Например, если вы добавите в файл строку:

То обращаясь к адресу ya.ru будете попадать на локалхост:

Этот функционал может быть полезен для публикации в локальной сети каких-то внутренних сервисов, к которым доступ будет только из вашей сети. Вам нет необходимости использовать dns сервер, с файлом hosts настройка делается гораздо быстрее.

Так же правка файла hosts актуальна, если вы используете локальную копию сервиса webpagetest для тестирования скорости работы сайта на разных хостингах. Вы просто меняете ip адреса для домена и делаете тесты. Так можно наглядно и однозначно сравнивать быстродействие разных хостингов. Подробно об этом можно почитать в статье — ускорение сайта и аудит.

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

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

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

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

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

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

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

Также необходимо внести изменения в файле /etc/nsswich.conf в разделы passwd и group, вписав директиву winbind — например, таким образом:

passwd: files winbind
group: files winbind

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

Локализация

Глобальные параметры локализации системы

Смотрим текущую локаль:

$ locale

Кроме LC_ALL все параметры должны быть ru_RU.UTF-8.

Если это не так, тогда запускаем настройку

# dpkg-reconfigure locales

Если системная локаль не применяется к пользователю, то стоит посмотреть файл настроек интерпретатора командной строки (bash, dash, ash) в домашнем каталоге пользователя.

Кириллица в консоли

См. примечания

Настраиваем кириллицу в консоли

Устанавливаем пакет console-cyrillic:

# aptitude install console-cyrillic

Настраиваем все параметры пакета:

# dpkg-reconfigure console-cyrillic

Удаление неиспользуемых файлов локализации

localepurge — утилита для удаления ненужных локализаций, документации и прочего. При установке пакета с помощью debconf выводится список языков в различных кодировках, отметить следует только нужные вам локализации. Рекомендуется сперва сделать backup системы и добавить к нужным английскую локализацию. В дальнейшем утилита будет автоматически запускаться и чистить файлы сразу после установки любых пакетов.

# aptitude install localepurge

Удаление происходит при запуске утилиты:

## localepurge
localepurge: Disk space freed in /usr/share/locale: 345340 KiB
localepurge: Disk space freed in /usr/share/man: 2060 KiB
localepurge: Disk space freed in /usr/share/gnome/help: 65770 KiB
localepurge: Disk space freed in /usr/share/omf: 435 KiB

Total disk space freed by localepurge: 413605 KiB

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

apt-get --reinstall install $(dpkg -S LC_MESSAGES | cut -d: -f1 | tr ', ' '
' | sort -u)

Установка Samba

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

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].

Подготовка системы (Debian 9 Stretch)

Перед началом выполнения ниже описанных действий обновляем систему до актуального состояния:

1 apt-get update&&apt-get upgrade-y

Указываем FQDN (Fully Qualified Domain Name) имя системы, в файле (/etc/hostname):

1 datastore1.jakonda.local

Так же файл (/etc/hosts) приводим к виду таким образом, чтобы в нём была запись с полным доменным именем компьютера и с коротким именем, ссылающаяся на один из внутренних IP:

1
2

127.0.0.1localhost

127.0.1.1datastore1.jakonda.local datastore1

Настраиваем синхронизацию времени с контроллером домена, выполняем установку NTP, выполняем синхронизацию времени с контроллером домена:

1
2
3

apt-get install ntp ntpdate

ntpdate dc1.jakonda.local

Более подробно о синхронизации времени на Debian 8 Jessie/Ubuntu Server 14.04 можно почитать в этой статье

Настройка Active Directory (Windows Server 2012 R2)

В DNS зону (JAKONDA.LOCAL), добавляем A-запись файлового сервера:

Создаем служебного пользователя (прим. datastore1), с бесконечным срок действия пароля.

Создаем KEYTAB-файл (необходим для аутентификации пользователей в Active Directory). В командной строке с правами администраторы выполняем команду (соблюдая регистр):

1 ktpass-princ [email protected] [email protected] Aa1234567-crypto RC4-HMAC-NT-ptype KRB5_NT_PRINCIPAL-outC\datastore1.keytab

Полученный KEYTAB-файл, передаем любым удобным способом на файловый сервер (расположение KEYTAB-файла на моем файловом сервере — /root/datastore1.keytab). Как передать файл посредством утилиты PuTTY можно прочитать тут

Настройка Kerberos

Установка пакетов для поддержки аутентификации Kerberos:

1 apt-get install krb5-user

В ходе установки может появится запрос указать область по-умолчанию для Kerberos, область необходимо его указать в заглавном виде (прим. JAKONDA.LOCAL)

Файл конфигурации Kerberos (/etc/krb5.conf), приводим к виду:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

logging

default=FILEvarlogkrb5libs.log

kdc=FILEvarlogkrb5kdc.log

admin_server=FILEvarlogkadmind.log

libdefaults

default_realm=JAKONDA.LOCAL

default_keytab_name=rootdatastore1.keytab

dns_lookup_kdc=false

dns_lookup_realm=false

forwardable=true

ticket_lifetime=24h

realms

JAKONDA.LOCAL={

kdc=dc1.jakonda.local

default_domain=JAKONDA.LOCAL

admin_server=dc1.jakonda.local

}

domain_realm

.jakonda.local=JAKONDA.LOCAL

jakonda.local=JAKONDA.LOCAL

Соответственно подставляем название своего домена вместо jakonda.local/JAKONDA.LOCAL

Проверка работы Kerberos, выполним авторизацию в Active Directory:

1
2
3
4
5

kinit-kV-pHTTPdatastore1.jakonda.local

Using default cachetmpkrb5cc_0

Using [email protected]

Authenticated to Kerberos v5

Удаляем полученный билет:

1 kdestroy

Решение проблем

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

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

  • (установить значение )
  • (установить значение )

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

reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v "LargeSystemCache" /t REG_DWORD /d 1 /f
reg add "HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" /v "Size" /t REG_DWORD /d 3 /f

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

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

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

Проблемы получения доступа к ресурсам, защищенным паролем, из Windows

Обратите внимание, что это должно быть добавлено в локальный файл smb.conf, а не в файл сервера

# lanman fix
client lanman auth = yes
client ntlmv2 auth = no

Диалоговое окно появляется с большой задержкой

У меня была проблема, связанная с тем, что диалоговое окно для ввода пароля появлялось с задержкой около 30 секунд, когда я пытался установить соединение из Windows XP/Windows 7. Когда я посмотрел файл error.log на сервере, я увидел:

[2009/11/11 06:20:12,  0] printing/print_cups.c:cups_connect(103)
Unable to connect to CUPS server localhost:631 - Interrupted system call

Эта опция предотвращает поиск cups и файла /etc/printcap:

printing = bsd
printcap name = /dev/null

Ошибка: Failed to retrieve printer list: NT_STATUS_UNSUCCESSFUL

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

load printers = No
printing = bsd
printcap name = /dev/null
disable spoolss = Yes

Перезапустите samba:

systemctl restart smbd

…проверьте ваши логи:

cat /var/log/samba/smbd.log

и больше ошибка не должна появляться.

Не удается предоставить общий доступ к папке

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

‘net usershare’ returned error 255: net usershare: usershares are currently disabled

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

И вы используете firewall (iptables), поскольку не доверяете вашей локальной (школа, университет, отель) сети. Это может происходить по следующей причине: когда smbclient просматривает локальную сеть, он посылает широковещательный запрос на udp-порт 137. Затем серверы сети отвечают вашему клиенту, но, поскольку исходный адрес ответа отличается от адреса назначения, который видел iptables при отправке запроса, iptables не признает ответ как «установленное соединение» или «относящийся к запросу», и, следовательно, пакет отбрасывается. Возможное решение — добавление:

iptables -t raw -A OUTPUT -p udp -m udp --dport 137 -j CT --helper netbios-ns

в вашу конфигурацию iptables.

Подключение к серверу завершилось неудачей: (Error NT_STATUS_UNSUCCESSFUL)

Вероятно, вы указываете неправильное имя сервера. Чтобы узнать его, запустите на сервере команду и найдите строку «Transient hostname».

Administrator

  • The Administrator user is a member of the Administrators group, and thus inherits dministrators group privileges. When an MS Windows NT4/200x/XP machine is made a domain member, the “Domain Admins” group of the PDC is added to the local Administrators group of the workstation. Every member of the Domain Admins group inherits the rights of the local Administrators group when logging on the workstation.
  • The following steps describe how to make Samba PDC users members of the Domain Admins group.
  • Create a UNIX group (usually in /etc/group); let’s call it domainadmin.
addgroup domainadmin
  1. Add to this group the users that must be “Administrators”. For example, if you want joe, john, and mary to be administrators, your entry in /etc/group will look like this:
domainadmin:x:502:joe,john,mary
  1. Map this domadm group to the “Domain Admins” group by executing the command:
root# net groupmap add ntgroup="Domain Admins" unixgroup=domainadmin rid=512 type=d

Now joe, john, and mary are domain administrators.

ШАГ 6: Утилиты и диагностика Samba

# testparm
Load smb config files from etcsambasmb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE
  • smbget позволяет скачивать с windows, linux (д.уст. samba) файлы через Что такое протокол SMB протокол. Скачать рекурсивно все директории и файлы:
    smbget -Rr smb://ip_addr/share
  • smbclient — утилита для подключения к общедоступным папкам.
    • Отобразить общедоступные ресурсы на удаленном хосте:
      smbclient -L ip_addrhostname
    • Посмотреть «шары» локально на стороне сервер
      smbclient -L 127.0.0.1
    • Просмотреть папку vip под пользователем tatyana
      $ smbclient \\\\10.26.95.220\\vip -U tatyana
  • nbtscan
    nbtscan ip_addr разрешить netbios-имя nbtscan не во всех системах ставится по-умолчанию,
    возможно, придётся доустанавливать вручную. nmblookup включен в пакет samba.
    nmblookup -A ip_addr

simple working smb.conf

  • It is time to create a smb.conf
  • Copy and paste this into your smb.conf. Change workgroup and netbios name.

  • This configuration will get your domain up and running in 30 seconds.
  #Domain name
  workgroup = yourdomainname
  #The Server Name
  netbios name = servername
  #server string = Samba
  #Time server, Workstations will set their time by this server
  time server =yes
  passdb backend = tdbsam
  #SECURITY AND LOGIN SETTINGS
  #This must be a user in PDC
  security = user
  bind interfaces only = yes
  #Windows XP/2000
  encrypt passwords = yes
  #Login in settings.
  domain logons = Yes
  #Error Logs, Comment it out when you in production.
  log level = 3
  #PDC and MASTER BROWSER SETTINGS
  #os level = 64 #Windows for master PDC. Highers windows can get is 32
  preferred master = yes
  #local master = yes
  domain master = yes ;This defines it as the Primary Domain Controller
  #Add delete users on linux and samba (keeps linux and samba accounts in sync)
  add user script = /usr/sbin/useradd -m %u
  add machine script = /usr/sbin/useradd -s /bin/false/ -d /var/lib/nobody %u
  delete user script = /usr/sbin/userdel -r %u
  add group script = /usr/sbin/groupadd %g
  delete group script = /usr/sbin/groupdel %g
  add user to group script = /usr/sbin/usermod -G %g %u
  #User Profiles and Home directory.
  logon drive = H:
  logon path =
  logon home =
  logon script = netlogon.bat   #Login script. Location is defined in 
  #Define user mappings. root = Administrator
  #You don't need this if you have created Administrator SMB user.
  username map = /etc/samba/smbusers
  wins support = yes
  passwd program = /usr/bin/passwd %u
  # ---   shares ---

  comment = Domain Logon Service
  path = /home/samba/netlogon
  valid users = %U
  admin users = Administrator
  read only = no
  browseable = no
  write list =@admins
  guest ok = Yes
  #For read only purposes. File is not locked per user.
  locking = no

  #If you want to set home directory somwhere other thean the unix home use below path.
  # path = \\otherservername\%U
  volume = %U Home
  comment = Home Folder
  valid users = %S
  read only = No
  browseable = No
  public = no
  create mode = 0750

  comment = All Printers
  path = /var/spool/samba
  guest ok = Yes
  printable = Yes
  browseable = No
#These are Optional if you want to use them

  comment = Application Files
  path = /apps
  admin users = Administrator
  read only = No

  comment = Application Files
  path = /data
  admin users = Administrator
  read only = No

This samba file will allow a user to log into samba server. Each user will have its own H drive. Apps,Data folders are shared. TDBSAM database is used for authentication. It will use Local Profiles, which means the users settings are stored on his/her computer.

Как настроить PAM в Linux

Все конфигурационные файлы PAM для различных приложений находятся в папке /etc/pam.d. Давайте посмотрим на конфигурационный файл для утилиты sudo:

Каждая строчка файла состоит из нескольких полей:

тип обязательность модуль параметры

Разберем подробнее:

  • Первое поле — тип, определяет какой тип запроса к PAM надо выполнить. Существует четыре различных типа запроса auth (проверка данных входа, например, логина и пароля), account (проверка не истёк ли пароль пользователя), password (обновление пароля), и session (обслуживание сессии, например, логгирование и монтирование папок).
  • Второе поле определяет как нужно интерпретировать результат, возвращённый модулем PAM. Доступно тоже несколько возможных вариантов: required (тест должен быть обязательно пройден, но следующие строки тоже будут проверяться), requisite (аналогично required, только если тест не проходит, то следующие строки уже не проверяются), sufficient (противоположно requisite, если тест проходит, то следующие строки уже не проверяются), optional (проваленные тесты игнорируются).
  • Третье и четвертое поле — это название библиотеки модуля и её параметры. Всё это надо выполнить для выполнения теста авторизации или действия.

Кроме того, существуют директивы include, которые включают строки из других файлов так, как будто они были написаны в этом файле. Файл настройки sudo кажется совсем коротким, но в него включаются другие файлы. Давайте посмотрим ещё на файл /etc/pam.d/common-auth:

Здесь можно видеть более расширенный синтаксис параметра обязательности. Он позволяет лучше понять как всё это работает. Давайте его рассмотрим:

Модули PAM могут возвращать около 30-ти значений и они зависят от выбранного типа (account/auth/session…), вот они все: success, open_err, symbol_err, service_err, system_err, buf_err, perm_denied, auth_err, cred_insufficient, authinfo_unavail, user_unknown, maxtries, new_authtok_reqd, acct_expired, session_err, cred_unavail, cred_expired, cred_err, no_module_data, conv_err, authtok_err, authtok_recover_err, authtok_lock_busy, authtok_disable_aging, try_again, ignore, abort, authtok_expired, module_unknown, bad_item, conv_again, incomplete и default. Последнее, default, означает все поля, которые явно не заданы.

В качестве действия могут быть указанны такие значения:

  • ignore — не влияет на общий код возврата в приложение;
  • bad — расценивать это значение как свидетельство сбоя модуля;
  • die — аналогично bad, только сразу возвращать управление в приложение;
  • ok — значение должно влиять на общий возвращаемый результат, переопределяет общий результат если он раньше был успешен, но не отменяет сбой;
  • done — аналогично ok, только управление сразу возвращается приложению.

Таким образом, те четыре варианта обязательности, которые мы рассматривали выше можно описать вот так:

  • required:
  • requisite:
  • sufficient:
  • optional:

Здесь:

  • success — модуль вернул состояние успешно, поскольку значение ok, это состояние будет учтено если ни один предыдущий модуль не дал сбоя;
  • new_authtok_reqd — модуль сообщает, что пароль пользователя желательно обновить;
  • ignore — модуль просит игнорировать его результат, игнорируем;
  • default — все остальные возвращаемые значение расцениваем как сбой.

Обратите внимание. что модуль возвращает только одно определенное значение и уже к нему применяется действие

Чтобы закрепить всё это на практике давайте рассмотрим как запретить авторизацию от имени пользователя losst на компьютере с помощью PAM. Для этого можно воспользоваться модулем /lib/security/pam_listfile.so. Он позволяет ограничить доступ для пользователей на основе файла со списком. Откройте файл /etc/pam.d/sshd и добавьте туда такую строчку:

Здесь мы используем тип запроса auth, обязательность required и указанный выше модуль. Вот его опции и их значения:

  • onerr=succeed — если возникает ошибка, доступ разрешить;
  • item=user — указывает, что в файле конфигурации находятся логины пользователей;
  • sense=deny — действие, если логин пользователя найден в файле;
  • file=/etc/denyusers — файл с логинами пользователей, для которых надо запретить доступ.

Теперь в файл /etc/denyusers добавьте имя пользователя losst, естественно, такой пользователь должен существовать в системе. Затем попробуйте перейти в любую консоль и авторизоваться от его имени. У вас ничего не выйдет, а в логе /var/log/security или /var/log/auth.log будет сообщение об ошибке:

А если эту строчку закомментировать, то всё снова заработает.

Migrate User Accounts

We will user a script to migrate the user accounts

net rpc vampire -S  -W  -U Administrator

So in my case it would be:

net rpc vampire -S domaincomputername -W xyzdomain -U Administrator

You should see something like:

Fetching DOMAIN database
Creating unix group: 'Domain Admins'
Creating unix group: 'Domain Users'
Creating unix group: 'Domain Guests'
Creating unix group: 'Claims'
Creating unix group: 'Accounting'
Creating account: Administrator
Creating account: Guest
...
Creating unix group: 'Administrators'
Creating unix group: 'Backup Operators'
Creating unix group: 'Guests'
Creating unix group: 'Print Operators'
Creating unix group: 'Replicator'
Creating unix group: 'Server Operators'
Creating unix group: 'Users'

Double check your users have created. Use this command.

pdbedit -L
  • Shutdown your old domain. You might need it later so don’t distroy it just yet.
  • Edit smb.conf and change or add these two things.

domain master = yes wins support = yes}

Now restart Samba

/etc/init.d/samba restart

Now Login with your client workstation.

Заключение

При помощи Samba мы создали мультиплатформенные сетевые ресурсы и протестировали доступ к ним. Ресурсы Samba очень распространены и могут использоваться различными приложениями. Например, VLC Player может проигрывать музыку и видео из ваших ресурсов Samba, а утилита резервного копирования BackupPC — записывать туда резервные копии.

  • https://1cloud.ru/help/network/nastroika-samba-v-lokalnoj-seti
  • https://interface31.ru/tech_it/2019/06/nastroyka-faylovogo-servera-samba-na-platforme-debian-ubuntu.html
  • https://admin812.ru/kak-ustanovit-i-nastroit-samba-v-ubuntu.html
  • https://andreyex.ru/ubuntu/kak-ustanovit-i-nastroit-server-samba-na-ubuntu-16-04-dlya-obshhego-dostupa-k-fajlam/
  • https://ITProffi.ru/ustanovka-i-nastrojka-samba-servera-i-klientov/

Заключение

Подводя итоги, можно сказать, что все вышеперечисленные способы в значительной мере отличаются друг от друга, но все они в равной степени позволяют осуществить настройку Samba в Ubuntu. Так, используя «Терминал», вы можете осуществить гибкую настройку, задавая все необходимые параметры как сервера Samba, так и создаваемых общедоступных папок. Программа System Config Samba точно так же позволяет настроить сервер и папки, но количество задаваемых параметров намного меньше. Основным же плюсом этого способа является наличие графического интерфейса, что в значительной мере облегчит настройку для рядового пользователя. Используя файловый менеджер Nautilus, вам не придется скачивать и устанавливать дополнительное программное обеспечение, но в некоторых случаях необходимо будет вручную проводить настройку сервера Samba, используя все тот же «Терминал».

Опишите, что у вас не получилось.
Наши специалисты постараются ответить максимально быстро.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: