Как настроить и интегрировать сервер Ubuntu 10.04 LTSPv5 в домен Windows 2008 Active Directory
Введение
В условиях экономии многие организации используют старое железо и свободное ПО. В этой инструкции показано, как обновить LTSP‑окружение на Ubuntu 10.04 с LTSPv5 и интегрировать его в домен Windows Server 2008 Active Directory.
Кратко: описано, как подготовить сервер, какие пакеты установить, как настроить Kerberos/Samba/Winbind и PAM, и как проверить результат. Предполагается базовый опыт работы с Linux.
Предпосылки
- Наличие действующего домена Windows 2008 Active Directory и DNS. DHCP должен быть настроен и раздавать адреса. Контроллер домена может быть и DHCP‑сервером. Если эти компоненты не настроены — настройте их перед началом.
- У вас есть базовые навыки: навигация по терминалу, установка пакетов, редактирование файлов (vi, nano).
Важно: Ubuntu 10.04 — устаревшая версия. При возможности рассматривайте обновление до поддерживаемой версии Ubuntu и современных инструментов (sssd/realmd).
Аппаратная конфигурация
Сервер Ubuntu LTSP
- Dell PowerEdge 2650
- 2× Dual Core Intel Xeon 1.80 GHz
- 8 ГБ RAM
- 3×73 ГБ SCSI U320 10K в RAID5
- Двойной блок питания
Тонкие клиенты
- Dell Optiplex GX260
- 1 ГБ RAM
- Встроенная видеокарта
- Без HDD
Схема сети

Пример имён и ролей в сети (подсеть 10.0.0.0/24):
dc.domain.internalWindows 2008 Server с Active Directory и DNS
server.domain.internalWindows 2003 Server с домашними каталогами пользователей и шарингом
thinserver.domain.internalUbuntu 10.04.2 с LTSPv5
dhcp.domain.internalCentOS 5.0 с dhcpd
Установка Ubuntu LTSP
Следуйте официальным инструкциям по установке Ubuntu с LTSP. Если на сервере более 4 ГБ RAM, установите PAE‑ядро:
sudo apt-get install linux-generic-pae linux-headers-generic-paeДобавление thinserver в домен Windows
Ниже пошаговая конфигурация для подключения Ubuntu к AD с использованием Samba/Winbind и Kerberos.
- Установите необходимые пакеты:
sudo apt-get install samba smbclient winbind libpam-cracklib krb5-user- Проверьте имя хоста:
hostnameЕсли результат не thinserver.domain.internal — переименуйте:
hostname thinserver.domain.internal- Отредактируйте /etc/resolv.conf, указав контроллер домена как первичный DNS:
search domain.internal
nameserver 10.0.0.10- На контроллере домена создайте A‑запись для thinserver. Проверьте разрешение:
nslookup domain.internalОжидаемый вид (пример):
test@thinserver:~$ nslookup domain.internal
Server: 10.0.0.10
Address: 10.0.0.10
Name: domain.internal
Address: 10.0.0.10- Остановите Samba и Winbind перед внесением изменений:
/etc/init.d/smbd stop
/etc/init.d/winbind stop- Создайте резервные копии конфигов (дата в имени):
d=`date "+%m%d%y"`
cp /etc/samba/smb.conf{,.$d}
cp /etc/krb5.conf{,.$d}
mkdir /etc/pam.d/backup
cd /etc/pam.d/
for file in `ls`;do cp $file{,.$d}; done
mv *.$d backup/- Отредактируйте /etc/krb5.conf (пример конфигурации с использованием DOMAIN.INTERNAL):
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = DOMAIN.INTERNAL
default_keytab_name = FILE:/etc/krb5.keytab
default_tgs_entypes = rc4-hmac des-cbc-md5
default_tkt_entypes = rc4-hmac des-cbc-md5
permitted_entypes = rc4-hmac des-cbc-md5
dns_lookup_realm = true
dns_lookup_kdc = true
ticket_lifetime = 24h
forwardable = yes
[realms]
DOMAIN.INTERNAL = {
kdc = DC.DOMAIN.INTERNAL:88
default_domain = DOMAIN.INTERNAL
}
[domain_realm]
domain.internal = DOMAIN.INTERNAL
.domain.internal = DOMAIN.INTERNAL
[appdefaults]
forwardable = true
pam = {
minimum_uid = 16777216
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
krb4_convert = false
DOMAIN.INTERNAL = {
ignore_k5login = true
}
}
- Отредактируйте /etc/samba/smb.conf (пример):
[global]
workgroup = DOMAIN
password server = *
realm = DOMAIN.INTERNAL
local master = no
security = ads
idmap backend = tdb
idmap uid = 16777216-33554431
idmap gid = 16777216-33554431
idmap config DOMAIN : backend = rid
idmap config DOMAIN : range = 16777216-33554431
idmap cache time = 60
template homedir = /home/%u
template shell = /bin/bash
kerberos method = secrets and keytab
dedicated keytab file = /etc/krb5.keytab
winbind separator = +
winbind use default domain = yes
winbind refresh tickets = true
winbind cache time = 10
winbind offline logon = true
winbind enum users = Yes
winbind enum groups = Yes
passdb backend = tdbsam
server string = Samba Server Version %v
log file = /var/log/samba/%m.log
max log size = 50
Важно: держите дополнительный root‑терминал открытым на случай ошибок.
- Рекомендуется создать группу linux_admins в AD и дать ей sudo‑права, либо использовать domain admins.
Отредактируйте /etc/sudoers:
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
%linux_admins ALL=(ALL) ALL- Настройка PAM. Отредактируйте файлы в /etc/pam.d/ по примеру ниже.
Файл /etc/pam.d/common-account:
account sufficient pam_winbind.so use_first_pass cached_login
account required pam_unix.so broken_shadowФайл /etc/pam.d/common-auth:
auth [success=2 default=ignore] pam_unix.so nullok_secure
auth [success=1 default=ignore] pam_winbind.so krb5_auth krb5_ccache_type=FILE cached_login try_first_pass
auth requisite pam_deny.so
auth required pam_permit.soФайл /etc/pam.d/common-password:
password requisite pam_cracklib.so retry=3 minlen=8 difok=3
password [success=2 default=ignore] pam_unix.so obscure use_authtok try_first_pass sha512
password [success=1 default=ignore] pam_winbind.so use_authtok try_first_pass
password requisite pam_deny.so
password required pam_permit.so
password optional pam_gnome_keyring.soФайл /etc/pam.d/common-session:
session required pam_env.so
session required pam_unix.so
session required pam_winbind.so use_first_pass
session required pam_limits.so
session required pam_mkhomedir.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uidФайл /etc/pam.d/common-session-noninteractive:
session [default=1] pam_permit.so
session requisite pam_deny.so
session required pam_permit.so
session optional pam_winbind.so cached_login
session required pam_unix.so - Убедитесь, что /etc/nsswitch.conf использует winbind для учётных записей:
passwd: compat winbind
group: compat winbind
shadow: compat- Присоединение к домену и запуск служб:
kinit [email protected]
net ads join -U administrator
net ads keytab create -U administrator
/etc/init.d/smbd start
/etc/init.d/winbind startПроверки:
wbinfo -u
wbinfo -g
getent passwdДолжно быть возможно войти в систему под доменным пользователем. Проверьте наличие Kerberos‑токена:
klistОтладка и распространённые ошибки
- Проверьте DNS: ошибка разрешения имён — самая частая причина проблем при присоединении к домену. nslookup и dig помогут.
- Проблемы Kerberos: убедитесь, что время на серверах синхронизировано (NTP). Различия >5 минут ломают Kerberos.
- Проверьте логи: /var/log/samba/*.log, /var/log/syslog, /var/log/krb5libs.log.
- Если wbinfo не показывает пользователей — проверьте параметры idmap и права доступа к AD.
- Если вход доменного пользователя выдаёт “authentication failed” — проверьте kinit и net ads join; пересоздайте ключевой файл keytab.
Полезные команды для отладки:
net ads testjoin
wbinfo -u
wbinfo -g
wbinfo -t
getent passwd 'DOMAIN\\user'
kinit [email protected]
klist
tail -f /var/log/samba/%m.logАльтернативные подходы
- Использовать sssd и realmd вместо winbind/Samba для интеграции с AD. sssd даёт более современную систему кэширования, поддержку offline‑входа и централизованную авторизацию.
- Для новых развёртываний рассмотреть использование актуальной версии Ubuntu и LTSP‑альтернатив (например, LTSP 19+ или PXE‑пакеты), так как Ubuntu 10.04 устарел.
- Использовать отдельный DHCP либо роль проксирования при сложных сетях.
Контрольные списки (роль‑ориентированные)
Администратор домена:
- Создать A-запись для thinserver
- Создать группу linux_admins и добавить пользователей
- Дать права на создание/чтение домашнего каталога
Системный администратор Ubuntu:
- Установить пакеты Samba/Winbind/Kerberos
- Настроить /etc/krb5.conf и /etc/samba/smb.conf
- Настроить PAM и nsswitch
- Присоединить хост к домену и проверить wbinfo
Операционный персонал (helpdesk):
- Проверить доступ доменных учётных записей
- Сообщать о несинхронизированном времени
- Собирать логи при ошибках входа
Безопасность и рекомендации
- Храните резервные копии конфигурационных файлов с датой.
- Минимизируйте права: группа linux_admins безопаснее, чем давать domain admins всем.
- Ограничьте доступ к /etc/krb5.keytab и к файлам keytab.
- Используйте защищённые каналы консоли при передаче паролей.
Критерии приёмки
- Сервер успешно присоединён к домену (net ads testjoin возвращает OK).
- wbinfo -u / wbinfo -g показывают пользователей и группы домена.
- Доменные пользователи могут войти в систему и получают домашний каталог (/home/имя).
- Kerberos‑токен доступен (klist показывает билет).
Откат и резервные планы
- Если после изменений сервер перестаёт authentic-овать пользователей, верните резервные копии smb.conf, krb5.conf и PAM из /etc/pam.d/backup.
- Отключите сетевые изменения (временно используйте локальный DNS или hosts), чтобы восстановить доступ.
- Если ключевой файл keytab повреждён, пересоздайте его командой net ads keytab create.
Краткий метод (mini‑methodology)
- Подготовить DNS и A‑запись.
- Установить пакеты Samba/Winbind/Kerberos.
- Настроить krb5.conf и smb.conf.
- Настроить PAM и nsswitch.
- Присоединить сервер к домену.
- Проверить входы/логи.
Сводка
Важно контролировать DNS и время (NTP). Samba+Winbind в сочетании с Kerberos и правильно настроенным PAM обеспечивает возможность аутентификации доменных пользователей на Ubuntu 10.04 LTSPv5. Для новых развёртываний рассмотрите современные альтернативы (sssd, realmd, новая Ubuntu).
Основные действия: установить пакеты, настроить krb5 и smb.conf, внести изменения в PAM, присоединить сервер и проверить wbinfo/klist.
Глоссарий (в одну строку)
AD — Active Directory; Kerberos — протокол сетевой аутентификации; Samba — реализация SMB/CIFS; Winbind — мост между Unix и Windows учётными записями.
Примечания
- Документ переводит и адаптирует практические шаги; тестируйте изменения в контролируемой среде перед применением в проде.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента