Centos ввести в домен
Вики IT-KB
Пошаговые руководства, шпаргалки, полезные ссылки.
Инструменты пользователя
Инструменты сайта
Боковая панель
Содержание
CentOS Linux 7 — Присоединение к домену Active Directory средствами realmd/SSSD и настройка аутентификации и авторизации через доменные группы безопасности
Процедура присоединения Linux-системы к домену Active Directory с помощью SSSD (System Security Services Daemon) и RealmD (Realm Discovery) подробно рассматривалась ранее на примере Debian GNU/Linux 8.6. Данная статья является «выжимкой» основных этапов присоединения к домену Active Directory для системы на базе CentOS Linux 7.4.
Предварительные условия
На нашей Linux-системе, для успешного присоединения и членства в домене Active Directory, должно быть соблюдено как минимум два условия:
Присоединение к домену Active Directory
Устанавливаем необходимые для работы пакеты:
Проверяем успешность обнаружения домена:
Настраиваем параметры системы, которые будут использованы при присоединении к домену для заполнения атрибутов operatingSystem и operatingSystemVersion.
Выполняем присоединение к домену (в ходе присоединения будет запрошен пароль доменного пользователя с правами на ввод в домен, указанного в опции –user ):
Настройка Kerberos-клиента
Настраиваем конфигурационный файл, ранее установленного клиента Kerberos. Это может быть нужно в случае если мы захотим использовать удалённое Single sign-on (SSO) подключение через сервер SSHD (например через клиент Putty с Windows-системы, как это было описано ранее)
Пример готовой конфигурации:
Настройка SSSD
Настраиваем конфигурацию службы sssd
Пример готовой конфигурации:
Очищаем кэш sss и перезапускаем службу sssd:
Проверка взаимодействия с AD
Проверяем то, что в системе успешно зарегистрированы модули работы SSSD с PAM/NSS:
Проверяем успешность получения информации о пользователе из AD по логину:
Проверяем успешность получения информации о пользователе из AD по UPN:
Проверяем успешность получения информации из AD о членах доменной группы безопасности:
Пробуем войти в сессию доменного пользователя:
Успешно войдя в сессию доменного пользователя пробуем получить информацию о текущем пользователе (должен быть возвращён набор доменных групп, в которые входит пользователь):
Доступ к SUDO
Настроим доступ к возможности вызывать команду sudo, основанный на членстве в доменной группе безопасности: Создадим в каталоге /etc/sudoers.d/ новый файл, в котором будут перчислены группы безопасности:
Наполним файл (каждая отдельная группа с правилами доступа в отдельной строчке. в нашем примере используется одна группа с полным доступом):
Войдём в сесcию доменного пользователя, входящего в группу, которой мы разрешили выполять sudo:
Успешно войдя в сессию доменного пользователя пробуем выполнить любую команду с правами администратора системы используя sudo:
Как видим, работает. Осталось ограничить доступ на редактирование файла, в котором описаны правила предоставления доступа к sudo:
Настройка SSHD
Насстроим службу sshd для того, чтобы можно было использовать SSO-подключение.
Включим опции конфигурационного файла:
Ограничение доступа к системе через PAM
Чтобы ограничить доступ к CentOS Linux 7 на базе доменных групп безопасности, создадим новый конфигурационный файл, в котором будут перечислены группы (как локальные так и доменные), которым нужно обеспечить вход в систему:
Обратите внимание на то, что настраивая ограничение локального входа лучше не забыть добавить локальные группы root и sudo, иначе с дальнейшем вход в систему под локальными административными учётными записями может стать невозможен.
Ограничим доступ к файлу:
Настроим в системном конфиге /etc/pam.d/login правила PAM таким образом, чтобы в ходе авторизации при локальном входе на консоль нашей Linux-системы использдвался созданный нами выше файл со списком разрешённых групп:
Вставляем перед строкой « account include system-auth » вызов проверки нашего файла с группами:
Внимание! Невнимательное редактирование данного файла может привести в невозможности локального входа в систему, поэтому в ходе дальнейших проверок не закрывайте текущую сесиию, чтобы была возможность исправить возможные ошибки.
Теперь попробуем подключиться на консоль нашей Linux-системы, используя доменные учётные записи (те, которым разрешен вход через группу безопасности и те, которым не разрешён вход). В процессе проверки в отдельной сессии запустим наблюдение за логом безопасности, чтобы видеть то, что происходит в ходе авторизации для разрешённых и неразрешённых для входа пользователей.
Теперь аналогичным образом настроим в конфиге, относящемся к обработке авторизации в SSHD ( /etc/pam.d/sshd ) правила PAM таким образом, чтобы в ходе авторизации при удалённом входе через SSH-сервер использовался созданный нами выше файл со списком разрешённых групп (в нашем примере используется тот же файл, что и для локального входа, хотя это могут быть разные файлы и группы доступа):
Вставляем перед строкой « account include password-auth » вызов проверки нашего файла с группами:
Внимание! Невнимательное редактирование данного файла может привести в невозможности входа в систему через SSH-сервер, поэтому в ходе дальнейших проверок не закрывайте текущую сесиию, чтобы была возможность исправить возможные ошибки
Теперь попробуем удалённо подключиться к SSH-серверу нашей Linux-системы, используя доменные учётные записи (те, которым разрешен вход через группу безопасности и те, которым не разрешён вход). В процессе проверки в отдельной сессии запустим наблюдение за логом безопасности, чтобы видеть то, что происходит в ходе авторизации для разрешённых и неразрешённых для входа пользователей.
Если дополнительно требуется доменная аутентификация/авторизация в других сервисах CentOS Linux, например в веб-сервере Apache то, в качестве примера можно использовать статью Настройка Kerberos аутентификации с SSO на веб-сервере Apache с помощью SSSD
Системное администрирование Linux
2017-11-13 16:53:18 5135 0
Добавление CentOs 7 в домен Windows
В развитой инфраструктуре, где имеется большое количество рабочих станций и серверов, управлением учетными записями обычно осуществляется посредством Windows Active Directory. Поэтому управление линукс серверами так же удобнее осуществлять через централизованное хранение учетных записей. Рассмотрим пример добавления линуксовой машины с операционной системой CentOs7 в домен Windows.
Отключаем SELINUX
sed -i «s/SELINUX=enforcing/SELINUX=disabled/» /etc/selinux/config
Установка iptables
systemctl stop firewalld
systemctl disable firewalld
yum install -y iptables-services
После установки запускаем iptables
systemctl start iptables
systemctl enable iptables
Устанавливаем необходимые пакеты:
yum install -y authconfig samba samba-winbind samba-client
Настройка DNS
Указываем в качестве DNS сервера наш контроллер домена
Если на сервере настроен DHCP, то убедитесь что сервер получает правильные настройки dns-сервера и домена
Проверяем что имя домена резолвится
Присоединение сервера к домену
Запускаем утилиту authconfig-tui
Указываем:
Информация пользователя — Использовать Winbind
Аутентификация — Использовать Kerberos
Заполняем следующие поля:
- Область — область kerberos, совпадает с именем домена в верхнем регистре;
- KDC(Key Distribution Center ) — kerberos сервер, выступает как сервер по управлению и хранению билетов;
- Сервер администратор — совпадает с KDC;
- Остальные два пункта говорят нам использовать DNS для определения имен серверов и KDC для областей.
Заполняем следующие поля:
- Модель защиты — выбираем ads(означает, что используются протоколы, совместимые со службами ADS Windows 2008R2);
- Домен — вводим NetBios имя домена, без конечно части;
- Контроллеры домена — указываем адреса контроллеров домена;
- Область ADS — совпадает с именем домена;
- Оболочка шаблона — указывает какую оболочку будут иметь доменные пользователи на linux машине.
Запускаем демон Winbind
systemctl start winbind
systemctl enable winbind
Далее производим присоединение к домену
net ads join -U Administrator
Указываем пользователя под которым будем присоединять сервер и вводим его пароль, должны увидеть следующее:
Машина в домене
Для того чтобы пользователи и группы домена отображались на сервере и вы могли получать доступ к ним, необходимо в файле /etc/samba/smb.conf добавить строки
Для проверки можно использовать утилиту wbinfo и getent
Покажет пользователей домена:
Покажет группы домена:
Команда «getent passwd» и «getent group» отобразит локальные учетные записи + доменные и точно так же группы соответственно
Для использования доменных учетных записей необходимо сделать следующее:
Изменить значение директивы «winbind use default domain» в файле /etc/samba/smb.conf с false на true, что говорит использовать домен winbind по-умолчанию. И мы можем указывать доменных пользователей без приставки домена.
Добавить директиву «winbind separator» в файл /etc/samba/smb.conf
Что указывает символ отделения имени домена от имени пользователя.
Админствующий FM
пятница, 29 июля 2011 г.
добавление RHEL (CentOS) 5 сервера в домен Active Directory
Вдосталь наэксперементировавшись с openLDAP и 389 Directory Server, всё-таки решил остановиться на Active Directory от Microsoft для централизованного управления моим зоопарком из Windows и RHEL серверов. Если ввод в домен рабочей станции или сервера Windows довольно тривиальная задача, то присоединение к домену Linux системы оказалось не на много сложнее 🙂 Прогресс не стоит на месте, Red Hat приложила (да и Microsoft тоже) немело усилий для безпроблемного сосуществования и взаимодействия различных операционных систем.
В качестве примера возьмем сервер с RHEL 5.6 на борту с именем server01 и заведем его в Active Directory домен ACME.LOCAL
Для начала проверяем что в имени машины присутствует имя домена
[root@server01
] vim /etc/sysconfig/network
HOSTNAME=server01.acme.local
если нет — правим файл и, затем, выполняем команду
[root@server01
Указываем короткое и полное имя этого сервера
[root@server01
] vim /etc/hosts
127.0.0.1 server01 server01.acme.local localhost localhost.localdomain
Важный момент: прописываем IP нашего контроллера домена как DNS сервер
[root@server01
] vim /etc/resolv.conf
nameserver 192.168.1.1
Далее необходимо синхронизаровать системное время между сервером и контроллером домена.
Правим конфигурационный файл службы точного времени:
[root@server01
] vim /etc/ntp.conf
добавляя строку:
server dc.acme.local
] chkconfig ntpd on
и запускаем ее:
[root@server01
] service ntpd start
Ставим клиент Samba 3.3
[root@server01
] yum install samba3x samba3x-common samba3x-client
Можно использовать Samba 3.0 который идет в поставке RHEL версии 5.4 и ранее, но для домена на основе Windows Server 2008 R2 рекомендуется использовать samba-3.3. В моем случае это позволило побороть сообщения в журнале /var/log/messages
Jul 11 11:05:01 server01 winbindd[26769]: [2011/07/11 11:05:01, 0] rpc_client/cli_pipe.c:rpc_api_pipe(790)
Jul 11 11:05:01 bird winbindd[26769]: rpc_api_pipe: Remote machine DC.acme.local pipe NETLOGON fnum 0xc00creturned critical error. Error was NT_STATUS
_PIPE_DISCONNECTED А теперь самая магия. Запускаем нижеследующую команду одной строкой либо с обратными слешами:
] authconfig —update —kickstart
—enablewinbind
—enablewinbindauth
—smbsecurity=ads
—smbworkgroup=ACME
—smbrealm=ACME.LOCAL
—smbservers=DC.ACME.LOCAL
—smbidmapuid=10000-20000
—smbidmapgid=10000-20000
—winbindtemplatehomedir=/home/%U
—enablemkhomedir
—winbindtemplateshell=/bin/bash
—enablewinbindusedefaultdomain
—enablelocauthorize
—enablekrb5
—krb5realm ACME.LOCAL
—krb5kdc DC.ACME.LOCAL
—krb5adminserver DC.ACME.LOCAL
Эта команда вносит все необходимые изменения в конфигурационные файлы системы:
* настраивает клиент Kerberos /etc/krb5.conf
* добавляет службу winbind в /etc/nsswitch.conf для passwd, shadow и group
* изменяет должным образом /etc/samba/smb.conf на работу в домене
* стартует службу winbind позволяет которая обмениваться информацией с NT системами
Переходим к инициализации клиента Kerberos (пакет krb5-client обычно уже установлен)
сбрасываем кэш сессий
[root@server01
] kdestroy
Создаем новый кеш, указывая имя доменного администратора и вводим его пароль по запросу
[root@server01
] kinit administrator
Если всё прошло без ошибок, то закешированый Kerberos-тикет можно просмотреть командой
[root@server01
] klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@ACME.LOCAL
Valid starting Expires Service principal
07/18/11 19:27:18 07/19/11 05:27:48 krbtgt/ACME.LOCAL@ACME.LOCAL
renew until 07/19/11 19:27:18
Kerberos 4 ticket cache: /tmp/tkt0
klist: You have no tickets cached Вот теперь настал момент добавления нашего сервера в домен:
[root@server01
] net ads join -U administrator
Должно появится поле ввода пароля для администратора домена administrator@ACME.LOCAL
После ввода которого и при корректной настройке система сообщит об успешном завершении операции
Using short domain name — ACME
Joined ‘SERVER01’ to realm ‘acme.local’ и стартуем winbind
] service winbind restart
Если что-то не получается, для начала надо проверять подключение к DNS и логи winbind.
На этом настройка завершена. В Active Directory появилась учетная запись server01 в «Domain Computers», можно подлключаться по SSH, используя учетные записи пользователей домена.
login as: jsmith
jsmith@192.168.1.2’s password:
Ввод CentOS 7 в домен Active Directory и авторизация по SSH доменных пользователей
Мне понадобилось настроить авторизацию доменный учетных записей Active Directory по ssh на linux сервер. В моем случае это будет система CentOS 7. Данная возможность будет очень удобна для организаций с внедренной доменной структурой Windows. С помощью групп доступа в AD вы сможете централизованно управлять доступом к linux серверам.
- 1 Подготовка сервера
- 2 Подключение CentOS 7 к домену
- 3 Ограничение доступа ssh по группам и пользователям домена
- 4 Ограничение доступа к sudo по доменным группам
- 5 Заключение
- 6 Дополнительные материалы по CentOS
Подготовка сервера
Если у вас еще нет готового сервера, то можете воспользоваться моими материалами на эту тему — установка и настройка centos 7. Так же рекомендую настроить iptables для корректной работы сервера с доменом windows. Далее я не буду каcаться этого вопроса, мы просто отключим фаерволл, потому что его настройка не тема этой статьи.
Настроим синхронизацию времени с контроллером домена. Это важно, у вас должно быть одинаковое время с контроллером домена. Проверьте его и убедитесь, что стоят одинаковые часовые пояса.
Устанавливаем утилиту для синхронизации времени chrony:
Добавляем в конфиг /etc/chrony.conf адрес контроллера домена. И делаем его единственным сервером для синхронизации, остальные удаляем.
Сохраняем конфиг, запускаем chrony и добавляем в автозагрузку.
Проверим, что с синхронизацией.
Все в порядке. Синхронизировали время с контроллером домена. По логу видно, что время на сервере убежало вперед на 56 минут, но мы это исправили.
Подключение CentOS 7 к домену
Устанавливаем софт, который нам понадобится, для корректного ввода centos в домен windows.
Вводим Centos 7 в домен:
Если не получили никакой ошибки, значит все прошло нормально. Можно зайти на контроллер домена и проверить, появился ли наш linux сервер в домене.
Изменим немного конфиг sssd для того, чтобы не нужно было вводить полное имя домена при логине, а только username.
Разрешаем доменным пользователям создавать домашние директории:
Запускаем службу sssd и добавляем в автозагрузку:
Проверяем авторизацию по ssh, подключившись по любой доменной учетной записи.
Для пользователя будет создана домашняя директория /home/lin-user@xs.local.
Ограничение доступа ssh по группам и пользователям домена
На текущий момент подключиться к серверу может любой пользователь домена. Исправим это и разрешим подключаться только пользователям из группы gr_linux_adm. Для этого правим конфиг /etc/sssd/sssd.conf, добавляя туда новые параметры.
Обращаю внимание, что параметр access_provider у вас уже будет установлен в другое значение. Надо это изменить. Вы можете добавить разрешение как для конкретного пользователя, так и для целых групп. Сохраняйте конфиг и перезапускайте sssd.
Теперь подключиться по ssh к серверу сможет только пользователь домена user55 и все члены группы gr_linux_adm.
Для разбора полетов и решения проблем нужно использовать лог файл — /var/log/secure. Вот пример успешного подключения:
А вот кусок лога подключения доменного пользователя, для которого доступ по ssh закрыт.
Здесь видно, что идентификация пользователя прошла корректно, но доступ к серверу запрещен.
Ограничение доступа к sudo по доменным группам
Ограничение доступа к ssh по группам и пользователям настроили, теперь надо разрешить доменным учетным записям получать права суперпользователя в системе. Сейчас у них нет такой возможности.
Создаем новый файл в директории /etc/sudoers.d.
Выставляем минимальные права на файл:
Теперь вы можете зайти в систему доменной учетной записью из группы gr_linux_adm и получить полные права в системе.
Реализовать то же самое можно было через настройки sssd. В его конфиге можно было указать группы, которым разрешен доступ к sudo. Но в целом это не принципиально. Так, как сделал я, мне показалось проще. Не нужно использовать полные имена объектов в AD, в которых легко запутаться, особенно тем, кто не очень в этом ориентируется. Мне же понадобились только конечные имена групп. Более подробно об этом можно почитать в руководстве redhat. Ссылку приведу в конце.
Заключение
На этом все. Я рассмотрел наиболее типовую ситуацию, которая может быть полезной при использовании структуры AD совместно с linux серверами. При написании статьи использовал официальные руководства:
- Deployment, Configuration and Administration of Red Hat Enterprise Linux 6
- sssd.conf — Linux man page
Почему-то из руководства по RHEL 7 раздел, посвещенный SSSD убрали, хотя в 5 и 6 есть. Может просто я не заметил, так как структура сильно поменялась. Люблю я CentOS в первую очередь за отличную документацию Redhat. Там есть подробное описание практически всего, с чем приходилось сталкиваться. Надо только не лениться в английском языке разбираться.
CentOS: Samba сервер в домене
Всем нам, так или иначе, но приходится подниматься файловые сервера. И даже не важно — какого размера ваша компания или парк компьютеров — файловая шара пригодится всегда, как для обмена информации, или её централизованного хранения, либо как место хранения перемещаемых профилей доменных пользователей Windows (как пример — разберём именно эту ситуацию).
Для работы нам понадобятся 3 ващи: samba, winbind и kerberos, и ntp — устанавливаем:
Первым делом нам нужно синхронизировать время на нашем linux-сервере с контролером домена, для этого мы отредактируем конфигурационный файл ntp:
После чего первый раз синхронизируем время вручную:
и запустим ntpd, добавив его попутно в автозагрузку
Теперь мы переходим к настройке kerberos:
После чего пробуем получить тикет для входа в домен:
Командой klist мы можем проверить выданный нам тикет
Ну а теперь мы можем переходить к самому интересному — настройке samba:
Вы можете создать и отдельную группу в AD для доступа к серверу. Список групп можно посмотреть командой wbinfo -g, а список пользователей — wbinfo -u (для того что бы команды начали работать, необходимо запустить winbind, что мы сделаем немного позже, после его конфигурирования).
Теперь в файле nsswitch.conf нам нужно добавить что для доступа к AD мы будем использовать winbind (вообще winbind – это демон, работающий на клиентах samba и действующий как прокси для связи между PAM и NSS, работающими на компьютере linux, с одной стороны, и AD, работающей на контроллере домена, с другой. В частности, winbind использует kerberos для проверки подлинности с помощью AD и LDAP для получения информации о пользователях и группах).
К моему сожалению, в CentOS 6 пакет samba-common не содержит шаблон конфигурационного файла PAM-модулей, для аутентификации через сервис winbind (system-auth-winbind). По этому нам придётся создать его самостоятельно:
Так же, по непонятной мне причине, параметр session required pam_mkhomedir.so не работает из файла /etc/pam.d/system-auth-winbind, по этому нам придётся дополнительно его описать в файле /etc/pam.d/samba
Теперь мы можем запустить samba и войти в домен:
После чего мы должны получить сообщение о том, что наш сервер теперь является доменной машиной:
Помните, что вы должны вводить сервер в домен под учётной записью администратора домена, либо пользователем, имеющим права на ввод компьютеров в домен. Теперь запустим winbind и проверим — всех ли мы видим:
Если всё видно, значит всё хорошо, нам остаётся лишь настроить фаервол, что бы он не блокировал порт samba (я как всегда напомню о своём любимом псевдоинтерфейсе system-config-firewall-tui) и перезагрузиться. После этого наш сервер готов к работе и всё что нам остаётся — на контролере домена указать месторасположение профиля пользователя. Так же не забудьте в DNS прописать ваш linux сервер.
т.к. в конфигурации samba мы указали path = /profiles/%U, то пользователь, при обращении к \fileserverprofile будет попадать сразу в собственную директорию, что упрощает нам жизнь при создании пользователя (пусть до профиля у всех пользователей будет одинаков), так и то, что другие пользователи, просто физически не видят что там есть данные других пользователей, что в какой то мере сможет остановить многих шалунов
Надеюсь вам было интересно, полезно и у вас не возникнет проблем при настройке. Удачи.
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.