Light-electric.com

IT Журнал
96 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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 по группам и пользователям настроили, теперь надо разрешить доменным учетным записям получать права суперпользователя в системе. Сейчас у них нет такой возможности.

    Читать еще:  Добавьте в dns домена txt запись

    Создаем новый файл в директории /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 будет попадать сразу в собственную директорию, что упрощает нам жизнь при создании пользователя (пусть до профиля у всех пользователей будет одинаков), так и то, что другие пользователи, просто физически не видят что там есть данные других пользователей, что в какой то мере сможет остановить многих шалунов

    Надеюсь вам было интересно, полезно и у вас не возникнет проблем при настройке. Удачи.

    Добавить комментарий Отменить ответ

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

    0 0 голоса
    Рейтинг статьи
    Ссылка на основную публикацию
    ВсеИнструменты