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
Команда устанавливает запрошенные пакеты, а также зависимости, показанные в выводе. После завершения установки вы получите список всех пакетов, которые были успешно установлены.
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
Теперь давайте создадим новый файл конфигурации, выполнив следующую команду в терминале:
$ 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
Чтобы сохранить и выйти из файла конфигурации, используйте команду:wq!
Чтобы проверить конфигурационный файл, выполните команду, как показано на рисунке:
$ sudo testparm
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 на брандмауэре, чтобы разрешить удаленным ПК с 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-адрес или имя хоста вашего сервера в отведенное для этого место, как показано ниже:
Вышеописанное действие предлагает открыть общий ресурс, и вы можете добавить файл или каталог в хранилище как с клиентского компьютера Windows, так и с сервера Linux.
Теперь давайте посмотрим, как можно защитить каталог 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
Теперь снова вернемся к конфигурационному файлу Samba.
$ sudo vim /etc/samba/smb.conf
Добавьте приведенные ниже строки, чтобы определить общий ресурс Samba:
Сохраните и выйдите из окна.
Чтобы конфигурации вступили в силу, перезапустите службы Samba.
$ sudo systemctl restart smb $ sudo systemctl restart nmb
На этот раз, когда вы войдете в клиент Windows и перейдете к папке «Private», вам нужно будет пройти аутентификацию, используя учетные данные пользователя Samba, чтобы получить доступ к папке. Введите имя пользователя и пароль из предыдущего шага и нажмите «ОК».