Samba популярное файлообменное приложение с открытым исходным кодом, которое позволяет совместно использовать сетевые ресурсы, необходимые пользователям для выполнения их задач. Оно представляет собой повторную реализацию популярного протокола SMB (server message block), который обеспечивает совместное использование файлов и печати в сети.

Samba развертывается на центральном Linux-сервере, где хранятся общие ресурсы, доступ к которым осуществляется с Linux- или Windows-клиентов.

Необходимые условия

  • Предварительно установленный Rocky Linux 9 или AlmaLinux 9
  • Обычный пользователь с правами sudo
  • Подключение к Интернету

1) Обновление пакетов сервера

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

$ sudo dnf -y update

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

$ sudo reboot

2) Установка Samba Server на Rocky Linux 9 / AlmaLinux 9

Пакеты samba доступны в стандартных репозиториях пакетов Alma/Rocky Linux. Чтобы установить их, выполните команду, как показано на рисунке.

$ sudo dnf install samba samba-common samba-client -y

Install-Samba-RockyLinux9-AlmaLinux9-DNF-Command

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

3) Создание и настройка общих ресурсов Samba

Общий ресурс samba — это, по сути, каталог, который будет совместно использоваться клиентскими системами сети. Поэтому мы создадим каталог, как показано на рисунке.

$ sudo mkdir -p /home/linuxbuzz/sambashare

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

$ sudo chmod -R 755 /home/linuxbuzz/sambashare
$ sudo chown -R  nobody:nobody /home/linuxbuzz/sambashare
$ sudo chcon -t samba_share_t /home/linuxbuzz/sambashare

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

$ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bk

Разрешения для Samba-Share-Linux

Теперь давайте создадим новый файл конфигурации, выполнив следующую команду в терминале:

$ sudo vim /etc/samba/smb.conf

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

[global]
        workgroup = WORKGROUP
        server string = Samba Server %v
        netbios name = rocky-9
        security = user
        map to guest = bad user
        dns proxy = no
[Public]
        path = /home/linuxbuzz/sambashare
        browsable =yes
        writable = yes
        guest ok = yes
        read only = no

Samba-Parameters-RockyLinux-AlmaLinux

Чтобы сохранить и выйти из файла конфигурации, используйте команду:wq!

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

$ sudo testparm

Testparm-Samba-RockyLinux-AlmaLinux

4) Запустите и включите службу Samba

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

$ sudo systemctl start smb
$ sudo systemctl start nmb

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

$ sudo systemctl enable smb
$ sudo systemctl enable nmb

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

$ sudo systemctl status smb
$ sudo systemctl status nmb

Samba-Service-Status-RockyLinux-AlmaLinux

Nmb-Service-Status-RockyLinux-AlmaLinux

Приведенные выше результаты указывают на то, что службы запущены. Теперь давайте включим протокол samba на брандмауэре, чтобы разрешить удаленным ПК с Windows доступ к общим ресурсам samba.

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

5) Доступ к общим ресурсам Samba с клиента Linux

Чтобы получить доступ к файловой системе с клиента Linux, необходимо установить клиентское приложение Samba. Выполните следующую команду, чтобы установить программу на вашу систему Linux:

$ sudo dnf install samba-client

Теперь, если вы хотите получить доступ к общему ресурсу Samba, выполните команду, как показано на рисунке:

$ sudo smbclient -L //server-ip/Public

6) Доступ к ресурсу Samba из Windows

Чтобы получить доступ к ресурсу из этого пункта назначения, откройте диалог «Выполнить» на клиенте Windows, нажав кнопку Windows Key + R.

Введите IP-адрес или имя хоста вашего сервера в отведенное для этого место, как показано ниже:

Access-Samba-Share-Windows-Machine

Вышеописанное действие предлагает открыть общий ресурс, и вы можете добавить файл или каталог в хранилище как с клиентского компьютера Windows, так и с сервера Linux.

Remote-Samba-Share-Access-Windows-Machine

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

7) Защита Shamba Share

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

Сначала создадим нового пользователя Samba на нашем сервере.

$ sudo useradd smbuser

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

$ sudo smbpasswd -a smbuser

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

$ sudo groupadd smb_group
$ sudo usermod -g smb_group smbuser

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

$ sudo mkdir -p /home/linuxbuzz/sambashare
$ sudo chmod -R 770 /home/linuxbuzz/sambashare
$ sudo chown -R root:smb_group /home/linuxbuzz/sambashare
$ sudo chcon -t samba_share_t /home/linuxbuzz/sambashare

Assign-Password-SmbUser-RockyLinux-AlmaLinux

Теперь снова вернемся к конфигурационному файлу Samba.

$ sudo vim /etc/samba/smb.conf

Добавьте приведенные ниже строки, чтобы определить общий ресурс Samba:

Secure-Share-Smb-Conf-RockyLinux-AlmaLinux

Сохраните и выйдите из окна.

Чтобы конфигурации вступили в силу, перезапустите службы Samba.

$ sudo systemctl restart smb
$ sudo systemctl restart nmb

На этот раз, когда вы войдете в клиент Windows и перейдете к папке «Private», вам нужно будет пройти аутентификацию, используя учетные данные пользователя Samba, чтобы получить доступ к папке. Введите имя пользователя и пароль из предыдущего шага и нажмите «ОК».

Access-Secure-Samba-Share-From-Windows-Machine