====== Samba ====== ===== Сведения ===== ==== SMB ==== Server Message Block - **клиент-серверный протокол** прикладного уровня, **для доступа** к файлам, принтерам и прочим **сетевым ресурсам**.\\ Для соединения, SMB может **использовать** различные сетевые протоколы: **TCP/IP (NetBIOS), NetBEUI, IPX/SPX, Compaq**.\\ Первая версия протокола (Common Internet file System- **CIFS**) была разработана совместно, еще в 80-х годах, сейчас **SMB связан** прежде всего с системами **Microsoft Windows**.\\ ==== Samba ==== Samba - это **пакет программ**, позволяющих **использовать SMB/CIFS**. Свободное ПО.\\ Начиная с 4ой версии, **может выступать** в роли **контроллера домена** и сервиса **Active Directory**.\\ ===== Сервер Samba на Linux ===== **apt install samba**\\ ==== Конфигурация ==== Файл конфигурации - **/etc/samba/smb.conf**\\ В основном, все работает из коробки, доступные директории описываются в отдельных секциях.\\ Для ограничения доступа есть директива **interfaces = ..** либо можно добавить **hosts allow = ..**\\ Пользователи настраиваются утилитой **smbpasswd**. У samba свои пользователи, они вроде так же должны быть созданы и в ОС.\\ ==== Открытие ресурсов ==== Ресурсы настраиваются отдельными секциями, по умолчанию уже открыто несколько ресурсов.\\ Директивы: * **browseable** - (y/n) * **public** - (y/n) * **writable** - (y/n) разрешает запись * **guest ok** - (y/n) доступ к папке гостевой учетной записи * **valid users** - список пользователей, которым разрешено подключится к папке (группа через @) * **write list** - список пользователей, которые имеют доступ rw к папке (группа через @) * **inherit owner** - (y/n) наследование при создании * **create mask, directory mask** - (0777) назначение прав, при создании файлов/папок * ** ** - ==== Общее ==== Подключить сетевой диск apt install cifs-utils mount -t cifs //server-name/share-name /mnt/share -o username=winuser,password=winpassword,domain=salf-net # должна быть авторизация через cmd в винде net use t: \\10.10.10.10\folder /user:my_username my_password ===== Опыт использования с Windows ===== Если клиенты на **Windows**, то гораздо лучше использовать **Samba, вместо NFS**.\\ Преимущества во всем, **подключается быстро**, с **кодировками** проблем нет.\\ В сетевом взаимодействии ничего особенного, винда открывает соединение на **445** порту, с первого раза **успешно**, далее идет сетевое взаимодействие.\\ Исходный файл (расширение нужно сменить на .pcapng): {{ :linux:file_base:test-smb.pcapng.odt |}} ===== Доменная авторизация =====
:!: Пример [[https://serveradmin.ru/nastroyka-samba-s-integratsiey-v-ad/|Статья]]\\ ################################################################### # Ввод в домен с помощью winbind, выше был sssd вроде ? непонятно ################################################################### # yum install samba-winbind samba-winbind-clients samba pam_krb5 krb5-workstation chrony ########################## # Генерация конфига kerberos ########################## authconfig --enablekrb5 --krb5kdc=netsrv.pw --krb5adminserver=netsrv.pw --krb5realm=NETSRV.PW --enablewinbind --enablewinbindauth --smbsecurity=ads --smbrealm=NETSRV.PW --smbservers=netsrv.pw --smbworkgroup=NETSRV --winbindtemplatehomedir=/home/%U --winbindtemplateshell=/bin/bash --enablemkhomedir --enablewinbindusedefaultdomain --update ########################### # Заводим самбу в домен net ads join -U net ads testjoin ########################## # конфиг smb.conf ########################## [global] workgroup = NETSRV password server = NETSRV.PW realm = NETSRV.PW security = ads idmap config * : range = 16777216-33554431 template homedir = /home/%U template shell = /bin/bash kerberos method = secrets only winbind use default domain = true winbind offline logon = false passdb backend = tdbsam load printers = no show add printer wizard = no printcap name = /dev/null disable spoolss = yes domain master = no local master = no preferred master = no os level = 1 log level = 3 log file = /var/log/samba/log.%m ##################################### # Далее systemctl start winbind systemctl start smb.service # Делаем проверки wbinfo -t перечень пользователей/групп wbinfo -u wbingo -g wbinfo -i # Проверка авторизации в домене wbinfo -a \\ # Должна подгрузится инфа по пользователю id **Это под вопросом**\\ ##################################### # Ввод сервера в домен (sssd вроде) ##################################### yum -y install krb5-user samba winbind ntp samba-winbind samba-winbind-clients pam_krb5 "127.0.0.1 localhost localhost.localdomain serviceApps serviceApps.netsrv.pw" > /etc/hosts <=правки в /etc/krb5.conf=> # авторизация хоста в домене kinit # проверка klist # здесь еще вроде как ввод в домен realm discover realm join -U # Информация о домене realm list adcli info netsrv.pw ############################################ # параметры авторизации в /etc/krb5.conf ############################################ [libdefaults] default_realm = <имя-домена> ticket_lifetime = 24h forwardable = true [realms] NETSRV.PW = { kdc = default_domain = <имя-домена> } [domain_realm] .netsrv.pw = NETSRV.PW netsrv.pw = NETSRV.PW [appdefaults] pam = { debug = false ticket_lifetime = 36000 renew_lifetime = 36000 forwardable = true krb4_convert = false } [logging] kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmin.log default = FILE:/var/log/krb5lib.log ########################## # параметры в smb.conf ########################## [global] unix extensions = no workgroup = NETSRV realm = NETSRV.PW security = ads domain master = no local master = no preferred master = no load printers = no printcap name = /etc/printcap idmap config NETSRV : backend = rid idmap config NETSRV : range = 5000-10000000 idmap config NETSRV : base_rid = 0 winbind enum users = yes winbind enum groups = yes winbind use default domain = yes winbind nested groups = yes winbind refresh tickets = yes winbind offline logon = true template homedir = /home/%D/%U template shell = /bin/false client use spnego = yes client ntlmv2 auth = yes encrypt passwords = yes restrict anonymous = 2 log file = /var/log/samba/samba.log log level = 1 map to guest = Bad User socket options = TCP_NODELAY aio read size = 1 aio write size = 1 [mySuperShare] path = /path/path/logs guest ok = no browsable = no writeable = no follow symlinks = yes wide links = yes create mask = 0444 directory mask = 0444 valid users = @NETSRV\ACL_FProfilesAutoAcceleration_R