Состояние SAMBA 4 на данный момент

в 2:35, , рубрики: active directory, linux, samba4, метки: ,

image

Это не совсем пост типа «apt-get howto», я просто хотел резюмировать итоги моих выходных и текущего состояния SAMBA4, можно ли это вообще использовать.

Ну, я надеюсь все в курсе, что этот без иронии прекрасный файловый сервер в своей 4-ой версии перевалил за планку beta-версии. Это собственно и сподвигло немного покрутить ее. Меня давно уже не пугает статус beta в развитии проекта, все же пользуюся gmail и dropbox;) Главное, чтобы разработчики адекватно представляли себе этот этап. SAMBA Team я глубоко уважаю, и отношу их как раз к такому типу разработчиков.

Система на которой я все это буду развертывать, ubuntu 12.04 LTS. И на данный момент версия samba4 там alpha18, чему я был немного расстроен.

Инсталляция успешно не проходит, у одного из файлов нет прав на исполнение, однако это легко лечится. Пошаговая инструкция и карта «где в Мордоре можно наступить на грабли» находится тут:
Установка Samba4 в качестве контроллера домена на Ubuntu Server 12.04

После того как aptitue закончит работу, процедура создания работоспособного домена сводится к строчке:

root@mserv:#/usr/share/samba/setup/provision --realm=example.local --domain=example --adminpass=4sweNdooG --server-role='domain controller'

Looking up IPv4 addresses
Looking up IPv6 addresses
No IPv6 address will be assigned
Setting up share.ldb
Setting up secrets.ldb
Setting up the registry
Setting up the privileges database
Setting up idmap db
Setting up SAM db
Setting up sam.ldb partitions and settings
Setting up sam.ldb rootDSE
Pre-loading the Samba 4 and AD schema
Adding DomainDN: DC=example,DC=local
Adding configuration container
Setting up sam.ldb schema
Setting up sam.ldb configuration data
Setting up display specifiers
Adding users container
Modifying users container
Adding computers container
Modifying computers container
Setting up sam.ldb data
Setting up well known security principals
Setting up sam.ldb users and groups
Setting up self join
Adding DNS accounts
Creating CN=MicrosoftDNS,CN=System,DC=example,DC=local
Creating DomainDnsZones and ForestDnsZones partitions
Populating DomainDnsZones and ForestDnsZones partitions
See /var/lib/samba/private/named.conf for an example configuration include file for BIND
and /var/lib/samba/private/named.txt for further documentation required for secure DNS updates
Setting up sam.ldb rootDSE marking as synchronized
Fixing provision GUIDs
A Kerberos configuration suitable for Samba 4 has been generated at /var/lib/samba/private/krb5.conf
A phpLDAPadmin configuration file suitable for administering the Samba 4 LDAP server has been created in /var/lib/samba/private/phpldapadmin-config.php .
Once the above files are installed, your Samba4 server will be ready to use
Server Role:           domain controller
Hostname:              mserv
NetBIOS Domain:        EXAMPLE
DNS Domain:            example.local
DOMAIN SID:            S-1-5-21-1715263971-3761441621-3169644295

Это все.
После окончания действия скрипта необходимо добавить пару строк в конфиг bind и apparmor (если он у вас есть), чтобы bind мог работать с файлами зон генерируемые samba. Однако это не сложно, вся информация есть в howto по ссыле выше.

Ну DHCP самом собой, мне он правда был не нужен.
После старта samba4 и bind видим что samba слушат гораздо больше портов чем 3-я версия раньше.

root@mserv:# netstat -tupl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 *:3268                  *:*                     LISTEN      1327/samba      
tcp        0      0 *:3269                  *:*                     LISTEN      1327/samba      
tcp        0      0 *:ldap                  *:*                     LISTEN      1327/samba      
tcp        0      0 *:loc-srv               *:*                     LISTEN      1324/samba      
tcp        0      0 *:netbios-ssn           *:*                     LISTEN      1323/samba      
tcp        0      0 *:kpasswd               *:*                     LISTEN      1329/samba      
tcp        0      0 mserv.example.lo:domain *:*                     LISTEN      1301/named      
tcp        0      0 localhost:domain        *:*                     LISTEN      1301/named      
tcp        0      0 *:ssh                   *:*                     LISTEN      658/sshd        
tcp        0      0 *:kerberos              *:*                     LISTEN      1329/samba      
tcp        0      0 localhost:953           *:*                     LISTEN      1301/named      
tcp        0      0 *:ldaps                 *:*                     LISTEN      1327/samba      
tcp        0      0 *:microsoft-ds          *:*                     LISTEN      1323/samba      
tcp        0      0 *:1024                  *:*                     LISTEN      1324/samba      
tcp6       0      0 [::]:3268               [::]:*                  LISTEN      1327/samba      
tcp6       0      0 [::]:3269               [::]:*                  LISTEN      1327/samba      
tcp6       0      0 [::]:ldap               [::]:*                  LISTEN      1327/samba      
tcp6       0      0 [::]:loc-srv            [::]:*                  LISTEN      1324/samba      
tcp6       0      0 [::]:netbios-ssn        [::]:*                  LISTEN      1323/samba      
tcp6       0      0 [::]:kpasswd            [::]:*                  LISTEN      1329/samba      
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN      658/sshd        
tcp6       0      0 [::]:kerberos           [::]:*                  LISTEN      1329/samba      
tcp6       0      0 [::]:ldaps              [::]:*                  LISTEN      1327/samba      
tcp6       0      0 [::]:microsoft-ds       [::]:*                  LISTEN      1323/samba      
tcp6       0      0 [::]:1024               [::]:*                  LISTEN      1324/samba      
udp        0      0 mserv.example.loca:ldap *:*                                 1328/samba      
udp        0      0 *:ldap                  *:*                                 1328/samba      
udp        0      0 mserv.example.l:kpasswd *:*                                 1329/samba      
udp        0      0 *:kpasswd               *:*                                 1329/samba      
udp        0      0 mserv.example.lo:domain *:*                                 1301/named      
udp        0      0 localhost:domain        *:*                                 1301/named      
udp        0      0 mserv.example.:kerberos *:*                                 1329/samba      
udp        0      0 *:kerberos              *:*                                 1329/samba      
udp        0      0 mserv.exampl:netbios-ns *:*                                 1325/samba      
udp        0      0 192.168.2.25:netbios-ns *:*                                 1325/samba      
udp        0      0 *:netbios-ns            *:*                                 1325/samba      
udp        0      0 mserv.examp:netbios-dgm *:*                                 1325/samba      
udp        0      0 192.168.2.2:netbios-dgm *:*                                 1325/samba      
udp        0      0 *:netbios-dgm           *:*                                 1325/samba      
udp6       0      0 fe80::5054:ff:fe8c:ldap [::]:*                              1328/samba      
udp6       0      0 [::]:ldap               [::]:*                              1328/samba      
udp6       0      0 fe80::5054:ff:f:kpasswd [::]:*                              1329/samba      
udp6       0      0 [::]:kpasswd            [::]:*                              1329/samba      
udp6       0      0 fe80::5054:ff::kerberos [::]:*                              1329/samba      
udp6       0      0 [::]:kerberos           [::]:*                              1329/samba    

Результат: вы получаете работоспособный AD домен, в который без лишних телодвижений заводятся Windows станции ( в моем случае XPSP3 и W7SP1).

Состояние SAMBA 4 на данный момент

Для управления этим доменом установив Adminpak на любую Windows станцию.

Состояние SAMBA 4 на данный момент

Групповые политики

Состояние SAMBA 4 на данный момент

Выглядит все это достаточно радужно, но давайте о грустном. Что не работает:

  • Сетевой обозреватель не работает вообще. Wiki повествует, что для этой цели надо использовать nmbd и smbd (как я понял 3-ю версью Samba параллельно с 4-ой), но у меня это не поулчилось.
  • Нет поддержки печати, опять же предлагают использовать smbd. Не пробовал.
  • Различные проблемы репликации, в частности у меня не получилось присоединиться к существующему 2008 AD домену, но тут есть ньюанс, домен переименовывали, и вполне допускаю, что процедура прошла кривовато, по крайней мере те ошибки которые я получал при join ссылались на незаконченое переименование домена. У меня не было возможности поднять чистый 2008 AD, чтобы проверить получится ли join с новым доменом.
  • Как файловый сервер используется ntvfs, не очень стабильный новый файловый сервер. Насколько я понял в beta версии 4-ки его отключили, и по-умолчанию стали использоваться s3fs, т.е файловый сервер из 3-й версии.

В общем работы у команды SAMBA еще море, но прогресс радует. Если сетевой обозреватель будет работать, то для небольших сетей это вполне себе замена AD от Microsoft, однако, я не тестировал стабильность и производительность нового сервера, и поэтому не могу рекомендовать samba4 для серьезных задач. Хотя..;)

PS: Я хотел закончить на этом, но решил все же попробовать установить последнюю свежую бета-версию, которая доступна в репзитории ubuntu для версии 12.10. Оставим в стороне вопросы опасности поломать LTS, экспериментируем же.

Сразу предупреждаю, в beta2 не работоспособен s3fs, smbd падает в силу различных причин. Помогает только отключение smbd и использование ntvfs, для этого надо добать в smb.conf:

server services = +smb -s3fs                                                                                                                                     
dcerpc endpoint servers = +winreg +srvsvc  

Обновить следет пакеты

libdcerpc-server0 libdcerpc0 libgensec0 libndr-standard0 libndr0 libregistry0 libsamba-credentials0 libsamba-hostconfig0 libsamba-policy0 libsamdb0 libsmbclient-raw0 python-samba samba-dsdb-modules samba4 samba4-common-bin python-ldb libsamba-util0

Ошибок при обновлении не будет если не удалять содержимое /var/lib/samba

Метод создания домена тот же.

Заметных изменений по сравнению с alpha18 из репозитория 12.04 к сожалению нет.

Автор: SarganSaor

* - обязательные к заполнению поля