Как установить Samba4 на CentOS 7 для общего доступа к файлам в Windows
В нашей последней статье мы показали, как установить Samba4 в Ubuntu для базового обмена файлами между системами Ubuntu и компьютерами с Windows. Здесь мы рассмотрели настройку анонимного (небезопасного), а также безопасного обмена файлами.
Здесь мы опишем, как установить и настроить Samba4 на CentOS 7 (также работает на RHEL 7) для базового обмена файлами между другими системами Linux и компьютерами с Windows.
Важно. Начиная с версии 4.0, Samba может работать как контроллер домена (DC) Active Directory (AD). Мы предлагаем вам прочитать нашу специальную серию статей о настройке контроллера домена Samba4 Active Directory, которая включает важные темы для Ubuntu, CentOS и Windows.
Установите Samba4 в CentOS 7.
1. Сначала установите Samba4 и необходимые пакеты из репозиториев CentOS по умолчанию, используя инструмент менеджера пакетов yum, как показано.
yum install samba samba-client samba-common
2. После установки пакетов samba разрешите доступ служб samba через системный брандмауэр с помощью этих команд.
firewall-cmd --permanent --zone=public --add-service=samba
firewall-cmd --reload
Проверьте настройки рабочей группы компьютера Windows
3. Прежде чем приступить к настройке samba, убедитесь, что компьютер с Windows находится в той же рабочей группе, которая будет настроена на сервере CentOS.
Существует два возможных способа просмотра настроек рабочей группы компьютера Windows:
- Щелкните правой кнопкой мыши «Этот компьютер» или «Мой компьютер» → Свойства → Дополнительные параметры системы → Имя компьютера.
- Либо откройте подсказку cmd и выполните следующую команду, а затем найдите в выводе домен рабочей станции, как показано ниже.
>net config workstation
Настройка Samba4 на CentOS 7
4. Основной файл конфигурации samba — /etc/samba/smb.conf. Исходный файл содержит параметры предварительной конфигурации, которые объясняют различные директивы конфигурации, которые помогут вам.
Но перед настройкой Samba я предлагаю вам сделать резервную копию файла по умолчанию, вот так.
cp /etc/samba/smb.conf /etc/samba/smb.conf.orig
Затем перейдите к настройке Samba для служб анонимного и защищенного обмена файлами, как описано ниже.
Анонимный обмен файлами Samba4
5. Сначала создайте общий каталог, в котором файлы будут храниться на сервере, и установите соответствующие разрешения для этого каталога.
mkdir -p /srv/samba/anonymous
chmod -R 0775 /srv/samba/anonymous
chown -R nobody:nobody /srv/samba/anonymous
Кроме того, вам необходимо изменить контекст безопасности SELinux для общего каталога Samba следующим образом.
chcon -t samba_share_t /srv/samba/anonymous
6. Затем откройте файл конфигурации Samba для редактирования, где вы можете изменить/добавить приведенные ниже разделы с помощью соответствующих директив.
vi /etc/samba/smb.conf
[global]
workgroup = WORKGROUP
netbios name = centos
security = user
[Anonymous]
comment = Anonymous File Server Share
path = /srv/samba/anonymous
browsable =yes
writable = yes
guest ok = yes
read only = no
force user = nobody
7. Теперь проверьте текущие настройки Samba, выполнив команду ниже.
testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[homes]"
Processing section "[printers]"
Processing section "[print$]"
Processing section "[Anonymous]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
Global parameters
[global]
netbios name = centos
printcap name = cups
security = USER
idmap config * : backend = tdb
cups options = raw
[homes]
comment = Home Directories
browseable = No
inherit acls = Yes
read only = No
valid users = %S %D%w%S
[printers]
comment = All Printers
path = /var/tmp
browseable = No
printable = Yes
create mask = 0600
[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
create mask = 0664
directory mask = 0775
write list = root
[Anonymous]
comment = Anonymous File Server Share
path = /srv/samba/anonymous
force user = nobody
guest ok = Yes
read only = No
8. Наконец, запустите и включите автоматический запуск служб Samba при следующей загрузке, а также примените указанные выше изменения, чтобы они вступили в силу.
systemctl enable smb.service
systemctl enable nmb.service
systemctl start smb.service
systemctl start nmb.service
Тестирование анонимного обмена файлами Samba
9. Теперь на компьютере с Windows откройте «Сеть» в окне проводника Windows, затем щелкните хост CentOS или попробуйте получить доступ к серверу, используя его IP-адрес (используйте команду ifconfig, чтобы получить IP-адрес).
e.g. \2.168.43.168.
10. Затем откройте каталог Anonymous и попробуйте добавить туда файлы, которыми можно поделиться с другими пользователями.
Настройка безопасного обмена файлами Samba4
11. Сначала начните с создания системной группы samba, затем добавьте в нее пользователей и установите пароль для каждого пользователя следующим образом.
groupadd smbgrp
usermod tecmint -aG smbgrp
smbpasswd -a tecmint
12. Затем создайте безопасный каталог, в котором будут храниться общие файлы, и установите соответствующие разрешения для каталога с контекстом безопасности SELinux для samba.
mkdir -p /srv/samba/secure
chmod -R 0770 /srv/samba/secure
chown -R root:smbgrp /srv/samba/secure
chcon -t samba_share_t /srv/samba/secure
13. Затем откройте файл конфигурации для редактирования и измените/добавьте раздел ниже с соответствующими директивами.
vi /etc/samba/smb.conf
[Secure]
comment = Secure File Server Share
path = /srv/samba/secure
valid users = @smbgrp
guest ok = no
writable = yes
browsable = yes
14. Еще раз проверьте настройки конфигурации Samba, выполнив следующую команду.
testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[homes]"
Processing section "[printers]"
Processing section "[print$]"
Processing section "[Anonymous]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
Global parameters
[global]
netbios name = centos
printcap name = cups
security = USER
idmap config * : backend = tdb
cups options = raw
[homes]
comment = Home Directories
browseable = No
inherit acls = Yes
read only = No
valid users = %S %D%w%S
[printers]
comment = All Printers
path = /var/tmp
browseable = No
printable = Yes
create mask = 0600
[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
create mask = 0664
directory mask = 0775
write list = root
[Anonymous]
comment = Anonymous File Server Share
path = /srv/samba/anonymous
force user = nobody
guest ok = Yes
read only = No
[Secure]
comment = Secure File Server Share
path = /srv/samba/secure
read only = No
valid users = @smbgrp
15. Перезапустите службы Samba, чтобы применить изменения.
systemctl restart smb.service
systemctl restart nmb.service
Тестирование безопасного обмена файлами Samba
16. Перейдите на компьютер с Windows, откройте «Сеть» в окне проводника Windows, затем щелкните хост CentOS или попытайтесь получить доступ сервер, используя свой IP-адрес.
e.g. \2.168.43.168.
Вам будет предложено ввести имя пользователя и пароль для входа на сервер CentOS. После ввода учетных данных нажмите ОК.
17. После успешного входа в систему вы увидите все общие каталоги Samba. Теперь безопасно поделитесь некоторыми файлами с другими разрешенными пользователями в сети, поместив их в каталог Безопасный.
Вы также можете прочитать эти полезные статьи, посвященные совместному использованию файлов Samba в сети.
- Как смонтировать/размонтировать локальные и сетевые (Samba и NFS) файловые системы в Linux
- Использование ACL (списков контроля доступа) и монтирование общих ресурсов Samba/NFS
- Как исправить уязвимость SambaCry (CVE-2017-7494) в системах Linux
В этом руководстве мы показали вам, как настроить Samba4 для анонимного и безопасного обмена файлами между CentOS и другими системами Linux, а также компьютерами с Windows. Поделитесь с нами своими мыслями в разделе комментариев ниже.