
Это не совсем пост типа «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).

Для управления доменом нужен Adminpak, ссылка для загрузки есть в howto.

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

Выглядит все это достаточно радужно, но давайте о грустном. Что не работает:
- Сетевой обозреватель не работает вообще. 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 к сожалению нет.
