Порты брандмауэра, необходимые для присоединения к домену AD
Протокол | Порт | Описание |
---|---|---|
TCP | 464 | Kerberos Password V5 – Used when user change their password from desktop |
TCP | 636 | LDAP SSL |
TCP / UDP | 53 | DNS |
TCP | 88 | Kerberos Key Distribution Center |
TCP | 135 | Remote Procedure Call |
TCP | 139 | NetBIOS Session Service |
TCP | 389 | LDAP |
TCP | 445 | SMB,Net Logon |
UDP | 389 | LDAP, DC Locator, Net Logon |
TCP | 49152-65535 | Randomly allocated high TCP ports |
DNS-имена могут содержать только буквы (a–z), цифры (0–9), знак минус (-) и точку (.). Точки разрешено использовать только для разделения компонентов имен, заданных в формате доменных.
Измените имя компьютеру, имя должно содержать домен, то есть должно быть, например client1.win.redos
hostnamectl set-hostname <Имя компьютера>.<домен>
Например:
hostnamectl set-hostname client1.win.redos
Проверьте имя ПК
hostname
Для регистрации рабочей станции с РЕД ОС в домене Active Directory с автоматическим обновлением DNS-записей добавьте в файл /etc/hosts строку вида:
127.0.0.1 <Имя компьютера>.<домен> <Имя компьютера>
С помощью команды:
sudo sh -c «echo „127.0.0.1
hostname -f
hostname -s“ >> /etc/hosts»
Пример файла /etc/hosts (добавленная строка выделена жирным шрифтом):
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1 client1.win.redos client1`
При выводе из домена эту строку нужно удалить
Проверьте настройку сети
ifconfig
Проверьте работу сети
ping ya.ru -c 4
Настройте сетевой адаптер и проверьте, что первый DNS - это DNS контроллера домена, и укажите в качестве поискового домена домен MS AD
sudo systemctl restart NetworkManager
#Проверьте, что введенные настройки сохранились.
cat /etc/resolv.conf
В выводе команды должна быть запись вида:
Generated by NetworkManager
search <название домена>
nameserver <IP контроллера домена>
Проверьте разрешение имен
nslookup <IP контроллера домена>
nslookup <FQDN имя контроллера домена>
Настройка NTP клиента
Время на контроллере домена и на клиенте должно быть одинаково. Для синхронизации времени клиентского ПК с контроллером домена используйте клиент chrony. Откройте файл конфигурации NTP клиента CHRONY с помощью команды:
sudo nano /etc/chrony.conf
Удалите или закомментируйте в нем строки с серверами по умолчанию, а в качестве сервера времени укажите сервер контроллера домена:
server <FQDN имя контроллера домена> iburst
После изменений конфигурационного файла вам надо перезапустить chronyd:
sudo systemctl restart chronyd
Проверьте работу chrony с помощью двух команд::
systemctl status chronyd
сhrony tracking
Пример вывода команды:
$ systemctl status chronyd
chronyd.service - NTP client/server
Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
Active: active (running) since Вт 2019-07-09 11:13:49 MSK; 5min ago
Process: 683 ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=exited, status=0/SUCCESS)
Process: 639 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 650 (chronyd)
CGroup: /system.slice/chronyd.service
└─650 /usr/sbin/chronyd
Пример вывода команды:
$ chronyc tracking
Reference ID : 10.81.1.196 (dc.win.redos)
Stratum : 4
Ref time (UTC) : Wed Mar 4 09:44:17 2020
System time : 0.000169261 seconds slow of NTP time
Last offset : -0.000182217 seconds
RMS offset : 0.000182217 seconds
Frequency : 1.939 ppm slow
Residual freq : -0.602 ppm
Skew : 1.234 ppm
Root delay : 0.047364 seconds
Root dispersion : 0.087531 seconds
Update interval : 64.7 seconds
Leap status : Normal
Установите необходимые пакеты, если они ещё не установлены
#для РЕД ОС версии 7.1 или 7.2:
sudo yum install -y realmd sssd oddjob oddjob-mkhomedir adcli samba-common samba-common-tools krb5-workstation
#для РЕД ОС версии 7.3 и старше:
sudo dnf install -y realmd sssd oddjob oddjob-mkhomedir adcli samba-common samba-common-tools krb5-workstation
#Выполните команду поиска домена
realm discover < realm name >
Предварительная настройка сервера
systemctl stop firewalld && systemctl disable firewalld
yum install chrony
server xs-winsrv.xs.local iburst
systemctl start chronyd && systemctl enable chronyd
yum install realmd sssd oddjob oddjob-mkhomedir adcli samba-common samba-common-tools
realm discover XS.LOCAL
xs.local
type: kerberos
realm-name: XS.LOCAL
domain-name: xs.local
configured: no
server-software: active-directory
client-software: sssd
required-package: oddjob
required-package: oddjob-mkhomedir
required-package: sssd
required-package: adcli
required-package: samba-common-tools
Password for administrator:
Для интеграции CentOS 8 / RHEL 8 AD требуется ряд пакетов. Установите их в своей системе, выполнив следующие команды:
sudo dnf install realmd sssd oddjob oddjob-mkhomedir adcli samba-common samba-common-tools krb
Перед выполнением интеграции AD убедитесь, что компьютер CentOS / RHEL 8 может разрешить и обнаружить домен AD.
Проверьте настройки DNS.
$ cat /etc/resolv.conf
Убедитесь, что обнаружение домена AD прошло успешно.
$ realm discover example.com
[example.com]
type: kerberos
realm-name: [EXAMPLE.COM]
domain-name: [example.com]
configured: no
server-software: active-directory
client-software: sssd
required-package: oddjob
required-package: oddjob-mkhomedir
required-package: sssd
required-package: adcli
required-package: samba-common-tools
Учетная запись администратора AD требуется для интеграции компьютера CentOS 8 / RHEL 8 с доменом Windows Active Directory.
Убедитесь, что у вас есть имя пользователя и пароль администратора. Затем выполните приведенную ниже команду, чтобы присоединить систему CentOS 8 / RHEL 8 Linux к домену Active Directory.
$ realm join [example.com] -U Administrator
Password for Administrator: Замените Administrator на свою учетную запись администратора AD и введите пароль, когда его попросят.
$ sudo realm list
[example.com]
type: kerberos
realm-name: [EXAMPLE.COM]
domain-name: [example.com]
configured: kerberos-member
server-software: active-directory
client-software: sssd
required-package: oddjob
required-package: oddjob-mkhomedir
required-package: sssd
required-package: adcli
required-package: samba-common-tools
login-formats: %U@example.com
login-policy: allow-realm-logins
sudo authselect select sssd
sudo authselect select sssd with-mkhomedir
$ cat /etc/sssd/sssd.conf`
[sssd]
domains = [example.com]
config_file_version = 2
services = nss, pam
default_domain_suffix = [example.com]
[nss]
homedir_substring = /home
[pam]
[domain/example.com]
ad_domain = [example.com]
krb5_realm = [EXAMPLE.COM]
realmd_tags = manages-system joined-with-samba
cache_credentials = True
id_provider = ad
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = True
fallback_homedir = /home/%u@%d
access_provider = ad
Когда в конфигурационный файл вносятся изменения, требуется перезапуск службы.
sudo systemctl restart sssd
Статус должен быть запущен.
$ systemctl status sssd
● sssd.service - System Security Services Daemon
Loaded: loaded (/usr/lib/systemd/system/sssd.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2019-09-27 22:30:25 EAT; 37min ago
Main PID: 32474 (sssd)
CGroup: /system.slice/sssd.service
├─32474 /usr/sbin/sssd -i --logger=files
├─32478 /usr/libexec/sssd/sssd\_be --domain [example.com] --uid 0 --gid 0 --logger=files
├─32479 /usr/libexec/sssd/sssd\_nss --uid 0 --gid 0 --logger=files
└─32480 /usr/libexec/sssd/sssd\_pam --uid 0 --gid 0 --logger=files
…
Если интеграция работает, должна быть возможность получить информацию о пользователе AD.
$ id jmutai@example.com
uid=1783929917(jmutai@example.com) gid=1784800513(domain users@example.com) groups=1783870513(domain users@example.com)
Доступ к зарегистрированному серверу можно ограничить, разрешив только определенным пользователям / группам. Ограничение для пользователей Чтобы разрешить пользователю доступ через SSH и консоль, используйте команду:
$ realm permit user1@example.com
$ realm permit user2@example.com user3@example.com
Разрешить доступ к группе – Примеры
$ ream permit -g sysadmins
$ realm permit -g «Security Users»
$ realm permit «Domain Users» «admin users»
Это изменит файл sssd.conf Если вместо этого вы хотите разрешить доступ всем пользователям, запустите:
$ sudo realm permit --all
zypper in krb5-client
In AD all domain controllers by default are the KDC and DNS server as well. After configuring the default realm it can rely on AD SRV DNS records to find the kdc settings, if dns_lookup_kdc = true
. If using DNS is not wanted, or to force specific domain controllers, then set dns_lookup_kdc
to false
and uncomment the entries under [realms]
.
[libdefaults]
default_realm = [EXAMPLE.COM]
dns_lookup_kdc = true
forwardable = true
default_ccache_name = FILE:/tmp/krb5cc_%{uid}
[realms]
EXAMPLE.COM = {
admin_server = example.com
#kdc = dc1.example.com
#kdc = dc2.example.com
}
[logging]
kdc = FILE:/var/log/krb5/krb5kdc.log
admin_server = FILE:/var/log/krb5/kadmind.log
default = SYSLOG:NOTICE:DAEMON
[domain_realm]
.example.com = EXAMPLE.COM
example.com = EXAMPLE.COM`
zypper in samba-client samba-libs samba-winbind
Configure smb.conf: You’ll need to use the REALM as setup in the previous step and you’ll need to know your domain’s netbios name for the workgroup parameter. It is important to select the appropriate idmap backend for your needs and to set the ranges properly. See the following TID for options and examples: https://www.suse.com/support/kb/doc/?id=000017458 Example of global parameters in /etc/samba/smb.conf file:
[global]
workgroup = EXAMPLE
kerberos method = secrets and keytab
realm = EXAMPLE.COM
security = ADS
winbind refresh tickets = yes
winbind use default domain = yes
template shell = /bin/bash
template homedir = /home/%D/%U
idmap config * : backend = tdb
idmap config * : range = 10000-19999
idmap config EXAMPLE : backend = rid
idmap config EXAMPLE : range = 20000-29999
passwd: compat winbind group: compat winbind
kinit Administrator
net ads join -k
#systemctl enable winbind
#systemctl start winbind
Configure PAM: Example configuration for /etc/security/pam_winbind.conf:
[global]
krb5_auth = yes
krb5_ccache_type = FILE
# pam-config -a --winbind
# pam-config -a --mkhomedir
# zypper in adcli sssd sssd-ldap sssd-ad sssd-tools
[sssd]
config_file_version = 2
services = nss,pam
domains = example.com
[nss]
filter_users = root
filter_groups = root
[pam]
[domain/example.com]
id_provider = ad
auth_provider = ad
ad_domain = example.com
cache_credentials = true
enumerate = false
override_homedir = /home/%d/%u
ldap_id_mapping = true
ldap_referrals = false
ldap_schema = ad`
passwd: compat sss
group: compat sss
# adcli join -D [example.com]
Password for [Administrator@][EXAMPLE.COM]:
# systemctl enable sssd
# systemctl start sssd
# pam-config -a --sss
# pam-config -a --mkhomedir
# zypper in openldap2-client cyrus-sasl-gssapi
URI ldap://example.com
BASE dc=example,dc=com
REFERRALS OFF
# klist
# net ads info
# adcli info example.com
# ldapsearch -Y GSSAPI cn=Administrator
# id Administrator
# getent passwd Administrator
# su - Administrator
# ssh Administrator@localhost
sudo systemctl -l
Была ситуация, когда из-за неработающей службы ntp не работала авторизация в астра-линукс. Работоспособность была восстановлена с помощью sudo apt reinstall ntp