Поиск по сайту:

Как установить Samba в Ubuntu для общего доступа к файлам в Windows


Samba — это бесплатное и широко используемое программное обеспечение с открытым исходным кодом для обмена файлами и службами печати между Unix-подобными системами, включая хосты Linux и Windows в одной сети.

В этом руководстве мы покажем, как настроить Samba4 для базового обмена файлами между системами Ubuntu и компьютерами с Windows. Мы рассмотрим два возможных сценария: анонимный (небезопасный) и безопасный обмен файлами.

Рекомендуется к прочтению: Как установить Samba4 на CentOS/RHEL 7 для совместного использования файлов в Windows

Обратите внимание, что начиная с версии 4.0 Samba можно использовать в качестве контроллера домена (DC) Active Directory (AD). Мы организовали специальную серию статей по настройке контроллера домена Samba4 Active Directory, в которую входят ключевые темы по Ubuntu, CentOS и Windows.

  1. Настройка контроллера домена Samba4 Active Directory

Установите и настройте Samba в Ubuntu

Сервер Samba доступен для установки из репозиториев Ubuntu по умолчанию с помощью инструмента менеджера пакетов apt, как показано ниже.

sudo apt install samba samba-common python-dnspython

После установки сервера Samba пришло время настроить сервер Samba как: небезопасный анонимный и безопасный общий доступ к файлам.

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

Сначала создайте резервную копию исходного файла конфигурации Samba следующим образом.

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.orig

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

Важно. Прежде чем двигаться дальше, убедитесь, что компьютер с Windows находится в той же рабочей группе, которая будет настроена на сервере Ubuntu.

Проверьте настройки рабочей группы компьютера Windows

Войдите в свой компьютер с Windows, щелкните правой кнопкой мыши «Этот компьютер» или «Мой компьютер» Свойства Дополнительные параметры системы Имя компьютера, чтобы подтвердить рабочую группу.

Либо откройте командную строку и просмотрите ее, выполнив приведенную ниже команду и найдите «домен рабочей станции».

>net config workstation

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

Анонимный обмен файлами Samba

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

sudo mkdir -p /srv/samba/anonymous_shares

Затем установите соответствующие разрешения для каталога.

sudo chmod -R 0775 /srv/samba/anonymous_shares
sudo chown -R nobody:nogroup /srv/samba/anonymous_shares

Теперь откройте файл конфигурации.

sudo vi /etc/samba/smb.conf
OR
sudo nano /etc/samba/smb.conf

Затем отредактируйте или измените настройки директивы, как описано ниже.

global]
	workgroup = WORKGROUP
	netbios name = ubuntu
	security = user
[Anonymous]
	comment = Anonymous File Server Share
	path = /srv/samba/anonymous_shares
	browsable =yes
	writable = yes
	guest ok = yes
	read only = no
	force user = nobody

Теперь проверьте текущие настройки Samba, выполнив команду ниже.

testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
WARNING: The "syslog" option is deprecated
Processing section "[printers]"
Processing section "[print$]"
Processing section "[Shares]"
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

Global parameters
[global]
	netbios name = UBUNTU
	server string = %h server (Samba, Ubuntu)
	server role = standalone server
	map to guest = Bad User
	obey pam restrictions = Yes
	pam password change = Yes
	passwd program = /usr/bin/passwd %u
	passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
	unix password sync = Yes
	syslog = 0
	log file = /var/log/samba/log.%m
	max log size = 1000
	dns proxy = No
	usershare allow guests = Yes
	panic action = /usr/share/samba/panic-action %d
	idmap config * : backend = tdb

[printers]
	comment = All Printers
	path = /var/spool/samba
	create mask = 0700
	printable = Yes
[print$]
	comment = Printer Drivers
	path = /var/lib/samba/printers
	browseable = No
[Anonymous]
	comment = Anonymous File Server Share
	path = /srv/samba/anonymous_shares
	force user = nobody
	read only = No
	guest ok = Yes

Затем перезапустите службы Samba, чтобы изменения вступили в силу.

sudo systemctl restart smbd   [Systemd]
sudo service smbd restart     [Sys V]

Тестирование анонимного обмена файлами Samba

Перейдите на компьютер с Windows и откройте «Сеть» в окне Проводник Windows. Нажмите на хост Ubuntu (в нашем случае TECMINT) или попытайтесь получить доступ к серверу Samba, используя его IP-адрес.

\2.168.43.168

Примечание. Используйте команду ifconfig, чтобы получить IP-адрес вашего сервера Ubuntu.

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

Безопасный общий доступ к файлам Samba

Чтобы защитить паролем общий ресурс Samba, вам необходимо создать группу “smbgrp” и установить пароль для каждого пользователя. В этом примере я использую aaronkilik в качестве пользователя и пароля «tecmint».

sudo addgroup smbgrp
sudo usermod aaronkilik -aG smbgrp
sudo smbpasswd -a aaronkilik

Примечание. Режим безопасности Samba: security=user требует от клиентов ввода имени пользователя и пароля для подключения к общим ресурсам.

Учетные записи пользователей Samba отделены от системных учетных записей, однако вы можете дополнительно установить пакет libpam-winbind, который используется для синхронизации системных пользователей и паролей с базой данных пользователей Samba.

sudo apt install libpam-winbind

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

sudo mkdir -p /srv/samba/secure_shares

Затем установите соответствующие разрешения для каталога.

sudo chmod -R 0770 /srv/samba/secure_shares
sudo chown -R root:smbgrp /srv/samba/secure_shares

Теперь откройте файл конфигурации.

sudo vi /etc/samba/smb.conf
OR
sudo nano /etc/samba/smb.conf

Затем отредактируйте или измените настройки директивы, как описано ниже.

[Secure]
	comment = Secure File Server Share
	path =  /srv/samba/secure_shares
	valid users = @smbgrp
	guest ok = no
	writable = yes
	browsable = yes

Как и раньше, запустите эту команду, чтобы увидеть текущие настройки Samba.

testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
WARNING: The "syslog" option is deprecated
Processing section "[printers]"
Processing section "[print$]"
Processing section "[Shares]"
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

Global parameters
[global]
	netbios name = UBUNTU
	server string = %h server (Samba, Ubuntu)
	server role = standalone server
	map to guest = Bad User
	obey pam restrictions = Yes
	pam password change = Yes
	passwd program = /usr/bin/passwd %u
	passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
	unix password sync = Yes
	syslog = 0
	log file = /var/log/samba/log.%m
	max log size = 1000
	dns proxy = No
	usershare allow guests = Yes
	panic action = /usr/share/samba/panic-action %d
	idmap config * : backend = tdb
[printers]
	comment = All Printers
	path = /var/spool/samba
	create mask = 0700
	printable = Yes
[print$]
	comment = Printer Drivers
	path = /var/lib/samba/printers
	browseable = No
[Anonymous]
	comment = Anonymous File Server Share
	path = /srv/samba/anonymous_shares
	force user = nobody
	read only = No
	guest ok = Yes
[Secure]
	comment = Secure File Server Share
	path = /srv/samba/secure_shares
	valid users = @smbgrp
	read only = No

После завершения вышеуказанных настроек перезапустите службы Samba, чтобы применить изменения.

sudo systemctl restart smbd   [Systemd]
sudo service smbd restart     [Sys V]

Тестирование безопасного обмена файлами Samba

Как и раньше, на компьютере с Windows откройте «Сеть» в окне Проводник Windows. Нажмите на хост Ubuntu (в нашем случае TECMINT). Вы можете получить сообщение об ошибке ниже, если не перейдете к следующему шагу.

Попробуйте получить доступ к серверу, используя его IP-адрес, например. \\192.168.43.168 вот так. Затем введите учетные данные (имя пользователя и пароль) для пользователя aaronkilik и нажмите ОК.

Теперь вы увидите все общие каталоги. Нажмите Безопасно, чтобы открыть их.

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

Включите Samba в брандмауэре UFW в Ubuntu

Если в вашей системе включен/активен брандмауэр UFW, вам необходимо добавить правила, позволяющие Samba проходить через брандмауэр.

Чтобы проверить это, мы использовали сетевую схему 192.168.43.0. Запустите команды ниже, указав свой сетевой адрес.

sudo ufw allow proto udp to any port 137 from 192.168.43.0/24
sudo ufw allow proto udp to any port 138 from 192.168.43.0/24
sudo ufw allow proto tcp to any port 139 from 192.168.43.0/24
sudo ufw allow proto tcp to any port 445 from 192.168.43.0/24

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

  1. Настройка контроллера домена Samba4 Active Directory — части с 1 по 14
  2. Как смонтировать/размонтировать локальные и сетевые (Samba и NFS) файловые системы в Linux
  3. Использование ACL (списков контроля доступа) и монтирование общих ресурсов Samba/NFS
  4. Как исправить уязвимость SambaCry (CVE-2017-7494) в системах Linux

Вот и все! В этом руководстве мы показали вам, как настроить Samba4 для анонимного и безопасного обмена файлами между компьютерами с Ubuntu и Windows. Используйте форму обратной связи ниже, чтобы поделиться с нами своими мыслями.