Переход к предыдущей публикации Перенос FreeBSD на другой жесткий диск Хорошо дома Переход к следущей публикации

Настройка Samba

Пятница, 4 января, 2008 13:46:14 EET

Исправления от 23 марта, 2009 10:03:43

Выделенные сервера дешевле обычного хостинга

Samba Server После вчерашнего переноса сервера на более емкий жесткий диск займемся установкой сервера Samba. Данное программное обеспечение в первую очередь призвано дать доступ к файлам и принтерам на *nix системе пользователям Windows систем в локальной сети.

По данному вопросу написано очень много статей. Да и сама настройка Samba не вызывает существенных проблем. Это программное обеспечение из той категории, когда конфигурационный файл предельно прост и понятен. Плюс ко всему имеется web интерфейс конфигуратор называемый Swat. Но им мы пользоваться не будем.

На сайте старого знакомого Лиссяры есть две статьи по настройке Samba. Правда моя конфигурация получилась гораздо проще. Навороты, вроде перезапусков BSD служб из под Windows мне не нужны. Однако ниже я все таки приведу пример конфигурации, взятый на сайте www.lissyara.su

SAMBA + правка расширенных пермишенов (ACL) через виндовые “галочки”

Автор: Lissyara

Возникла необходимость сделать в филиалы файлопомойки не на винде. Альтернатива известна - samba. Однако, было требование - на местах есть админы, и файлопомойкой должны рулить они. Галочками, из-под винды. Ибо нехорошо травмировать несчастных виндовых админов вещами типа getfacl/setfacl. Им и так тяжело :).

На этом моменте затруднений возникло немного (собственно, на галочках - тока одно, ибо в мане по smb.conf всё хорошо написано), одно из самых главных - я не мог воткнуть машину в домен, но к делу оно отношения не имеет.

Итак. Задача - самба с галками, в домене. Поехали:

lissyara$ cd /usr/ports/net/samba3/
lissyara$ make install clean

Лезет синее окошко, где выбираем такие опции:

 Options for samba 3.0.25a,1
————————————————-
[X] LDAP With LDAP support
[X] ADS          With Active Directory support
[X] CUPS         With CUPS printing support
[X] WINBIND      With WinBIND support
[X] ACL_SUPPORT  With ACL support
[ ] FAM_SUPPORT  With File Alteration Monitor
[ ] SYSLOG With Syslog support
[ ] QUOTAS       With Disk quota support
[X] UTMP         With UTMP accounting support
[ ] MSDFS        With MSDFS support
[ ] PAM_SMBPASS  With PAM authentication vs passdb backends
[ ] CLUSTER      With experimental cluster support
[ ] DNSUPDATE    With dynamic DNS update
[ ] EXP_MODULES  With experimental modules
[X] POPT         With system-wide POPT library

Собственно, у вас они могут и не все быть такие, однако, из необходимых - это winbindd, поддержка ACL и AD. После инсталляции, идём ставить керберос:

lissyara$ cd /usr/ports/security/heimdal
lissyara$ make install clean

Тут тоже имеем голубенькое окошко:

Options for heimdal 0.7.2_2
————————————————-
[ ] LDAP      Use OpenLDAP as the KDC backend
[ ] CRACKLIB  Use CrackLib for password quality checking
[ ] X11       Build X11 utilies

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

После инсталляции, рисуем конфиги:

/etc/krb5.conf

[libdefaults]
default_realm = MY-DOMAIN.LOCAL
[realms]
MY-DOMAIN.LOCAL = {
kdc = MY-DOMAIN.LOCAL
admin_server = MY-DOMAIN.LOCAL
}
[domain_realm]
.my-domain.local = MY-DOMAIN.LOCAL
[logging]
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmin.log
default = FILE:/var/log/krb5lib.log

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

lissyara$ ping my-domain.local
PING my-domain.local (192.168.0.103): 56 data bytes
64 bytes from 192.168.0.103: icmp_seq=0 ttl=126 time=0.311 ms
64 bytes from 192.168.0.103: icmp_seq=1 ttl=126 time=0.398 ms
64 bytes from 192.168.0.103: icmp_seq=2 ttl=126 time=0.391 ms
64 bytes from 192.168.0.103: icmp_seq=3 ttl=126 time=0.470 ms
^C
— my-domain.local ping statistics —
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.311/0.393/0.470/0.056 ms
lissyara$ host my-domain.local
my-domain.local has address 192.168.0.42
my-domain.local has address 192.168.0.43
my-domain.local has address 192.168.0.103
my-domain.local mail is handled by 10 exchserv.my-domain.local.
lissyara$

Поэтому я указал имя домена - контроллеров три, и в случае падения какого-то - автоматически подцепится другой.

/etc/hosts

::1                     localhost.my-domain.local localhost
127.0.0.1               localhost.my-domain.local localhost
192.168.31.10		smbsrv.my-domain.local smbsrv
192.168.31.10		smbsrv.my-domain.local.

Надо заметить, что эти данные соответствуют имени хоста:

lissyara$ hostname
smbsrv.my-domain.local
lissyara$

/usr/local/etc/smb.conf

printable		= Yes
use client driver	= yes

# шара ‘data’
[data]
# каммент к шаре
comment                 = Shares for Documents
# путь к шаре на диске
path                    = /shares/data
# список тех, кому разрешён доступ на чтение
read list               = “@MY-DOMAIN\Domain Users”
# список тех, кому разрешён доступ на запись
write list              = “@MY-DOMAIN\Domain Users”
# список тех, кому разрешёно ставить те самые галки,
# ради которых всё затевалось. инттересная особенность, в которую
# до конца не вкурил - в одинаковых конфигурациях, иногда можно
# указывать без домена, а иногда домен необходим.
# Все операции этих пользователей выполняются от рута!
admin users             = “@MY-DOMAIN\Admin Users”, MY-DOMAIN\lissyara# SAMBA

[global]
# Рабочая группа
workgroup	= MY-DOMAIN
# тип безопасности - Актив Директори
security	= ADS
# Сервер паролей - тут указывается контроллер домена
# но у меня их несколько - поэтому я указал имя домена
# благо оно резольвится в их имена.
password server	= MY-DOMAIN.LOCAL
# область kerberos
realm		= MY-DOMAIN.LOCAL
# имя машины в “сетевом окружении”
netbios name	= SMBSRV
# комментарий к имени машины
server string	= SAMBA shares server
# уровень логгирования - 0-10 - но никогда не оставляейте
# в 10 - очень быстро засрёт раздел с логами
#       log level	= 10
# файл логов - подробности о значении переменных
# есть в man smb.conf
log file	= /var/log/samba/%m.%U.log
# максимальный размер файла лога (kB)
max log size	= 50000
# диапазон отмапленых winbindd`ом uid пользователей
idmap uid	= 10000-20000
# диапазон отмапленых winbindd`ом gid пользователей
idmap gid	= 10000-20000
# использовать дефолтовый домен (имя юзера можно
# указывать без домена)
winbind use default domain = yes
# кодировка выводимых сообщений
display charset	= koi8-r
# кодировка в которой хранить на диске
unix charset	= koi8-r
# в какой кодировке общаться с досовскими клиентами
dos charset	= 866
# for mail
template homedir = /shares/mail/%U

[printers]
comment			= All Printers
path			= /var/spool/samba
# browseable		= No
public			= yes
# Доступ к шаре тока на чтение
read only               = No
# маска для создаваемых файлов
create mask             = 0660
# маска для создаваемых директорий
directory mask          = 0770
# наследовать владельца (вышестоящей директории)
inherit owner           = yes
# наследовать ACL
inherit acls            = yes
# наследовать права
inherit permissions     = yes
# позвоялет редактору прав из винды корректно обрабатывать
# наследуемые права
map acl inherit         = yes
# блокировки - иногда бывают грабли без этого пункта
locking                 = no

/etc/nsswitch.conf

group: files winbind
passwd: files winbind
group_compat: nis
passwd_compat: nis
hosts: files dns
networks: files
shells: files

После чего, получаем билет от кербероса (в этом и следующем действии используется доменный пользователь. Иногда, его приходится указывать как lissyara@MY-DOMAIN.LOCAL - иначе не прокатывает):

lissyara$ kinit lissyara
lissyara@MY-DOMAIN.LOCAL’s Password:
kinit: NOTICE: ticket renewable lifetime is 1 week
lissyara$

И вводим машину в домен:

lissyara$ net join -U lissyara
lissyara’s password:
Using short domain name — MY-DOMAIN
Joined ‘SMBSRV’ to realm ‘MY-DOMAIN.LOCAL’
lissyara$

Можно добавлять строчку в /etc/rc.conf:

samba_enable=”YES”

и запускать самбу:

lissyara$ /usr/local/etc/rc.d/samba start
Removing stale Samba tdb files: . done
Starting nmbd.
Starting smbd.
Starting winbindd.
lissyara$

Для вящей красоты, можно сделать так:

lissyara$ id administrator
uid=10001(administrator) gid=10002(domain users) groups=10002(domain users)
lissyara$ chown Administrator:”Domain Users” /shares/data
lissyara$ ll /shares | grep data
drwxr-xr-x  4 administrator  domain users      512 15 июн 12:31 data
lissyara$

Вот, пожалуй и всё. Галочки прекрасно ставятся, поведение как у винды… Тока денег платить не надо, да активации не просит.

P.S. Где-нить в процессе, до запуска самбы, не забываем включить ACL на самой файловой системе, где у нас шары, что-то типа такого:

lissyara$ umount /shares
lissyara$ tunefs -a enable /shares
tunefs: ACLs set
lissyara$ mount /shares
lissyara$ mount | grep acl
/dev/ad0s1g on /shares (ufs, local, soft-updates, acls
lissyara$

P.S.2 Владельцы контроллера домена с русской виндой, скорей всего, будут летать как фанера над парижем - я слабо представляю в какой кодировке надо подсовывать юзеров в таком случае

P.S.3 Для тех кто в танке - до кучи можно выбрать фряху из под винды, через управление компьютером -> подключиться к другому. И точно как с виндой рулить подключенными юзерами и даже рестартовать сервисы.

Похожие публикации

1 комментарий

dpaul 28 июля, 2009 17:26:13 EEST .:. ID #14953 .:.

>>Владельцы контроллера домена с русской виндой, скорей всего, будут летать как фанера над >>парижем - я слабо представляю в какой кодировке надо подсовывать юзеров в таком случае
Можно использовать числовой идентификатор пользователя и группы-
chown 10001:10002 /shares/data

Возник вопрос по этой теме, или есть что добавить? Говорите!

  1. Зарегистрированным пользователям вводить защитный код (captcha) не приходится.
  2. Загрузить свою аватарку Вы сможете, зарегистрировавшись на сервисе www.gravatar.com
Публикуя комментарий Вы подтверждаете, что ознакомились c Правилами и принимаете их!
HOMOSAPIENS ONLY! :)