Pull to refresh

Comments 24

Все бы хорошо, но мне кажется что samba4 в роли контроллера домена AD еще для продакшена еще не готова. Для сети 50 и более лучше купить лицензию на мастдая. Слишком сложна инфраструктура AD. Потерять домен из-за какого нибудь бага в Samba4 будет обидно. Кроме того samba на данный момент не полноценная замена мастдаю, например нет поддержки сайтов (если я не ошибаюсь). Пожалуй AD одна из немногих служб которую пока что (полноценно) не поднять на *nix системах.
Я с вами соглашусь, прежде чем использовать samba4 в продакшен нужно полностью протестировать все ваши возможные варианты работы с таким доменом, и если все устраивает, только в этом случае стоит внедрять это решение.
В моем же случае, сеть состоит из более 1000 компьютеров, плюс это ФГУП ВНИИ, домен от MS на такое количество пользователей стоит баснословных денег… а без домена очень тяжело, в связи с этой ситуацией стараемся двигаться хоть каким-то путем в сторону домена…
Как давно внедрено у вас решение на samba4? Значительные косяки были? На клиентах стоит Win XP/7?
Каждой группе и пользователю нужно присвоить unix uid\gid для будущей нормальной работы xattr_acl на нашем втором сервере.

Не обязательно. Да и накладно вручную заводить значения этих атрибутов при большом количестве пользователей и следить за их уникальностью.
Для idmap есть прекрасный бэкенд IDMAP_RID:
man idmap_rid

При его использовании на всех samba серверах — у всех пользователей будут хорошие UID и GID (одинаковые на всех серверах) и будет обеспечена их уникальность в пределах домена.
По поводу уникальности, в Windows оснастка AD не дает указать uid\gid если он уже используется, а так же сама подставляет следующий uid\gid, идущий за последним указанным.
Но спасибо за наводку, изучу idmap_rid. Вы использовали его с samba4?
Вам просто не нужно контролировать UID/GID через AD. Idmap_rid позволяет однозначно вычислять UID/GID через SID пользователя «на лету», поэтому на всех машинах UID/GID будут одинаковыми.
Я это понял, штука очень интересная этот idmap_rid, я благодарен за наводку. Но в моем случае мне как раз обязательно нужно вручную контролировать UID/GID через AD, т.к. у меня уже есть файловое хранилище на базе samba3.6, которое было обновлено до samba4, а на этом хранилище тысячи тысячи файлов и папок с выставленными acl по уже существующим UID/GID… в этом случае два варианта, либо указывать группам и пользователям в AD старые UID/GID, либо перебивать в глубоко запутанной файловой структуре ACL, первое явно проще…
Но спасибо за наводку, изучу idmap_rid. Вы использовали его с samba4?

На макете — в «бой» решение не пошло (там всё сложно — smb proxy завести пытались ;) в итоге нашли лучшее решение), но с этим бэкендом получились самые хорошие результаты при использовании нескольких серверов.).
Интересно. Но это все еще уровень NT4 ??
По умолчанию при развертывании домена на samba4.1 устанавливается уровень Windows Server 2003, но можно поднять и до уровня 2008R2, но как дела с полноценной поддержкой 2008R2 насовсем ясно, для нас достаточно уровня 2003, если кто-то использовал более высокий уровень, попрошу подсказать, как там дела обстоят…

smbad:/etc # samba-tool domain level show
Domain and forest function level for domain 'DC=samba4,DC=servdesk,DC=ru'

Forest function level: (Windows) 2003
Domain function level: (Windows) 2003
Lowest function level of a DC: (Windows) 2008 R2
Как там обстоит дело с групповыми политиками?
Политики работают, а репликация SysVol — нет.
Давно мечтаю перетащить свою маленькою сеть на никсы. Остался только КД. Проблема в перетаскивании пользователей из Windows. У кого нить такое получалось?
Использую samba4 c 2009 года. В разных организациях. 150 человек тянет легко. Есть нюансы в настройках, которые почему-то не указываются в wiki. За 5 лет был один подвис, но тогда она еще альфой была. Для типичных контор без филиалов — правильное решение.
Есть нюансы в настройках, которые почему-то не указываются в wiki. За 5 лет был один подвис, но тогда она еще альфой была.

Поделитесь опытом в статье!
У меня к сожалению возможности использовать samba4 в таких масштабах нет, но вопрос очень интересный!
Статей доволно много на хабре… писать похожую не очень-то и хочется.
Так как я с samba4 с 2009, то исторически так сложилось, что у меня два samba4 выполнятю роль только домен-контроллера. На них же лежит sysvol, а samba-3.6 работают как помойки, сервера печати, хранилище инсталяционных программ и прочее…
Что не удобно:
Sysvol:
1. Для себя я опредилил, что один из серверов первичный контролер, а другой по крону стягивает sysvol rsync'ом как в вики. Можно конечно заморочится какой-нибудь кластерной системой, но я не так часто правлю групповые политики. В нашем случае два админа, договорились что все правки скриптов и политик делаем только на основном контроллере.
*/5 * * * * /usr/bin/rsync -XAaz --delete-after --password-file=/var/lib/samba/private/rsyncd.secret2 rsync://sysvol-replication@sds.office.company.ru/SysVol /var/lib/samba/sysvol/
2. Для обновления тикита bind
2. 4 2,5,8,11,14,17,20,23 * * * /usr/bin/kinit -R bind-user@OFFICE.COMPANY.RU
Для поддержания актуального ключа, к примеру если у вас samba3 на FreeBSD
/usr/bin/kinit --renewable -k host/parus.office.company.ru@OFFICE.COMPANY.RU
/usr/bin/kinit -R -k host/parus.company.ru@OFFICE.COMPANY.RU
На Линуксе подобная идея…
3. backup samba
tar -czf samba_db.tgz /etc/samba /var/lib/samba/private /var/lib/samba/sysvol
для уверенности
tar -czf samba_db.tgz /etc/samba /var/lib/samba
Этого достаточно, чтобы в gentoo перетащить в случае краха весь AD на новую машину. Для тех кто ненавидит gentoo: в этом дистрибутиве все нужные и свежие пакеты для самбы находятся по умолчанию и новые версии в портаджах появляются мгновенно. Т.е. не надо ничего качать и доставлять, если появляется новая версия или находится уязвимость.
Сам архив будет занимать смешной объем. Причем, если нет активной работы, то можно в открытом состоянии забэкапить, понятное дело что вы рискуете, но даже так все обычно хорошо поднимается. НО безусловно лучше остановить, заархивировать, потом запустить ;-) Второй домен контролеер как раз для этого и нужен.
4. Когда у вас один домен и вы не собираетесь использовать в будущем два домена или более, то лучше не заморачиваться с rfc2307, так как idmap_rid проще!!! Но если Вам не нравится идея добавления к базовому значению uid sid'а пользователя, группы, то помимо прописывания в AD uid пользователя и группы, вам так же нужно будет прописать uidNumber для всех компьютеров пользователей, через дополнительные атрибуты. Вот это больше всего парит при добавлении нового компьютера в систему. Можно сгородить скрипт, но все это как-то не красиво. Простое решение — не использовать rfc2307 для простых организаций укоторых не будет более одного домена.
ldbedit -H /var/lib/samba/private/idmap.ldb для правки UID тех системных групп, которым не удасться просавить uidNumber. Тут не бойтесь, все просто.
Я работал как с idmap_rid, так и с rfc2307. Когда нужна экономия номеров uid, у вас один сервер/хранилище используется для разных доменов, то rfc2307 ваш выбор, а если вы ленивы, то пользуйтесь idmap_rid

5. Для сторонних программ/серверов нужно выгружать ключи и прописывать их.
samba-tool domain exportkeytab --principal=host/sds.office.company.ru@OFFICE.COMPANY.RU /etc/krb5.keytab

Да, эти небольшие неудобства — плата за бесплатность ;-) Новые DC или сервера не так часто добавляются, так что можно потерпеть при первоночальной настройке. Зато как приятно, после ядерного взрыва из малюсенького бэкапа быстро развернуть погибший AD на новом сервере ;-)))
Спасибо. Это и есть ньюансы в настройках?
Сохраню для себя — пригодится.
Для тех кто ненавидит gentoo: в этом дистрибутиве все нужные и свежие пакеты для самбы находятся по умолчанию и новые версии в портаджах появляются мгновенно.

Её не ненавидят ;). Просто не любят те, кто не умеет её готовить.
А вообще в крупной инсталляции (любая малая инсталляция стремится стыть крупной!) с её обновлением начинаются проблемы. Всё-таки это скорее дистрибутив для экспериментов (и в этом ей пожалуй нет равных!). Gentoo надо регулярно обновлять. Если обновлять нерегулярно — появляются проблемы с обновлением…
Причём регулярное обновление тоже может принести проблемы (маловероятно, но может).
Поэтому держать большой парк gentoo серверов порой выходит накладно.
Честно говоря самба стоит давно и основные проблемы были с ней, когда я обнавлялся с какой-то альфы… Приходилось удалять в tdb файлах объекты и проче, нарезать в ручную партиции для DNS семы, короче жесть, только чтобы не персоздавать домен заново ;-))) Но на то она и альфа, чтобы не гарантировать беспроблемную работу.
По поводу gentoo. На самом деле у меня есть сервера, где стоит, к примеру, такое чудо как Oracle 9i, а оно как известно зависит от старых glibc и прочей хрени. В случае gentoo не так сложно систему 2002-2004 года обновить до текущего состояния, для того чтобы она, к примеру работала в виртуалке на KVM с драйверами virtio. Только не надо сразу ставить последнее дерево портов. Нужно скачать несколько промежуточных. Т.е. обновляемся до 2005 года, дале до 2006 и так далее. В итоге самый старый сервак можно обновить до текущего состояния, не снося ничего! Да, согласен, что есть опасность возникновения проблем, но для этого виртуалки и созданы, чтобы сначало это проделать на копии, а потом в реальной системе запустить. Мне проще обновлять все сервера, чем их переустанавливать и вспоминтать все ньюансы… А так да, генту для умеющих ее готовить ;-)
Я сейчас с Zentyal экспериментирую. В домен влетел как пуля, юзеры бегают туда обратно, отключаешь Win Serv и линь в одиночку отлично работает. Руки не дошли до DNS.
Тут было мнение, что мол в винде все просто для домохозяек. Клик, клик и домен. Это было последней фишкой винды. Но в этом сервере все так же просто. и при том что это СПО.
Наверное будет столько же возмущений теперь уже со стороны линуксоидов. Типа все графическое, не тру линукс. В реальности, начинающему сложно с наскоку одолеть пингвина. Но если начать в маленькой фирме домен с такого Linux то дальнейшее направление человека будет именно в Linux.
Работал как c idmap_rid, так и с rfc2307. Если используете rfc2307, то нужно не забыть, что не всем группам UID можно поставить, по этому ldbedit вам в помощь, при разворачивании какой-нибудь новой файловой помойки, чтобы поправить uid группе «Прошедшие проверку». Правится все легко и просто. Все эти UID одинаковые нужны для того чтобы не болела голова при переносе данных или в случае восстановления из backup'а.
Если вы опытный админ, и чувствуете в себе силы, «если что разобраться», то даже не сомневайтесь в переходе на samba4. Обычную фирму с несколькими сотнями человек с двумя контролерами без всяких «лесов» только так переведете.
Если будете ставить bind, то не забудьте обновлять ключ по крону от биндового пользователя, а то есть все шансы поиметь проблемы с затупливанием ВСЕГО bind DNS!!! при обновлении зоны.
Прошу прощения, что задаю вопрос спустя полгода: а как правильно делать бэкап домена на основе samba4?
В Вашем руководстве для sssd на втором сервере используется отдельный keytab, причём для принципала, соответствующего контроллеру. А не проще и правильнее сначала сделать net ads join, образуется /etc/krb5.keytab (если не образуется, то вызвать net ads keytab create) с принципалом второго сервера, который и использовать в sssd, с указанием этого второго принципала?
т.е.

ldap_krb5_keytab = /etc/krb5.keytab
ldap_sasl_authid = samba3@SAMBA4.SERVDESK.RU

имя определить через klist -k /etc/krb5.keytab.т.к. буквы в имени м.б. и заглавными
Sign up to leave a comment.

Articles