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

Настройка Samba и настройка FirewallD и SELinux для разрешения общего доступа к файлам на клиентах Linux/Windows - Часть 6


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

В этой статье и в следующей статье этой серии мы рассмотрим основы настройки серверов Samba и NFS с Windows/Linux и клиентами Linux соответственно.

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

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

Шаг 1: Установка Samba Server

Наша текущая тестовая среда состоит из двух компьютеров RHEL 7 и одного компьютера с Windows 8, в следующем порядке:


1. Samba / NFS server [box1 (RHEL 7): 192.168.0.18], 
2. Samba client #1 [box2 (RHEL 7): 192.168.0.20]
3. Samba client #2 [Windows 8 machine: 192.168.0.106]

На box1 установите следующие пакеты:


yum update && yum install samba samba-client samba-common

На коробке 2:


yum update && yum install samba samba-client samba-common cifs-utils

Как только установка будет завершена, мы будем готовы к настройке нашего общего ресурса.

Шаг 2: Настройка общего доступа к файлам через Samba

Одна из причин, почему Samba так актуальна, заключается в том, что она предоставляет услуги файлов и печати клиентам SMB/CIFS, что заставляет этих клиентов видеть сервер так, как если бы это была система Windows (должен признаться, что я склонен немного волноваться, когда пишу на эту тему, поскольку это была моя первая настройка в качестве нового системного администратора Linux несколько лет назад).

Добавление пользователей системы и настройка разрешений и прав собственности

Чтобы обеспечить совместную работу группы, мы создадим группу с именем finance с двумя пользователями (user1 и user2) с командой useradd и каталогом /finance в box1.

Мы также изменим владельца группы этого каталога на finance и установим для него права доступа 0770 (права на чтение, запись и выполнение для владельца и владельца группы):


groupadd finance
useradd user1
useradd user2
usermod -a -G finance user1
usermod -a -G finance user2
mkdir /finance
chmod 0770 /finance
chgrp finance /finance

Шаг 3: Настройка SELinux и Firewalld

При подготовке к настройке /finance в качестве общего ресурса Samba нам потребуется либо отключить SELinux, либо установить соответствующие логические значения и значения контекста безопасности следующим образом (в противном случае SELinux запретит клиентам доступ к общему ресурсу):


setsebool -P samba_export_all_ro=1 samba_export_all_rw=1
getsebool –a | grep samba_export
semanage fcontext –at samba_share_t "/finance(/.*)?"
restorecon /finance

Кроме того, мы должны убедиться, что трафик Samba разрешен брандмауэром.


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

Шаг 4: Настройка Samba Share

Теперь пришло время погрузиться в конфигурационный файл /etc/samba/smb.conf и добавить раздел для нашего общего ресурса: мы хотим, чтобы члены группы finance могли просматривать содержимое /finance, а также сохранять/создавать в нем файлы или подкаталоги (которые по умолчанию будут иметь свои разрешения 0770, а владелец группы finance будет являться их владельцем):


[finance]
comment=Directory for collaboration of the company's finance team
browsable=yes
path=/finance
public=no
valid users=@finance
write list=@finance
writeable=yes
create mask=0770
Force create mode=0770
force group=finance

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

Если вы хотите добавить еще одну общую папку, которая открыта для общественности (то есть без какой-либо аутентификации), создайте еще одну секцию в /etc/samba/smb.conf и под новым именем общей папки скопируйте раздел выше, только изменив public=no на public=yes и не включая действительных пользователей и директивы write list.

Шаг 5: Добавление пользователей Samba

Далее вам нужно будет добавить user1 и user2 в качестве пользователей Samba. Для этого вы будете использовать команду smbpasswd, которая взаимодействует с внутренней базой данных Samba. Вам будет предложено ввести пароль, который вы позже будете использовать для подключения к общей папке:


smbpasswd -a user1
smbpasswd -a user2

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


systemctl start smb
systemctl enable smb
smbclient -L localhost –U user1
smbclient -L localhost –U user2

К этому моменту файловый сервер Samba установлен и настроен правильно. Теперь пришло время протестировать эту настройку на наших клиентах RHEL 7 и Windows 8.

Шаг 6: Монтирование Samba Share в Linux

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


smbclient –L 192.168.0.18 -U user2

(повторите приведенную выше команду для user1)

Как и любой другой носитель информации, вы можете подключить (и позже отключить) этот сетевой ресурс при необходимости:


mount //192.168.0.18/finance /media/samba -o username=user1

(где /media/samba - это существующий каталог)

или навсегда, добавив следующую запись в файл /etc/fstab:


//192.168.0.18/finance /media/samba cifs credentials=/media/samba/.smbcredentials,defaults 0 0

Где скрытый файл /media/samba/.smbcredentials (чьи разрешения и владение установлены на 600 и root:root соответственно) содержит две строки, указывающие имя пользователя и пароль учетной записи, которой разрешено использовать общую папку:


username=user1
password=PasswordForUser1

Наконец, давайте создадим файл внутри /finance и проверим права доступа и владельцев:


touch /media/samba/FileCreatedInRHELClient.txt

Как вы можете видеть, файл был создан с правами доступа 0770 и владельцем user1:finance.

Шаг 7: Монтирование Samba Share в Windows

Чтобы подключить общий ресурс Samba в Windows, перейдите в раздел «Мой компьютер» и выберите «Компьютер», а затем «Подключить сетевой диск». Затем назначьте букву для подключенного диска и установите флажок «Подключиться, используя другие учетные данные» (скриншоты ниже на испанском, моем родном языке):

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


ls -l /finance

На этот раз файл принадлежит user2, так как именно эту учетную запись мы использовали для подключения из клиента Windows.

Сводка

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

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

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

Статьи по данной тематике: