Samba. Установка и простая настройка. |

Содержание
  1. Что делает утилита authconfig-tui?
  2. Установка Samba AD
  3. Предварительная настройка сервера SambaDC
  4. Запуск конфигурирования Samba в роли контроллера домена в интерактивном режиме:
  5. Дополнительная конфигурация Samba сервера:
  6. Настройка файла конфигурации kerberos:
  7. Firewalld
  8. Midnight commander
  9. Samba
  10. Selinux
  11. Winbind
  12. Бантики
  13. Вводим centos 7 в домен с помощью winbind
  14. Добавление хоста в ad
  15. Добавляем сервер к домену через realm
  16. Задание кодовых страниц
  17. Интеграция с active directory
  18. Использование winbind
  19. Использование графического интерфейса
  20. Использование клиента smbclient
  21. Клиент в составе существующего домена nt
  22. Краткий обзор каталогов и файлов
  23. Монтирование общего ресурса samba
  24. Настройка
  25. Настройка fqdn
  26. Настройка samba в ubuntu. конфигурационный файл /etc/samba/smb.conf.
  27. Настройка samba с интеграцией в ad через sssd
  28. Настройка глобальных параметров samba
  29. Настройка межсетевого экрана
  30. Настройка прав доступа на файлы в samba
  31. Настройка сети
  32. Некоторые вопросы безопасности
  33. Некоторые особенности работы в active directory
  34. Общие сведения о samba
  35. Общий ресурс с анонимным доступом
  36. Обычный клиент
  37. Ограничение доступа к samba по ip адресам
  38. Онлайн курс “sre практики и инструменты”
  39. Особенности использования samba 3.0
  40. Особенности локализации клиента и сервера
  41. Подключение ram диска
  42. Подключение диска
  43. Подключение к общему ресурсу samba из linux
  44. Подключение к общему ресурсу samba из macos
  45. Подключение к общему ресурсу samba из windows
  46. Подключение образа диска
  47. Получение ip адреса по dhcp
  48. Помогла статья? подписывайся на telegram канал автора
  49. Прежде чем приступить
  50. Принт-сервер на cups
  51. Проверка правильной работы в active directory
  52. Работа в среде active directory
  53. Регистрация компьютера в active directory домене
  54. Редактирование /etc/samba/smb.conf:
  55. Сервер как pdc домена
  56. Создаем общедоступную папку в ubuntu с помощью samba.
  57. Создание пользователей samba
  58. Удаление старых файлов
  59. Управление машиной с samba из microsoft management console
  60. Установка centos 7
  61. Установка samba
  62. Установка samba в ubuntu
  63. Установка и запуск samba в ubuntu.
  64. Установка на vm агентов для взаимодействия с хост сервером
  65. Установка обновлений
  66. Утилита net
  67. Учетные записи пользователей
  68. Вывод
  69. Заключение
  70. Онлайн курс “sre практики и инструменты”

Что делает утилита authconfig-tui?

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

/etc/krb5.conf

Установка Samba AD

Выполните обновление РЕД ОС:для РЕД ОС версии 7.1 или 7.2:

# yum clean all && yum update

для РЕД ОС версии 7.3 и старше:

# dnf makecache && dnf update

Установите необходимые пакеты:eсли вы используете РЕД ОС версии 7.1 или 7.2, выполните команду:

# yum install samba-client*.x86_64 samba-common.noarch samba-common*x86_64 samba-dc*.x86_64 samba-libs.x86_64 samba-winbind*.x86_64 -y

eсли вы используете РЕД ОС версии 7.3 и старше, выполните команду:

# dnf install samba-client*.x86_64 samba-common.noarch samba-common*x86_64 samba-dc*.x86_64 samba-libs.x86_64 samba-winbind*.x86_64 -y

Предварительная настройка сервера SambaDC

2.1 Поменяйте статус SELinux на permissive.

2.2 Присвойте серверу статический ip-адрес (Настройка сетевого адаптера), а также назначьте имя. Имя должно определять область домена. Например, если ваш домен skynet.murom, то hostname сервера может быть вида: dc1.skynet.murom.Команда назначения имени серверу:

hostnamectl set-hostname dc1.skynet.murom

Укажите в файле /etc/hosts соответствие ip-адреса сервера с его полный и коротким именем:

# nano /etc/hosts
10.81.1.96 dc1.skynet.murom dc1

2.3 В настройках сетевого адаптера пропишите поисковый домен skynet.murom, а в качестве dns-адреса укажите ip-адрес создаваемого Samba AD сервера, в нашем примере это 10.81.1.96

2.4 Перезагрузите сетевой интерфейс для применения настроек:

# systemctl restart NetworkManager

Проверьте resolv.conf выполнив:

# cat /etc/resolv.conf

В консоли должно отображаться следующее:

# Generated by NetworkManager
search skynet.murom
nameserver 10.81.1.96

Запуск конфигурирования Samba в роли контроллера домена в интерактивном режиме:

Описание некоторых настроек для тестового домена dc1.skynet.murom

  • use-rfc2307 — параметр добавляет POSIX атрибуты (UID / GID) на схеме AD. Он понадобится при аутентификации клиентов Linux, BSD, or OS X (в том числе на локальной машине) в дополнение к Microsoft Windows.

  • interactive — параметр заставляет сценарий резерва запускаться в интерактивном режиме.

  • realm — указывает на DNS-имя домена в верхнем регистре, которое настроено в hosts, в нашем тесте realm: skynet.murom

  • Domain — доменное имя сервера, у нас это — skynet

  • Server Rules(роли сервера): dc — (Domen controller)

  • DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) — указывает кто, будет в роли DNS сервера. SAMBA_INTERNAL — внутренний DNS самбы.

  • DNS forwarder IP address. Данный параметр позволяет указать IP-адрес DNS-сервера, на который будут перенаправлены dns запросы, в случае когда сервер Samba не сможет их разрешить.

Пример листинга настройки самбы в интерактивном режиме:

Дополнительная конфигурация Samba сервера:

Настройки Samba находятся в файле /etc/samba/smb.conf

4.1 Начиная с версии 3.3.0, появился модуль acl_xattr, позволяющий Samba корректно обрабатывать Windows ACL (Access Control List). Для полноценной поддержки прав доступа к файлам используйте модуль acl_xattr.  Для этого добавьте в smb.conf в раздел [global] следующие параметры:

vfs objects = acl_xattr
map acl inherit = yes
store dos attributes = yes

4.2 Для обновления записей в DNS добавьте два параметра в раздел [global]:

allow dns updates = nonsecure
nsupdate command = /usr/bin/nsupdate -g

4.3 Если при автоконфигурировании не был указан dns-форвардинг, то его можно включить, добавив в секцию [global]  dns адрес, который используется в вашей локальной сети

dns forwarder = 10.81.1.1

4.5 В секцию [global] добавьте поддержку расширения схемы AD

dsdb:schema update allowed = true

Листинг /etc/samba/smb.conf:

#cat /etc/samba/smb.conf
#Global parameters
[global]
log level = 3
dns forwarder = 10.81.1.1
netbios name = DC1
realm= SKYNET.MUROM
server role = active directory domain controller
workgroup= SKYNET
idmap_ldb:use rfc2307 = yes
vfs objects = acl_xattr
map acl inherit = yes
store dos attributes = yes
allow dns updates = nonsecure
nsupdate command = /usr/bin/nsupdate -g
dsdb:schema update allowed = true
[netlogon]
path = /var/lib/samba/sysvol/skynet.murom/scripts
read only = No 
[sysvol]
path = /var/lib/samba/sysvol
read only = No

4.6 После внесения изменений в файл /etc/samba/smb.conf выполните команду проверки:

# testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[netlogon]"
Processing section "[sysvol]"
Loaded services file OK.
Server role: ROLE_ACTIVE_DIRECTORY_DC

Предупреждение “rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)” отображается в связи с тем, что в Linux по умолчанию установлен лимит на 1024 одновременно открытых файлов, а в Windows он 16384. Чтобы убрать предупреждение добавьте в конец файла /etc/security/limits.conf строки:

*               -       nofile          16384
root            -       nofile          16384

Для применения настроек перезагрузите сервер.

Настройка файла конфигурации kerberos:

Скопируйте настройки kerberos которые создались после настройки samba в /etc

cp /var/lib/samba/private/krb5.conf /etc/

Добавляем в /etc/krb5.conf время жизни тикета керберос — в секцию [libdefaults]:

# nano /etc/krb5.conf
ticket_lifetime = 24h
forwardable = yes

Листинг конфигурации krb5.conf:

[libdefaults]
default_realm = SKYNET.MUROM
dns_lookup_realm = false
dns_lookup_kdc = true
ticket_lifetime = 24h
forwardable = yes

Firewalld


По умолчанию CentOS 7 использует брандмауэр firewallD, состояние службы можно узнать командой

firewall-cmd --state

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

firewall-cmd --list-all
firewall-cmd --list-services

Samba. Установка и простая настройка. |

Обратите внимание на список сервисов, если вы отключили протокол ipv6, логично также поступить и с dhcpv6-client

firewall-cmd -–permanent -–remove-service=dhcpv6-client


Создаем правило для SAMBA и перезагружаем

firewall-cmd --permanent --add-service=samba
firewall-cmd --reload

Midnight commander

Редактировать файлы без нормального редактора очень не удобно, и я предлагаю использовать mc и mcedit

yum install mc

Samba

Установка

yum install samba

Добавление службы в автоматический запуск

chkconfig smb on


Запуск службы и проверка состояния

service smb start
smbstatus

Selinux

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

sestatus

Измените значение SELINUX в файле

/etc/selinux/configSELINUX=disabled

затем перезагрузите сервер.

reboot


Вернусь к SELINUX в конце статьи.

Winbind

Для получения информации о пользователях из AD необходимо установить пакет

samba-winbind

yum install samba-winbind

Добавляем службу в автоматический запуск

chkconfig winbind on


Запускаем службу

service winbind start

Бантики

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

/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

Вводим centos 7 в домен с помощью winbind

Если у вас виртуальная машина, проще установить ее с нуля. Если не хочется по какой-то причине, можно просто удалить все установленные ранее пакеты через команду yum remove. Я поступил именно так.

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

# yum install samba-winbind samba-winbind-clients samba pam_krb5 krb5-workstation chrony

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

Формируем конфиг для kerberos.

Добавление хоста в ad

Напомню что в начале даной инструкции задали имя хоста

Добавляем сервер к домену через realm

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

Итак, отключаем firewall и SELinux, если не сделали это раньше. Если не хотите отключать, то настройте сами. Данная настройка выходит за рамки статьи.

# mcedit /etc/sysconfig/selinux

меняем значение

SELINUX=disabled

Выполняем команду, чтобы не ждать перезагрузки для применения изменений.

setenforce 0

Выключаем firewalld.

# systemctl stop firewalld
# systemctl disable firewalld


Перед дальнейшей настройкой, убедитесь, что с вашего сервера centos вы без проблем пингуете и резолвите контроллер домена по полному имени. Если есть какие-то проблемы, исправьте это либо указанием нужного dns сервера, либо правкой файла hosts.

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

Про сертификаты:  Как установить SSL-сертификат на почтовый домен?

Устанавливаем утилиту для синхронизации времени chrony:

# yum install chrony

Добавляем в конфиг /etc/chrony.conf адрес контроллера домена. И делаем его единственным сервером для синхронизации, остальные удаляем.

server xs-winsrv.xs.local iburst

Сохраняем конфиг, запускаем chrony и добавляем в автозагрузку.

# systemctl start chronyd && systemctl enable chronyd

Проверим, что с синхронизацией.

Устанавливаем софт, который понадобится для дальнейшей работы.

# yum install realmd sssd sssd-libwbclient oddjob oddjob-mkhomedir adcli samba-common samba-common-tools

Делаем проверку перед вводом в домен.

# realm discover XS.LOCAL
xs.local
 type: kerberos
 realm-name: XS.LOCAL
 domain-name: xs.local
 configured: no
 server-software: active-directory
 client-software: sssd
 required-package: oddjob
 required-package: oddjob-mkhomedir
 required-package: sssd
 required-package: adcli
 required-package: samba-common-tools

Заводим в домен.

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

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

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

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

$ iconv -list

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

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

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

Интеграция с active directory


Также есть возможность получать информацию о пользователей из LDAP, но мне этот вариант не интересен и я сразу перехожу к AD. Подробная инструкция от Microsoft находится

Для AD очень важна синхронизация времени, по этому стоит начать с этого.

Установка соответствующей службы

yum install ntp

Добавляем в конфиг файл /etc/ntp.conf сервера выполняющих роль домен контроллеров

mcedit /etc/ntp.conf


Пример:

Использование 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

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

passwd: files winbind
group: files winbind

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

Использование графического интерфейса


Files, файловый менеджер по умолчанию в Gnome имеет встроенную возможность доступа к общим ресурсам Samba.

  1. Откройте файлы и нажмите «Другие места» на боковой панели.
  2. В поле «Подключиться к серверу» введите адрес общего ресурса Samba в следующем формате smb://samba_hostname_or_server_ip/sharename .
  3. Нажмите «Подключиться», и появится следующий экран:
  4. Выберите «Зарегистрированный пользователь», введите имя пользователя и пароль Samba и нажмите «Подключиться».
  5. Будут показаны файлы на сервере Samba.

Использование клиента smbclient

smbclient это инструмент, позволяющий получить доступ к Samba из командной строки. smbclient Пакет не предустановлен на большинстве дистрибутивов Linux , так что вам нужно будет установить его с помощью менеджера пакетов распределения.

Для установки smbclient в Ubuntu и Debian запустите:

sudo apt install smbclient

Для установки smbclient на CentOS и Fedora запустите:

sudo yum install samba-client

Синтаксис для доступа к общему ресурсу Samba следующий:

Клиент в составе существующего домена nt

Подключение происходит аналогично рассмотренному подключению сервера в составе существующего домена NT. Далее вся работа происходит точно так же, как описано в предыдущем пункте.

Краткий обзор каталогов и файлов

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

Монтирование общего ресурса samba

Чтобы смонтировать общий ресурс Samba в Linux, вам сначала нужно установить cifs-utils пакет.

В Ubuntu и Debian запустите:

sudo apt install cifs-utils

В CentOS и Fedora запустите:

sudo yum install cifs-utils

Затем создайте точку монтирования:

sudo mkdir /mnt/smbmount

Подключите общий ресурс с помощью следующей команды:

Настройка

В большинстве случаев настройка Samba заключается в редактировании основного конфигурационного файла /etc/samba/smb.conf и управлении пользователями с помощью smbpasswd.

Обычный сервер:

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

Для того, что бы создать такой сервер, необходимо лишь немного подправить стандартный конфигурационный файл smb.conf (подставить требуемые имя рабочей группы и имена ресурсов) и создать учетные записи пользователей, как описано в ниже, а также учесть рекомендации по безопасности, изложенные в конце раздела.

Вот основные записи в smb.conf, которые создадут нам «обычный сервер».

[global]

Секция [global] определяет общие настройки серверной части Samba в целом для всех ресурсов.

Имя рабочей группы

OFFICE workgroup = OFFICE

Уровень определения прав доступа на уровне пользователей

Настройка fqdn

Пусть полное имя хоста будет

Настройка samba в ubuntu. конфигурационный файл /etc/samba/smb.conf.

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

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

Содержимое файла /etc/smb.conf делится на разделы, содержащие отдельные параметры и их значения. Взгляните сами:

Не пугайтесь большого количества текста. Строки, начинающиеся с символов «#» и «;» считаются комментариями и не учитываются интерпретатором при разборе файла. Название раздела заключено в квадратные скобки, далее следуют относящиеся к этому разделу параметры и их значения, разделенные знаком «=». Параметров, которые можно использовать, очень много, а вариантов их значений — еще больше.

Настройка samba с интеграцией в ad через sssd

Устанавливаем сам файловый сервер самба.

# yum install samba

Рисуем ему примерно такой конфиг.

# cat /etc/samba/smb.conf

Настройка глобальных параметров samba

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

sudo cp /etc/samba/smb.conf{,.backup}

Файл конфигурации по умолчанию, который поставляется с пакетом Samba, настроен для автономного сервера Samba. Откройте файл и убедитесь, что для server role него установлено значение standalone server

sudo nano /etc/samba/smb.conf

/etc/samba/smb.conf

...
# Most people will want "standalone sever" or "member server".
# Running as "active directory domain controller" will require first
# running "samba-tool domain provision" to wipe databases and create a
# new domain.
   server role = standalone server
...

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

/etc/samba/smb.conf

...
# The specific set of interfaces / networks to bind to
# This can be either the interface name or an IP address/netmask;
# interface names are normally preferred
interfaces = 127.0.0.0/8 eth0

# Only bind to the named interfaces and/or networks; you must use the
# 'interfaces' option above to use this.
# It is recommended that you enable this feature if your Samba machine is
# not protected by a firewall or is a firewall itself.  However, this
# option cannot handle dynamic or non-broadcast interfaces correctly.
bind interfaces only = yes
...

После этого запустите testparm утилиту, чтобы проверить файл конфигурации Samba на наличие ошибок. Если нет синтаксических ошибок, вы увидитеLoaded services file OK.

Наконец, перезапустите службы Samba с помощью:

sudo systemctl restart smbdsudo systemctl restart nmbd

Настройка межсетевого экрана


Если у вас есть брандмауэр работает в вашей системе Ubuntu вам необходимо разрешить входящие соединения UDP на портах 137 и 138 и TCP соединений на портах 139 и 445 .

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

sudo ufw allow 'Samba'

Настройка прав доступа на файлы в samba

Сделаю небольшое пояснение по правам доступа в файловом сервере samba. Вопрос этот сложный и объемный. Ему можно посвятить и отдельную статью. Но для полноты картины по настройке самбы, расскажу самое основное.

Как я уже ранее сказал, изменять права доступа к каталогам на файловом сервере можно с помощью команды setfacl. Давайте сейчас посмотрим на права доступа, которые установлены:

Настройка сети


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

Про сертификаты:  Декларация соответствия или сертификат ТРТС чем отличается от декларации ТТН?

nmtui

В командной строке список сетевых адаптеров можно получить командой

nmcli device status

Статический ip и gateway задается следующей командой, где «ens192» это имя сетевого адаптера

nmcli connection modify “ens192” ipv4.addresses “192.168.1.100/24 192.168.1.1”

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

Данный раздел относится в основном к серверной части 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

Все вышеперечисленные директивы ограничивают соединения на уровне интерфейсов и IP-адресов до какой либо авторизации. Следующие директивы управляют режимом авторизации пользователей.

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

[global]

encrypt passwords = yes

Некоторые особенности работы в active directory

В отличие от доменов Windows NT, авторизация в Active Directory производится не по имени и паролю, а c помощью билетов протокола Kerberos. Из-за этого работа с smbclient может поначалу показаться необычной.

Во-первых, при вызове smbclient нужно указывать опцию -k. Во-вторых, билеты Kerberos даются на определенное время (обычно на сутки, но это зависит от настроек сервера). Поэтому их нужно периодически обновлять с помощью команды kinit:

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

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

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

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

  • клиент;
  • сервер;
  • средства администрирования.

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

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

  • сетевые диски;
  • прямые пути к дискам;
  • принтеры;
  • доменная авторизация и управление.

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

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

Общий ресурс с анонимным доступом


Создаем папку для ресурса /samba/guest

mkdir /samba
mkdir /samba/guest

Меняем владельца и назначаем права

chown nobody:nobody /samba/guest
chmod 777 /samba/guest

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

/etc/samba/smb.conf

mcedit  /etc/samba/smb.conf

Меняем содержание оригинального файла на следующее

Обычный клиент

Клиентские функции Samba представлены средствами просмотра сетевого окружения и монтирования файловых систем /usr/bin/smbclient и /usr/bin/smbmount соответственно. Также доступны mount.smb и mount.smbfs, являющиеся символическими ссылками на /usr/bin/smbount.

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

Также файловые системы возможно монтировать системной командой mount, указав в качестве типа файловой системы smbfs, и использовать эти записи в /etc/fstab для автоматического монтирования при загрузке системы.

Ограничение доступа к samba по ip адресам


Если вам нужно ограничить доступ ко всем ресурсам SAMBA, добавьте ваши списки доступа в разделе global, а если необходимо ограничить только на определенный ресурс, в разделе этого ресурса.

Пример:

[global]
hosts allow = 192.168.1.100, 192.168.1.101
hosts deny = ALL

[guest]
hosts allow = 192.168.0.0/255.255.0.0
hosts deny = 10. except 10.1.1.1

Онлайн курс “sre практики и инструменты”

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с

онлайн-курсом “SRE практики и инструменты”

в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и Linux. Обучение длится 3 месяц, после чего успешные выпускники курса смогут пройти собеседования у партнеров.

На курсе вы узнаете как:

  • Внедрить SRE практики в своей организации
  • Управлять надежностью, доступностью и эффективностью сервисов
  • Управлять изменениями
  • Осуществлять мониторинг
  • Реагировать на инциденты и производительность
  • Работать со следующим технологическим стеком: Linux, AWS, GCP, Kubernetes, Ansible, Terraform, Prometheus, Go, Python.


Проверьте себя на вступительном тесте и смотрите подробнее программу по

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

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

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

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

[global]

client code page =
character set =

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

$LANG = ru_RU.KOI8-R
client code page = 866
character set = koi8-r
$LANG = ru_RU.CP2151 client code page = 866 character 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 определение удаленной кодировки делается по имени локальной.

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

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

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

Для временных ресурсов где не нужен большой объем, как мне кажется RAM диск это наилучший вариант, очень быстро и просто настраивается, а скорость работы поражает воображение.

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

mcedit /etc/fstab

Конфиг для RAM диска

none /samba/guest tmpfs defaults,size=100M 0 0


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

mount -a

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

df -h

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

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

Для получения списка устройств можно использовать команду 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

Подключение к общему ресурсу samba из linux


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

Подключение к общему ресурсу samba из macos

В macOS вы можете получить доступ к общим ресурсам Samba либо из командной строки, либо с помощью стандартного файлового менеджера macOS Finder. Следующие шаги показывают, как получить доступ к общему ресурсу с помощью Finder.

  1. Откройте «Finder», выберите «Перейти» и нажмите «Подключиться к».
  2. В поле «Подключиться к» введите адрес общего ресурса Samba в следующем формате smb://samba_hostname_or_server_ip/sharename .
  3. Нажмите «Подключиться», и появится следующий экран:
  4. Выберите «Зарегистрированный пользователь», введите имя пользователя и пароль Samba и нажмите «Подключиться».
  5. Будут показаны файлы на сервере Samba.

Подключение к общему ресурсу samba из windows

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

  1. Откройте проводник и на левой панели щелкните правой кнопкой мыши «Этот компьютер».
  2. Выберите «Выбрать другое сетевое расположение» и нажмите «Далее».
  3. В поле «Интернет или сетевой адрес» введите адрес общего ресурса Samba в следующем формате \samba_hostname_or_server_ipsharename .
  4. Нажмите «Далее», и вам будет предложено ввести учетные данные для входа, как показано ниже:
  5. В следующем окне вы можете ввести собственное имя для сетевого расположения. По умолчанию будет выбран сервер Samba.
  6. Нажмите «Далее», чтобы перейти к последнему экрану мастера настройки подключения.
  7. Нажмите «Готово», и файлы на сервере Samba будут показаны.

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

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

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

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

Получение ip адреса по dhcp

Если по какой-то причине в сети нету DHCP сервера, вам стоит его поднять. Работать с большим количеством VM без DHCP не удобно.

Для принудительного обновления или получения ip адреса выполните команду

dhclient

Показать ip адрес

ifconfig
или
nmcli device show

Помогла статья? подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Про сертификаты:  Получены сертификаты ФСБ России на ПК ViPNet Coordinator 4 for Linux, ПАК ViPNet Coordinator HW 4 по требованиям к МЭ, ПАК ViPNet IDS 2 по требованиям к СОА | ИнфоТеКС

Прежде чем приступить


Прежде чем продолжить, убедитесь, что вы вошли в систему Ubuntu 18.04 как пользователь с правами sudo .

По умолчанию Samba сконфигурирована на использование CUPS в качестве спулера печати. Подразумевается, что CUPS уже настроен и запущен. В /etc/samba/smb.conf присутствуют следующие директивы:

[global]

printcap name = lpstat
load printers = yes
printing = cups

Также необходимо создать ресурс [printers] — его создание и назначение директив подробно описано в подпункте Обычный сервер в части «Особые ресурсы».

Проверка правильной работы в active directory

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

$ smbclient -k -L <имя компьютера в домене>

Вы должны получить список доступных ресурсов, при этом smbclient не должен запрашивать имя пользователя и пароль.

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

$ smbclient -k -L <имя вашего компьютера в домене>

и получить список доступных ресурсов. Можно также попробовать открыть какой-нибудь ресурс на вашей машине с Windows-машины, входящей в домен. В любом случае, имя пользователя и пароль запрашиваться не должны.

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

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

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

Регистрация компьютера в active directory домене

Убедитесь что Samba не запущена. Если запущена, ее нужно остановить:

service smb stop; service winbind stop

Чтобы включить компьютер в домен, выполните команду:

Редактирование /etc/samba/smb.conf:

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

Сервер как pdc домена

Для создания Primary Domain Controller (PDC) необходимо в smb.conf внести/изменить следующие записи

[global]

Имя сервера; если данный параметр не определен, то он примет значение, соответствующее имени хоста:

netbios name = COOLSERVER

Имя домена:

workgroup = COOLDOMAIN

Режим работы системы авторизации сервера:

Создаем общедоступную папку в ubuntu с помощью samba.

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

Если потребуется восстановить исходный файл, удалите smb.conf и дайте это имя файлу smb-default.conf.

Теперь создадим шару, доступную для чтения и записи всем желающим. Вставьте в /etc/samba/smb.conf:

Создание пользователей samba

Чтобы создать нового пользователя с именем, josh используйте следующую команду:

Удаление старых файлов

В случае «файлопомойки» ресурсы нужно как-то освобождать, для этого можно использовать планировщик задач crontab

Просмотр заданий

crontab –l

Редактирование заданий

crontab –e	

Пример конфига:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=“”
HOME=/

#удалять файлы и каталоги каждый час
* 0-23 * * * rm –R /samba/guest/*

#Удалить только файлы старше 1 дня, запуск команды каждые 10 минут
0-59/10 * * * * find /samba/guest/* -type f -mtime 1 -exec rm –f {} ;

#удалить файлы старше 50 минут, запуск команды каждые 10 минут
0-59/10 * * * * find /samba/guest/* -type f -mmin 50 -exec rm -f {} ;


Выход из vi

Логи службы crontab находятся в файле

/var/log/cron

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

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

  • имя конфигурационного файла (например /etc/samba/smb.conf);
  • имя создаваемого ресурса.

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

Установка centos 7

Сервера работают под управлением VMware ESXi, и по этому я установил CentOS 7 1611 на VM, выделив 1 CPU, 1GB RAM и 3GB HDD.

LVM я не использую, SWAP раздел не создаю, на загрузочный раздел выделяю 500MB, а все остальное отдаю под корень файловой системы. В качестве файловой системы использую ext4.

Процесс установки описывать я не буду, даже если вы этого никогда не делали, это не сложно, у вас все получится. Предполагаю что вы уже все установили, тогда можно приступать.

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

cp /etc/somefile.conf /etc/somefile.conf.bak

Установка samba

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

Установка samba в ubuntu

Samba доступна в официальных репозиториях Ubuntu. Чтобы установить его в вашей системе Ubuntu, выполните следующие действия:

  1. Начните с обновления индекса пакетов apt:

    sudo apt update
  2. Установите пакет Samba с помощью следующей команды:

    sudo apt install samba
  3. После завершения установки служба Samba запустится автоматически. Чтобы проверить, запущен ли сервер Samba, введите:

    sudo systemctl status smbd

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

    ● smbd.service - Samba SMB Daemon
       Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled)
       Active: active (running) since Wed 2021-11-27 09:25:38 UTC; 2min 12s ago
         Docs: man:smbd(8)
               man:samba(7)
               man:smb.conf(5)
     Main PID: 15142 (smbd)
       Status: "smbd: ready to serve connections..."
        Tasks: 4 (limit: 1152)
       CGroup: /system.slice/smbd.service
    ...

На этом этапе Samba установлена ​​и готова к настройке.

Установка и запуск samba в ubuntu.

Поскольку Samba присутствует в репозитории Ubuntu, сложностей с установкой возникнуть не должно. Выполните:

и затем подтвердите установку пакета со всеми зависимостями нажатием Y (или Д).

После установки будет автоматически запущен демон smbd, обеспечивающий доступ к файлам и принтерам. Давайте убедимся, что он уже работает:

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

Установка на vm агентов для взаимодействия с хост сервером


Для VMware ESXi необходимо установить open-vm-tools

yum install open-vm-tools

Для Hyper-V, hyperv-daemons

yum install hyperv-daemons

Установка обновлений

Очень важно установить все доступные обновления

yum update

Утилита net

Утилита net призвана заменить smbpasswd и обеспечивает гораздо большие возможности по получению информации о сети и управлению сетью. Формат команд утилиты очень похож на формат одноименной команды Windows NT/2000.

Основные применения команды net:

Учетные записи пользователей

Все учетные записи хранятся в файле /etc/samba/smbpasswd.

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

  • записи о компьютерах, входящих в домен;
  • записи о пользователях, зарегистрированных на данном сервере.

Следует учитывать, что для того, чтобы создать и использовать любую учетную запись в /etc/samba/smbpasswd, предварительно необходимо создать соответствующую запись в /etc/passwd. Общее правило — для каждого пользователя в /etc/samba/smbpasswd обязательно должен существовать пользователь в /etc/passwd. Обратное утверждение неверно.

Для управления учетными записями предназначена утилита smbpasswd; полный список ее возможностей можно узнать из соответствующей man-страницы, здесь же рассмотрим наиболее частые методы использования.

Создание нового пользователя:

Вывод

В этом руководстве вы узнали, как установить сервер Samba в Ubuntu 18.04 и создать различные типы общих и пользователей. Мы также показали вам, как подключиться к серверу Samba с устройств Linux, macOS и Windows.

Заключение

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

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

  1. Подробное логирование всех действий с файлами на сервере.
  2. Настройка корзины для сетевых дисков samba.
  3. Бэкап файлового сервера.
  4. Мониторинг за размером файловой шары.

Буду рад любым полезным замечаниям, исправлениям, советам по настройке файлового сервера samba. Я потратил значительное время, чтобы поделиться своими знаниями и опытом с остальными. Надеюсь, кто-то поделится чем-то полезным со мной. В том числе ради этого я и пишу статьи. Они расширяют мой кругозор и закрепляют полученные знания.

Онлайн курс “sre практики и инструменты”

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с

онлайн-курсом “SRE практики и инструменты”

в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и Linux. Обучение длится 3 месяц, после чего успешные выпускники курса смогут пройти собеседования у партнеров.

На курсе вы узнаете как:

  • Внедрить SRE практики в своей организации
  • Управлять надежностью, доступностью и эффективностью сервисов
  • Управлять изменениями
  • Осуществлять мониторинг
  • Реагировать на инциденты и производительность
  • Работать со следующим технологическим стеком: Linux, AWS, GCP, Kubernetes, Ansible, Terraform, Prometheus, Go, Python.

Проверьте себя на вступительном тесте и смотрите подробнее программу по

.

Оцените статью
Мой сертификат
Добавить комментарий