- Ввод компьютера в домен Windows
- Содержание
- Введение
- Настройка DNS
- Настройка синхронизации времени
- Настройка авторизации через Kerberos
- Распространённые ошибки kinit
- Настройка Samba и вход в домен
- Используемые параметры команды net
- Настройка Winbind
- Добавление Winbind в качестве источника пользователей и групп
- Авторизация в Ubuntu через пользователей домена
- Он-лайн авторизация
- Не пигнуются компьютеры по доменому имени
Ввод компьютера в домен Windows
Содержание
Введение
Зачастую возникает необходимость ввести Linux-машину в существующий домен Windows. Например, чтобы сделать файловый сервер с помощью Samba. Сделать это очень просто, для этого вам понадобятся клиент Kerberos, Samba и Winbind.
Перед установкой желательно обновиться:
Установить всё это добро можно командой:
Также может понадобиться установить следующие библиотеки:
Либо, если вы используете Ubuntu Desktop, те же пакеты можно поставить через менеджер пакетов Synaptic.
Далее вам потребуется настроить все вышеперечисленные инструменты для работы с вашим доменом. Допустим, вы хотите войти в домен DOMAIN.COM, доменконтроллером которого является сервер dc.domain.com с IP адресом 192.168.0.1. Этот же сервер является и первичным DNS сервером домена. Кроме того допустим у вас есть второй доменконтроллер 1) , он же DNS — dc2.domain.com с IP 192.168.0.2. Ваш же компьютер будет называться smbsrv01.
Настройка DNS
Для начала необходимо изменить настройки DNS на вашей машине, прописав в качестве DNS сервера доменконтроллер 2) и в качестве домена поиска — нужный домен.
Если у вас статический IP-адрес, то в Ubuntu Desktop это можно сделать через Network Manager, в Ubuntu Server необходимо изменить содержимое файла /etc/resolv.conf на примерно такое:
В современных дистрибутивах файл resolv.conf создается автоматически и править вручную его не нужно. Для получение нужного результата нужно добавить необходимые изменения в файл: /etc/resolvconf/resolv.conf.d/head Данные которые будут добавлены в него, будут автоматически вставлены в файл /etc/resolv.conf
Чтобы добавить еще один nameserver нужно убрать комментарий перед prepend domain-name-servers и указать ip сервера:
Для применения изменений остается перезапустить службу:
Теперь убедитесь, что вы задали нужное имя компьютера в файле /etc/hostname :
Кроме того необходимо отредактировать файл /etc/hosts так, чтобы в нём была запись с полным доменным именем компьютера и обязательно коротким именем хоста, ссылающаяся на один из внутренних IP:
Сразу нужно проверить что нормально пингуется наш контроллер домена, по короткому и полному имени, чтобы в будушем не получать ошибки что контроллер домена не найден:
Не обязательно, но если вы что-то поменяете — перезагрузите компьютер для применения изменений.
Настройка синхронизации времени
Далее необходимо настроить синхронизацию времени с доменконтроллером. Если разница будет более 5 минут мы не сможем получить лист от Kerberos. Для единовременной синхронизации можно воспользоваться командой:
Если в сети существует сервер точного времени, то можно воспользоваться им или любым публичным:
Автоматическая же синхронизация настраивается с помощью ntpd , это демон будет периодически выполнять синхронизацию. Для начала его необходимо установить:
Теперь исправьте файл /etc/ntp.conf , добавив в него информацию о вашем сервере времени:
После чего перезапустите демон ntpd :
Теперь пора настраивать непосредственно взаимодействие с доменом.
Настройка авторизации через Kerberos
Начнём с настройки авторизации в домене через протокол Kerberos. Вам потребуется изменить файл /etc/krb5.conf . В общем случае он выглядит так:
Вам, конечно, нужно изменить domain.com на ваш домен и dc и dc2 на ваши доменконтроллеры. Кстати, возможно вам понадобится написать полные имена доменконтроллеров dc.domain.com и dc2.domain.com . Поскольку у меня прописан домен поиска в DNS , то мне это делать не нужно.
Это не все возможные опции настройки Kerberos, только основные. Однако их обычно достаточно.
Теперь настало время проверить, что мы можем авторизоваться в домене. Для этого выполните команду
Вместо username естественно стоит вписать имя существующего пользователя домена.
Если вы не получили никаких ошибок — значит вы настроили всё верно и домен отдаёт вам билет Kerberos. Кстати, некоторые распространённые ошибки перечислены чуть ниже.
Убедиться в том, что билет получен, можно выполнив команду
Удалить все билеты (они вам вообще говоря не нужны) можно командой
Итак, будем считать, что авторизацию вы настроили, пора настроить непосредственно вход в домен, об этом после списка распространённых ошибок kinit .
Распространённые ошибки kinit
Это значит, что у вашего компьютера не синхронизировано время с доменконтроллером (см. выше).
Вы ввели неверный пароль.
Самая странная ошибка. Убедитесь, что имя realm в krb5.conf , а так же домен в команде kinit введены большими буквами:
Указанного пользователя не существует в домене.
Настройка Samba и вход в домен
Для того, чтобы войти в домен, необходимо прописать правильные настройки в файле /etc/samba/smb.conf . На данном этапе вас должны интересовать только некоторые опции из секции [global] . Ниже — пример части файла конфигурации Samba с комментариями по поводу значения важных параметров:
После того, как вы отредактируете smb.conf выполните команду
Она проверит вашу конфигурацию на ошибки и выдаст суммарную сводку о нём:
Как видно мы задали правильные параметры для того, чтобы наш компьютер стал членом домена. Теперь пора попытаться непосредственно войти в домен. Для этого введите команду:
И в случае успеха вы увидите что-то похожее на:
Используемые параметры команды net
-U username%password : Обязательный параметр, вместо username необходимо подставить имя пользователя с правами администратора домена, и указать пароль.
-D DOMAIN : DOMAIN — собственно сам домен, домен можно и не указывать, но лучше всё же это всегда делать — хуже не будет.
-S win_domain_controller : win_domain_controller , можно не указывать, но бывают случаи когда автоматически сервер не находит контроллер домена.
createcomputer=«OU/OU/…» : В AD часто используется OU (Organizational Unit), есть в корне домена OU = Office, в нем OU = Cabinet, чтобы сразу добавить в нужный можно указать так: sudo net ads join -U username createcomputer=«Office/Cabinet».
Если больше никаких сообщений нет — значит всё хорошо. Попробуйте попинговать свой компьютер по имени с другого члена домена, чтобы убедиться, что в домене всё прописалось так, как надо.
Так же можно набрать команду:
Если все хорошо, можно увидеть:
Но иногда после сообщения о присоединении к домену выдаётся ошибка наподобие 3) :
Если всё прошло без ошибок, то поздравляем, вы успешно вошли в домен! Можете заглянуть в AD и убедиться в этом. Кроме того хорошо бы проверить, что вы можете видеть ресурсы в домене. Для этого установите smbclient :
Теперь можно просматривать ресурсы компьютеров домена. Но для этого нужно иметь билет kerberos, т.е. если мы их удалили, то получаем опять через kinit (см. выше). Посмотрим какие ресурсы предоставлены в сеть компьютером workstation :
Вы должны увидеть список общих ресурсов на этом компьютере.
Настройка Winbind
Если вам необходимо как-либо работать с пользователями домена, например, настраивать SMB-шары с разграничением доступа, то вам понадобится кроме самой Samba ещё и Winbind — специальный демон, служащий для связи локальной системы управления пользователями и группами Linux с сервером Active Directory. Проще говоря Winbind нужен, если вы хотите видеть пользователей домена на своём компьютере с Ubuntu.
Winbind позволяет спроецировать всех пользователей и все группы AD в вашу Linux систему, присвоив им ID из заданного диапазона. Таким образом вы сможете назначать пользователей домена владельцами папок и файлов на вашем компьютере и выполнять любые другие операции, завязанные на пользователей и группы.
Для настройки Winbind используется всё тот же файл /etc/samba/smb.conf . Добавьте в секцию [global] следующие строки:
idmap uid = 10000 — 40000
idmap gid = 10000 — 40000
в новых версиях Samba уже устарели и при проверке конфига самбы с помощью testparm будет выдваться предупреждение:
WARNING: The «idmap uid» option is deprecated
WARNING: The «idmap gid» option is deprecated
Чтобы убрать предупреждения нужно заменить эти строки на новые:
idmap config * : range = 10000-20000
idmap config * : backend = tdb
Теперь перезапустите демон Winbind и Samba в следующем порядке:
Смотрим есть ли ошибки или предупреждения, если появится:
«rlimit_max: rlimit_max (1024) below minimum Windows limit (16384)»
Без перезагрузки можно устранить так:
Для сохранения после перезагрузки отредактировать файл /etc/security/limits.conf
После перезапуска проверьте, что Winbind установил доверительные отношения с AD командой:
А так же, что Winbind увидел пользователей и группы из AD командами 4) :
Эти две команды должны выдать список пользователей и групп из домена соответственно. Либо с префиксом DOMAIN\ , либо без него — в зависимости от того, какое значение вы указали параметру «winbind use default domain» в smb.conf .
Итак, Winbind работает, однако в систему он ещё не интегрирован.
Добавление Winbind в качестве источника пользователей и групп
Для того, чтобы ваша Ubuntu прозрачно работала с пользователями домена, в частности, чтобы вы могли назначать пользователей домена владельцами папок и файлов, необходимо указать Ubuntu использовать Winbind как дополнительный источник информации о пользователях и группах.
Для этого измените две строчки в файле /etc/nsswitch.conf :
добавив к ним в конец winbind :
также рекомендую привести строку files в файле /etc/nsswitch.conf к виду:
Теперь проверьте, что Ubuntu запрашивает у Winbind информацию о пользователях и группах, выполнив
Первая команда должна вам вернуть всё содержимое вашего файла /etc/passwd , то есть ваших локальных пользователей, плюс пользователей домена с ID из заданного вами в smb.conf диапазона. Вторая должна сделать тоже самое для групп.
Теперь вы можете взять любого пользователя домена и сделать его, например, владельцем какого-нибудь файла.
Авторизация в Ubuntu через пользователей домена
Несмотря на то, что все пользователи домена фактически стали полноценными пользователями системы (в чём можно убедиться, выполнив последние две команды из предыдущего раздела), зайти ни под кем из них в систему всё ещё нельзя. Для включения возможности авторизации пользователей домена на компьютере с Ubuntu необходимо настроить PAM на работу с Winbind.
Он-лайн авторизация
Для Ubuntu 10.04 и выше добавьте всего одну строку в файле /etc/pam.d/common-session , т.к. PAM и так неплохо справляется с авторизацией:
Для Ubuntu 13.10 чтобы появилось поле ручного ввода логина необходимо в любой файл из папки /etc/lightdm/lightdm.conf/ снизу добавить строку:
Для Ubuntu 9.10 и ниже придется редактировать несколько файлов (но никто не запрещает использовать этот способ и в 10.04 — он тоже работает):
И, наконец, необходимо перенести запуск Winbind при загрузке системы после всех остальных служб (по умолчанию он запускается с индексом 20). Для этого в терминале выполните следующую команду:
Что эквивалентно запуску для каждого уровня (в примере — 4) команды:
Готово, все настройки завершены. Перезагружайтесь и пытайтесь войти с учетной записью пользователя домена.
Источник
Не пигнуются компьютеры по доменому имени
Здравствуйте товарищи! Поставил ubuntu 12.04.2, network-manager автоматически получил ip адрес, днс, шлюз. Но при попытке пропинговать какой либо хост по доменому имени сразу появляется сообщение
Содержимое файла /etc/network/interfaces
Содержимое файла /etc/resolv.conf
Заранее благодарен за помощь.
Ты локальные хосты хочешь пропинговать ?
Если да, то пропиши всё в /etc/hosts
в resolv.conf хранятся днс, но вручную его редактировать нельзя — бред какой-то.
apt-get purge resolvconf
Вопрос: Почему network-manager не прописывает в этот файл днс, которые получает по dhcp?
Прописывает, скорее всего, но
Какая-то программа прописывает свои представления об идеальном DNS туда.
Нет, цель заключается в другом. Я редактировал его вручную, но после перезагрузки все встает по прежнему. Вы можете подсказать какая служба прописвывает
А это хорошая идея?
Даже можешь и не благодарить меня.
В убунте NetworkManager запускает dnsmasq, который занимается пробросом DNS запросов на реальный DNS сервер. Советчиков, рекомендующих прописать локальные хосты в hosts при наличии DHCP и DNS, лучше не слушать.
Проверь при помощи nslookup, разрешаются ли имена?
Вряд ли. В любом случае, лучше лишний раз разобраться, как это работает (и почему не), чем бездумно выполнять странные рекомендации.
не думаю, однако ты сможешь его всегда установить вновь
Найти бы этого паразита. В syslog тольео сообщение от network-manager, что он производит запись в этот файл и все.
Результат работы команды:
И хосты на определенное время стали пинговаться по имени, но потом снова все постарому. Я понять не могу за этот файл борьба какая-то идет?
можно попробовать audit настроить, но я не знаю, как это делается. Можно попробовать записать в файл нужное содержание и запретить его изменение (chattr +i).
А вот так что будет:
Еще можно посмотреть tcpdump-ом, какие пакеты ходят по сети во время nslookup. А еще можно «grep dnsmasq /var/log/syslog<,.1>» — проверить, что NM действительно выдал нормальный адрес DNS для dnsmasq.
настоящий лоровец не читает мануалов
Результат nslookup srv1 192.168.1.252, если днс не указать то результат прежний.
+500 ТС не слушай этих людей, они убунту готовить не умеют. Выхлоп nm-tool покажи
Спасибо за наводку, почитал данный мануал, ничего не вычитал по поводу: Откуда в этом файле берется запись
Результат команды nm-tool
настоящий лоровец не читает мануалов
Он в них отправляет
Lark
Почитай документацию по сети для дебиана, многие вопросы сами по себе отпадут.
Ковыряй настройки маршрутизатора, линукс тут не при чем. По факту днс есть, правда идет не основной, в любом случае — в настройки
Ковыряй настройки маршрутизатора, линукс тут не при чем. По факту днс есть, правда идет не основной, в любом случае — в настройки
Анонимус совсем испортился. При чём тут
ананимус видит маршрутизатор и видит его прекрасно. ананиму видить что маршрутизатор отдал свой адрес и согласен разрешить все имена. но С**к такой не разрешает. Если лор совсем съел мозг, то стоит сделать перерыв.
Ребята ругаться не нужно. Я согласен с mbwa и считаю, что маршрутизатор не причем. Просто результат команды:
В первом случае я не указывал днс сервер и он почему-то обратилсяк днсу по адресу 127.0.0.1 и соотвественно имя не разрешил, во втором случае я указал днс сервер и выполнение команды прошло успешно. Если я правильно понимаю команда nslookup srv1 тянет днс из resolv.conf, если днс не указан, а в resolv.conf
По логу network-manager пишет вродебы в этот файл днс, но какая-то служба все равно перезаписывает на 127.0.0.1
nm и перезаписывает, марш читать мануалы. Если лень, отруби nm и сконфигури все руками
1. Я уже сказал, что 127.0.0.1 в resolv.conf пишет NetworkManager (точнее, на самом-то деле это dnsmasq пишет с его подачи при помощи resolvconf).
2. Сделай «nslookup srv1 192.168.1.1». Очень похоже, что твой DHCP сервер выдает два адреса DNS серверов, и чаще всего используется 192.168.1.1, который доменные имена, видимо, не знает.
Можешь посмотреть при помощи «ps -C dnsmasq -Fww», какой длинннющей командой запущен dnsmasq. А затем по PPID определить, что он был запущен NetworkManager-ом. А затем в мане по resolvconf прочитать, что dnsmasq пользуется этой штукой для изменения resolv.conf.
nameserver 127.0.0.1 добавляется network manager. В Ubuntu он идёт с dnsmasq в зависимостях. Это такой кеширующий DNS-сервер. Он у вас запущен? Проверьте, вдруг он не работает. Наберите sudo service dnsmasq status.
Спасибо всем за помощь, ухожу разбираться, тему пока не закрываю, позже отпишу результаты!
Да dhcp выдает два днс. Убрал на сервере dhcp 192.168.1.1 и теперь все нормально работает. Теперь надо понять, каким образом указывать в ubunte альтернативный и предпочтительный dns.
Результат команды sudo service dnsmasq status:
Погуглив немного решил проблему. В общем каковы в итоге были мои действия:
В файле /run/nm-dns-dnsmasq.conf были прописаны днс, которые получает НМ от dhcp. Возник вопрос как же эти саме днсы прописать в /etc/resolv.conf. Полез в файл конфигурации НМ /etc/NetworkManager/NetworkManager.conf, где-то должно быть указано, чтобы он вызывал dnsmasq. Собственно содержимое файла NetworkManager.conf
Так в этом ваша проблема. DNS по адресу 127.0.0.1 — это локальный DNS(bind, dnsmasq). Network Manager использует dnsmasq. Установите его, и будет вам счастье.
Я тоже вначале так сделал. Оказалось, что dnsmasq умеет кешировать DNS-записи. Что ускоряет обращение к часто набираемым url. При этом он настолько легковесен, что вы его просто не заметите в системе. Поэтому я раскомментировал его опять, и просто установил пакет dnsmasq. Зато когда я стал настраивать окружение для разработки сайтиков на связке virsh с kvm — у меня не было проблем. Потому, как virsh использует всё тот же dnsmasq. Ну, и команда dig говорит о том, что повторное обращение к любому хосту по hostname идёт гораздо быстрее с dnsmasq, чем без него:)
По-моему, верным решением проблемы была бы перенастройка DHCP и DNS таким образом, чтобы сервер по DHCP получал только один сервер DNS (или два, но с точки зрения клиента они должны быть идентичны). Потому что, если я ничего не путаю, все DNS сервера клиентом по стандарту должны рассматриваться как равноправные, и если клиент попробует обратиться к DNS 192.168.1.252, получит отказ (не знает этот сервер такого имени), то ко второму DNS он обращаться уже не будет, даже если тот знает это имя. Второй сервер DNS будет задействован только в том случае, если до первого достучаться невозможно.
Так что в данном случае возможны рецидивы. Но повторюсь, что стандарты не читал — просто наблюдал подобное на практике.
Источник