Установка и конфигурация Samba на CentOS 7

Установка и конфигурация Samba на CentOS 7

Автор  Владимир Драч

 

Пятница, 26 Сентябрь 2014 00:00

 

 

Разберёмся, как сконфигурировать samba на CentOS 7 с анонимными и защищёнными samba-серверами. Samba является пакетом программ с открытым исходным кодом, который позволяет уверенно обращаться к файлам и принтерам на ОС, работающих по протоколу SMB/CIFS. Samba находится в свободном доступе, в отличие от других программ SMB/CIFS, и совместим, допускает возможность взаимодействия сетей, включающих сервера под управлением Linux/Unix, так и клиентов, работающими на Windows.

1 Предварительные замечания

В нашем случае установка сервера samba будет производиться на специально установленном сервере CentOS версии 7.0. Также нам понадобится ПК с установленным Windows для проверки доступности samba. В данном случае сервер под CentОS будет иметь имя хоста в виде linux.example.com и 192.168.0.100 в качестве IP-адреса.

Внимание: В Windows домен рабочей станции должен совпадать с доменом в CentOS.

Для проверки значения в Windows введите в командной строке следующее:

net config workstation

В нашем случае домен рабочей станции имеет значение HOME.

Убедитесь, что рабочая группа будет иметь одинаковое имя как под Linux, так и под Windows.

Для того, чтобы сделать доступным компьютер под Windows, необходимо добавить IP-адрес вашего сервера в hosts.

блокнот C:\Windows\System32\drivers\etc\hosts

В нашем случае введем следующее:

[…]

 

192.168.0.100 linux.example.com centos

Затем просто сохраним данное изменение.

2 Анонимный доступ средствами samba

Сначала установим samba с возможностью анонимного доступа. Для установки samba выполните следующую команду:

yum install samba samba-client samba-common

Таким образом вы установите samba актуальной версии.

Для того, чтобы сконфигурировать samba потребуется отредактировать файл /etc/samba/smb.conf, перед редактированием следует сделать резервное копирование оригинального файла /etc/samba/smb.conf.bak

cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

Открываем для редактирования файл:

mcedit /etc/samba/smb.conf

Вносим изменения:

[global]

 

workgroup = HOME

 

server string = Samba Server %v

 

netbios name = centos

 

security = user

 

map to guest = bad user

 

dns proxy = no

 

#===Share Definitions

 

[Anonymous]

 

path = /samba/anonymous

 

browsable =yes

 

writable = yes

 

guest ok = yes

 

read only = no

Почти всё готово, перезапускаемся:

mkdir -p /samba/anonymous

 

systemctl enable smb.service

 

systemctl enable nmb.service

 

systemctl restart smb.service

 

systemctl restart nmb.service

На данном этапе сетевой экран CentOS 7.0 заблокирует доступ службы samba, чтобы решить эту проблему, выполним следующее:

firewall-cmd —permanent —zone=public —add-service=samba

 

firewall-cmd —reload

Настроить сетевой экран по всем правилам поможет специальная статья.

Теперь вы можете обмениваться файлами Centos 7.0 с windows, для этого в командной строке Win+R необходимо выполнить  \\centos:

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

Далее необходимо проверить права доступа для общего документа.

ls -l

 

drwxr-xr-x.

2 root root anonymous

Для получения прав доступа для анонимного пользователя введите следующее:

cd /samba

 

chmod -R 755 anonymous/

 

chown -R nobody:nobody anonymous/

 

ls -l anonymous/

 

total 0

 

drwxr-xr-x.

2 nobody nobody anonymous

Далее нам потребуется разрешение selinux для конфигурации samba:

chcon -t samba_share_t anonymous/

Теперь анонимный пользователь может создавать и просматривать cодержимое.

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

ls -l anonymous/

 

total 0

 

-rwxr—r—. 1 nobody nobody 0 anonymous.txt

 

[root samba]#

  1. Защищённый samba-сервер

Создадим группу smbgrp и пользователя dve для доступа к samba-серверу с необходимой аутентификацией:

groupadd smbgrp

 

useradd dve -G smbgrp

 

smbpasswd -a dve

 

[root samba]# smbpasswd -a dve

 

New SMB password:<-вашsambaпароль

 

Retype new SMB password:<—вашsambaпароль

 

Added user dve.

 

[root samba]#

Создадим папку secured в /samba и предоставим соответствующие права доступа:

mkdir -p /samba/secured

 

cd /samba && chmod -R 777 secured/

Теперь нам снова понадобится разрешение Selinux:

cd /samba

 

chcon -t samba_share_t secured/

Снова редактируем файл конфигурации /etc/samba/smb.conf:

[…]

 

[secured]

 

path = /samba/secured

 

valid users = @smbgrp

 

guest ok = no

 

writable = yes

 

browsable = yes

Далее потребуется перезапуск

systemctl restart smb.service

 

systemctl restart nmb.service

Теперь проверяем настройки хитрой командой testparm

[root]# testparm

 

Load smb config files from /etc/samba/smb.conf

 

rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)

 

Processing section «[Anonymous]»

 

Processing section «[secured]»

 

Loaded services file OK.

 

Server role: ROLE_STANDALONE

 

Press enter to see a dump of your service definitions <—нажмитеENTER

 

[global]

 

netbios name = CENTOS

 

server string = Samba Server %v

 

map to guest = Bad User

 

dns proxy = No

 

idmap config * : backend = tdb

 

[Anonymous]

 

path = /samba/anonymous

 

read only = No

 

guest ok = Yes

 

[secured]

 

path = /samba/secured

 

valid users = @smbgrp

 

read only = No

 

[root samba]#

 

browsable = yes.

Вы снова столкнётесь с проблемой прав доступа. Для получения прав доступа пользователя dve выполним:

cd /samba

 

chown -R dve:smbgrp secured//

Теперь пользователь samba имеет права доступа для записи в папку.

Запись опубликована в рубрике Centos, Linux. Добавьте в закладки постоянную ссылку.