Главная | Контакты | Настройки СМЕНИТЬ ПАЛИТРУ:

Главная > Программы

Настройка Samba от Lissyara

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

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

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


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

Автор: Lissyara

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

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

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

# cd /usr/ports/net/samba3/
# 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. После инсталляции, идём ставить керберос:

# cd /usr/ports/security/heimdal
# 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
Комментарий к конфигу кербероса - у меня, с этой машины, домен пингуется и резольвится по имени:
# 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
# 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.

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

/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.
Надо заметить, что эти данные соответствуют имени хоста:
# hostname
smbsrv.my-domain.local
/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 - иначе не прокатывает):

# kinit lissyara
lissyara@MY-DOMAIN.LOCAL's Password:
kinit: NOTICE: ticket renewable lifetime is 1 week
И вводим машину в домен:
# net join -U lissyara
lissyara's password:
Using short domain name - MY-DOMAIN
Joined 'SMBSRV' to realm 'MY-DOMAIN.LOCAL'
Можно добавлять строчку в /etc/rc.conf:
samba_enable="YES"
и запускать самбу:
# /usr/local/etc/rc.d/samba start
Removing stale Samba tdb files: . done
Starting nmbd.
Starting smbd.
Starting winbindd.
Для вящей красоты, можно сделать так:
# id administrator
uid=10001(administrator) gid=10002(domain users) groups=10002(domain users)
# chown Administrator:"Domain Users" /shares/data
ll /shares | grep data
drwxr-xr-x 4 administrator domain users 512 15 июн 12:31 data

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

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

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

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

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


Главная > Программы