Различия

Показаны различия между двумя версиями страницы.


Предыдущая версия
samba [2025/07/06 12:39] (текущий) – внешнее изменение 127.0.0.1
Строка 1: Строка 1:
 +====== Samba файловый сервер ======
 +~~Title: Настройка Samba сервера Ubuntu 20.04.1 LTS ~~
 +{{htmlmetatags>
 +metatag-description=(Samba — это программное обеспечение для реализации файлового сервера, а с 4-й версии и контроллера домена (аналог Windows Active Directory).)
 +}}
 +
 +{{ ::samba_server_ubuntu_20.04.jpg?nolink&400 |}}
 +
 +**Samba** - программа, которая позволяет обращаться к сетевым дискам на различных операционных системах по протоколу [[smb|SMB/CIFS]]. 
 +
 +Простыми словами Samba — это программное обеспечение для реализации файлового сервера, а с 4-й версии и контроллера домена (аналог Windows Active Directory). Устанавливается как на Windows, так и Linux/FreeBSD. Также может быть установлена на некоторые модели роутеров для реализации простого домошнего файлового хранилища.
 +
 +В качестве клиентской части для подключения к файловому серверу Samba может выступать программное обеспечение, работающее по протоколу SMB. В Linux/FreeBSD это samba client, в Windows — проводник.
 +
 +Samba использует 137-139 порты [[UDP]] и [[TCP]].
 +====== Как установить и настроить Samba на Ubuntu Server 20.04 ======
 +В руководстве описана установка и настройка автономного файлового сервера под управлением Samba [[Ubuntu|Ubuntu]] Server 20.04 для доступа клиентов Windows, Linux, macOS.
 +
 +Компьютеры под управлением Windows и Ubuntu должны быть членами локального домена или рабочей группы под названием WORKGROUP.
 +
 +Для проверки в Windows к какой рабочей группе принадлежит компьютер используйте команду:
 +<file bash>
 +net config workstation
 +</file> На скриншоте видно, что мой клиентский компьютер имеет правильное название рабочей группы.
 +{{ ::samba_windows_klient.jpg?nolink |}}
 +===== ШАГ 1: Установка пакетов Samba сервер в Ubuntu =====
 +Обновляем пакеты и устанавливаем Samba сервер. Также установим клиента Samba - пригодится для тестирования настроек сервера.
 +<file bash>
 +sudo apt update
 +sudo apt install samba smbclient
 +</file>
 +
 +===== ШАГ 2: Старт настройки =====
 +Мы начнем со свежего чистого файла конфигурации smb.conf, удалив все закоментированные строки. А также сохраним файл конфигурации по умолчанию в качестве резервной копии для справочных целей. Выполните следующие команды linux, чтобы сделать копию существующего файла конфигурации и создать новый файл конфигурации /etc/samba/smb.conf:
 +<file bash>
 +sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
 +sudo bash -c 'grep -v -E "^#|^;" /etc/samba/smb.conf_backup | grep . > /etc/samba/smb.conf'
 +</file>
 +
 +===== ШАГ 3: Создать пользователя Samba =====
 +У Samba есть собственная система управления пользователями. Однако любой пользователь, существующий в списке пользователей samba, также должен быть системным, то есть существовать в файле /etc/passwd. Если ваш системный пользователь еще не существует и, следовательно, не может быть расположен в файле /etc/passwd, сначала создайте нового пользователя с помощью команды useradd, прежде чем создавать любого нового пользователя Samba.
 +
 +Создадим системного пользователя
 +<file bash>
 +sudo useradd -m -c "Name_User" -s /bin/bash buhnasmb
 +sudo passwd buhnasmb
 +</file>
 +
 +Возьмем для примера имя buhnasmb, допустим что он уже есть в системе (проверить командой id), надо внести его в базу данных SMB и назначить пароль для доступа к общим ресурсам, сделаем это командой:
 +<file bash>
 +$ sudo id buhnasmb
 +uid=1003(buhnasmb) gid=1003(buhnasmb) groups=1003(buhnasmb)
 +
 +$ sudo smbpasswd -a buhnasmb
 +
 +New SMB password:
 +Retype new SMB password:
 +Added user buhna.
 +</file>
 +===== ШАГ 4: Создать общую папку Samba доступную для всех (без пароля) =====
 +Создадим директорию для хранения расшаренных файлов и папок:
 +<file>
 +mkdir -p /home/hdd2backup/smb/buhnasmb
 +</file>
 +Добавьте в конец файла /etc/samba/smb.conf следующие строки, buhnasmb замените на имя пользователя компьютера с Samba. Папка будет открыта для чтения и записи.
 +
 +<file bash>
 +[BackupWork]
 +comment = Samba Share
 +path = /home/hdd2backup/smb/buhnasmb
 +guest ok = yes
 +browsable =yes
 +writable = yes
 +read only = no
 +force user = buhnasmb
 +force group = buhnasmb
 +</file>
 +Не забудьте поставить правильного владельца и права доступа на папку, которую вы расшариваете, например так:
 +<file bash>
 +sudo chmod ug+rwx /home/hdd2backup/smb/buhnasmb
 +sudo chown root:"пользователи домена" /home/hdd2backup/smb/buhnasmb
 +</file>
 +
 +Перезапуск Samba:
 +<file bash>
 +sudo systemctl restart smbd.service
 +</file>
 +
 +===== ШАГ 5: Создать защищенную папку Samba доступную только по паролю =====
 +Теперь вы знаете, как создавать общедоступные общие ресурсы Samba. Теперь приступим к созданию частных и защищенных общих ресурсов. 
 +
 +<note>Для того чтобы защитить открытую папку, вашего файлового сервер Samba, паролем достаточно изменить параметр guest ok на no и если вы хотите скрыть в обзоре сети вашу папку параметр browsable на no.</note>
 +
 +То есть настройка идентична ШАГ 4. Хорошо давайте повторю.
 +
 +И так создаем новую директорию:
 +<file bash>
 +mkdir -p /home/hdd2backup/smb/protected
 +</file>
 +Пользователь тот же buhnasmb, напоминаю, что пароль для доступа к smb- ресурсам мы пользователю buhnasmb задали на [[samba#shag_3sozdat_polzovatelja_samba|ШАГ 3]].
 +
 +Добавьте в конец файла /etc/samba/smb.conf следующие строки, buhnasmb замените на имя пользователя компьютера с Samba. Папка будет доступна по логину и паролю.
 +
 +<file bash>
 +[ProtectedSamba]
 +comment = Samba Protected Share
 +path = /home/hdd2backup/smb/protected
 +guest ok = no
 +browsable =yes
 +writable = yes
 +read only = no
 +force user = buhnasmb
 +force group = buhnasmb
 +</file>
 +
 +Задайте права на папку как в ШАГ 4:
 +<file bash>
 +sudo chmod ug+rwx /home/hdd2backup/smb/protected
 +sudo chown root:"пользователи домена" /home/hdd2backup/smb/protected
 +</file>
 +
 +Перезапуск Samba:
 +<file bash>
 +sudo systemctl restart smbd.service
 +</file>
 +
 +===== ШАГ 6: Утилиты и диагностика Samba =====
 +
 +  * Проверьте правильность конфигурации Samba командой testparm:
 +<file bash>
 +# testparm
 +Load smb config files from /etc/samba/smb.conf
 +Loaded services file OK.
 +Server role: ROLE_STANDALONE
 +</file>
 +  * **smbget** позволяет скачивать с windows, linux (д.уст. samba) файлы через [[SMB]] протокол. Скачать рекурсивно все директории и файлы:<code>smbget -Rr smb://ip_addr/share</code>
 +  * **smbclient** - утилита для подключения к общедоступным папкам.
 +       * Отобразить общедоступные ресурсы на удаленном хосте:<code bash>smbclient -L ip_addr/hostname</code>
 +       * Посмотреть «шары» локально на стороне сервер <code bash>smbclient -L 127.0.0.1</code>
 +       * Просмотреть папку vip под пользователем tatyana<file>
 +$ smbclient \\\\10.26.95.220\\vip -U tatyana
 +</file>
 +  * **nbtscan**<code>
 +nbtscan ip_addr разрешить netbios-имя nbtscan не во всех системах ставится по-умолчанию,
 +возможно, придётся доустанавливать вручную. nmblookup включен в пакет samba.
 +nmblookup -A ip_addr
 +</code>
 +===== ШАГ 7: Скачать рабочий конфигурационный файл smb.conf =====
 +<file bash smb.conf>
 +[global]
 +   workgroup = WORKGROUP
 +   server string = %h server (Samba, Ubuntu)
 +   log file = /var/log/samba/log.%m
 +   max log size = 1000
 +   logging = file
 +   panic action = /usr/share/samba/panic-action %d
 +   server role = standalone server
 +   obey pam restrictions = yes
 +   unix password sync = yes
 +   passwd program = /usr/bin/passwd %u
 +   passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
 +   pam password change = yes
 +   map to guest = bad user
 +   netbios name = back20
 +   usershare allow guests = yes
 +
 +[PublicSamba]
 +comment = Samba  Anonymous Share
 +path = /home/hdd2backup/smb/buhnasmb
 +guest ok = yes
 +browsable =yes
 +writable = yes
 +read only = no
 +force user = buhnasmb
 +force group = buhnasmb
 +
 +[ProtectedSamba]
 +comment = Samba Protected Share
 +path = /home/hdd2backup/smb/protected
 +guest ok = no
 +browsable =yes
 +writable = yes
 +read only = no
 +force user = buhnasmb
 +force group = buhnasmb
 +</file>
 +====== FAQ Samba ======
 +  * **Проблема**. [[Windows]] 7 **не разрешает** доступ к расшаренным папкам Samba 4 + [[LDAP]] по логину и паролю, без ввода Windows 7 в домен. **Решение**: Нужно отключить 128- битное шифрование (оно включено по умолчанию) при работе по сети. И тогда Windows 7 разрешит подключения дисков как сетвевых шар, но через стандартное сетевое окружение папки все равно не будут доступны. Полный бред однако!!!
 +
 +====== Заключение ======
 +[[out>https://www.samba.org|Проект Samba]] продолжает активно развиваться. Скорость работы Samba в условиях многопользовательского доступа в качестве ролей файлового и принт-сервера более чем в два раза выше по сравнению с Windows Server.
 +
 +Начиная с четвёртой версии, Samba может выступать в роли контроллера домена и сервиса Active Directory, совместимого с реализацией Windows 2000, и способна обслуживать все поддерживаемые Microsoft версии Windows-клиентов, в том числе Windows 10.
 +
 +К сожалению, для более углубленного изучения Samba в интернете практический нет информации.
 +
  

📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.

📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.

💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!