Kerberos настройка windows 2008 r2

Обновлено: 02.07.2024

Это то, что я настроил недавно, и это было довольно большой болью. Моя среда получала squid для невидимой аутентификации клиента Windows 7 на сервере Windows 2008. NTLM на самом деле не вариант, так как его использование требует изменения реестра для каждого клиента.

MS рекомендует Kerberos начиная с Windows 2000, так что, наконец, пришло время заняться этой программой.

Огромное спасибо Маркусу Мёллеру из списков рассылки Squid за помощь, чтобы это заработало.

Это настройка со Squid 3.0, также была протестирована со Squid 3.1 и должна работать со Squid 2.7. Ваш пользователь Windows должен быть членом группы SQUID_USERS в Active Directory (в любом случае для этого случая).

Что касается Windows, Windows XP и Windows 2007 были протестированы для Windows 2008, а Windows XP - для Windows 2003.

Обратите внимание, что почти на каждом шаге требуется один, прежде чем продолжить.

Если у вас есть проблемы, DNS всегда на первом месте. Обе машины Windows должны быть в состоянии пропинговать сервер Linux по имени (и наоборот), и вам может потребоваться время от времени запускаться ipconfig /flushdns . Перезагрузка тоже может помочь, если вы хотите быть действительно уверенным, что вокруг ничего не висит.

  • Домен Windows: dom.local
  • Сервер доменных имен: server.dom.local , 172.17.3.11
  • CentOS кальмара сервера: centos.dom.local , 172.17.3.10
  1. Создать dom.local обратную зону в конфиге DNS.
  2. Создайте статическую ('A') запись для centos.dom.local указания 172.17.3.10 , выберите Да, когда вас спросят, хотите ли вы также настроить обратный PTR.

Windows 2008

Для сервера Windows 2008 вам необходимо установить исправление 951191 .

Незначительные пакеты

Компиляция последние кальмара _ обочины _ LDAP.

Используйте system-config-network для настройки точки DNS для контроллера домена, установите имя хоста в centos.dom.local .

Проверьте, работает ли обратный DNS: $ dig -x 172.17.3.10

Kerberos

Вы krb.conf должны выглядеть примерно так:

Для Windows 2008 вам нужно добавить --enctypes 28 в msktutil команду.

Кальмар

Установите соответствующие параметры в squid.conf:

Настройте пользователя и каталоги:

Начальный скрипт

Теперь это важно: для правильной работы Squid необходимо настроить некоторые переменные окружения. Лучший способ сделать это - использовать скрипт инициализации. Вот немного отредактированный CentOS:

Вот важные строки:

Установите свой прокси на сервер, centos.dom.local используя порт 3128 . Важно, чтобы вы использовали полное доменное имя, а не IP-адрес.

Вместо того, чтобы редактировать /etc/init.d/squid для установки переменной среды KRB5_KTNAME, вы должны просто поместить строки в / etc / sysconfig / squid. Поскольку сценарий инициализации использует / etc / sysconfig / squid при каждом выполнении, он подхватит эти две строки.

Кроме того, вам не нужно явно указывать хосты, которые будут KDC и сервером kadmin, достаточно просто ввести домен DNS для вашего домена Active Directory. Есть 2 причины, почему:

  1. MIT Kerberos и Heimdal kerberos достаточно умны, чтобы использовать те же записи SRV, которые используют клиенты Windows для поиска KDC и сервера kadmin.
  2. Домен DNS (в вашем примере dom.local) вернет записи A, указывающие на контроллеры домена
Хорошие очки. Хотя это было настроено в CentOS, я из Debian, у которого нет sysconfig. Есть ли какая-то особая выгода для того, чтобы поставить там строки? Как вы думаете, в какой части не нужно указывать DC? Я знаю, что это, вероятно, должно быть каждая часть, но DNS был такой боль в настройке во время этого процесса, мне было легче давать больше информации, чем меньше. Что касается вопроса о DC, речь идет о «kdc = 172.17.3.11:88» и «admin_server = 172.17.3.11:7491». Вы можете заменить их на «kdc = dom.local» и «admin = dom.local». «Host -ta dom.local» на ваших компьютерах с Linux должен возвращать IP-адреса наших контроллеров домена; поскольку все ваши контроллеры домена являются KDC, даже версия библиотек Kerberos, которые не поддерживают SRV RR, не должна иметь проблем с поиском KDC, хотя я не знаю, почему кто-либо будет использовать библиотеки Kerberos такого старого уровня.

следуя этому туто, я смог заставить squid работать на сервере fedora 12. Проверьте брандмауэр на вашем Linux-сервере (включите порт 3128) и установите SELinux в разрешающий режим.

Два дня убил на то, что бы настроить связку CentOS 5.8 + Squid 3.1 + Kerberos + Windows Server 2008 R2. Некоторые ошибки были досадные и отняли кучу времени. Другие, напротив, с большим трудом удалось побороть. Но в итоге всё работает :)

  1. Не требуется настройка SAMBA.
  2. Пользователям не надо вводить логин и пароль (веб-обозреватель делает это автоматически). ОС пользователей: Windows 2000 или новее, Mac OS X и Linux. Поддерживаемые веб-обозреватели: Internet Explorer 7.0 или новее (версия IE < версии 7.0 не работает с Kerberos), Mozilla Firefox версии 3.6 или новее и Safari (тесты проведены с версией 5.0.3).

Конфигурация клиентской машины

Конфигурация сервера Microsoft Active Directory

  • Необходимо добавить и настроить роль "Доменные службы Active Directory". Необходимо создать пользователя в домене, например, squid. Пароль пользователя не должен иметь срока годности ("Срок действия пароля не ограничен"). Пароль должен удовлетворять требования политик безопасности. Для оптимального уровня безопасности, пароль должен состоять из восьми символов - это минимум (буквы, цифры, а также специальные символы).
    Внимание! Пользователь должен находится в контейнере Users. Иначе будут проблемы при выполнении ktpass.



Встречается требование выставить галочку на пункте "Без предварительной проверки подлинности Kerberos" ("Do not require Kerberos preauthentication"). Но это необязательно.
(Если Вас смущает "Имя входа пользователя", то оно автоматически станет таким после выполнения команды ktpass, которая описана дальше).


Если видим ошибку:
Значит пользователь не находится в контейнере Users!

Внимание! Очень важно соблюдать регистр при написании доменного имени. Там где написано в нижнем регистре используем нижний регистр, а там где верхний - верхний. Вроде бы элементарно, но очень многие не обращают на это внимание.
После создания, файл "squid.k43.guap.ru.keytab" необходимо скопировать на прокси-сервер (обычно в каталог "/etc/squid").

Конфигурация прокси-сервера на примере ОС CentOS 5.8

А полный конфигурационный файл выглядит так:

Надеюсь ничего не упустил. Это минимальная конфигурация. Чтобы не засорять логи отладочной информацией можно выключить параметр -d в /squid_kerb_auth и даже параметр -i (если они у вас остались).

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

5 комментариев:

блин, вроде все сделал и ошибок не было.
но почему-то в инет могут выходить все пользователи(не важно в группе internet они или нет, даже если локально залогинился все равно есть доступ)
в чем косяк может быть?

Я думаю, что у вас настроена маршрутизация и не выставлено ограничено на брандмауэре (iptables - стандартный брандмауэр для CentOS 5.x, поэтому далее речь о нём).

б) трафик в цепочке FORWARD по 80 порту блокировался (желательно применять политику DROP и не делать явного разрешения передачи по 80 порту)
:FORWARD DROP [0:0]

г) в цепочке INPUT выставить разрешение на входящие соединения для прокси сервера из локальной сети:
-A INPUT -p tcp -s 192.168.100.0/24 --dport 3128 -j ACCEPT

После этого пользователи, у кого явно не прописан прокси сервер не смогут смотреть страницы.

Этот параметр политики позволяет устанавливать типы шифрования, которые разрешено использовать протоколу Kerberos. Если он не выбран, тип шифрования не будет разрешен. Этот параметр может повлиять на совместимость с клиентские компьютеры или службы и приложения. Допускается несколько выборов.

Дополнительные сведения см. в статье 977321 в базе знаний Майкрософт.

В следующей таблице перечислены и объяснены допустимые типы шифрования.

Возможные значения

Параметры типа шифрования включают:

Будущие типы шифрования

По мере выпуска Windows 7 и Windows Server 2008 R2 это зарезервировано Корпорацией Майкрософт для дополнительных типов шифрования, которые могут быть реализованы.

Рекомендации

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

Location

Конфигурация компьютера\Windows Параметры\Security Параметры\Local Policies\Security Options

Значения по умолчанию

Тип сервера или объект групповой политики (GPO) Значение по умолчанию
Политика домена по умолчанию Не определено
Политика контроллера домена по умолчанию Не определено
Параметры по умолчанию отдельного сервера Не определено
Эффективные параметры контроллера домена по умолчанию Параметр ОС по умолчанию применяется, наборы DES не поддерживаются по умолчанию.
Параметры сервера-участника по умолчанию Параметр ОС по умолчанию применяется, наборы DES не поддерживаются по умолчанию.
Эффективные параметры по умолчанию GPO на клиентских компьютерах Параметр ОС по умолчанию применяется, наборы DES не поддерживаются по умолчанию.

Вопросы безопасности

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

Уязвимость

Windows Пакеты шифрования DES 2008 R2, Windows 7 и Windows 10 не поддерживаются, так как доступны более сильные наборы. Чтобы включить возможность работы Kerberos с Windows версиями протокола Kerberos, эти наборы можно включить. Однако это может открыть векторы атак на компьютерах с Windows Server 2008 R2, Windows 7 и Windows 10. Вы также можете отключить DES для компьютеров Windows Vista и Windows Server 2008.

Противодействие

Не настраивать эту политику. Это заставит компьютеры с Windows 2008 R2, Windows 7 и Windows 10 использовать криптографические наборы AES или RC4.

Возможное влияние

Если не выбрать ни один из типов шифрования, компьютеры с Windows Server 2008 R2, Windows 7 и Windows 10 могут иметь сбои проверки подлинности Kerberos при подключении к компьютерам, работающим Windows версиями протокола Kerberos.

Сначала необходимо настроить службу DNS. Это весьма важно, поскольку от корректного разрешения имен в сети зависит надежная работа нашей сети и сервисов Samba. Наш контроллер домена одновременно является и сервером DNS. Поэтому выберем в разделе Administrative Tools программу управления DNS и вручную введем имя и адрес нового сервера. На рис. 1 уже представлен результат.



Рис. 1. Задание имени и адреса в DNS.

Наш сервер DNS интегрирован с Active Directory. Можно проверить корректность прямого и обратного разрешения имен с использованием утилиты nslookup или host. Уточним: это нужно сделать обязательно, даже несмотря на то, что необходимая запись уже появилась на сервере DNS. Нужно это сделать потому, что такая проверка — лишний тест работоспособности сети и корректности настроек. Проверка с помощью утилиты host выглядит так:
host 192.168.7.10 — определение имени по адресу, и
host test-centos.lab.local — определение адреса по имени.
В результате мы должны получить корректное разрешение имен в обоих случаях.

3.Настройка сетевого адаптера

Теперь этот IP-адрес (192.168.7.10) необходимо присвоить сетевому адаптеру вновь установленного сервера CentOS Linux. Воспользуемся пунктом меню System на рабочем столе и выберем пункт Network Connections (рис. 2).



Рис. 2. Настройка сетевого соединения.

В появившемся окне настроек зададим нужный IP-адрес. В результате мы должны получить следующее — см. рис. 3.



Рис. 3. Настройка сетевого соединения. Задание IP-адреса.

  1. Connect automatically, что позволяет автоматически подключать сетевой адаптер.
  2. Available to all users, что разрешает пользоваться этим адаптером всем пользователям.



Рис. 4. Настройка сетевого соединения. Файл настроек.

Ключевое слово NM_CONTROLLED разрешает или запрещает управлять соединением с использованием Network Manager.
При любом способе настроек, следует установить IP-адрес сервера DNS. Это наш контроллер домена с IP-адресом 192.168.7.2.
Для применения настроек сетевого адаптера следует выполнить команду перезапуска:

4.Настройка времени

Как уже говорилось в предыдущих статьях, корректная настройка времени очень важна для работы Active Directory. Настроить время можно с использованием штатных средств системы (см. рис. 5).



Рис. 5. Настройка времени.

Но для того, чтобы полностью избежать проблем с рассинхронизацией часов, следует настроить службу времени (демон ntpd) на синхронизацию времени с контроллером домена (см. рис. 6).



Рис. 6. Настройка службы времени.

Для этого нужно отредактировать файл /etc/ntp.conf , указав в качестве сервера времени контроллер домена. Не забудьте настроить запуск демона ntpd с помощью команды chkconfig ntpd on и перезапустить его командой /etc/init.d/ntpd restart .

5.Проверка настроек

Произведя указанные настройки, следует проверить их корректность. Нужно протестировать соединение с контроллером домена, настройку времени, правильность прямого и обратного разрешения имен (см. рис. 7).



Рис. 7. Проверка настроек.

6.Настройка авторизации в домене



Рис. 8. Вызов system-config-authentication.

  1. локальная база данных паролей (файлы /etc/passwd и /etc/shadow);
  2. подключение к серверу LDAP;
  3. подключение к серверу NIS;
  4. использование Winbind — подключение к контроллеру домена Windows;
  5. использование IPAv2 — интегрированное решение, объединяющее LDAP, Kerberos, NTP, DNS и службу сертификатов.



Рис. 9. Выбор User Account Database.

  1. Domain — централизованная авторизация с использованием домена Windows 2000/2003;
  2. Server — используется в тех случаях, когда Samba не является членом домена, но использует централизованное хранение пользовательских аккаунтов и паролей на сервере;
  3. User — используется локальная база аккаунтов и паролей пользователей. При этом требуется не только пользовательский аккаунт, но и аккаунт рабочей станции.



Рис. 10. Вкладка Advanced Options system-config-authentication.

На этой вкладке нас интересуют два параметра: Create home directories on the first login и Enable local access control.
Enable local access control позволяет нам указать правила регистрации пользователей на нашем сервере. Можно разрешить или запретить определенным пользователям регистрироваться с использованием терминалов или удаленных рабочих столов. Это весьма удобно, если мы хотим, например, запретить пользователям подключаться через консольный терминал. Правила регистрации и их краткое описание содержатся в файле /etc/security/access.conf .
Параметр Create home directories on the first login позволяет снять с администратора обязанность создавать домашние каталоги для пользователей. При указании этого параметра домашний каталог создается автоматически при первом входе пользователя в систему. Но необходимо проверить корректность наличия этой опции. В CentOS Linux за это отвечает модуль pam_oddjob_mkhomedir.so, который должен быть упомянут в файле /etc/pam.d/system-auth в строке session required pam_oddjob_mkhomedir.so skel=/etc/skel/ umask=0022 . Кроме того, домашний каталог для регистрации доменных пользователей на сервере Samba по умолчанию задается как /home/%D/%U . Это указывается параметром template homedir в файле настроек Samba. Если использовать значение по умолчанию, то администратору необходимо создать каталог /home/, где является кратким именем домена. В нашем случае необходим каталог /home/LAB , в котором будут автоматически создаваться домашние директории пользователей.
Теперь вернемся на вкладку Identity & Authentication утилиты system-config-authentication и включим наш сервер в домен Windows 2008 R2.
Для этого нужно выбрать действие Join Domain и ввести имя администратора домена и пароль (рис. 11). По нажатию кнопки OK, мы должны включить наш сервер в домен LAB.



Рис. 11. Указание имени и пароля администратора при вводе в домен.



Рис. 12. Включение в домен LAB.



Рис. 13. Проверка наличия в домене.

Мы видим, что наш сервер включен в домен под именем test-centos.
Теперь проверим возможность регистрации доменных пользователей на нашем сервере. Укажем доменного пользователя в ответ на приглашение о вводе имени на консоли сервера (рис. 14).



Рис. 14. Ввод имени доменного пользователя.

Как видно, имя пользователя указывается вместе с именем домена. По умолчанию разделителем является обратная косая «\». Это значение можно изменить параметром winbind separator в файле настроек Samba. Выбрав кнопку Log In, получим приглашение ввести пароль. После ввода пароля получаем рабочий стол пользователя usertest (рис. 15).



Рис. 15. Рабочий стол доменного пользователя в CentOS Linux.

Таким образом, мы успешно решили задачу включения сервера CentOS Linux в домен Windows 2008 R2 и даже разрешили доменным пользователям обращаться к рабочему столу и командной строке Linux. Это дает пользователям домена дополнительные возможности использования различных операционных систем в сети предприятия.

Читайте также: