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

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


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

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

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

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

Шаг 1. Установка сервера Samba

Наша текущая среда тестирования состоит из двух компьютеров 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

В box2:


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, либо установить правильные значения boolean и контекста безопасности следующим образом. (в противном случае 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 разрешен firewalld.


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

Шаг 4. Настройте общий ресурс Samba

Теперь пришло время углубиться в файл конфигурации /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 и не включая действительных директив пользователей и списка записи.

Шаг 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 в Linux

Сначала убедитесь, что общий ресурс Samba доступен этому клиенту:


smbclient –L 192.168.0.18 -U user2

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

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


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 в Windows

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

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


ls -l /finance

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

Краткое содержание

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

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

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