Light-electric.com

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

Контроллер домена на centos

Join CentOS 7 Desktop to Samba4 AD as a Domain Member – Part 9

by Matei Cezar | Published: March 17, 2017 | Last Updated: March 17, 2017

This guide will describe how you can integrate CentOS 7 Desktop to Samba4 Active Directory Domain Controller with Authconfig-gtk in order to authenticate users across your network infrastructure from a single centralized account database held by Samba.

Requirements

Step 1: Configure CentOS Network for Samba4 AD DC

1. Before starting to join CentOS 7 Desktop to a Samba4 domain you need to assure that the network is properly setup to query domain via DNS service.

Open Network Settings and turn off the Wired network interface if enabled. Hit on the lower Settings button as illustrated in the below screenshots and manually edit your network settings, especially the DNS IPs that points to your Samba4 AD DC.

When you finish, Apply the configurations and turn on your Network Wired Card.

2. Next, open your network interface configuration file and add a line at the end of file with the name of your domain. This line assures that the domain counterpart is automatically appended by DNS resolution (FQDN) when you use only a short name for a domain DNS record.

Add the following line:

Network Interface Configuration

3. Finally, restart the network services to reflect changes, verify if the resolver configuration file is correctly configured and issue a series of ping commands against your DCs short names and against your domain name in order to verify if DNS resolution is working.

Verify Network Configuration

4. Also, configure your machine hostname and reboot the machine to properly apply the settings by issuing the following commands:

Verify if hostname was correctly applied with the below commands:

5. The last setting will ensure that your system time is in sync with Samba4 AD DC by issuing the below commands:

Step 2: Install Required Software to Join Samba4 AD DC

6. In order to integrate CentOS 7 to an Active Directory domain install the following packages from command line:

7. Finally, install the graphical interface software used for domain integration provided by CentOS repos: Authconfig-gtk.

Step 3: Join CentOS 7 Desktop to Samba4 AD DC

8. The process of joining CentOS to a domain controller is very straightforward. From command line open Authconfig-gtk program with root privileges and make the following changes as described below:

On Identity & Authentication tab.

  • User Account Database = select Winbind
  • Winbind Domain = YOUR_DOMAIN
  • Security Model = ADS
  • Winbind ADS Realm = YOUR_DOMAIN.TLD
  • Domain Controllers = domain machines FQDN
  • Template Shell = /bin/bash
  • Allow offline login = checked

On Advanced Options tab.

  • Local Authentication Options = check Enable fingerprint reader support
  • Other Authentication Options = check Create home directories on the first login

Authentication Advance Configuration

9. After you’ve added all required values, return to Identity & Authentication tab and hit on Join Domain button and the Save button from alert window to save settings.

Identity and Authentication

Save Authentication Configuration

10. After the configuration has been saved you will be asked to provide a domain administrator account in order to join the domain. Supply the credentials for a domain administrator user and hit OK button to finally join the domain.

Joining Winbind Domain

11. After your machine has been integrated into the realm, hit on Apply button to reflect changes, close all windows and reboot the machine.

Apply Authentication Configuration

12. In order to verify if the system has been joined to Samba4 AD DC open AD Users and Computers from a Windows machine with RSAT tools installed and navigate to your domain Computers container.

The name of your CentOS machine should be listed on the right plane.

Active Directory Users and Computers

Step 4: Login to CentOS Desktop with a Samba4 AD DC Account

13. In order to login to CentOS Desktop hit on Not listed? link and add the username of a domain account preceded by the domain counterpart as illustrated below.

Not listed Users

Enter Domain Username

14. To authenticate with a domain account from command line in CentOS use one of the following syntaxes:

Authenticate Domain Username

Authenticate Domain User Email

15. To add root privileges for a domain user or group, edit sudoers file using visudo command with root powers and add the following lines as illustrated on the below excerpt:

Assign Permission to User and Group

16. To display a summary about the domain controller use the following command:

Check Domain Controller Info

17. In order to verify if the trust machine account created when CentOS was added to the Samba4 AD DC is functional and list domain accounts from command line install Winbind client by issuing the below command:

Then issue a series of checks against Samba4 AD DC by executing the following commands:

Get Samba4 AD DC Details

18. In case you want to leave the domain issue the following command against your domain name by using an domain account with administrator privileges:

Leave Domain from Samba4 AD

That’s all! Although this procedure is focused on joining CentOS 7 to a Samba4 AD DC, the same steps described in this documentation are also valid for integrating a CentOS 7 Desktop machine to a Microsoft Windows Server 2008 or 2012 domain.

Контроллер домена на centos

Выпущенная Samba 4 реализует почти полноценный аналог Active Directory (AD), включая контроллер домена, службу DNS, Kerberos-аутентификацию, групповые политики. Однако, с помощью Samba 4 пока нельзя создавать сложные доменные структуры и иерархии и устанавливать доверительные отношения, что ограничивает применимость в крупных организациях.

Читать еще:  Проверка ns записей домена

Таким образом, на текущий момент наиболее реальными применениями Samba 4 являются построение тестовых инфраструктур, а также внедрения в малом бизнесе.

Тем более, что во многих случаях реальный выбор не так велик. Microsoft предлагает специальные редакции Windows Server 2012 для малого бизнеса — Essentials и Foundation. Первая при цене в $500 представляет собой довольно интересное интегрированное решение для 25 пользователей, вторая предлагается для установки OEM и готова поддерживать 15 пользователей. Но проблема в том, что для большего числа потребуется не только докупать CAL, но и менять серверную лицензию на Standard. Samba 4 таких ограничений лишена и может масштабироваться до любого необходимого уровня. Вероятно, для ее распространения также лучше подошла бы OEM-модель, гарантирующая полную совместимость с оборудованием и отсутствие неожиданностей хотя бы на первых порах.

Между тем само внедрение Samba 4 — дело достаточно нехитрое. Естественно, начать лучше с тестирования какого-нибудь специализированного дистрибутива. Таковой, к примеру, предлагает SerNet, немецкий интегратор и участник проекта Samba — SerNet Samba 4 Appliance. Дополнительно на нем можно развернуть ПО коллективной работы Zafara, в состав входит готовый скрипт для корректировки схемы AD. Novell/SUSE предлагает свой вариант Excellent Samba4 Appliance, причем в виде как загрузочных образов, так и уже развернутых виртуальных дисков для всех популярных систем виртуализации. Данный дистрибутив периодически обновляется, вслед за выходом очередных исправлений к Samba 4.

Собственно, инициализация AD заключается в развертывании дистрибутива или создании и запуске соответствующей виртуальной машины и выполнения готового скрипта dcpromo, который запрашивает немногочисленные параметры (название домена, IP-адрес и пр.).

Поскольку Samba 4 создавалась на основе официально приобретенной документации Microsoft, ее совместимость обещает быть довольно высокой. Во всяком случае, можно использовать все стандартные административные инструменты Microsoft, которые в случае Excellent Samba4 Appliance даже доступны через внутренний веб-сервер.

Поскольку Samba 4 реализует все необходимые для AD процедуры RPC, также можно пользоваться утилитами командной строки и PowerShell-скриптами. Linux-сообщество разрабатывает и собственные инструменты, как графические, так и скриптовые, но степень их готовности пока неудовлетворительна.

В случае использования инструментов Microsoft дальнейшее администрирование домена происходит совершенно привычно для любого, хотя бы поверхностно знакомого с AD в Windows Server. Добавление учетных записей, создание групп, разграничение полномочий выполняется совершенно прозрачно.

Таким образом, Samba 4 позволяет организовать простой домен AD на Linux фактически без необходимости глубоких знаний собственно Linuх. К тому же, гибкость открытой ОС дает возможность создавать компактные монофункциональные дистрибутивы с Samba 4, которые будут надежно работать как в физической, так и виртуальной среде. Под вопросом пока остается стабильность и масштабируемость самой Samba 4, но команда разработчиков, похоже, на достигнутом останавливаться не собирается.

Теперь подробно остановимся на установке и настройке Excellent Samba4 Appliance.

Создание Домен контроллера, Active Directory и Файлового сервера с помощью Excellent Samba 4 Appliance.

1. Для начала скачиваем Excellent Samba 4 Appliance, предварительно зарегистрировавшись на сайте https://susestudio.com/.

2. Далее, скачиваем дистрибутив. Я поднимаю на виртуальной машине Hyper-V, поэтому скачиваю ISO-образ диска.

3. Итак, имеет файл Excellent_Samba4_Appliance.x86_64-1.1.11.iso, загружаемся с него и видим:

Жмём Excellent Samba4 Appliance.

Принимаем условия лицензии, нажав y. Дальше видим картину:

Логин / пароль в данном случае: root / opensuse

4. После авторизации, необходимо настроить параметры сети, выполнив команду: yast lan

Нажмите F4 для конфигурирования IP адреса.

Назначаю статический адрес 192.168.0.253, маска 255.255.255.0, имя pbdc.pbd.net

Нажимаю Next и перехожу во-вкладку Hostname/DNS.

Назначаю Hostname — pbdc, Domain — pbd.net. DNS сервера: 192.168.0.253, 91.222.240.250 и 91.222.241.250. Domain search — pbd.net.

Перехожу во вкладку Roating, где прописываю IP адрес интернет-шлюза. В моём случае — 192.168.0.254.

Жму OK. Началось применение параметров. Теперь из любого компьютера в сети адрес 192.168.0.253 должен пинговаться. Если так, всё сделано правильно.

5. Теперь установим систему на жесткий диск машины. Набираем в консоли yast и жмём Enter.

Заходим в пункт Miscellaneous, затем Live Installer, жмём Enter.

Выбираем английский язык и английскую раскладку клавиатуры (русский вряд-ли будет отображаться правильно), принимаем условия лицензии и жмём Next.

Выбираем часовой пояс и устанавливаем время, жмём Next.

Далее назначаем правило разметки диска. Я оставил всё без изменений и нажал Next.

Придумываем пользователя и пароль. Придумываем пароль root’у.

Проверяем введенные данные и жмём Install.

По завершению установки, выходим из Yast и перезагружаемся, написав reboot, вытаскиваем загрузочный диск.

6. Входим в root и приступаем к настройке Samba 4. Для облегчения этого процесса нам уже написали неплохой скрипт, который находится в

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

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

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

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

Системное администрирование Linux

2017-11-13 16:53:18 5137 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

    Что указывает символ отделения имени домена от имени пользователя.

    RootUsers

    Guides, tutorials, reviews and news for System Administrators.

    How To Join CentOS Linux To An Active Directory Domain

    Here we’ll show you how to add your Linux system to a Microsoft Windows Active Directory (AD) domain through the command line. This will allow us to SSH into the Linux server with user accounts in our AD domain, providing a central source of cross-platform authentication.

    There are a number of ways to do this, however this is the easiest way that I’ve found to do it entirely through the command line.

    In this example I am using CentOS 7 and Windows Server 2012 R2, however the version of Windows should not matter. We are assuming that our domain is already setup and configured, we’re simply joining our CentOS server to an existing domain.

    Читать еще:  Два контроллера домена в сети

    Preparing CentOS

    First we want to install all of the below packages in CentOS.

    The CentOS server will need to be able to resolve the Active Directory domain in order to successfully join it. In this instance my DNS server in /etc/resolv.conf is set to one of the Active Directory servers hosting the example.com domain that I wish to join.

    Join CentOS To Windows Domain

    Now that we’ve got that out of the way we can actually join the domain, this can be done with the ‘realm join’ command as shown below. You will need to specify the username of a user in the domain that has privileges to join a computer to the domain.

    Once you enter the password for your specific account, the /etc/sssd/sssd.conf and /etc/krb.conf files will be automatically configured. This is really great as editing these manually usually leads to all sorts of trivial problems when joining the domain. The /etc/krb5.keytab file is also created during this process.

    If this fails, you can add -v to the end of the command for highly verbose output, which should give you more detailed information regarding the problem for further troubleshooting.

    We can confirm that we’re in the realm (Linux terminology for the domain) by running the ‘realm list’ command, as shown below.

    Once this has completed successfully, a computer object will be created in Active Directory in the default computers container as shown below.

    To keep things neat I like to move this into some other organizational unit (OU) for Linux servers rather than leaving things in the default computers container, however this doesn’t really matter for this exercise.

    Now that our Linux server is a member of the Active Directory domain we can perform some tests. By default if we want to specify any users in the domain, we need to specify the domain name. For example with the ‘id’ command below, we get nothing back for ‘administrator’, however ‘[email protected]’ shows the UID for the account as well as all the groups the account is a member of in the Active Directory domain.

    We can change this behaviour by modifying the /etc/sssd/sssd.conf file, the following lines need to change from:

    To the below, which does not require the fully qualified domain name (FQDN) to be specified. This also modifies the user directory in /home from having the FQDN specified after the username.

    To apply these changes, restart sssd.

    Now we should be able to find user accounts without specifying the domain, as shown below this now works where it did not previously.

    If this is still not correctly working for you, I suggest that you take a look at flushing your sssd cache.

    Configuring SSH and Sudo Access

    Now that we have successfully joined our CentOS server to the example.com domain, we can SSH in as any domain user from Active Directory with default settings.

    We can further restrict SSH access by modifying the /etc/ssh/sshd_config file and make use of things like AllowUsers or AllowGroups to only allow certain user or groups from AD to have access. See our guide to the sshd_config file for further information. Don’t forget to restart sshd if you make any changes to this file in order to apply them.

    We can also modify our sudoers configuration to allow our user account from the domain the desired level of access. I usually create an Active Directory group called something like ‘sudoers’, put my user in it, then allow this group sudo access by creating a file in /etc/sudoers.d/ which allows root access to be centrally controlled by AD.

    Below is an example of this, the ‘sudoers’ group will have full root access.

    This group only exists in Active Directory, our Linux server can see that user1 is a member of the sudoers group in Active Directory, and respects this group configuration and allows user1 root privileges as per the above configuration.

    The username of Test Account is ‘user1’.

    With this in place, our user1 account in the example.com Active Directory domain will now be able to use the sudo command to run commands with root privileges.

    That’s all there is to it, we can now SSH to a Linux server with a user account from our Active Directory domain and even grant specific users or groups from AD specific levels of access.

    Leaving The Domain

    If you want to reverse the process and remove yourself from the domain, simply run the ‘realm leave’ command followed by the domain name, as shown below.

    This will complete without any further user input. It will delete the computer object that was created in Active Directory, remove the keytab file, and set the sssd.conf and krb5.conf files back to default.

    Summary

    We have demonstrated how you can easily add your CentOS Linux system to a Microsoft Windows Active Directory domain, and then grant SSH or sudo access based on the user or group from the domain.

    If you have a large number of Linux servers and an existing Windows domain you can easily use this process to add your Linux servers to the Windows domain, allowing for centralised user authentication which is far easier to manage when compared to having local user accounts spread out on every Linux server.

    Ссылка на основную публикацию
    ВсеИнструменты
    Adblock
    detector