Подключение linux к windows server 2003

Подключение к домену Windows с компьютера под управлением Linux Большинству пользователей Linux и в голову не приходит, что они могут подключаться со

Содержание

  1. Подключение к домену Windows с компьютера под управлением Linux
  2. Как Линукс подключить к удаленному рабочему столу win2003
  3. Re: Как Линукс подключить к удаленному рабочему столу win2003
  4. Re: Как Линукс подключить к удаленному рабочему столу win2003
  5. Re: Как Линукс подключить к удаленному рабочему столу win2003
  6. Re: Как Линукс подключить к удаленному рабочему столу win2003
  7. Re: Как Линукс подключить к удаленному рабочему столу win2003
  8. Re: Как Линукс подключить к удаленному рабочему столу win2003
  9. Re: Как Линукс подключить к удаленному рабочему столу win2003
  10. Astra Linux 1.7 и Windows Server 2003 — доступ к шаре.
  11. max51_fkp
  12. max51_fkp
  13. Linux в домене Active Directory
  14. Содержание
  15. Общая информация
  16. Проверка требований
  17. Установка Samba
  18. Настройка Samba
  19. Проверка работы и отладка
  20. Дополнительная настройка
  21. Доступ к Samba из Windows 7 и 2008 r2
  22. Работа над ошибками
  23. Winbind не запускается
  24. Ошибка получения билета Kerberos

Большинству пользователей Linux и в голову не приходит, что они могут подключаться со своих компьютеров к домену Microsoft Windows. До сих пор это было невозможно. Приносить на работу ноутбуки под управлением Linux не запрещалось, но работать на них в домене было нельзя. Однако теперь, после очередного обновления целого ряда дистрибутивов Linux, такая возможность появилась, причем подключиться к домену Windows оказывается не так уж сложно — придется только немного отредактировать конфигурационные файлы.

В этой статье я расскажу, как подключиться к домену Windows с компьютера под управлением Linux при помощи утилиты Likewise-Open .

Скачать Likewise-Open можно с официального сайта . Выберите версию, подходящую для вашего дистрибутива. Если вы предпочитаете работать с графическим интерфейсом — выбирайте GUI-вариант.

Утилита распространяется в виде скомпилированного исполняемого двоичного файла. Чтобы ее установить, откройте окно терминала, перейдите в каталог, где хранится скачанный файл Likewise-Open и выполните следующую команду:

Затем выполните еще одну команду с правами администратора (используйте su или sudo).

Для GUI-приложения команда выглядит иначе:

XXX здесь — номер версии, YYY — архитектура вашего компьютера, а ZZZ — тип скачанного файла. Если вы выбрали GUI-приложение, завершить процесс установки вам поможет простой мастер.

Для использования этой утилиты на компьютере должен быть установлен компонент winbind. Если его нет, установите его с помощью Менеджера программ или командой sudo apt-get install winbind.

Редактирование файла «/etc/hosts»

Теперь нужно добавить данные контроллера домена в конфигурационный файл «/etc/hosts» в формате «IP_ADDRESS FDQN» (без кавычек), где «IP_ADDRESS» — это реальный IP-адрес контроллера домена, а «FDQN» — полностью определенное имя домена.

Это самый сложный момент: нужно настроить KRB5 и добавить в конфигурационный файл правильные сведения об области в следующем формате:

В этот раздел нужно добавить адрес своего контроллера домена. Учтите, что заглавные буквы используются здесь не случайно — без них конфигурация работать не будет.

После этого нужно отредактировать еще пару разделов. Во-первых, небольшой раздел над указателем [realms]. Если в файле «krb5.conf» раздела [libdefaults] нет, добавьте его:

Во-вторых, раздел [domain_realm]. Добавьте в него следующий текст:

На этом настройка KRB5 закончена.

Откройте файл «/etc/nsswitch» и добавьте в него следующие строки:

Возможно, сами строки в файле уже есть, но без «lsass». Если так — просто допишите «lsass» (без кавычек) в каждую строку.

Подключение к домену

Прежде чем запускать GUI-утилиту Likewise-Open для подключения к домену, необходимо установить сертификат на своем хост-компьютере. Для этого выполните следующую команду:

где ADMIN_ACCOUNT — имя учетной записи администратора на контроллере домена, а DOMAIN.INTERNAL — домен, к которому вы хотите подключиться. Для выполнения команды нужно ввести пароль от административной учетной записи. Чтобы убедиться, что сертификат установлен, выполните команду klist.

После этого можно запускать утилиту для подключения к домену. Для этого выполните команду sudo domainjoin-gui.

Указав необходимые регистрационные данные, нажмите кнопку «Подключиться к домену» (Join Domain). После успешного подключения выйдите и снова войдите в систему. Учтите, что имя пользователя в домене будет иметь формат «DOMAINusername», и не забывайте, что имя пользователя в домене — это не то же самое, что имя пользователя на локальном компьютере.

Со времени своего возникновения Linux прошел большой путь, и возможность подключения к доменам Windows недвусмысленно свидетельствует о зрелости платформы. И хотя на первый взгляд, процедура выглядит довольно утомительно, подключаться посредством Samba еще труднее.

Автор: Jack Wallen
Перевод SVET

Оцените статью: Голосов

Источник

Как Линукс подключить к удаленному рабочему столу win2003

Хочу вот что сделать! В офисе поднять сервак с win2003, на рабочие компы поставить Линукс и работать на сервере через удаленый рабочий стол! Вопрос в том вобще ктонибудь пробовал это делать и как это вобще нормально работает! И еще вопрос как сделать так чтобы при загрузке линукса он сразу же подключался к удаленному столу? Кто что посоветует буду рад! Зарание спосибо!

Re: Как Линукс подключить к удаленному рабочему столу win2003

Я сделал VNC с ssh форвардингом, хотя наверное можно и проще. Пароль сохраняется v

/.vnc/passwd, а чтобы сразу подключался — прописать его в local.start

Re: Как Линукс подключить к удаленному рабочему столу win2003

Так круто! А теперь можно для начинающих(ТОЕСТЬ ПОЧТИ ДЛЯ ТУПЫХ) сли можно по подробней!

Re: Как Линукс подключить к удаленному рабочему столу win2003

Хотя, если в офисе, ssh не нужен. ставь просто VNC Server на win и VNC Viewer на LIN и сделай доступ только из локалки

Re: Как Линукс подключить к удаленному рабочему столу win2003

Чё совсем с ума посходили?:)

И как вы себе это представляете? Как например 15 пользователей будут одновременно бюзать один рабочий стол и одну мышку/клавиатуру?

На линуксе ставишь rdesktop и (опционально) tsclient.

У rdesktop команда подключения к терминальному сервису будет выглядеть примерно так:

rdesktop -T192.168.0.1 -uusername -g1280x960 -rsound:off -k en-us 192.168.0.1

Re: Как Линукс подключить к удаленному рабочему столу win2003

Правильно глаголишь, а лучше все-таки на win2003 поднять ssh-сервер и коннектиться к нему, а rdesktop пустить по форвардингу портов. Так не надо будет открывать кучу портов на хосте (если тебе понадобится еще что-нибудь помимо удаленного рабочего стола). Ну и на win2003 сервер терминалов ессесно.

Re: Как Линукс подключить к удаленному рабочему столу win2003

> Так круто! А теперь можно для начинающих(ТОЕСТЬ ПОЧТИ ДЛЯ ТУПЫХ) сли можно по подробней!

Для начинающих есть документация и google.ru 🙂

Re: Как Линукс подключить к удаленному рабочему столу win2003

Источник

Astra Linux 1.7 и Windows Server 2003 — доступ к шаре.

max51_fkp

New member

Ситуация такая. Есть АРМ с AL 1.7 в Windows домене (DC 2012) и есть файл-сервер на Windows Server 2003 в том же домене. При попытке открыть расшаренную папку, которая расположена на 2003, комп с астрой показывает белый экран. При открытии таких же папок находящихся на 2008 R2 и 2012 всё работает корректно.

Подскажите, как сделать так, чтобы всё нормально открывалось и в случае с 2003? Спасибо.

P.S.
Я так понимаю, что в астре должна быть включена поддержка smb v1

New member

max51_fkp

New member

Огромное спасибо за комментарий! Я рассматриваю возможность переезда Win2003 на чтот другое, например, Win2012, но это займет некоторое время, т.к.:
а) это железка подключенная по фибре через brocade к сановской полке;
б) на нём 100500 хаотичных шар, которые растут, как грибы;
в) все папки каждого отдела организации лежат там и монтируются через GPO;
г) на нём все рабочие столы сотрудников, которые работают на RDS + всякие папки типа «мои документы» и т.д. и т.п.
Это в общих чертах. Так что буду копать в сторону второго варианта:

«поставить на Win2003 реализацию FTP/NFS/иного сервиса разделяемого файлового обмена и через него научить юзеров взаимодействовать с ресурсами из-под ALSE 1.7.»

Ну или подключать один из гипервизоров к полке и поднимать на нём виртуалку с тем же Win2012, но тут проблема в отсутствии FC-сетевух))

Источник

Linux в домене Active Directory

Содержание

Общая информация

Если вам нужно просто предоставить сетевой доступ к ресурсам Linux компьютера, то смотрите статью Samba.

В этой статье мы опишем как подключить Linux компьютер к домену под управлением Microsoft Active Directory и сделать из него файловый сервер.

После выполнения этой инструкции мы будем иметь в сети файловый сервер под управлением ОС Линукс, входящий в домен Windows 2003 и ничем не отличающийся от файлового сервера под Windows. Пользователи домена смогут обращаться к его ресурсам под своими учётными записями. Доступ регулируется группами домена AD.

По этой инструкции настраивались Debian (4, 5), Ubuntu 9.10, создавалась она на основе официальной документации и многих рекомендаций и инструкций из Интернета. Остальные Linux’ы настраиваются сходным образом.

Проверка требований

  • Проверяем что Samba собрана с поддержкой Kerberos:
  • Также проверим что поддерживается LDAP
  • Для корректной работы Samba в домене Windows 2003 нужны версии MIT Kerberos version >=1.3.1. Проверим:
  • Для корректной работы с Windows 2008 серверами сама Samba должна быть достаточно свежая:

Установка Samba

  • Устанавливаем сервер и клиент samba.

При настройке krb5-config лучше указывать IP адреса контроллеров домена, а не их DNS имена.

Настройка Samba

  • Для подключения к домену Active Directory удобно использовать утилиту Likewise-Open.
  • Для администрирования Samba удобно использовать SWAT или webmin, которые предоставляют веб интерфейс. Попасть на него можно по адресу http://server_address:901 и https://server_address:10000 соответственно, указав для соединения пользователя root. Но будьте осторожны — он полностью переписывает smb.conf и некоторые параметры может просто игнорировать. Лучше предварительно сделать резервную копию файла. Я сначала использовал SWAT, а затем дорабатывал конфигурационный файл /etc/samba/smb.conf руками. Вот, что осталось у меня не закоментированным (принтеры к этому серверу не подключены):

Мы описали два общих каталога:

  • backup — доступ имеют только пользователи входящие в группу BackupGroup в Active Directory. Они могут создавать и удалять файлы/каталоги
  • distrib — доступ имеют все пользователи входящие в группу DistribGroup в Active Directory

В приведённой конфигурации подразумевается, что eth0 — это сетевой интерфейс в локальную сеть, где домен имеет полное имя WORKGROUP.DOMAIN.LOCAL

  • редактируем /etc/nsswitch:
  • Проверим, что в /etc/hosts есть корректная запись для нашего сервера, также можно добавить записи для контроллеров доменов:
  • Удаляем если есть (или переносим в резервные копии) файл /etc/samba/secrets.tdb и все файлы из /var/lib/samba/*.tdb
  • Проверяем конфигурацию (не обязательно):
  1. testparm -s

В Ubunto testparm находится в пакете samba-common-bin

  • Проверим как Samba-3 winbind общается с контроллером домена Active Directory посредством протокола Kerberos:

На рассхождение времени в секундах указывает строка «Server time offset: -5». Обратите внимание, что протокол Kerberos зависим от времени, и расхождение с часами контроллера домена допускается лишь незначительное, поэтому желательно настроить NTP клиент (см. статьи по настройке NTP). В Ubuntu это указывается в файле /etc/default/ntpdate:

  • В Debian (и его сыновьях, таких как Ubuntu и внуках вроде Linux Mint) при установке пакета krb5-cofig сразу предлагается его настройка. Лучше всего попробовать работать с этими настройками, но если ничего предложено не было или мы хотим что-то изменить, то редактируем /etc/krb5.conf (я для более стабильной работы использовал ip адреса вместо имён серверов):
  • Проверим работает ли Kerberos, постараемся получить билет и просмотреть его:
  • Удалим полученный билет:
  • Присоединяемся к домену:

Всё, компьютер включен в домен, что можно проверить на контроллере. Даже если после приведённых строк получили следующие:

Проверка работы и отладка

  • Для удобства отладки сделаем ссылку на каталог журналов:
  • Запускаем samba и winbind:
  • Для проверки правильно ли подключение к домену можно посмотреть список пользователей и групп домена (не обязательно):

Если нас не понимают, то подсказываем пароль для wbinfo и смотрим: список доменов в сети, информацию о домене WORKGROUP, список пользователей и групп домена:

  • Проверяем, как работает NSS. Команда getent показывает инфо о пользователе, который может быть как в домене, так и юниксовый:
  • Теперь можно использовать ресурсы на линукс-сервере, на которые мы дали доступ, как обычные доменные ресурсы.

Дополнительная настройка

  • Можно также сопоставить (но это не обязательно) локальные учётные данные и из домена Windows. Для сопоставления пользователей редактируем файл /etc/samba/smbusers.conf:
  • для сопоставления (мапирования от англ. Map) групп домена и групп UNIX выполняем:
  • После того как всё отлажено, можно понизить уровень записи в журнал до «1». В /etc/samba/smb.conf:

Доступ к Samba из Windows 7 и 2008 r2

Начиная с этих версий параметры авторизации у MS поменялись. Скорее всего Samba вскоре это учтёт, а пока подружить системы можно изменив на Win7 свойства сетевой безопасности:

Пуск — Панель управления — Администрирование — Локальная политика безопасности — Локальные политики — Параметры безопасности

  • Сетевая безопасность: минимальная сеансовая безопасность для клиентов на базе NTLM SSP — убрать галочку с «Требовать 128-битное шифрование». Таких параметра два — выполнить для обоих
  • Сетевая безопасность: уровень проверки подлинности LAN Manager — выбрать в списке пункт «Отправлять LM- и NTML-ответы»

Работа над ошибками

Winbind не запускается

При запуске Samba обнаруживаем, что winbind не запустился:

В журнале log.winbindd обнаруживаем запись:

Видим, что добавлен «встроенный домен» (BUILTIN) и домен «название компьютера» (STORAGE), подключиться к домену AD не удалось.

Решение: Переподключить компьютер в домен. Удалять придётся с самого контроллера, т.к. комадна net ads leave скорее всего не поможет.

Ошибка получения билета Kerberos

При попытке получить билет Kerberos получили:

Решение: указать имя домена в другом регистре. Скорее всего нужны все заглавные

Источник

Здравствуйте. Не знаю где создавать подобные темы и в тг не хотелось писать столь много всего. Никак не хотят дружить рабочая станция с сервером. Делал все шаги по  документации Не знаю что делать уже. В логах (на сколько я их смог понять) идёт вот что при попытке подключения:

мая 13 16:43:13 mku2blinux1 systemd-sysv-generator[8692]: SysV service '/etc/rc.d/init.d/pppoe' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
мая 13 16:43:13 mku2blinux1 systemd-sysv-generator[8692]: SysV service '/etc/rc.d/init.d/rawdevices' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
мая 13 16:43:13 mku2blinux1 systemd-sysv-generator[8692]: SysV service '/etc/rc.d/init.d/openct' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
мая 13 16:43:13 mku2blinux1 systemd-sysv-generator[8692]: SysV service '/etc/rc.d/init.d/ethtool' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
мая 13 16:43:13 mku2blinux1 systemd-sysv-generator[8692]: SysV service '/etc/rc.d/init.d/openvpn' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
мая 13 16:43:13 mku2blinux1 systemd-sysv-generator[8692]: SysV service '/etc/rc.d/init.d/cryptdisks.functions' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
мая 13 16:43:13 mku2blinux1 systemd[1]: /lib/systemd/system/plymouth-start.service:14: Unit configured to use KillMode=none. This is unsafe, as it disables systemd's process lifecycle management for the service. Please update your service to use a safer KillMode=, such as 'mixed' or 'control-group'. Support for KillMode=none is deprecated and will eventually be removed.
мая 13 16:43:13 mku2blinux1 systemd[1]: /lib/systemd/system/pcscd.socket:5: ListenStream= references a path below legacy directory /var/run/, updating /var/run/pcscd/pcscd.comm → /run/pcscd/pcscd.comm; please update the unit file accordingly.
мая 13 16:43:13 mku2blinux1 systemd[1]: /lib/systemd/system/cups.socket:6: ListenStream= references a path below legacy directory /var/run/, updating /var/run/cups/cups.sock → /run/cups/cups.sock; please update the unit file accordingly.
мая 13 16:43:13 mku2blinux1 systemd[1]: /lib/systemd/system/sssd.service:15: PIDFile= references a path below legacy directory /var/run/, updating /var/run/sssd.pid → /run/sssd.pid; please update the unit file accordingly.
мая 13 16:43:13 mku2blinux1 systemd[1]: /lib/systemd/system/alteratord.socket:6: ListenStream= references a path below legacy directory /var/run/, updating /var/run/alteratord/.socket → /run/alteratord/.socket; please update the unit file accordingly.
мая 13 16:43:13 mku2blinux1 systemd[1]: /etc/systemd/system/anydesk.service:9: PIDFile= references a path below legacy directory /var/run/, updating /var/run/anydesk.pid → /run/anydesk.pid; please update the unit file accordingly.

« Последнее редактирование: 20.05.2022 06:36:24 от Skull »


Записан

Толпа также напоминает армию, как груда камней дом


при попытке подключения куда?


Записан


Подключаюсь к серверу Windows Server 2003.

Домен SBNEDU.LOCAL
Рабочая группа SBNEDU
Имя машины с linux mku2blinux1


Записан

Толпа также напоминает армию, как груда камней дом


Подключаюсь к серверу Windows Server 2003.

Домен SBNEDU.LOCAL
Рабочая группа SBNEDU
Имя машины с linux mku2blinux1

На Win XP и Server 2003 используется очень старая версия протокола SMB, которая из-за безопасности по умолчанию выключена.
Включить так: в файл /ext/samba/smb.conf добавить строчку:

client min protocol = NT1

« Последнее редактирование: 13.05.2022 18:07:00 от Александр Ерещенко »


Записан


Не нашёл папки ext, так полагаю у меня это etc. Добавил строку в конец /etc/samba/smb.conf

Перезагрузился и к сожалению всё равно при подключении ошибка выходит(

Файл smb при чём после попытки изменения вносит изменения такого характера, т.е. получается сервер то он видит но не хочет заводится.

#======================= Global Settings =====================================

[global]
security = ads
realm = SBNEDU.LOCAL
workgroup = SBNEDU
netbios name = MKU2BLINUX
template shell = /bin/bash
kerberos method = system keytab
wins support = no
winbind use default domain = yes
winbind enum users = no
winbind enum groups = no
template homedir = /home/SBNEDU.LOCAL/%U
        idmap config * : range = 200000-2000200000
        idmap config * : backend = sss
; encrypt passwords = true
; dns proxy = no
; socket options = TCP_NODELAY
; domain master = no
; local master = no
; preferred master = no
; os level = 0
; domain logons = no
; load printers = no
; show add printer wizard = no
; printcap name = /dev/null
; disable spoolss = yes
[homes]

« Последнее редактирование: 16.05.2022 15:38:12 от Лорд »


Записан

Толпа также напоминает армию, как груда камней дом


Добавил строку в конец /etc/samba/smb.conf

Ну, в листинге конфиге не видно, где у вас это добавлено.
Потом, в какой «конец» вы ее добавили? Добавлять надо в раздел
####### Authentication #######


Записан


Добавил строку в конец /etc/samba/smb.conf

Ну, в листинге конфиге не видно, где у вас это добавлено.
Потом, в какой «конец» вы ее добавили? Добавлять надо в раздел
####### Authentication #######

В этом файле вообще нет такого раздела..
добавлял в самый конец всего файла))

« Последнее редактирование: 16.05.2022 11:33:27 от Лорд »


Записан

Толпа также напоминает армию, как груда камней дом


Не нашёл папки ext, так полагаю у меня это etc. Добавил строку в конец /etc/samba/smb.conf

Да, это я опечатался.

Добавил строку в конец /etc/samba/smb.conf

Ну, в листинге конфиге не видно, где у вас это добавлено.
Потом, в какой «конец» вы ее добавили? Добавлять надо в раздел
####### Authentication #######

В этом файле вообще нет такого раздела..
добавлял в самый конец всего файла))

Добавлять надо так, чтобы этот параметр оказался в секции [global], а в конце файла он может оказаться в совсем другой секции и просто проигнорируется.

ЗЫ. И перегружаться не обязательно, чтобы этот параметр для клиента стал действительным.


Записан


Вписываю его туда а как пытаюсь подключаться выходит ошибка и при просмотре smb.conf параметр стирается.. :-

Он переместился в

# Un-comment the following and create the netlogon directory for Domain Logons
; [netlogon]
; comment = Network Logon Service
; path = /var/lib/samba/netlogon
; guest ok = yes
; writable = no
; share modes = no
; client min protocol = NT1

Но всё равно ошибка выходит(

« Последнее редактирование: 16.05.2022 15:38:21 от Лорд »


Записан

Толпа также напоминает армию, как груда камней дом


Вписываю его туда а как пытаюсь подключаться выходит ошибка и при просмотре smb.conf параметр стирается.. :-

Он переместился в

# Un-comment the following and create the netlogon directory for Domain Logons
; [netlogon]
; comment = Network Logon Service
; path = /var/lib/samba/netlogon
; guest ok = yes
; writable = no
; share modes = no
; client min protocol = NT1

Но всё равно ошибка выходит(

Чем вы его туда вписываете?
Тут она вообще у вас закомментирована. :)

su —
mcedit /etc/samba/smb.conf
(вписываем строчку сразу после строки [global], сохраняем F2)


Записан


Вписываю его туда а как пытаюсь подключаться выходит ошибка и при просмотре smb.conf параметр стирается.. :-

Он переместился в

# Un-comment the following and create the netlogon directory for Domain Logons
; [netlogon]
; comment = Network Logon Service
; path = /var/lib/samba/netlogon
; guest ok = yes
; writable = no
; share modes = no
; client min protocol = NT1

Но всё равно ошибка выходит(

Чем вы его туда вписываете?
Тут она вообще у вас закомментирована. :)

su —
mcedit /etc/samba/smb.conf
(вписываем строчку сразу после строки [global], сохраняем F2)

Я открывал комментарии и вносил изменения через pluma. К сожалению,после внесения изменений с помощью mcedit такая же байда выходит после попытки подключения к домену. Строка , которую я писал удаляется из global :-(


Записан

Толпа также напоминает армию, как груда камней дом


Точку с запятой в начале строки не надо ставить (это и называется «закомментирована») ;-)


Записан


Точку с запятой в начале строки не надо ставить (это и называется «закомментирована») ;-)

Я так скинул просто показать куда вообще моя вводимая строка делась)) а вводил я в global её. Чудеса одним словом. пробовал кстати и тут снять комментарии, толку мало, в домен меня так и не пускает


Записан

Толпа также напоминает армию, как груда камней дом


Не выяснили, в какой момент изменяется файл?
Т.е. если ручками поправить файл правильным образом, сохранить и тут же посмотреть — уже изменился? Или позже после ещё какого действия? Дата-время правки?


Записан


После попытки входа в домен, а так всё корректно сохраняет


Записан

Толпа также напоминает армию, как груда камней дом


Содержание

  • 1 Общая информация
  • 2 Проверка требований
  • 3 Установка Samba
  • 4 Настройка Samba
  • 5 Проверка работы и отладка
  • 6 Дополнительная настройка
  • 7 Доступ к Samba из Windows 7 и 2008 r2
  • 8 Работа над ошибками
    • 8.1 Winbind не запускается
    • 8.2 Ошибка получения билета Kerberos
  • 9 Полезные комманды
  • 10 См. также
  • 11 Cсылки

Общая информация

Если вам нужно просто предоставить сетевой доступ к ресурсам Linux компьютера, то смотрите статью Samba.

В этой статье мы опишем как подключить Linux компьютер к домену под управлением Microsoft Active Directory и сделать из него файловый сервер.

После выполнения этой инструкции мы будем иметь в сети файловый сервер под управлением ОС Линукс, входящий в домен Windows 2003 и ничем не отличающийся от файлового сервера под Windows. Пользователи домена смогут обращаться к его ресурсам под своими учётными записями. Доступ регулируется группами домена AD.

По этой инструкции настраивались Debian (4, 5), Ubuntu 9.10, создавалась она на основе официальной документации и многих рекомендаций и инструкций из Интернета. Остальные Linux’ы настраиваются сходным образом.

Для Alt Linux написана хорошая инструкция http://freesource.info/wiki/AltLinux/Dokumentacija/SambaInWin2kDomain?v=omo&

Проверка требований

  • Проверяем что Samba собрана с поддержкой Kerberos:
# smbd -b | grep KRB

   HAVE_KRB5_H
   HAVE_ADDRTYPE_IN_KRB5_ADDRESS
   HAVE_DECODE_KRB5_AP_REQ
   HAVE_KRB5
   HAVE_KRB5_AUTH_CON_SETUSERUSERKEY
   HAVE_KRB5_C_ENCTYPE_COMPARE
   HAVE_KRB5_C_VERIFY_CHECKSUM
   HAVE_KRB5_ENCRYPT_BLOCK
   HAVE_KRB5_ENCRYPT_DATA
   HAVE_KRB5_FREE_AP_REQ
   HAVE_KRB5_FREE_DATA_CONTENTS
   HAVE_KRB5_FREE_KEYTAB_ENTRY_CONTENTS
   HAVE_KRB5_FREE_KTYPES
   HAVE_KRB5_FREE_UNPARSED_NAME
   HAVE_KRB5_GET_PERMITTED_ENCTYPES
   HAVE_KRB5_GET_RENEWED_CREDS
   HAVE_KRB5_KEYBLOCK_IN_CREDS
   HAVE_KRB5_KEYTAB_ENTRY_KEY
   HAVE_KRB5_KEYUSAGE_APP_DATA_CKSUM
   HAVE_KRB5_KT_FREE_ENTRY
   HAVE_KRB5_LOCATE_KDC
   HAVE_KRB5_MK_REQ_EXTENDED
   HAVE_KRB5_PRINCIPAL2SALT
   HAVE_KRB5_PRINC_COMPONENT
   HAVE_KRB5_SET_DEFAULT_TGS_KTYPES
   HAVE_KRB5_SET_REAL_TIME
   HAVE_KRB5_STRING_TO_KEY
   HAVE_KRB5_TKT_ENC_PART2
   HAVE_KRB5_USE_ENCTYPE
   HAVE_LIBGSSAPI_KRB5
   HAVE_LIBKRB5
   HAVE_MAGIC_IN_KRB5_ADDRESS
   HAVE_TICKET_POINTER_IN_KRB5_AP_REQ
   KRB5_VERIFY_CHECKSUM_ARGS
  • Также проверим что поддерживается LDAP
# smbd -b | grep LDAP

   HAVE_LDAP_H
   HAVE_LDAP
   HAVE_LDAP_ADD_RESULT_ENTRY
   HAVE_LDAP_DN2AD_CANONICAL
   HAVE_LDAP_INIT
   HAVE_LDAP_INITIALIZE
   HAVE_LDAP_SET_REBIND_PROC
   HAVE_LIBLDAP
   LDAP_SET_REBIND_PROC_ARGS
  • Для корректной работы Samba в домене Windows 2003 нужны версии MIT Kerberos version >=1.3.1. Проверим:
# dpkg -l | grep krb

ii  krb5-config    1.22                       Configuration files for Kerberos Version 5
ii  libkrb53       1.6.dfsg.4~beta1-5lenny1   MIT Kerberos runtime libraries
  • Для корректной работы с Windows 2008 серверами сама Samba должна быть достаточно свежая:
# smbd -V

Version 3.2.5

Установка Samba

  • Устанавливаем сервер и клиент samba.
# apt-get install samba samba-client krb5-config

При настройке krb5-config лучше указывать IP адреса контроллеров домена, а не их DNS имена.

Настройка Samba

  • Для подключения к домену Active Directory удобно использовать утилиту Likewise-Open.
  • Для администрирования Samba удобно использовать SWAT или webmin, которые предоставляют веб интерфейс. Попасть на него можно по адресу http://server_address:901 и https://server_address:10000 соответственно, указав для соединения пользователя root. Но будьте осторожны — он полностью переписывает smb.conf и некоторые параметры может просто игнорировать. Лучше предварительно сделать резервную копию файла. Я сначала использовал SWAT, а затем дорабатывал конфигурационный файл /etc/samba/smb.conf руками. Вот, что осталось у меня не закоментированным (принтеры к этому серверу не подключены):
[global]
        unix charset = LOCALE
        realm = WORKGROUP.DOMAIN.LOCAL
        server string = Storage samba server
        interfaces = eth0
        bind interfaces only = Yes
        security = ADS
        obey pam restrictions = Yes
        passdb backend = tdbsam
        passwd program = /usr/bin/passwd %u
        passwd chat = *EntersnewsUNIXspassword:* %nn *RetypesnewsUNIXspassword:* %nn *passwordsupdatedssuccessfully* .
        log level = 3
        syslog = 0
        log file = /var/log/samba/log.%m
        max log size = 100
        name resolve order = lmhosts host wins bcast
        printcap name = CUPS
        local master = No
        domain master = No
        dns proxy = No        
        ldap ssl = no
        panic action = /usr/share/samba/panic-action %d
        idmap uid = 10000-20000
        idmap gid = 10000-20000
        template shell = /bin/bash
        invalid users = root

[print$]
        comment = Printer Drivers
        path = /var/lib/samba/printers

[distrib]
        path = /data/distrib
        valid users = @WORKGROUPDistribGroup
        write list = @WORKGROUPDistribGroup
        read only = No
        create mask = 0777
        directory mask = 0777

[backup]
        path = /data/backup
        valid users = @WORKGROUPBackupGroup
        write list = @WORKGROUPBackupGroup
        read only = No
        create mask = 0777
        directory mask = 0777

Мы описали два общих каталога:

  • backup — доступ имеют только пользователи входящие в группу BackupGroup в Active Directory. Они могут создавать и удалять файлы/каталоги
  • distrib — доступ имеют все пользователи входящие в группу DistribGroup в Active Directory

В приведённой конфигурации подразумевается, что eth0 — это сетевой интерфейс в локальную сеть, где домен имеет полное имя WORKGROUP.DOMAIN.LOCAL

  • редактируем /etc/nsswitch:
passwd:         compat winbind
group:          compat winbind
shadow:         compat winbind

hosts:          files dns wins
networks:       files dns

protocols:      files
services:       files
ethers:         files
rpc:            files

netgroup:       files
  • Проверим, что в /etc/hosts есть корректная запись для нашего сервера, также можно добавить записи для контроллеров доменов:
10.0.0.15      storage.domain.local storage
10.0.0.85      dcwg1.domain.local dcwg1
10.0.0.245     dcwg2.domain.local dcwg2
  • Удаляем если есть (или переносим в резервные копии) файл /etc/samba/secrets.tdb и все файлы из /var/lib/samba/*.tdb
  • Проверяем конфигурацию (не обязательно):
  1. testparm -s

В Ubunto testparm находится в пакете samba-common-bin

  • Проверим как Samba-3 winbind общается с контроллером домена Active Directory посредством протокола Kerberos:
# net ads info

LDAP server: 10.0.0.85
LDAP server name: dcwg1.workgroup.domain.local
Realm: WORKGROUP.DOMAIN.LOCAL
Bind Path: dc=WORKGROUP,dc=DOMAIN,dc=LOCAL
LDAP port: 389
Server time: Срд, 03 Мар 2010 13:12:14 NOVT
KDC server: 10.0.0.85
Server time offset: -5

На рассхождение времени в секундах указывает строка «Server time offset: -5». Обратите внимание, что протокол Kerberos зависим от времени, и расхождение с часами контроллера домена допускается лишь незначительное, поэтому желательно настроить NTP клиент (см. статьи по настройке NTP). В Ubuntu это указывается в файле /etc/default/ntpdate:

NTPSERVERS="10.0.0.85 10.0.0.245"
  • В Debian (и его сыновьях, таких как Ubuntu и внуках вроде Linux Mint) при установке пакета krb5-cofig сразу предлагается его настройка. Лучше всего попробовать работать с этими настройками, но если ничего предложено не было или мы хотим что-то изменить, то редактируем /etc/krb5.conf (я для более стабильной работы использовал ip адреса вместо имён серверов):
[libdefaults]
        default_realm = WORKGROUP.DOMAIN.LOCAL

# The following krb5.conf variables are only for MIT Kerberos.
        krb4_config = /etc/krb.conf
        krb4_realms = /etc/krb.realms
        kdc_timesync = 1
        ccache_type = 4
        forwardable = true
        proxiable = true
#
#...
#
# The following libdefaults parameters are only for Heimdal Kerberos.
        v4_instance_resolve = false
        v4_name_convert = {
                host = {
                        rcmd = host
                        ftp = ftp
                }
                plain = {
                        something = something-else
                }
        }
        fcc-mit-ticketflags = true

[realms]
        WORKGROUP.DOMAIN.LOCAL = {
                kdc = 10.0.0.85
                kdc = 10.0.0.245
                admin_server = 10.0.0.85
        }
#
#...
#
[login]
        krb4_convert = true
        krb4_get_tickets = false
  • Проверим работает ли Kerberos, постараемся получить билет и просмотреть его:
# kinit administrator@WORKGROUP.DOMAIN.LOCAL
Password for administrator@WORKGROUP.DOMAIN.LOCAL:

# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@WORKGROUP.DOMAIN.LOCAL

Valid starting     Expires            Service principal
03/06/10 14:51:41  03/07/10 00:51:47  krbtgt/WORKGROUP.DOMAIN.LOCAL@WORKGROUP.DOMAIN.LOCAL
        renew until 03/07/10 14:51:41
  • Удалим полученный билет:
# kdestroy
  • Присоединяемся к домену:
# net ads join -UAdministrator

Administrator's password:
Using short domain name -- WORKGROUP
Joined 'STORAGE' to realm 'WORKGROUP.DOMAIN.LOCAL'

Всё, компьютер включен в домен, что можно проверить на контроллере. Даже если после приведённых строк получили следующие:

[2010/03/06 15:04:00,  0] libads/kerberos.c:332(ads_kinit_password)
  kerberos_kinit_password STORAGE$@WORKGROUP.DOMAIN.LOCAL failed: Client not found in Kerberos database DNS update failed!

Проверка работы и отладка

  • Для удобства отладки сделаем ссылку на каталог журналов:
# ln -s /var/log/samba /etc/samba/log
  • Запускаем samba и winbind:
# /etc/init.d/samba start
# /etc/init.d/winbind start
  • Для проверки правильно ли подключение к домену можно посмотреть список пользователей и групп домена (не обязательно):
# wbinfo -u
# wbinfo -g

Если нас не понимают, то подсказываем пароль для wbinfo и смотрим: список доменов в сети, информацию о домене WORKGROUP, список пользователей и групп домена:

# wbinfo --set-auth-user=root%root_password
# wbinfo --all-domains
# wbinfo -D WORKGROUP
# wbinfo -t
  • Проверяем, как работает NSS. Команда getent показывает инфо о пользователе, который может быть как в домене, так и юниксовый:
# getent passwd | grep pm
pm:x:15000:15000::/home/WORKGROUP/pm:/bin/false

# getent passwd | grep pavel
pavel:x:500:500:Pavel Malahov:/home/pavel:/bin/bash
  • Теперь можно использовать ресурсы на линукс-сервере, на которые мы дали доступ, как обычные доменные ресурсы.

Дополнительная настройка

  • Можно также сопоставить (но это не обязательно) локальные учётные данные и из домена Windows. Для сопоставления пользователей редактируем файл /etc/samba/smbusers.conf:
root = admin administrator
  • для сопоставления (мапирования от англ. Map) групп домена и групп UNIX выполняем:
# net groupmap modify ntgroup="Domain Admins" unixgroup=root
# net groupmap modify ntgroup="Domain Users" unixgroup=users
# net groupmap modify ntgroup="Domain Guests" unixgroup=nobody
  • После того как всё отлажено, можно понизить уровень записи в журнал до «1». В /etc/samba/smb.conf:
log level = 1

Доступ к Samba из Windows 7 и 2008 r2

Начиная с этих версий параметры авторизации у MS поменялись. Скорее всего Samba вскоре это учтёт, а пока подружить системы можно изменив на Win7 свойства сетевой безопасности:

Пуск — Панель управления — Администрирование — Локальная политика безопасности — Локальные политики — Параметры безопасности

  • Сетевая безопасность: минимальная сеансовая безопасность для клиентов на базе NTLM SSP — убрать галочку с «Требовать 128-битное шифрование». Таких параметра два — выполнить для обоих
  • Сетевая безопасность: уровень проверки подлинности LAN Manager — выбрать в списке пункт «Отправлять LM- и NTML-ответы»

Работа над ошибками

Winbind не запускается

При запуске Samba обнаруживаем, что winbind не запустился:

# /etc/init.d/winbind status
 * winbind is not running

В журнале log.winbindd обнаруживаем запись:

[2010/03/06 13:54:34,  2] winbindd/winbindd_util.c:235(add_trusted_domain)
  Added domain BUILTIN  S-1-5-32
[2010/03/06 13:54:34,  2] winbindd/winbindd_util.c:235(add_trusted_domain)
  Added domain STORAGE  S-1-5-21-3963871611-1338977097-196861091
[2010/03/06 13:54:34,  0] winbindd/winbindd_util.c:782(init_domain_list)
  Could not fetch our SID - did we join?
[2010/03/06 13:54:34,  0] winbindd/winbindd.c:1385(main)
  unable to initialize domain list

Видим, что добавлен «встроенный домен» (BUILTIN) и домен «название компьютера» (STORAGE), подключиться к домену AD не удалось.

Решение: Переподключить компьютер в домен. Удалять придётся с самого контроллера, т.к. комадна net ads leave скорее всего не поможет.

Ошибка получения билета Kerberos

При попытке получить билет Kerberos получили:

kinit: KDC reply did not match expectations while getting initial credentials

Решение: указать имя домена в другом регистре. Скорее всего нужны все заглавные

Полезная ссылка: http://subscribe.ru/archive/comp.soft.win.linuxsa/200510/19115643.html

Полезные комманды

$ smbclient -N -L 10.0.0.117 показывает ресурсы компьютера с адресом 10.0.0.117
$ smbclient //10.0.0.117/common Вход в расшаренную директорию. Пользователь unix от которого выполняется команда должен быть зарегистрирован в домене.
# net ads join -U pavel -d 3 Добавить в домен пользователя pavel
# winbindd -d 3 -i Режим отладки (-d), winbindd запускается не как демон (-i)
# wbinfo -a mydomain\myuser%mypasswd авторизируемся в домене (через winbindd, wbinfo входит в этот пакет)
# ldapsearch запросы к LDAP серверу, в нашем случае к MS Active Directory
# tdbdump /etc/samba/secrets.tdb просмотреть содержимое файла *.tdb

См. также

  • Статья Samba даёт краткий общий обзор пакета Samba утилит для него, а также описывает простой (без авторизации в домене) способ предоставления каталогов в общий доступ.

Cсылки

  • http://linux.yaroslavl.ru//docs/serv/samba/samba-win2000.html — Samba и доменная аутентификация Windows2000
  • http://us6.samba.org/samba/docs/man/Samba-Guide/unixclients.html#adssdm- Active Directory Domain with Samba Domain Member Server — подробная инструкция как подключить Linux сервер с помощью Samba 3 к домену под управлением AD Windows 2003.
  • http://us6.samba.org/samba/docs/man/Samba-Guide/kerberos.html#id397375 — пример настройки доступа для пользователей Active Directory
  • Samba-HOWTO-Collection.pdf, стр.54-57 (поставляется с исходниками) или
  • http://jcifs.samba.org/ntstatus.txt — описание статусов
Рубрика:

Администрирование / 
Администрирование

Facebook

Twitter

Мой мир

Вконтакте

Одноклассники

Google+

Мирослав Бусалов

Как подружить Linux с доменом Active Directory

Windows или Linux? Наверное, нет ни одного системного администратора, который не задумывался бы над этим вопросом. О плюсах и минусах операционных систем Open Source и продуктов Microsoft написаны гигабайты текстов, ожесточенные споры не утихают уже много лет. Наблюдая за этими баталиями, хочется лишь одного – гармонии.

Предположим следующую ситуацию. Часть сотрудников вашей компании выполняет только рутинные операции в одном-двух бизнес-приложениях, используя браузер. И операционная система для них значения не имеет. Исходя из экономической целесообразности, нет смысла ставить на такие рабочие станции Windows.

Или другой пример – есть отдел разработчиков под UNIX, которым удобнее и комфортнее использовать на рабочей станции Linux. Как можно заметить, причины внедрения Linux-десктопов в организации могут быть различные. При этом в вашей организации есть домен Active Directory, все пользователи имеют свои учетные записи, собственные папки на файловом сервере и разные права на свои рабочие станции. Подобные удобства всем хотелось бы сохранить и на рабочих станциях под Linux, особенно системному администратору, поскольку централизованная авторизация и хранение данных пользователей на сервере уменьшают его головную боль.

Статья представляет собой пошаговое руководство, как «подружить» рабочие станции Linux с доменом Active Directory.

Начальные условия

Домен Active Directory под управлением одного или более контроллеров домена на базе Windows Server 2003; в качестве Linux-десктопа используется Kubuntu 7.10

Цели

  • Обеспечить единую аутентификацию пользователей.
  • Обеспечить авторизацию пользователей в домене Active Directory.
  • Обеспечить прозрачную и сквозную авторизацию на ресурсах сети (SSO – Single Sign-On).
  • Обеспечить хранение пользовательских данных на сервере.

Про последний пункт хотелось бы сказать следующее: в данном примере в качестве файлового сервера используется Windows-сервер. Поэтому речь идет только о хранении данных пользователей. Сохранять профиль UNIX-пользователя на сервере не представляется возможным, так как в качестве Linux-десктопа используется Kubuntu 7.10 со встроенным экранным менеджером KDE. В процессе создания профиля пользователя KDE создает символьные ссылки (symlink), которые необходимы для корректной работы. Естественно, что создать symlink в файловой системе NTFS на Windows Server 2003 не получится.

Используемые обозначения

  • domain.ru – полное имя домена Active Directory;
  • dc.domain.ru – полное имя контроллера домена;
  • fileserver.domain.ru – полное имя файлового сервера.

Условно всю работу можно разделить на следующие этапы:

  • Модернизация схемы Active Directory.
  • Настройка атрибутов будущих UNIX-пользователей и групп.
  • Настройка рабочей станции с Kubuntu.
  • Настройка ресурсов сети (веб-серверов, службы ssh и т. д.) для обеспечения прозрачной и сквозной авторизации пользователей.

Модернизация схемы Active Directory

В классической схеме AD невозможно хранить атрибуты UNIX-пользователей, такие как UID, GID, Login Shell, Home Directory. Поэтому схему необходимо расширить, добавив в нее возможность хранения нужных нам сведений. Для этого существует два варианта: первый – это бесплатный пакет Microsoft под названием Windows Services for UNIX 3.5 (SFU), второй – это использование последней версии семейства серверов 2003 – Windows Server 2003 R2. Мы будем использовать второй вариант. Если ваши контроллеры домена и файловые серверы уже работают под релизом R2, можно смело пропустить несколько абзацев, касающихся обновления стандартного Windows Server 2003 до R2.

Windows Server 2003 R2 – версия Windows Server 2003, имеющая встроенные компоненты Windows Services for UNIX (SFU), необходимые нам при создании гетерогенной среды для хранения атрибутов UNIX-пользователей в схеме Active Directory. Релиз R2 включает в себя два важных компонента:

  • Subsystem for UNIX-based Applications (SUA);
  • Identity Management for UNIX (IMU).

SUA помогает UNIX-приложениям работать под Windows так, как будто они работают в Linux или UNIX. Это выходит за рамки нашей статьи, поэтому мы сфокусируем внимание на компоненте IMU, которая содержит нужные в дальнейшем службы – Administration Components, Password Synchronization, Server for NIS, их установку мы сейчас и рассмотрим.

Необходимо отметить, что возможно два сценария обновления, в зависимости от того, установлен у вас пакет SFU или нет. Мы будем рассматривать вариант, при котором SFU не установлен. В противном случае рекомендую посетить англоязычный ресурс http://www.winlinanswers.com/book/resources.php?id=5, где вы найдете полное описание варианта обновления до R2 с установленным SFU.

Вставив CD#2 с дистрибутивом Windows Server 2003 R2 и согласившись на продолжение установки, вы увидите сообщение об ошибке с описанием, что установка не может быть продолжена, поскольку версия схемы данного домена не совместима с R2. Поэтому сначала необходимо выполнить следующую команду:

X:CMPNENTSR2ADPREPadprep.exe /forestprep

где X – буква, соответствующая CD с дистрибутивом. После чего можно начать установку компонентов R2, выполнив файл R2auto.exe из корневой директории CD.

После установки компонентов R2 нужно в панели управления в разделе установки и удаления программ выбрать пункт «Windows Components», затем найти строчку «Active Directory Services» и в детализации выбрать установку «Identity Management for UNIX».

После завершения установки необходимо будет перезагрузить сервер.

Настройка атрибутов будущих UNIX-пользователей и групп

Откройте оснастку Active Directory User and Computers и вызовите свойства любого пользователя. Появилась новая закладка UNIX Attributes, в которой возможно назначить свойства UNIX-пользователя (см. рисунок). Для начала нам нужно создать несколько UNIX-групп, которые пригодятся нам в дальнейшем.

Свойства UNIX-пользователя - UNIX attributes

Свойства UNIX-пользователя — UNIX attributes

Создайте группу UNIXusers – это будет группа по умолчанию для всех UNIX-пользователей. Для этого создайте обычным способом группу нужного вам вида (Domain Local или Global), затем откройте свойства данной группы и перейдите на вкладку «UNIX Attributes». В строке «NIS Domain» выберите ваш домен, после чего группе автоматически будет присвоен GID. Если он не устраивает вас по какой-то причине, можете прописать новый идентификатор вручную. При создании следующих групп GID будет автоматически увеличиваться на единицу.

Аналогичным способом создайте группу UNIXadmins, которая затем будет указана в настройках конфигурационного файла /etc/sudoers как группа, членам которой разрешено выполнять sudo на рабочих станциях с Kubuntu.

Создайте еще одну группу и назовите ее audio, присвоив ей вручную GID 29. Дело в том, что в Linux есть одна особенность – файлы аудиоустройств, как правило, имеют общую группу таким образом, что возможность работы с аудио доступна только владельцам файлов и членам этой группы. В эту группу потом добавим всех пользователей, чтобы у них была возможность использовать наушники и микрофон.

Теперь выберите одного из тех пользователей вашего домена, которому вы хотите присвоить UNIX-атрибуты. В свойствах откройте вкладку «UNIX Attributes», так же как и для группы, выберите имя вашего домена в строке «NIS Domain», и в строке «Primary group name/GID» выберите группу по умолчанию UNIXusers.

Если необходимо по каким-то причинам изменить параметры Login Shell и Home Directory, можно это сделать. UID присвоится автоматически, но при желании можно прописать его вручную.

После присвоения UNIX-атрибутов всем нуждающимся в них пользователям вернемся к группам. Открыв свойства группы UNIXusers, на вкладке «UNIX Attributes» нажмите кнопку «Add» и добавьте туда всех пользователей.

Аналогично поступим с группой audio, а в группу UNIXadmins внесем только тех пользователей, кому разрешено выполнение sudo на рабочих станциях.

Теперь остается только создать нового пользователя, например unixldap, и присвоить ему соответствующие атрибуты. Учетная запись этого пользователя будет использоваться при регистрации и поиске в LDAP с Linux-десктопа, поэтому её необходимо максимально ограничить в правах, допустим, явно запретив доступ ко всем ресурсам файлового сервера и т. д.

На этом работы с оснасткой «Active Directory User and Computers» закончены.

Немного о настройке файлового сервера для работы с UNIX-клиентами

В данном примере монтирование домашних каталогов пользователей осуществляется с использованием CIFS (Common Internet File System).

Если для каких-нибудь задач вам потребуется работа с NFS (Network File System), то для обеспечения доступа к файловым ресурсам вашего Windows-сервера с Linux-десктопов необходимо будет установить на сервер пакет Microsoft Services for NFS. Привожу краткое руководство, как это сделать.

Зайдите в панель управления, затем в разделе установки и удаления программ выберите пункт «Windows Components», там войдите в «Other Network File and Print Services» и в детализации выберите установку «Microsoft Services for NFS». Из данного пакета необязательными к установке являются два последние пункта: Server for NFS Authentication и User Name Mapping. После установки данных служб пользователи с рабочих станций под управлением Linux получат доступ к файловым ресурсам данного сервера, используя NFS.

Настройка рабочей станции с Kubuntu

Теперь приступим к самой большой части работы – настройке Kubuntu. Сначала выполните установку Kubuntu 7.10 на рабочую станцию, после чего установите все необходимые обновления, например, используя встроенный в KDE менеджер обновлений Adept Updater.

Также рекомендуется изменить параметры входа в систему для KDE (в других экранных менеджерах могут быть отличия) – открываем меню «System Settings», переходим на закладку «Advanced», там выбираем «Менеджер входа в систему», и, войдя в административный режим, отключаем опцию «Показывать список» на вкладке «Пользователи». Если этого не сделать, система при входе будет отображать всех UNIX-пользователей вашего домена, что совершенно ни к чему.

Для корректной работы протокола Kerberos, который будет использоваться для аутентификации в нашей гетерогенной среде, крайне важным моментом является синхронизация времени рабочей станции с контроллером домена.

Поэтому первым пунктом настроим синхронизацию времени. Для этого в файле /etc/default/ntpdate внесем следующие изменения:

NTPSERVERS=»dc.domain.ru»

При следующей перезагрузке ПК будет синхронизировать время с контроллером домена, а пока проведем синхронизацию вручную, выполнив следующую команду:

$sudo ntpdate -s dc.domain.ru

Указываем FQDN для настраиваемой рабочей станции в файле /etc/hosts:

127.0.0.1 workstation.domain.ru localhost workstation

Проверьте доступность машины по FQDN командой:

ping workstation.domain.ru –с 4

Теперь необходимо установить и настроить поддержку Kerberos. Устанавливаем нужные пакеты:

$sudo apt-get install krb5-user libpam-krb5 krb5-config libkrb53 krb5-doc

Если система выдала ошибку:

dpkg was interrupted, you must manually run dpkg –-configure –a to correct this problem

последуйте совету подсказки, наберите:

$sudo dpkg –-configure –a

В процессе вас попросят принять решение о замене файла /etc/qt3/qt_plugins_3.3rc – согласитесь с вариантом по умолчанию, оставьте текущую версию без изменений. Данная ошибка иногда проявляется в версии 7.10 после первой установки обновлений.

И приступаем к настройке – внесем изменения в файл /etc/krb5.conf:

[libdefaults]

 default_realm = DOMAIN.RU

# DOMAIN.RU пишется обязательно ЗАГЛАВНЫМИ БУКВАМИ

ticket_lifetime = 24000

# The following krb5.conf variables are only for

# MIT Kerberos

krb4_config = /etc/krb.conf

krb4_realms = /etc/krb.realms

kdc_timesync = 1

ccache_type = 4

forwardable = true

proxiable = true

plain = {

something = something-else

}

}

fcc-mit-ticketflags = true

[realms]

DOMAIN.RU = {

kdc = dc.domain.ru

# kdc – key distribution center – контроллер домена

admin_server = dc.domain.ru

default_domain = domain.ru

}

[domain_realm]

.domain.ru = DOMAIN.RU

domain.ru = DOMAIN.RU

[login]

krb4_convert = true

krb4_get_tickets = false

[logging]

default = FILE:/var/log/krb5libs.log

kdc = FILE:/var/log/krb5kdc.log

admin_server = FILE:/var/log/kadmind.log

После настройки Kerberos мы можем проверить его работоспособность следующими командами:

$kinit user@DOMAIN.RU

Командой kinit мы осуществляем запрос на сервер kdc на получение билета. Если система в ответ не выдала ошибок, значит, все в порядке и можно просмотреть билет командой klist:

$klist

Ticket cache: FILE:/tmp/krb5cc_1000

Default principal: user@DOMAIN.RU

Valid starting Expires Service principal

03/15/08 15:15:55 03/15/08 21:55:55 krbtgt/ DOMAIN.RU@DOMAIN.RU 

Удалить билет можно командой kdestroy.

Если при выполнении команды kinit система выдала ошибку, проверьте настройки DNS, большинство проблем возникает именно из-за некорректной работы данной службы.

Далее на очереди установка и настройка поддержки LDAP:

$sudo apt-get install libnss-ldap libpam-ldap

При установке этих модулей вам сразу будет предложено настроить параметры клиента ldap, проигнорируйте это предложение, т.к. этих настроек будет недостаточно для корректной работы и все конфигурационные файлы надо настраивать вручную.

Изменяем файл /etc/ldap.conf:

# LDAP Defaults

# See ldap.conf(5) for details

# This file should be world readable but not world writable

uri ldap://dc.domain.ru

base       dc=domain,dc=ru

ldap_version 3

scope sub

# Следующие две строки содержат реквизиты учетной записи

# unixldap, необходимые для доступа к схеме AD

binddn cn=unixldap,cn=Users,dc=domain,dc=ru

bindpw     password

bind_timelimit 2

bind_policy soft

# bind_policy soft указывает, что при неудачном подключении

# к LDAP не пытаться переподключиться при отсутствии

# данной строки система не сможет загрузиться

idle_timelimit 2

# PAM options with group-based access configuration:

pam_filter objectClass=posixAccount

pam_login_attribute uid

# nsswitch.conf options:

nss_base_password cn=Users,dc=domain,dc=ru?sub

nss_base_group   cn=Users,dc=domain,dc=ru?sub

# Далее прописываем mapping POSIX атрибутов,

# т.к. в схему AD они не добавляются

nss_map_objectclass posixAccount User

nss_map_attribute homeDirectory unixHomeDirectory

nss_map_attribute gecos cn

nss_map_objectclass posixGroup Group

ssl no

 # sudo options:

sudoers_base cn=UNIXadmins,cn=Users,dc=domain,dc=ru

# debug 257

Опцию debug можно будет включить на время отладки, если будут проблемы.

Также необходимо внести изменения в файл /etc/ldap/ldap.conf, который требуется для работы некоторых утилит, например ldapsearch. Это файл может состоять всего из двух строк:

BASE       dc=domain,dc=ru

URI ldap://dc.domain.ru

Пришла очередь установить компоненты, которые позволят монтировать личные папки пользователей, располагающиеся на сервере Windows. Это пакеты smbfs и pam_mount. Первый позволяет понимать windows share, а второй отвечает за автоматический mount/umount при процедурах login/logout. Устанавливаем:

$sudo apt-get install smbfs

А вот установка pam_mount не отличается простотой. Дело в том, что при установке с помощью команды «apt-get install» по умолчанию установится версия 0.18, которая не отличается дружелюбием по отношению к файловой системе cifs (хотя заявлено, что поддерживает), поэтому нам нужно установить более новую версию, например 0.32, а для этого придется обновить много библиотек и установить несколько пакетов. Итак, приступим. Скачайте следующие установочные файлы и установите их именно в такой последовательности:

  • tzdata_2008a-0ubuntu0.7.10_all.deb
  • libc6_2.7-6_i386.deb
  • libhx10_1.10.2-2_i386.deb
  • libssl0.9.8_0.9.8g-4ubuntu1_i386.deb

Теперь привычным способом установим пакет libxml-writer-perl:

$sudo apt-get install libxml-writer-perl

И только после всех описанных манипуляций скачиваем и устанавливаем пакет libpam-mount_0.32-4_i386.deb.

Конфигурационный файл модуля pam_mount называется pam_mount.conf.xml и находится в каталоге /etc/security. Я приведу здесь только измененные части файла, т.к. целиком его приводить смысла не имеет.

Для начала включим отладку:

<debug enable=»1″ />

Ниже перед закомментированным абзацем с описанием mntoptions вставим строчку:

<mntoptions allow=»*» />

И наконец после строки:

<pmvarrun>pmvarrun -u %(USER) -o %(OPERATION)</pmvarrun>

вставляем свои строки с указанием следующих опций монтирования:

<volume

       user=»*» 

       invert=»1″

       fstype=»cifs»

       server=»fileserver.domain.ru»

       path=»share/%(USER)»

       options=»iocharset=utf8,dir_mode=0700,file_mode=0600″

       mountpoint=»/home/%(USER)/data»

    />

Получается, что при входе в систему в домашнем каталоге пользователя будет создаваться папка /data, куда будет монтироваться его сетевая папка с сервера (\fileserver.domain.rushareusername).

Следующим шагом позаботимся о корректной работе sudo для соответствующих пользователей. Для этого внесем следующие изменения в файл /etc/sudoers:

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
%UNIXadmins ALL=(ALL) ALL

И еще изменим файл /etc/pam.d/sudo для корректной работы kdesu (запуск административных приложений в KDE):

#%PAM-1.0

auth       sufficient   pam_krb5.so

auth       sufficient   pam_ldap.so  use_first_pass

auth       sufficient   pam_unix.so  use_first_pass

auth       required     pam_deny.so

#@include common-auth

#@include common-account

Теперь нам предстоит настроить модули PAM (Pluggable Authentication Modules) – подключаемые модули аутентификации. Описание принципов работы и синтаксис оставим за рамками нашей статьи, все интересующиеся без труда найдут его в сети. Изменениям подвергнутся несколько конфигурационных файлов, располагающихся в каталоге /etc/pam.d. Начнем с файла /etc/pam.d/common-account:

#account   required     pam_login_access.so

account    required     pam_ldap.so ignore_authinfo_unavail ignore_unknown_user

account    required     pam_unix.so

Теперь редактируем файл /etc/pam.d/common-auth:

auth       optional     pam_mount.so

auth       sufficient   pam_krb5.so  use_first_pass

auth       sufficient   pam_ldap.so  ignore_authinfo_unavail ignore_unknown_user use_first_pass

auth       required     pam_unix.so nullok_secure

auth       required     pam_deny.so

Следом вносим изменения в файл /etc/pam.d/common-password, который начнет работать только при смене пароля (по истечении срока или при запуске утилиты passwd):

password   sufficient   pam_unix.so  obscure md5

password   sufficient   pam_ldap.so

Переходим к файлу /etc/pam.d/common-session:

session optional pam_mount.so

session          required     pam_unix.so

session          optional     pam_foreground.so

Необходимо отметить, что во всех модулях, использующих библиотеку pam_mount, строчка с описанием ее использования должна быть на первом месте, к сожалению, pam_mount не умеет принимать пароль через опции use_first_pass или try_first_pass, поэтому строка просто не отработает, как следствие, сетевая папка не будет смонтирована.

Необходимо отметить, что указанные конфигурационные файлы работоспособны при осуществлении входа в систему через интерфейс KDE. Для использования консольного входа в систему (а также удаленного входа по ssh) нужно внести некоторые изменения, о которых подробно будет рассказано в описании настроек сетевых сервисов для сквозной авторизации.

На этом настройка модулей PAM завершена. Осталось внести изменения в последний, очень важный конфигурационный файл: /etc/nsswitch.conf:

group: files ldap

hosts: files dns

networks: files

passwd: files ldap

shells: files

sudoers: files ldap

Теперь остается только завершить сеанс и войти в систему под доменным UNIX-пользователем. При неудачной попытке ищите ошибки в log-файлах.

Настройка сетевых сервисов и служб для прозрачной и сквозной авторизации будет рассмотрена в следующий раз.

Facebook

Twitter

Мой мир

Вконтакте

Одноклассники

Google+

I’ve written a little reminder for myself about installing sshd on Cygwin.
Please see Cygwin install and sshd install.

First install cygwin.

See cygwin.com. Follow the installation instructions. I recommend the following options:

Install from Internet
All Users
Use IE5 Settings
Select a mirror near you (if you can find out where they are!)

Make sure to Select Packages below (among others) besides the Base packages:

cygrunsrv
openssh

You can export the Windows user list to Cygwin.

$ cp /etc/passwd /etc/passwd.old    # backup for safety
$ mkpasswd > /etc/passwd

Start sshd

Next, start the Secure Shell Daemon (sshd) service on Windows

This will allow users on remote computers to log in to your box, get an interactive shell and do whatever they want. Or rather whatever you allow them to do. Remember?

There is a nice guide with a lot of troubleshooting info here.

In a nutshell. Start a Cygwin Shell window.

$ ssh-host-config -y

When prompted for “CYGWIN=”, type “tty ntsec”.

I do not allow login by password, only the public-key method. See below. So change the related line in /etc/sshd_config like this:

PubkeyAuthentication yes

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no

Finally start the service:

$ cygrunsrv --start sshd

Administering users with public-key authentication

foo wants to log in remotely to your box’s bar account.
He sends you his public RSA key id_rsa.pub in any way, email, pen-drive, whatever YOU trust.
If you find foo worthy, you authorize his key, and from then he will be able to log in to your bar account via ssh without typing bar’s password:

$ cat id_rsa.pub >> /home/bar/.ssh/authorized_keys

I’ve written a little reminder for myself about installing sshd on Cygwin.
Please see Cygwin install and sshd install.

First install cygwin.

See cygwin.com. Follow the installation instructions. I recommend the following options:

Install from Internet
All Users
Use IE5 Settings
Select a mirror near you (if you can find out where they are!)

Make sure to Select Packages below (among others) besides the Base packages:

cygrunsrv
openssh

You can export the Windows user list to Cygwin.

$ cp /etc/passwd /etc/passwd.old    # backup for safety
$ mkpasswd > /etc/passwd

Start sshd

Next, start the Secure Shell Daemon (sshd) service on Windows

This will allow users on remote computers to log in to your box, get an interactive shell and do whatever they want. Or rather whatever you allow them to do. Remember?

There is a nice guide with a lot of troubleshooting info here.

In a nutshell. Start a Cygwin Shell window.

$ ssh-host-config -y

When prompted for “CYGWIN=”, type “tty ntsec”.

I do not allow login by password, only the public-key method. See below. So change the related line in /etc/sshd_config like this:

PubkeyAuthentication yes

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no

Finally start the service:

$ cygrunsrv --start sshd

Administering users with public-key authentication

foo wants to log in remotely to your box’s bar account.
He sends you his public RSA key id_rsa.pub in any way, email, pen-drive, whatever YOU trust.
If you find foo worthy, you authorize his key, and from then he will be able to log in to your bar account via ssh without typing bar’s password:

$ cat id_rsa.pub >> /home/bar/.ssh/authorized_keys

Понравилась статья? Поделить с друзьями:
  • Подключение iphone к windows 10 без itunes
  • Подключение ip камеры к компьютеру напрямую windows 10
  • Подключение hdd на горячую sata windows 7
  • Подключение gamepad xbox one к windows 10
  • Подключение elm327 usb к ноутбуку windows 7