Үндсэн агуулга руу алгасах

Cookie

Сайтаа сайжруулж, танд тохирох хямдрал, санал харуулахад тусална. Дэлгэрэнгүй

BD Systems AsiaАлбан ёсны түншBitdefender Country Partner (шинэ цонхонд)

Endpoint-ийг Active Directory-д хэрхэн нэгтгэх вэ?

Bitdefender-ийн албан ёсны баримтаас орчуулавАнгли эх (EN) · Орчуулсан: 2026.11.10

Энэ хуудсыг AI-аар орчуулж, автоматаар шалгасан. Нарийн тохиргоо хийхээсээ өмнө англи эхтэй тулгаж болно.

Active Directory-д хэрэглэгч бүр төв мэдээллийн санд өвөрмөц объект хэлбэрээр бүртгэгддэг бөгөөд нэг л хэрэглэгчийн нэр, нууц үгээр нэвтэрнэ. Компьютер бүрт мөн тусдаа объект үүсгэдэг. Ингэснээр хэрэглэгч бүр ижил нэвтрэх мэдээллээр ажлын байр бүрт автоматаар нэвтэрч чадна. Дансанд хийх өөрчлөлтийг төв мэдээллийн санд нэг л удаа хийнэ. Бүлэг болон organizational unit-ийг ашиглан төрөл бүрийн нөөцөд хандах эрхийг тохируулж, шинэчилж байна.

Энэ хэсэгт Linux болон macOS системийг Active Directory-д хэрхэн нэгтгэх талаар тайлбарлана.

  • Linux төхөөрөмжийг нэгтгэх:

- PBIS ашиглан
- SSSD ашиглан
- Winbind ашиглан

  • macOS төхөөрөмжийг нэгтгэх
Тэмдэглэл: Linux төхөөрөмж дээр Active Directory-д нэгтгэх ажлыг эхлэхийн өмнө «Prerequisites for joining Linux systems to Active Directory» (урьдчилсан нөхцөл) хэсгийг заавал шалгаарай.

Асуудал гарвал «Troubleshooting» (алдаа засах) хэсгээс дэлгэрэнгүйг үзнэ үү.

Linux

Linux системийг Active Directory-д нэгтгэх урьдчилсан нөхцөл

Linux компьютерийг Active Directory (AD) domain-д нэгтгэхийн тулд хэд хэдэн урьдчилсан нөхцөл хангагдсан байх ёстой. Доор тэдгээрийг дэлгэрэнгүй тайлбарлав.

Жишээ:

Realm: example.local
Domain User: administrator
Domain IP: 11.11.11.11
  1. Огноо, цаг нь Active Directory-ийнхтэй яг ижил байх ёстой.

Компьютер Active Directory-тэй синхрон байгаа эсэхийг шалгана уу. Нэвтрэлтийн олон алдаа цагийн зөрүүгээс үүсдэг.

  1. Виртуал машин (VM) DNS-ээр Active Directory сервэрийг ашиглах ёстой.

DNS тохиргоог Applications > Network > Options > IPv4 Settings хэсгээс өөрчилнө.

- Method: Automatic (DHCP) address only; Automatic: OFF
- DNS servers: 11.11.11.11; DNS: 11.11.11.11

> Тэмдэглэл: Эсвэл /etc/resolv.conf файлд дараах мөрүүдийг нэмж болно:
>
> ```
> search example.local
>
> nameserver 11.11.11.11
> ```

  1. Active Directory болон Kerberos-ийн ашигладаг портууд сүлжээ, галт хананд нээлттэй эсэхийг шалгана. Шаардлагатай портуудыг доорх жагсаалтаас үзнэ үү:

- 22, 445 (SSH & SMB) — OUTGOING; Чиглэл: хаана ч; локал сүлжээн дэх компьютерийг илрүүлнэ
- 135 (RPC) — INCOMING; хаана ч; Relay Agent-ээр дамжуулан суулгана
- 137, 138, 139 (NetBIOS) — INCOMING; хаана ч; Relay Agent-ээр дамжуулан суулгана
- 53 (DNS) — OUTGOING; DNS Server; DNS хүсэлтэд дотооддоо ашиглана
- 88 (Kerberos) — OUTGOING; Active Directory Domain Controller; Linux компьютерийг Active Directory-тэй холбоно
- 389, 636 (LDAP & LDAPS) — OUTGOING; Active Directory Domain Controller; Active Directory-тэй холбоно

  1. Үйлдлийн системийн hostname давхцахгүй, дээд тал нь 15 тэмдэгт байх ёстой.

- Дараах командыг ажиллуулж hostname-ийг солино:

```
# hostnamectl set-hostname <NAME>
```

- /etc/hostname файлаас хуучин нэрийг устгаад шинээр нь бичнэ.

> Тэмдэглэл: CentOS 6 дээр хуучин HOSTNAME утгыг шинээр нь солих хэрэгтэй:
>
> ```
> # vi /etc/sysconfig/network
> NETWORKING=yes
> HOSTNAME=<NAME>
> ```

- Компьютерийг дахин асаана.

> Тэмдэглэл: Төхөөрөмжийн hostname FQDN хэсэг агуулж болохгүй.

  1. Selinux-ийг идэвхгүй болгоно.

/etc/selinux/config тохируулгын файл дахь SELINUX хувьсагчийн утгыг өөрчилж идэвхгүй болгоно.

```
SELINUX=disabled
```

  1. /etc/nsswitch.conf файлыг засна.

hosts өгөгдлийн сангийн хайлтын дараалалд files-ийн дараа dns-ийг нэмнэ:

```
hosts: files dns mdns4_minimal [NOTFOUND=return]
```

PBIS ашиглан Linux төхөөрөмжийг Active Directory-д нэгтгэх нь

PBIS ашиглан Linux төхөөрөмжийг Active Directory (AD) domain-д нэгтгэхийн тулд доорх алхмуудыг дагахаас гадна ерөнхий урьдчилсан нөхцөлүүдийг хангасан байх ёстой.

Жишээ:

Realm: example.local
Domain User: administrator
Domain IP: 11.11.11.11
Анхааруулга: Зарим үйлдлийн систем (Fedora31, CentOS8) дээр libsnsl багц суулгасан байх шаардлагатай.

PBIS-Open-ийг офлайнаар хэрхэн суулгах вэ

  1. Эндээс хамгийн сүүлийн .sh файлыг татаж аваад дараах командуудыг ажиллуулна:

- Ubuntu, Debian-д.

- x64-д

```
# wget https://github.com/BeyondTrust/pbis-open/releases/download/9.1.0/pbis-open-9.1.0.551.linux.x86_64.deb.sh
# chmod +x pbis-open-9.1.0.551.linux.x86_64.deb.sh
# sudo ./pbis-open-9.1.0.551.linux.x86_64.deb.sh
# apt-get install ssh
# sudo apt-get remove avahi-daemon
```

- x86-д

```
# wget https://github.com/BeyondTrust/pbis-open/releases/download/9.1.0/pbis-open-9.1.0.551.linux.x86.deb.sh
# chmod +x pbis-open-9.1.0.551.linux.x86.deb.sh
# sudo ./pbis-open-9.1.0.551.linux.x86.deb.sh
# apt-get install ssh
# sudo apt-get remove avahi-daemon
```

- CentOS, Fedora, OracleLinux7, RHEL, SUSE-д.

- x64-д

```
# wget https://github.com/BeyondTrust/pbis-open/releases/download/9.1.0/pbis-open-9.1.0.551.linux.x86_64.rpm.sh
# chmod +x pbis-open-9.1.0.551.linux.x86_64.rpm.sh
# sudo ./pbis-open-9.1.0.551.linux.x86_64.rpm.sh
```

- x86-д

```
# wget https://github.com/BeyondTrust/pbis-open/releases/download/9.1.0/pbis-open-9.1.0.551.linux.x86.rpm.sh
# chmod +x pbis-open-9.1.0.551.linux.x86.rpm.sh
# sudo ./pbis-open-9.1.0.551.linux.x86.rpm.sh
```

  1. Active Directory domain-д нэгдэнэ.

```
# cd /opt/pbis/bin/
# sudo domainjoin-cli join example.local administrator
```

> Тэмдэглэл: ./pbis-open*.sh-ийн гаралтыг шалгаж, алдаа гарсан эсэхийг харна уу.

  1. Domain-тэй холболтыг шалгана.

```
# sudo domainjoin-cli query
```

SSSD ашиглан Linux төхөөрөмжийг Active Directory-д нэгтгэх нь

Энэ хэсэгт дараах үйлдлийн системүүдийн заавар байна:

  • CentOS6
  • CentOS7/8, Fedora31, RHEL7/8, OracleLinux7
  • SUSE Linux Enterprise 12, 15
  • Ubuntu, Debian

CentOS6 дээр SSSD ашиглан Active Directory-д нэгтгэх

SSSD ашиглан Linux төхөөрөмжийг Active Directory (AD) domain-д нэгтгэхийн тулд доорх алхмуудыг дагахаас гадна ерөнхий урьдчилсан нөхцөлүүдийг хангасан байх ёстой.

Жишээ:

Realm: example.local
Domain User: administrator
Domain IP: 11.11.11.11
  1. CentOS6-г Active Directory-д амжилттай нэгтгэхийн тулд шаардлагатай багцуудыг суулгана:

```
# yum install adcli krb5-workstation sssd pam_krb5
```

  1. Дараах командыг ажиллуулж authentication provider-ийг солино:

```
# authconfig \
--enablekrb5 \
--krb5kdc=example.local \
--krb5adminserver=example.local \
--krb5realm=EXAMPLE.LOCAL \
--enablesssd \
--enablesssdauth \
--update
```

  1. Дараах командыг ажиллуулж Active Directory-д нэгдэнэ:

```
adcli join example.local -v
```

  1. /etc/sssd/sssd.conf файлын хуучин хувилбарыг нөөцлөөд, агуулгыг нь доорхоор бүрэн солих замаар sssd.conf-ийг тохируулна:

```
[sssd]
domains = example.local
config_file_version = 2
services = nss, pam

[domain/example.local]
ad_domain = example.local
krb5_realm = EXAMPLE.LOCAL
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 = False
fallback_homedir = /home/%d/%u
access_provider = ad
```

Файлын эрхийг 600 болгоно.

```
# chmod 600 /etc/sssd/sssd.conf

# service sssd start

# chkconfig sssd on
```

  1. /etc/krb5.conf файлын хуучин хувилбарыг нөөцлөөд, агуулгыг нь доорхоор бүрэн солих замаар krb5.conf файлыг тохируулна:

```
[libdefaults]
default_realm = EXAMPLE.LOCAL
dns_lookup_kdc = true
forwardable = true
default_ccache_name = FILE:/tmp/krb5cc_%{uid}
[realms]
EXAMPLE.LOCAL = {
admin_server = EXAMPLE.LOCAL
#kdc = dc1.EXAMPLE.LOCAL
#kdc = dc2.EXAMPLE.LOCAL
}
[logging]
kdc = FILE:/var/log/krb5/krb5kdc.log
admin_server = FILE:/var/log/krb5/kadmind.log
default = SYSLOG:NOTICE:DAEMON
[domain_realm]
.EXAMPLE.LOCAL = EXAMPLE.LOCAL
EXAMPLE.LOCAL = EXAMPLE.LOCAL
```

  1. Дараах командуудыг ажиллуулж domain-тэй холболт хэвийн эсэхийг шалгана:

```
# dig -t SRV _ldap._tcp.example.local
```

```
# dig -t SRV _ldap._tcp.dc._msdcs.example.local
```

```
# adcli info example.local
```

```
# id administrator
```

CentOS7/8, Fedora31, RHEL7/8, OracleLinux7 дээр SSSD ашиглан Active Directory-д нэгтгэх

SSSD ашиглан Linux төхөөрөмжийг Active Directory (AD) domain-д нэгтгэхийн тулд доорх алхмуудыг дагахаас гадна ерөнхий урьдчилсан нөхцөлүүдийг хангасан байх ёстой.

Жишээ:

Realm: example.local
Domain User: administrator
Domain IP:   11.11.11.11
  1. Шаардлагатай багцуудыг суулгана:

- Centos7/8, Fedora31 болон RHEL8 дараах багцуудыг шаарддаг:

```
# yum install adcli krb5-workstation realmd sssd
```

- Oracle Linux7 болон RHEL7 дараах багцуудыг шаарддаг:

```
# yum install samba-common-tools realmd oddjob oddjob-mkhomedir sssd adcli krb5-workstation
```

  1. Дараах командыг ажиллуулж Active Directory domain-д нэгдэнэ.

```
# realm join example.local -U administrator
```

  1. Дараах командуудыг ажиллуулж domain-тэй холболтыг шалгана.

```
# dig -t SRV _ldap._tcp.example.local
```

```
# dig -t SRV _ldap._tcp.dc._msdcs.example.local
```

```
# realm discover example.local
```

```
# realm list
```

Ubuntu, Debian дээр SSSD ашиглан Active Directory-д нэгтгэх

SSSD ашиглан Linux төхөөрөмжийг Active Directory (AD) domain-д нэгтгэхийн тулд доорх алхмуудыг дагахаас гадна ерөнхий урьдчилсан нөхцөлүүдийг хангасан байх ёстой.

Жишээ:

Realm: example.local
Domain User: administrator
Domain IP: 11.11.11.11
  1. Шаардлагатай багцуудыг суулгана.

```
# sudo apt install sssd-ad sssd-tools realmd adcli
```

> Тэмдэглэл: Ubuntu14 дээр нэмэлт багц суулгах шаардлагатай:
>
> ```
> # sudo apt-get install packagekit
> ```

  1. Дараах командыг ажиллуулж Active Directory domain-д нэгдэнэ.

```
# sudo realm -v join example.local
```

  1. Дараах командуудыг ажиллуулж domain-тэй холболтыг шалгана.

```
# dig -t SRV _ldap._tcp.example.local

# dig -t SRV _ldap._tcp.dc._msdcs.example.local

# sudo realm -v discover example.local

# realm list
```

SUSE Linux Enterprise 12, 15 дээр SSSD ашиглан Active Directory-д нэгтгэх

SSSD ашиглан SUSE Linux төхөөрөмжийг Active Directory (AD) domain-д нэгтгэхийн тулд доорх алхмуудыг дагахаас гадна ерөнхий урьдчилсан нөхцөлүүдийг хангасан байх ёстой.

Жишээ:

Realm: example.local
Domain User: administrator
Domain IP:   11.11.11.11
  1. Шаардлагатай багцуудыг суулгана.

- krb5-client-ийг суулгана.

```
# zypper in krb5-client
```

- Дараах багцуудыг суулгана.

```
# zypper in adcli sssd sssd-ldap sssd-ad sssd-tools
```

  1. /etc/krb5.conf файлын хуучин хувилбарыг нөөцлөөд, агуулгыг нь доорхоор бүрэн солино:

```
[libdefaults]
default_realm = EXAMPLE.LOCAL
dns_lookup_kdc = true
forwardable = true
default_ccache_name = FILE:/tmp/krb5cc_%{uid}
[realms]
EXAMPLE.LOCAL = {
admin_server = EXAMPLE.LOCAL
#kdc = dc1.EXAMPLE.LOCAL
#kdc = dc2.EXAMPLE.LOCAL
}
[logging]
kdc = FILE:/var/log/krb5/krb5kdc.log
admin_server = FILE:/var/log/krb5/kadmind.log
default = SYSLOG:NOTICE:DAEMON
[domain_realm]
.EXAMPLE.LOCAL = EXAMPLE.LOCAL
EXAMPLE.LOCAL = EXAMPLE.LOCAL
```

  1. /etc/sssd/sssd.conf файлын хуучин хувилбарыг нөөцлөөд, агуулгыг нь доорхоор бүрэн солих замаар sssd.conf файлыг тохируулна:

```
[sssd]
config_file_version = 2
services = nss,pam
domains = example.local

[nss]
filter_users = root
filter_groups = root

[pam]

[domain/example.local]
id_provider = ad
auth_provider = ad
ad_domain = example.local
cache_credentials = true
enumerate = false
override_homedir = /home/%d/%u
ldap_id_mapping = true
ldap_referrals = false
ldap_schema = ad
```

Файлын эрхийг 600 болгоно.

```
# chmod 600 /etc/sssd/sssd.conf
```

  1. nsswitch.conf файлыг тохируулна

```
passwd: compat sss
group: compat sss
```

  1. Дараах командыг ажиллуулж Active Directory domain-д нэгдэнэ:

```
# adcli join -D example.local
```

  1. sssd daemon-ийг идэвхжүүлж эхлүүлнэ.

```
# systemctl enable sssd
# systemctl start sssd
```

  1. LDAP клиентийг тохируулна

- Шаардлагатай багцуудыг суулгана.

```
# zypper in openldap2-client cyrus-sasl-gssapi
```

- /etc/openldap/ldap.conf файлд дараах мөрүүдийг нэмнэ.

```
URI ldap://example.local
BASE dc=example,dc=local
REFERRALS OFF
```

  1. Дараах командуудыг ажиллуулж domain-тэй холболтыг шалгана:

```
# ldapsearch -Y GSSAPI cn=Administrator
# adcli info example.local
# id administrator
# getent passwd administrator
```

Winbind ашиглан Linux төхөөрөмжийг Active Directory-д нэгтгэх нь

Энэ хэсэгт дараах үйлдлийн системүүдийн заавар байна:

  • CentOS6, RHEL7
  • CentOS 7/8, Fedora31, RHEL8, OracleLinux7
  • SUSE Linux Enterprise 12, 15
  • Ubuntu, Debian

CentOS6, RHEL7 дээр Winbind ашиглан Active Directory-д нэгтгэх

Winbind ашиглан Linux төхөөрөмжийг Active Directory (AD) domain-д нэгтгэхийн тулд доорх алхмуудыг дагахаас гадна ерөнхий урьдчилсан нөхцөлүүдийг хангасан байх ёстой.

Жишээ:

Realm: example.local
Domain User: administrator
Domain IP:   11.11.11.11
  1. Шаардлагатай багцуудыг суулгана.

```
# yum -y install samba4-winbind samba4-winbind-clients pam_krb5 krb5-libs
```

  1. Дараах командыг ажиллуулж authentication provider-ийг солино:

```
# authconfig \
--enablekrb5 \
--krb5kdc=example.local \
--krb5adminserver=example.local \
--krb5realm=EXAMPLE.LOCAL \
--enablewinbind \
--enablewinbindauth \
--smbsecurity=ads \
--smbrealm=EXAMPLE.LOCAL \
--smbservers=example.local \
--smbworkgroup=example\
--winbindtemplatehomedir=/home/%U \
--winbindtemplateshell=/bin/bash \
--enablemkhomedir \
--enablewinbindusedefaultdomain \
--update
```

  1. /etc/nsswitch.conf файл дахь параметрүүдийг идэвхжүүлж nsswitch.conf файлыг тохируулна:

```
passwd: compat winbind
group: compat winbind
```

  1. Active Directory domain-д нэгдэнэ.

- Kerberos keytab файл үүсгэнэ:

```
# sudo net ads keytab create -U administrator
```

- Winbind үйлчилгээг эхлүүлнэ

```
# service winbind start
# chkconfig winbind on
```

- Дараах командыг ажиллуулна

```
# net ads join -U administrator -v
Enter administrator's password:
Using short domain name -- EXAMPLE
Joined 'Ubuntu20-VM' to dns domain 'example.local'
No DNS domain configured for Ubuntu20-VM. Unable to perform DNS Update.
DNS update failed!
```

> Анхааруулга: Дээрх мессежид DNS шинэчлэлт амжилтгүй болсон гэж гарсан ч DNS зөв шинэчлэгдсэн тул энэ алдааны мессежийг үл тоомсорлоно уу.

  1. Дараах командыг ажиллуулж domain-тэй холболтыг шалгана:

```
# wbinfo -u
```

CentOS7/8, Fedora31, RHEL8, OracleLinux7 дээр Winbind ашиглан Active Directory-д нэгтгэх

Winbind ашиглан Linux төхөөрөмжийг Active Directory (AD) domain-д нэгтгэхийн тулд доорх алхмуудыг дагахаас гадна ерөнхий урьдчилсан нөхцөлүүдийг хангасан байх ёстой.

Жишээ:

Realm: example.local
Domain User: administrator
Domain IP:   11.11.11.11
  1. Шаардлагатай багцуудыг суулгана.

```
# yum install samba samba-client samba-winbind samba-winbind-client
```

  1. smb.conf файлыг тохируулна.

/etc/samba/smb.conf файлын хуучин хувилбарыг нөөцлөөд, агуулгыг нь доорхоор бүрэн солино:

```
[global]
workgroup = EXAMPLE
realm = EXAMPLE.LOCAL
security = ads
idmap config * : backend = autorid
idmap config * : range = 100000-19999999
idmap config * : rangesize = 1000000
template homedir = /home/%D/%U
template shell = /bin/bash
winbind use default domain = false
winbind offline logon = true
log file = /var/log/samba/log.%m
max log size = 50
log level = 0
kerberos method = secrets and keytab
```

  1. Active Directory domain-д нэгдэнэ.

- Kerberos krb5.keytab файл үүсгэнэ:

```
# sudo net ads keytab create -U administrator
```

- Winbind үйлчилгээг идэвхжүүлнэ.

```
# systemctl enable winbind --now
```

- Дараах командыг ажиллуулна.

```
# net ads join -U Administrator --no-dns-updates example.local
```

  1. Дараах командуудыг ажиллуулж domain-тэй холболтыг шалгана.

```
# host -t SRV _kerberos._udp.example.local

# host -t SRV _kerberos._tcp.example.local

# testparm

# wbinfo -u

# wbinfo -g
```

SUSE Linux Enterprise 12, 15 дээр Winbind ашиглан Active Directory-д нэгтгэх

Winbind ашиглан SUSE Linux төхөөрөмжийг Active Directory (AD) domain-д нэгтгэхийн тулд доорх алхмуудыг дагахаас гадна ерөнхий урьдчилсан нөхцөлүүдийг хангасан байх ёстой.

Жишээ:

Realm: example.local
Domain User: administrator
Domain IP:   11.11.11.11
  1. Шаардлагатай багцуудыг суулгана.

- krb5 клиентийг суулгана.

```
# zypper in krb5-client
```

  1. Kerberos клиентийг тохируулна.

/etc/krb5.conf файлын хуучин хувилбарыг нөөцлөөд, агуулгыг нь доорхоор бүрэн солино:

```
[libdefaults]
default_realm = EXAMPLE.LOCAL
dns_lookup_kdc = true
forwardable = true
default_ccache_name = FILE:/tmp/krb5cc_%{uid}
[realms]
EXAMPLE.LOCAL = {
admin_server = EXAMPLE.LOCAL
#kdc = dc1.EXAMPLE.LOCAL
#kdc = dc2.EXAMPLE.LOCAL
}
[logging]
kdc = FILE:/var/log/krb5/krb5kdc.log
admin_server = FILE:/var/log/krb5/kadmind.log
default = SYSLOG:NOTICE:DAEMON
[domain_realm]
.EXAMPLE.LOCAL = EXAMPLE.LOCAL
EXAMPLE.LOCAL = EXAMPLE.LOCAL
```

  1. Дараах багцуудыг суулгана:

```
# zypper in samba-client samba-libs samba-winbind
```

  1. smb.conf файлыг тохируулна.

- /etc/samba/smb.conf файлын хуучин хувилбарыг нөөцлөөд, агуулгыг нь доорхоор бүрэн солино:

```
[global]
workgroup = EXAMPLE
kerberos method = secrets and keytab
realm = EXAMPLE.LOCAL
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
```

- Файлын эрхийг 600 болгоно.

```
# chmod 600 /etc/samba/smb.conf
```

  1. nsswitch.conf файлыг тохируулна.

/etc/nsswitch.conf файл дахь параметрүүдийг идэвхжүүлнэ:

```
passwd: compat winbind
group: compat winbind
```

  1. Дараах командыг ажиллуулж Kerberos-той холболт үүсгэнэ.

```
# kinit Administrator
```

  1. Дараах командыг ажиллуулж Active Directory domain-д нэгдэнэ.

```
#net ads join -U Administrator
```

  1. Дараах командуудыг ажиллуулж Winbind daemon-ийг идэвхжүүлж эхлүүлнэ.

```
# systemctl enable winbind
# systemctl start winbind
```

  1. LDAP клиентийг тохируулна.

- Шаардлагатай багцуудыг суулгана.

```
zypper in openldap2-client cyrus-sasl-gssapi
```

- /etc/openldap/ldap.conf файлд дараах мөрүүдийг нэмнэ.

```
URI ldap://example.local
BASE dc=example,dc=local
REFERRALS OFF
```

  1. Дараах командуудыг ажиллуулж domain-тэй холболтыг шалгана.

```
# ldapsearch -Y GSSAPI cn=Administrator

# net ads info

# id administrator

# getent passwd administrator
```

Ubuntu, Debian дээр Winbind ашиглан Active Directory-д нэгтгэх

Winbind ашиглан Linux төхөөрөмжийг Active Directory (AD) domain-д нэгтгэхийн тулд доорх алхмуудыг дагахаас гадна ерөнхий урьдчилсан нөхцөлүүдийг хангасан байх ёстой.

Жишээ:

Realm: example.local
Domain User: administrator
Domain IP:   11.11.11.11
  1. Дараах багцуудыг суулгана.

```
# sudo apt install samba krb5-config krb5-user winbind libpam-winbind libnss-winbind
```

Domain-ы нэрийг зөвхөн томоор бичнэ:

Kerberos сервэрийн талбарыг хоосон үлдээнэ.

Kerberos realm-ийн administrative сервэрийн талбарыг хоосон үлдээнэ.

  1. Дараах командыг ажиллуулж PAM-ийг тохируулаад “Create home directory on login” сонголтыг идэвхжүүлнэ.

```
# sudo pam-auth-update
```

> Анхааруулга: Энэ команд Debian болон Ubuntu14 дээр хамаарахгүй.

  1. /etc/nsswitch.conf файлыг тохируулж параметрүүдийг идэвхжүүлнэ.

```
passwd: compat winbind
group: compat winbind
```

  1. smb.conf файлыг тохируулна.

- /etc/samba/smb.conf файлын хуучин хувилбарыг нөөцлөөд, агуулгыг нь доорхоор бүрэн солино:

```
[global]

workgroup = EXAMPLE
security = ads
realm = EXAMPLE.LOCAL
encrypt passwords = yes
winbind use default domain = yes
winbind refresh tickets = true
template homedir = /home/%D/%U
template shell = /bin/bash
kerberos method = secrets and keytab
```

- samba үйлчилгээг дахин асаана.

```
# systemctl restart smbd.service
```

  1. krb5.conf файлыг тохируулна. /etc/krb5.conf файлын хуучин хувилбарыг нөөцлөөд, агуулгыг нь доорхоор бүрэн солино:

```
[libdefaults]
default_realm = EXAMPLE.LOCAL
dns_lookup_realm = true
dns_lookup_kdc = true
dns_fallback = yes
[realms]
EXAMPLE.LOCAL = {
kdc = example.local
default_domain = example.local
}
[domain_realm]
.EXAMPLE.LOCAL = EXAMPLE.LOCAL
EXAMPLE.LOCAL = EXAMPLE.LOCAL
```

  1. Active Directory domain-д нэгдэнэ.

- Kerberos ticket үүсгээд шалгана.

```
# sudo kinit administrator
```

- Kerberos keytab файл үүсгэнэ.

```
# sudo net ads keytab create -U administrator
```

- Компьютерийг Active Directory-д нэгтгэнэ:

```
# sudo net ads join -U administrator
```

- samba үйлчилгээг дахин асаана.

```
# systemctl restart smbd.service
```

  1. Дараах командуудыг ажиллуулж domain-тэй холболтыг шалгана:

```
# wbinfo -u

# wbinfo -g

# getent passwd

# getent group

# wbinfo -i administrator
```

Тэмдэглэл: DNS update failed: NT_STATUS_INVALID_PARAMETER нь алдаа биш.

Компьютер Active Directory-д амжилттай нэгдсэн.

Алдаа засах (Troubleshooting)

Энэ хэсэгт дараах заавар байна:

  • PBIS
  • SSSD
  • Winbind

PBIS-ээр Active Directory domain-д нэгтгэх үеийн алдаа засах

Энэ хэсэгт PBIS-ээр Active Directory domain-д нэгтгэх явцад гарч болох алдааны жагсаалт байна.

Жишээ:

Realm: example.local
Domain User: administrator
Domain IP: 11.11.11.11

Error: ERROR_GEN_FAILURE [code 0x0000001f]

domainjoin-cli команд avahi-daemon багц суусан байгаас болж амжилтгүй болж магадгүй.

# domainjoin-cli join example.local administrator
Joining to AD Domain:   example.local
With Computer DNS Name: user.example.local

administrator@EXAMPLE.LOCAL's password:

Error: ERROR_GEN_FAILURE [code 0x0000001f]

Шийдэл

  • avahi-daemon багцыг устгана

```
# sudo apt-get remove avahi-daemon
```

Error: Invalid hostname [code 0x000004ba]

domainjoin-cli команд hostname буруу тохируулагдсанаас болж амжилтгүй болж магадгүй.

# cd /opt/pbis/bin/
# sudo domainjoin-cli join example.local administrator
Error: Invalid hostname [code 0x000004ba]
The hostname may not be 'linux' or 'localhost'.

Шийдэл

  • Дараах командыг ажиллуулж hostname-ийг солино:

```
# hostnamectl set-hostname <NAME>
```

  • /etc/hostname файлаас хуучин нэрийг устгаад шинээр нь бичнэ.
  • /etc/hosts файл дахь төхөөрөмжийн нэрийн бүх хуучин нэрийг шинээр нь солино.
  • Төхөөрөмжийг дахин асаана.

Error: Module not configured [code 0x000003eb]

domainjoin-cli команд hostname буруу тохируулагдсанаас болж амжилтгүй болж магадгүй.

# cd /opt/pbis/bin/
# sudo domainjoin-cli join example.local administrator
Joining to AD Domain:   example.local
With Computer DNS Name: bdvm-c6x64.example.local

administrator@EXAMPLE.LOCAL's password:

Error: Module not configured [code 0x000003eb]

Even though the configuration of 'hostname' was executed, the configuration is not complete. Please
contact support.

Шийдэл

  • Дараах командыг ажиллуулж hostname-ийг солино:

```
# hostnamectl set-hostname <NAME>
```

  • etc/hostname файлаас хуучин нэрийг устгаад шинээр нь бичнэ.
  • /etc/hosts файл дахь төхөөрөмжийн нэрийн бүх хуучин нэрийг шинээр нь солино.
  • Төхөөрөмжийг дахин асаана.

Error: BeyondTrust AD Bridge Open requires library libnsl.so.1; please install libnsl.so.1 before installing AD Bridge.

libnsl.so.1 сан байхгүйгээс .sh файлыг ажиллуулахад алдаа гарч магадгүй.

# ./pbis-open-9.1.0.551.linux.x86_64.rpm.sh
Creating directory pbis-open-9.1.0.551.linux.x86_64.rpm
Verifying archive integrity... All good.
Uncompressing pbis-open-9.1.0.551.linux.x86_64.rpm..........
Installing packages and old packages will be removed
warning: /home/pbis-open-9.1.0.551.linux.x86_64.rpm/./packages/pbis-open-upgrade-9.1.0-551.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID c9ceecef: NOKEY
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:pbis-open-upgrade-9.1.0-551      ################################# [100%]
warning: /home/pbis-open-9.1.0.551.linux.x86_64.rpm/./packages/pbis-open-9.1.0-551.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID c9ceecef: NOKEY
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
BeyondTrust AD Bridge Open requires library libnsl.so.1; please install libnsl.so.1 before installing AD Bridge.

error: %prein(pbis-open-9.1.0-551.x86_64) scriptlet failed, exit status 1
error: pbis-open-9.1.0-551.x86_64: install failed
Error installing /home/pbis-open-9.1.0.551.linux.x86_64.rpm/./packages/pbis-open-9.1.0-551.x86_64.rpm
The install has not completed. Correct any errors and reinstall by running /home/pbis-open-9.1.0.551.linux.x86_64.rpm/install.sh install

Шийдэл

  • libnsl багцыг суулгана

```
# yum install libnsl
```

Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist

Дотоод mirrorlist-ээс болж багц суулгах боломжгүй.

# yum install libnsl
CentOS Linux 8 - AppStream                                             118  B/s |  38  B     00:00
Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist
[root@bdvm-c8x64 home]# yum install libnsl
CentOS Linux 8 - AppStream                                             512  B/s |  38  B     00:00
Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist
[root@bdvm-c8x64 home]# yum update
CentOS Linux 8 - AppStream                                             437  B/s |  38  B     00:00
Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist

Шийдэл

  • Дараах командуудыг ажиллуулна:

```
# cd /etc/yum.repos.d/
# sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
# sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
# yum update -y
```

  • Багцыг дахин суулгана

Error: Received error while querying lwsmd. [code 0x00000002]

error code 0x00000002-оос болж domain-д нэгдэх боломжгүй.

# sudo domainjoin-cli join example.local administrator

Error: Received error while querying lwsmd. [code 0x00000002]
Received error while querying lwsmd.

Шийдэл

  • pbis-open*.sh файлын гаралтаас SELinux-тэй холбоотой тэмдэглэл байгаа эсэхийг шалгана.

```
# ./pbis-open-9.1.0.551.linux.x86_64.rpm.sh
Creating directory pbis-open-9.1.0.551.linux.x86_64.rpm
Verifying archive integrity... All good.
Uncompressing pbis-open-9.1.0.551.linux.x86_64.rpm..........
Installing packages and old packages will be removed
...
SELinux Mode: Enforcing

An appropriate SELinux policy [/opt/pbis/share/rhel/unknown/pbis.pp] was not included in this package. You may provide a policy at /opt/pbis/share/pbis.pp

SELinux found to be present, enabled, and enforcing. You may either provide a policy at /opt/pbis/share/pbis.pp --OR-- SELinux must be disabled or set to permissive mode by editing the file /etc/selinux/config and rebooting. For instructions on how to edit the file to disable SELinux, see the SELinux man page.

BeyondTrust AD Bridge will not install without an appropriate policy for SELinux.

warning: %post(pbis-open-9.1.0-551.x86_64) scriptlet failed, exit status 1

...
```

  • Дараах командыг ажиллуулж SELinux-ийн төлөвийг шалгана:

```
# sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Memory protection checking: actual (secure)
Max kernel policy version: 31
```

  • /etc/selinux/config тохируулгын файл дахь SELINUX хувьсагчийн утгыг өөрчилж идэвхгүй болгоно.

```
SELINUX=disabled
```

  • pbis-open*.sh командыг дахин ажиллуулна.

Error: ERROR_BAD_COMMAND [code 0x00000016]

Энэ нь алдаа биш, төхөөрөмж амжилттай нэгдсэн.

# /opt/pbis/bin/domainjoin-cli join example.local administrator
Joining to AD Domain:   example.local
With Computer DNS Name: bdvm-c8x64.example.local

administrator@EXAMPLE.LOCAL's password:
Warning: A resumable error occurred while processing the 'hostname' module
ERROR_BAD_COMMAND [code 0x00000016]



Warning: System restart required
Your system has been configured to authenticate to Active Directory for the first time.  It is
recommended that you restart your system to ensure that all applications recognize the new settings.

SUCCESS

Error: DNS_ERROR_BAD_PACKET [code 0x0000251e]

# /opt/pbis/bin/domainjoin-cli join example.local administrator
Joining to AD Domain:   example.local
With Computer DNS Name: o7x64tl.example.local

administrator@EXAMPLE.LOCAL's password:
Error: DNS_ERROR_BAD_PACKET [code 0x0000251e]
A bad packet was received from a DNS server. Potentially the requested address does not exist.

Шийдэл

  • DC ping-д хариулж байгаа эсэхийг шалгана.

```
# ping example.local
```

  • Computer-ийн DNS нь Domain Controller-ийн IP-д тохируулагдсан эсэхийг шалгана.
  • /etc/nsswitch.conf файлд hosts өгөгдлийн сангийн хайлтын дараалал нь эхлээд files, дараа нь dns эсэхийг шалгана.
  • /etc/resolv.conf файлд дараахыг нэмнэ.

```
search example.local
nameserver 11.11.11.11
```

SSSD-ээр domain-д нэгтгэх үеийн алдаа засах

Энэ хэсэгт SSSD-ээр Active Directory domain-д нэгтгэх явцад гарч болох алдааны жагсаалт байна.

Жишээ:

Realm: example.local
Domain User: administrator
Domain IP: 11.11.11.11

Error: Failed to join domain: failed to lookup DC info for domain 'example.local' over rpc: The attempted logon is invalid. This is either due to a bad username or authentication information.

Хэрэглэгчийн нэр эсвэл нууц үг буруу байгаас энэ алдаа гарна.

# realm join example.local -U administrator -v
 * Resolving: _ldap._tcp.example.local
 * Performing LDAP DSE lookup on: 11.11.11.11
 * Successfully discovered: example.local
Password for administrator:
 * Required files: /usr/sbin/oddjobd, /usr/libexec/oddjob/mkhomedir, /usr/sbin/sssd, /usr/bin/net
 * LANG=C LOGNAME=root /usr/bin/net -s /var/cache/realmd/realmd-smb-conf.0HT7S1 -U administrator ads join example.local
Enter administrator's password:
Failed to join domain: failed to lookup DC info for domain 'example.local' over rpc: The attempted logon is invalid. This is either due to a bad username or authentication information.
 ! Joining the domain example.local failed
realm: Couldn't join realm: Joining the domain example.local failed

Шийдэл

  • Командыг дахин ажиллуулаад зөв нэвтрэх мэдээллээ оруулна.

Error: ! Failed to enroll machine in realm: GDBus.Error:org.freedesktop.systemd1.UnitMasked: Unit is masked.

Шаардлагатай багц дутуугаас энэ алдаа гарна.

# realm join example.local -U administrator -v
 * Resolving: _ldap._tcp.example.local
 * Performing LDAP DSE lookup on: 11.11.11.11
 * Successfully discovered: example.local
Password for administrator:
 * Couldn't find file: /usr/bin/net
 * Required files: /usr/sbin/oddjobd, /usr/libexec/oddjob/mkhomedir, /usr/sbin/sssd, /usr/bin/net
 * Resolving required packages
 ! Failed to enroll machine in realm: GDBus.Error:org.freedesktop.systemd1.UnitMasked: Unit is masked.
realm: Couldn't join realm: Failed to enroll machine in realm. See diagnostics.

Шийдэл

  • Дараах командыг ажиллуулна:

```
# yum install samba-common-tools realmd oddjob oddjob-mkhomedir sssd adcli krb5-workstation
```

Error: No results: example.local

Active Directory (AD)-д discover ажиллуулахад realm discover команд realm-ийг таньдаг ч үр дүн гаргахгүй.

# sudo realm -v discover example.local
sudo: unable to resolve host user-market-2: Connection timed out
 * Resolving: _ldap._tcp.example.local
 * Resolving: example.local
 * No results: example.local
example.local
  type: kerberos
  realm-name: EXAMPLE.LOCAL
  domain-name: example.local
  configured: no

Шийдэл

Асуудлыг засахын тулд:

  • VM-ийн огноо, цаг Active Directory-той синхрон эсэхийг шалгана.
  • Active Directory-тэй ижил цагийн бүс, огноо, цаг тохируулна.
  • DC ping-д хариулж байгаа эсэхийг шалгана.

```
# ping example.local
```

  • Computer-ийн DNS нь Domain Controller-ийн IP-д тохируулагдсан эсэхийг шалгана.
  • /etc/nsswitch.conf файлд hosts өгөгдлийн сангийн хайлтын дараалал нь эхлээд files, дараа нь dns эсэхийг шалгана.

```
hosts: files dns mdns4_minimal [NOTFOUND=return]
```

Error: realm: No such realm found: example.local

Active Directory (AD)-д discover ажиллуулахад realm discover команд realm-ийг таньж чадахгүй.

# sudo realm -v discover example.local
sudo: unable to resolve host user-market-2: No such file or directory
 * Resolving: _ldap._tcp.example.local
 * Resolving: example.local
 * No results: example.local
realm: No such realm found: example.local

Шийдэл

  • /etc/resolv.conf файлд дараахыг нэмнэ.

```
search example.local
nameserver 11.11.11.11
```

  • /etc/nsswitch.conf файлд hosts: өгөгдлийн сангийн files-ийн дараа dns байгаа эсэхийг шалгана.

```
hosts: files dns myhostname
```

  • ping командыг ажиллуулна.

```
# ping example.local
```

Error: Couldn't authenticate as: Administrator@EXAMPLE.LOCAL: Preauthentication failed

#  sudo realm -v join example.local
sudo: unable to resolve host user-market-2: Connection timed out
 * Resolving: _ldap._tcp.example.local
 * Performing LDAP DSE lookup on: 11.11.11.11
 * Successfully discovered: example.local
Password for Administrator:
 * Unconditionally checking packages
 * Resolving required packages
 * LANG=C /usr/sbin/adcli join --verbose --domain example.local --domain-realm EXAMPLE.LOCAL --domain-controller 11.11.11.--login-type user --login-user Administrator --stdin-password
 * Using domain name: example.local
 * Calculated computer account name from fqdn: USER-MARKET-2
 * Using domain realm: example.local
 * Sending netlogon pings to domain controller: cldap://11.11.11.11
 * Received NetLogon info from: DC.example.local
 * Wrote out krb5.conf snippet to /var/cache/realmd/adcli-krb5-2lGxqJ/krb5.d/adcli-krb5-conf-ophiP9
 ! Couldn't authenticate as: Administrator@EXAMPLE.LOCAL: Preauthentication failed
adcli: couldn't connect to example.local domain: Couldn't authenticate as: Administrator@EXAMPLE.LOCAL: Preauthentication failed
 ! Failed to join the domain
realm: Couldn't join realm: Failed to join the domain

Шийдэл

  • administrator дансны нууц үгийг зөв оруулсан эсэхээ шалгаад командыг дахин ажиллуулна.

Error: Failed to enroll machine in realm: The following packages have unmet dependencies:

# sudo realm -v join example.local
 * Resolving: _ldap._tcp.example.local
 * Performing LDAP DSE lookup on: 11.11.11.11
 * Successfully discovered: example.local
 * Unconditionally checking packages
 * Resolving required packages
 * Installing necessary packages: sssd-tools, sssd, libnss-sss, libpam-sss
 ! Failed to enroll machine in realm: The following packages have unmet dependencies:

sssd-tools: Depends: libc6 (>= 2.12) but 2.19-0ubuntu6.15 is to be installed
            Depends: libpopt0 (>= 1.14) but 1.16-8ubuntu1 is to be installed
            Depends: libselinux1 (>= 1.32) but 2.2.2-1ubuntu0.1 is to be installed
            Depends: libsemanage1 (>= 2.0.3) but 2.2-1 is to be installed
            Depends: libtalloc2 (>= 2.0.4~git20101213) but 2.1.5-0ubuntu0.14.04.1 is to be installed
            Depends: sssd-common (= 1.11.5-1ubuntu3) but 1.11.8-0ubuntu0.7 is to be installed

realm: Couldn't join realm: Failed to enroll machine in realm. See diagnostics.

Шийдэл

  • Дараах командуудыг ажиллуулж багцуудыг шинэчилнэ.

```
# apt update
# sudo apt install sssd-ad sssd-tools realmd adcli
```

Error: KDC or realm is unreachable or can't resolve address

Энэ асуудал CentOS6-г SSSD ашиглан Active Directory-д нэгтгэх үед гарна

"errors": [
        {
           "description": "failed to generate credentials cache file for keytab file: default",
           "message": "KDC or realm is unreachable or can't resolve address"
        }
     ],

Шийдэл

  • Дараах командыг ажиллуулна:

```
# authconfig \
--enablekrb5 \
--krb5kdc=example.local \
--krb5adminserver=example.local \
--krb5realm=EXAMPLE.LOCAL \
--enablesssd \
--enablesssdauth \
--update
```

  • krb5.conf файлыг шалгана. Дараах хэлбэртэй байх ёстой:

```
[libdefaults]
default_realm = EXAMPLE.LOCAL
dns_lookup_kdc = true
forwardable = true
default_ccache_name = FILE:/tmp/krb5cc_%{uid}
[realms]
EXAMPLE.LOCAL = {
admin_server = EXAMPLE.LOCAL
#kdc = dc1.EXAMPLE.LOCAL
#kdc = dc2.EXAMPLE.LOCAL
}
[logging]
kdc = FILE:/var/log/krb5/krb5kdc.log
admin_server = FILE:/var/log/krb5/kadmind.log
default = SYSLOG:NOTICE:DAEMON
[domain_realm]
.EXAMPLE.LOCAL = EXAMPLE.LOCAL
EXAMPLE.LOCAL = EXAMPLE.LOCAL
```

Error: Cannot find a valid baseurl for repo: base

Энэ асуудал CentOS 6 дээр үйлдлийн системийн дэмжлэг дуусч байгаагаас үүснэ

# yum install adcli krb5-workstation sssd
Loaded plugins: fastestmirror, refresh-packagekit, security
Setting up Install Process
Loading mirror speeds from cached hostfile
YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
 Eg. Invalid release/repo/arch combination/
removing mirrorlist with no valid mirrors: /var/cache/yum/x86_64/6/base/mirrorlist.txt
Error: Cannot find a valid baseurl for repo: base

Шийдэл

  • /etc/yum.repos.d/ хавтаст шинэ repo үүсгээд дараахыг нэмнэ:

```
[C6.10-base]
name=CentOS-6.10 - Base
baseurl=http://vault.epel.cloud/6.10/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=1
metadata_expire=never

[C6.10-updates]
name=CentOS-6.10 - Updates
baseurl=http://vault.epel.cloud/6.10/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=1
metadata_expire=never

[C6.10-extras]
name=CentOS-6.10 - Extras
baseurl=http://vault.epel.cloud/6.10/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=1
metadata_expire=never

[C6.10-contrib]
name=CentOS-6.10 - Contrib
baseurl=http://vault.epel.cloud/6.10/contrib/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=0
metadata_expire=never

[C6.10-centosplus]
name=CentOS-6.10 - CentOSPlus
baseurl=http://vault.epel.cloud/6.10/centosplus/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=0
metadata_expire=never
```

  • Багцуудыг шинэчлээд командыг дахин ажиллуулна:

```
# yum update

# yum install adcli krb5-workstation sssd
```

Error: adcli: couldn't connect to domain: Couldn't get kerberos ticket ... Clock skew too great

Энэ асуудал төхөөрөмжийн огноо, цаг Active Directory-оос өөр байхад гарна.

# adcli join example.local
Password for Administrator@EXAMPLE.LOCAL:
adcli: couldn't connect to example.local domain: Couldn't get kerberos ticket for: Administrator@EXAMPLE.LOCAL: Clock skew too great

Шийдэл

  • Төхөөрөмж дээр Active Directory-тэй ижил цагийн бүс, огноо, цаг тохируулна.

Error: gss_init_sec_context failed with [ Miscellaneous failure (see text): Clock skew too great]

Энэ асуудал төхөөрөмжийн огноо, цаг Active Directory-оос өөр байхад гарна.

# sudo realm -v join example.local
 * Resolving: _ldap._tcp.example.local
 * Performing LDAP DSE lookup on: 11.11.11.11
 * Successfully discovered: example.local
 * Unconditionally checking packages
 * Resolving required packages
 * LANG=C /usr/sbin/adcli join --verbose --domain example.local --domain-realm EXAMPLE.LOCAL --domain-controller 11.11.11.11 --login-type computer --no-password
 * Using domain name: example.local
 * Calculated computer account name from fqdn: BDVMU14X86
 * Using domain realm: example.local
 * Sending netlogon pings to domain controller: cldap://11.11.11.11
 * Received NetLogon info from: DC.example.local
 * Wrote out krb5.conf snippet to /var/cache/realmd/adcli-krb5-ffDXAr/krb5.d/adcli-krb5-conf-YCJvaP
 ! Couldn't authenticate as machine account: BDVMU14X86: Client 'BDVMU14X86$@EXAMPLE.LOCAL' not found in Kerberos database
adcli: couldn't connect to example.local domain: Couldn't authenticate as machine account: BDVMU14X86: Client 'BDVMU14X86$@EXAMPLE.LOCAL' not found in Kerberos database
 ! Unable to automatically join the domain
Password for Administrator:
 * Unconditionally checking packages
 * Resolving required packages
 * LANG=C LOGNAME=root /usr/bin/net -s /var/cache/realmd/realmd-smb-conf.PF1JS1 -U Administrator ads join example.local
Enter Administrator's password:gss_init_sec_context failed with [ Miscellaneous failure (see text): Clock skew too great]
kinit succeeded but ads_sasl_spnego_gensec_bind(KRB5) failed: An internal error occurred.

Failed to join domain: failed to connect to AD: An internal error occurred.
 ! Joining the domain example.local failed
realm: Couldn't join realm: Joining the domain example.local failed

Шийдэл

  • Төхөөрөмж дээр Active Directory-тэй ижил цагийн бүс, огноо, цаг тохируулна.

Error: Failed to enroll machine in realm: GDBus.Error:org.freedesktop.systemd1.UnitMasked: Unit is masked.

Шаардлагатай багц дутуугаас энэ алдаа гарна.

# realm join example.local -U administrator -v
 * Resolving: _ldap._tcp.example.local
 * Performing LDAP DSE lookup on: 11.11.11.11
 * Successfully discovered: example.local
Password for administrator:
 * Couldn't find file: /usr/bin/net
 * Required files: /usr/sbin/oddjobd, /usr/libexec/oddjob/mkhomedir, /usr/sbin/sssd, /usr/bin/net
 * Resolving required packages
 ! Failed to enroll machine in realm: GDBus.Error:org.freedesktop.systemd1.UnitMasked: Unit is masked.
realm: Couldn't join realm: Failed to enroll machine in realm. See diagnostics.

Шийдэл

  • Дараах командыг ажиллуулж дутуу багцуудыг суулгана:

```
# yum install samba-common-tools realmd oddjob oddjob-mkhomedir sssd adcli krb5-workstation
```

Error: Failed to start System Security Services Daemon status=4 /NOPERMISSION

/etc/sssd/sssd.conf файлын эрх буруу тохируулагдсанаас sssd үйлчилгээг эхлүүлэх боломжгүй.

# systemctl start sssd
Job for sssd.service failed because the control process exited with error code.
See "systemctl  status sssd.service" and "journalctl  -xe" for details.
# systemctl  status sssd.service
● sssd.service - System Security Services Daemon
   Loaded: loaded (/usr/lib/systemd/system/sssd.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Wed 2022-09-21 22:08:34 EEST; 5s ago
  Process: 9457 ExecStart=/usr/sbin/sssd -i ${DEBUG_LOGGER} (code=exited, status=4)
 Main PID: 9457 (code=exited, status=4)

Sep 21 22:08:34 slesl15gia systemd[1]: Starting System Security Services Daemon...
Sep 21 22:08:34 slesl15gia sssd[9457]: Cannot read config file /etc/sssd/sssd.conf. Please chec
k that the file is accessible only by the owner and owned by root.root.
Sep 21 22:08:34 slesl15gia systemd[1]: sssd.service: Main process exited, code=exited, status=4
/NOPERMISSION
Sep 21 22:08:34 slesl15gia systemd[1]: Failed to start System Security Services Daemon.
Sep 21 22:08:34 slesl15gia systemd[1]: sssd.service: Unit entered failed state.
Sep 21 22:08:34 slesl15gia systemd[1]: sssd.service: Failed with result 'exit-code'.

Шийдэл

  • /etc/sssd/sssd.conf файлд 600 эрх өгөөд эхлүүлэх командыг дахин ажиллуулна.

```
# chmod 600 /etc/sssd/sssd.conf
# systemctl start sssd
```

Error: adcli: joining domain example.local failed: Couldn't lookup computer account. Can't contact LDAP server

Төхөөрөмж LDAP сервэртэй холбогдож чадахгүй байна.

# adcli join -D example.local -U administrator
Password for administrator@EXAMPLE.LOCAL:
adcli: joining domain example.local failed: Couldn't lookup computer account: SGIA12$: Can't contact LDAP server

Шийдэл

  • LDAP клиентийг тохируулна.

```
# zypper in openldap2-client cyrus-sasl-gssapi
```

  • /etc/openldap/ldap.conf файлд дараах мөрүүдийг нэмнэ.

```
URI ldap://example.local
BASE dc=example,dc=local
REFERRALS OFF
```

Error: authconfig: Authentication module /usr/lib64/security/pam_krb5.so is missing. Authentication process might not work correctly.

so сан байхгүйгээс authconfig команд ажиллахгүй.

#  authconfig \
  --enablekrb5 \
  --krb5kdc=example.local \
  --krb5adminserver=example.local \
  --krb5realm=EXAMPLE.LOCAL \
  --enablesssd \
  --enablesssdauth \
  --update
authconfig: Authentication module /usr/lib64/security/pam_krb5.so is missing. Authentication process might not work correctly.

Шийдэл

  • Дутуу багцыг суулгана:

```
# yum install pam5_krb
```

Error: Warning: user would have been denied GPO-based logon access if the ad_gpo_access_control option were set to enforcing mode.

krb5.conf файлын тохиргоо дутуу байгаас энэ алдаа гарна.

● sssd.service - System Security Services Daemon
   Loaded: loaded (/usr/lib/systemd/system/sssd.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2022-09-26 12:15:44 EDT; 2 weeks 0 days ago
 Main PID: 25700 (sssd)
    Tasks: 4
   CGroup: /system.slice/sssd.service
           ├─25700 /usr/sbin/sssd -i --logger=files
           ├─25701 /usr/libexec/sssd/sssd_be --domain yyz.local --uid 0 --gid 0 --logger=files
           ├─25702 /usr/libexec/sssd/sssd_nss --uid 0 --gid 0 --logger=files
           └─25703 /usr/libexec/sssd/sssd_pam --uid 0 --gid 0 --logger=files

Oct 11 10:32:59 10-10-192-49.yyz.local sssd[be[yyz.local]][25701]: Group Policy Container with DN [cn={8F655C32-3704-42C7-9BAD-5CC2C1A3AE55},cn=policies,cn=system,DC=yyz,DC=local] is unreadable or has unreadable or missing attributes. In order to fix this make sure that this AD object has following attributes readable: nTSecurityDescriptor, cn, gPCFileSysPath, gPCMachineExtensionNames, gPCFunctionalityVersion, flags. Alternatively if you do not have access to the server or can not change permissions on this object, you can use option ad_gpo_ignore_unreadable = True which will skip this GPO.See 'man ad_gpo_ignore_unreadable for details.'
Oct 11 10:32:59 10-10-192-49.yyz.local sssd[be[yyz.local]][25701]: Warning: user would have been denied GPO-based logon access if the ad_gpo_access_control option were set to enforcing mode.
Oct 11 10:36:35 10-10-192-49.yyz.local sssd_be[25701]: GSSAPI client step 1
Oct 11 10:36:35 10-10-192-49.yyz.local sssd_be[25701]: GSSAPI client step 1
Oct 11 10:36:35 10-10-192-49.yyz.local sssd_be[25701]: GSSAPI client step 1
Oct 11 10:36:35 10-10-192-49.yyz.local sssd_be[25701]: GSSAPI client step 2
Oct 11 10:40:31 10-10-192-49.yyz.local sssd[be[yyz.local]][25701]: Group Policy Container with DN [cn={8F655C32-3704-42C7-9BAD-5CC2C1A3AE55},cn=policies,cn=system,DC=yyz,DC=local] is unreadable or has unreadable or missing attributes. In order to fix this make sure that this AD object has following attributes readable: nTSecurityDescriptor, cn, gPCFileSysPath, gPCMachineExtensionNames, gPCFunctionalityVersion, flags. Alternatively if you do not have access to the server or can not change permissions on this object, you can use option ad_gpo_ignore_unreadable = True which will skip this GPO.See 'man ad_gpo_ignore_unreadable for details.'
Oct 11 10:40:31 10-10-192-49.yyz.local sssd[be[yyz.local]][25701]: Warning: user would have been denied GPO-based logon access if the ad_gpo_access_control option were set to enforcing mode.
Oct 11 10:40:54 10-10-192-49.yyz.local sssd[be[yyz.local]][25701]: Group Policy Container with DN [cn={8F655C32-3704-42C7-9BAD-5CC2C1A3AE55},cn=policies,cn=system,DC=yyz,DC=local] is unreadable or has unreadable or missing attributes. In order to fix this make sure that this AD object has following attributes readable: nTSecurityDescriptor, cn, gPCFileSysPath, gPCMachineExtensionNames, gPCFunctionalityVersion, flags. Alternatively if you do not have access to the server or can not change permissions on this object, you can use option ad_gpo_ignore_unreadable = True which will skip this GPO.See 'man ad_gpo_ignore_unreadable for details.'
Oct 11 10:40:54 10-10-192-49.yyz.local sssd[be[yyz.local]][25701]: Warning: user would have been denied GPO-based logon access if the ad_gpo_access_control option were set to enforcing mode.

Шийдэл

  • krb5.conf файлын [realms] хэсэг дараах байдлаар тохируулагдсан эсэхийг шалгана:

```
[libdefaults]
default_realm = EXAMPLE.LOCAL
dns_lookup_realm = true
dns_lookup_kdc = true
dns_fallback = yes
[realms]
EXAMPLE.LOCAL = {
kdc = example.local
default_domain = example.local
}
[domain_realm]
.EXAMPLE.LOCAL = EXAMPLE.LOCAL
EXAMPLE.LOCAL = EXAMPLE.LOCAL
```

Error: kadmin: Missing parameters in krb5.conf required for kadmin client while initializing kadmin interface

krb5.conf файлын тохиргоо дутуу байгаас энэ алдаа гарна.

# kadmin list_principals
kadmin: Missing parameters in krb5.conf required for kadmin client while initializing kadmin interface

Шийдэл

  • krb5.conf файлын [realms] хэсэг дараах байдлаар тохируулагдсан эсэхийг шалгана:

```
[libdefaults]
default_realm = EXAMPLE.LOCAL
dns_lookup_realm = true
dns_lookup_kdc = true
dns_fallback = yes
[realms]
EXAMPLE.LOCAL = {
kdc = example.local
default_domain = example.local
}
[domain_realm]
.EXAMPLE.LOCAL = EXAMPLE.LOCAL
EXAMPLE.LOCAL = EXAMPLE.LOCAL
```

  • Hostname өмнө нь ашиглагдсан эсэхийг шалгана.
  • Төхөөрөмж Active Directory дотор идэвхгүй болгогдсон эсэхийг шалгана.

Error: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (Server not found in Kerberos database)

krb5.conf файлд rdns параметр байхгүйгээс энэ алдаа гарна.

------------------------ldapsearch -Y GSSAPI cn=Administrator---------------------------------
● sssd.service - System Security Services Daemon
   Loaded: loaded (/usr/lib/systemd/system/sssd.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2022-10-11 16:43:20 EDT; 1min 30s ago
 Main PID: 1923 (sssd)
    Tasks: 4
   CGroup: /system.slice/sssd.service
           ├─1923 /usr/sbin/sssd -i --logger=files
           ├─1963 /usr/libexec/sssd/sssd_be --domain yyz.local --uid 0 --gid 0 --logger=files
           ├─1967 /usr/libexec/sssd/sssd_nss --uid 0 --gid 0 --logger=files
           └─1968 /usr/libexec/sssd/sssd_pam --uid 0 --gid 0 --logger=files

Oct 11 16:43:32 10-10-192-49.yyz.local sssd_be[1963]: GSSAPI client step 1
Oct 11 16:43:32 10-10-192-49.yyz.local sssd_be[1963]: GSSAPI client step 1
Oct 11 16:43:32 10-10-192-49.yyz.local sssd[be[yyz.local]][1963]: GSSAPI Error: Unspecified GSS failure.  Minor code may provide more information (Server not found in Kerberos database)
Oct 11 16:43:32 10-10-192-49.yyz.local sssd[nss][1967]: Enumeration requested but not enabled
Oct 11 16:43:36 10-10-192-49.yyz.local sssd_be[1963]: GSSAPI client step 1
Oct 11 16:43:36 10-10-192-49.yyz.local sssd_be[1963]: GSSAPI client step 1
Oct 11 16:43:36 10-10-192-49.yyz.local sssd[be[yyz.local]][1963]: GSSAPI Error: Unspecified GSS failure.  Minor code may provide more information (Server not found in Kerberos database)
Oct 11 16:43:36 10-10-192-49.yyz.local sssd_be[1963]: GSSAPI client step 1
Oct 11 16:43:36 10-10-192-49.yyz.local sssd_be[1963]: GSSAPI client step 1
Oct 11 16:43:36 10-10-192-49.yyz.local sssd[be[yyz.local]][1963]: GSSAPI Error: Unspecified GSS failure.  Minor code may provide more information (Server not found in Kerberos database)

Шийдэл

  • krb5.conf файлд rnds=false нэмнэ

```
[libdefaults]
default_realm = EXAMPLE.LOCAL
dns_lookup_realm = true
dns_lookup_kdc = true
dns_fallback = yes
rdns = false
[realms]
EXAMPLE.LOCAL = {
kdc = example.local
default_domain = example.local
}
[domain_realm]
.EXAMPLE.LOCAL = EXAMPLE.LOCAL
EXAMPLE.LOCAL = EXAMPLE.LOCAL
```

Winbind-ээр domain-д нэгтгэх үеийн алдаа засах

Энэ хэсэгт Winbind-ээр Active Directory domain-д нэгтгэх явцад гарч болох алдааны жагсаалт байна.

Жишээ:

Realm: example.local
Domain User: administrator
Domain IP: 11.11.11.11

Error: failed to generate credentials cache file for keytab file: default

Төхөөрөмжийн hostname дээд тал нь 15 тэмдэгт байж болно.

# net ads join -U administrator
Our netbios name can be at most 15 chars long, "MAC-00-50-56-A9-06-E1" is 21 chars long
Invalid configuration.  Exiting....
Failed to join domain: The format of the specified computer name is invalid.

Шийдэл

  • Hostname-ийг солино.

Error: No DNS domain configured for suse15-user. Unable to perform DNS Update.

Active Directory-д нэгдэх үед заримдаа net команд DNS-ийг шинэчилж чаддаггүй.

# net ads join -U administrator
Enter administrator's password:
Using short domain name -- EXAMPLE
Joined 'SUSE15-USER' to dns domain 'example.local'
No DNS domain configured for suse15-user. Unable to perform DNS Update.
DNS update failed: NT_STATUS_INVALID_PARAMETER

Шийдэл

  • Машины IP болон FQDN-ийг etc/hosts файлд нэмнэ.

```
12.12.12.12 suse15-name.example.local suse15-name
```

  • Командыг дахин ажиллуулна.
  • Эсвэл командыг --no-dns-update параметртэй ажиллуулж болно.

Error: The format of the specified computer name is invalid.

# net ads join -U administrator
Our netbios name can be at most 15 chars long, "MAC-XX-XX-XX-XX-XX-XX" is 21 chars long
Invalid configuration.  Exiting....
Failed to join domain: The format of the specified computer name is invalid.

Шийдэл

  • Дараах командыг ажиллуулж hostname-ийг солино.

```
# systemctl set-hostname <NAME>
```

  • /etc/hostname файлаас хуучин нэрийг устгаад шинээр нь бичнэ.
  • /etc/hosts файл дахь төхөөрөмжийн нэрийн бүх хуучин нэрийг шинээр нь солино.
  • Төхөөрөмжийг дахин асаана.

Error: No DNS domain configured. Unable to perform DNS Update

Active Directory-д нэгдэх үед заримдаа net команд DNS-ийг шинэчилж чаддаггүй.

# net ads join -U administrator
Enter administrator's password:
Using short domain name -- SAMDOM
Joined 'AD-Member' to dns domain 'samdom.example.com'
No DNS domain configured for AD-Member. Unable to perform DNS Update.
DNS update failed: NT_STATUS_INVALID_PARAMETER

Шийдэл

  • Машины IP болон FQDN-ийг /etc/hosts файлд нэмнэ.

```
12.12.12.12 AD-Member.samdom.example.com AD-Member
```

  • Командыг дахин ажиллуулна.
  • Эсвэл командыг --no-dns-update параметртэй ажиллуулж болно.

Error: E: Package 'krb5-config' has no installation candidate

krb5-config багцыг суулгах боломжгүй.

# sudo apt install samba krb5-config krb5-user winbind libpam-winbind libnss-winbind
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package krb5-config is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'krb5-config' has no installation candidate

# sudo apt install samba krb5-user winbind libpam-winbind libnss-winbind
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 krb5-user : Depends: krb5-config but it is not installable
 samba : Depends: python-dnspython but it is not installable
         Depends: python-samba but it is not going to be installed
         Depends: samba-common-bin (= 2:4.5.16+dfsg-1+deb9u4) but it is not going to be installed
         Depends: tdb-tools but it is not installable
         Recommends: attr but it is not installable
         Recommends: samba-dsdb-modules but it is not going to be installed
         Recommends: samba-vfs-modules but it is not going to be installed
 winbind : Depends: samba-common-bin (= 2:4.5.16+dfsg-1+deb9u4) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Шийдэл

  • /etc/apt/sources.list файл дахь #deb-ээр эхэлсэн мөрүүдийн тайлбарыг (comment) авна.
  • Repo-г шинэчлээд командыг дахин ажиллуулна.

```
# apt update
# sudo apt install samba krb5-config krb5-user winbind libpam-winbind libnss-winbind
```

Error: ads_keytab_open: Invalid kerberos method set (0)

smb.conf файлд нэг хэсэг дутуу байгаас энэ асуудал гарна.

# sudo net ads keytab create -U administrator

Warning: "kerberos method" must be set to a keytab method to use keytab functions.
Enter administrator's password:
ads_keytab_open: Invalid kerberos method set (0)

Шийдэл

  • /etc/samba/smb.conf файлд дараах мөрийг нэмнэ:

```
kerberos method = secrets and keytab
```

  • Командыг дахин ажиллуулна.

Error: could not obtain winbind interface details: WBC_ERR_WINBIND_NOT_AVAILABLE

Шалгах командууд амжилтгүй болно.

# wbinfo -t
could not obtain winbind interface details: WBC_ERR_WINBIND_NOT_AVAILABLE
could not obtain winbind domain name!
checking the trust secret for domain (null) via RPC calls failed
failed to call wbcCheckTrustCredentials: WBC_ERR_WINBIND_NOT_AVAILABLE
Could not check secret
[root@fedgia samba]#  wbinfo -u
could not obtain winbind interface details: WBC_ERR_WINBIND_NOT_AVAILABLE
could not obtain winbind domain name!
Error looking up domain users
[root@fedgia samba]#  wbinfo -g
could not obtain winbind interface details: WBC_ERR_WINBIND_NOT_AVAILABLE
could not obtain winbind domain name!
failed to call wbcListGroups: WBC_ERR_WINBIND_NOT_AVAILABLE
Error looking up domain groups

Шийдэл

  • Дараах командыг ажиллуулна.

```
# systemctl enable winbind --now
```

  • Командуудыг дахин ажиллуулна.

Error: Failed to join domain: failed to lookup DC info for domain 'EXAMPLE.LOCAL' over rpc: NT_STATUS_CONNECTION_RESET

Нэгдэх команд NT_STATUS_CONNECTION_RESET алдаатай амжилтгүй болно.

# net ads join -U Administrator
Enter Administrator's password:
Failed to join domain: failed to lookup DC info for domain 'EXAMPLE.LOCAL' over rpc: NT_STATUS_CONNECTION_RESET

Шийдэл

  • Active Directory дээр SMBv1-ийг суулгана. Server Manager → Dashboard → Start the Remove Roles and Features → Features → SMB 1.0/CIFS Files Sharing Support хэсэгт очно.
  • Командыг дахин ажиллуулна.

Error: DNS update failed!

Энэ нь асуудал биш. Төхөөрөмж Active Directory-д амжилттай нэгдсэн.

# net ads join -U Administrator
Enter Administrator's password:
Using short domain name -- EXAMPLE
Joined '|USER-USER3' to dns domain 'example.local'
No DNS domain configured for user-user3. Unable to perform DNS Update.
DNS update failed!

Error: The net Command Fails to Connect to the 127.0.0.1 IP Address

Үндсэн тохиргоогоор net команд 127.0.0.1 IP хаягтай холбогддог. Samba loopback интерфейс дээр сонсохгүй бол холболт амжилтгүй болно. Жишээ нь:

# net rpc rights list -U administrator
Enter administrator's password:
Could not connect to server 127.0.0.1
Connection failed: NT_STATUS_CONNECTION_REFUSED

Шийдэл

  • /etc/samba/smb.conf файлын [global] хэсэгт дараах параметрүүдийг нэмнэ:

```
bind interfaces only = yes
interfaces = lo eth0
```

  • Samba үйлчилгээ(нүүд)ийг дахин асаана.
  • net командад -I IP_address эсвэл -S host_name параметрийг дамжуулна.

Error: getent not Finding Domain Users and Groups

Заримдаа getent passwd эсвэл getent group юу ч харуулдаггүй.

# getent passwd
# getent group

Шийдэл

  • /etc/samba/smb.conf файлын [global] хэсэгт дараах параметрүүдийг нэмнэ:
winbind enum users = yes
winbind enum groups = yes
Тэмдэглэл: Эдгээр мөр системийг удаашруулдаг тул зөвхөн туршилтын зорилгоор нэмнэ.

Error: DNS Update failed: ERROR_DNS_GSS_ERROR

Active Directory-д нэгдэх үед Active Directory дээрх Kerberos буруу тохируулагдсанаас заримдаа net команд ERROR_DNS_GSS_ERROR алдаатай амжилтгүй болдог.

# net ads join -U administrator
Enter administrator's password:
Using short domain name -- SAMDOM
Joined 'AD-Member' to dns domain 'samdom.example.com'
DNS Update for AD-Member.samdom.example.com failed: ERROR_DNS_GSS_ERROR
DNS update failed: NT_STATUS_UNSUCCESSFUL

Шийдэл

  • Автомат дахин тохиргоог ажиллуулна:

```
# samba_upgradedns --dns-backend=BIND9_DLZ
Reading domain information
DNS accounts already exist
No zone file /usr/local/samba/private/dns/SAMDOM.EXAMPLE.COM.zone
DNS records will be automatically created
DNS partitions already exist
dns-DC1 account already exists
See /usr/local/samba/private/named.conf for an example configuration include file for BIND
and /usr/local/samba/private/named.txt for further documentation required for secure DNS updates
Finished upgrading DNS
```

  • BIND үйлчилгээг дахин асаана.

Error: Failed to join domain: Invalid configuration ("workgroup" set to 'EXAMPLE.LOCAL', should be 'EXAMPLE') and configuration modification was not requested

authconfig командыг буруу ажиллуулсанаас нэгдэх команд амжилтгүй болно.

# net ads join -U Administrator
Enter Administrator's password:
Failed to join domain: Invalid configuration ("workgroup" set to 'EXAMPLE.LOCAL', should be 'EXAMPLE') and configuration modification was not requested

Шийдэл

  • Дараах командыг зөв ажиллуулна.
# authconfig \
 --enablekrb5 \
 --krb5kdc=example.local \
 --krb5adminserver=example.local \
 --krb5realm=EXAMPLE.LOCAL \
 --enablewinbind \
 --enablewinbindauth \
 --smbsecurity=ads \
 --smbrealm=EXAMPLE.LOCAL \
 --smbservers=example.local \
 --smbworkgroup=example\
 --winbindtemplatehomedir=/home/%U \
 --winbindtemplateshell=/bin/bash \
 --enablemkhomedir \
 --enablewinbindusedefaultdomain \
 --update

Error: winbind.service: main process exited, code=exited, status=1/FAILURE

Winbind үйлчилгээг эхлүүлж чадсангүй.

# service winbind status
Redirecting to /bin/systemctl status winbind.service
● winbind.service - Samba Winbind Daemon
   Loaded: loaded (/usr/lib/systemd/system/winbind.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Mon 2022-09-26 10:15:35 EDT; 56s ago
     Docs: man:winbindd(8)
           man:samba(7)
           man:smb.conf(5)
  Process: 12649 ExecStart=/usr/sbin/winbindd --foreground --no-process-group $WINBINDOPTIONS (code=exited, status=1/FAILURE)
 Main PID: 12649 (code=exited, status=1/FAILURE)
   Status: "Starting process..."

Sep 26 10:15:35 rhel7x64tl winbindd[12649]: [2022/09/26 10:15:35.316642,  0] ../../source3/winbindd/winbindd_cache.c:3166(initialize_winbindd_cache)
Sep 26 10:15:35 rhel7x64tl winbindd[12649]:   initialize_winbindd_cache: clearing cache and re-creating with version number 2
Sep 26 10:15:35 rhel7x64tl winbindd[12649]: [2022/09/26 10:15:35.319950,  0] ../../source3/winbindd/winbindd_util.c:1279(init_domain_list)
Sep 26 10:15:35 rhel7x64tl winbindd[12649]:   Could not fetch our SID - did we join?
Sep 26 10:15:35 rhel7x64tl winbindd[12649]: [2022/09/26 10:15:35.319999,  0] ../../source3/winbindd/winbindd.c:1462(winbindd_register_handlers)
Sep 26 10:15:35 rhel7x64tl winbindd[12649]:   unable to initialize domain list
Sep 26 10:15:35 rhel7x64tl systemd[1]: winbind.service: main process exited, code=exited, status=1/FAILURE
Sep 26 10:15:35 rhel7x64tl systemd[1]: Failed to start Samba Winbind Daemon.
Sep 26 10:15:35 rhel7x64tl systemd[1]: Unit winbind.service entered failed state.
Sep 26 10:15:35 rhel7x64tl systemd[1]: winbind.service failed.

Шийдэл

  • «CentOS6, RHEL7 дээр Winbind ашиглан Active Directory-д нэгтгэх» хэсгийн алхмуудыг ашиглан төхөөрөмжийг Active Directory-д нэгтгэнэ.

macOS

macOS төхөөрөмжийг Active Directory-д нэгтгэх нь

macOS Ventura төхөөрөмжийг Active Directory (AD) domain-д нэгтгэхийн тулд дараах алхмуудыг дагана.

Жишээ:

Realm: example.local
Domain User: administrator
Domain IP: 11.11.11.11

DNS сервэрийн хаягийг тохируулах

  1. System Preferences > Network хэсэгт очно.
  1. Ethernet хэсэгт Advanced дээр дарна.
  1. DNS хэсэгт Active Directory-ийн IP address-ийг оруулна.
  1. Өөрчлөлтийг хадгалахын тулд OK дарна.

Network хуудсанд буцаж ороход талбарууд мэдээллээр дүүрсэн байгааг харна.

Огноо, цагийг тохируулах

  • Date & Time болон Time Zone-ыг Active Directory-ийнхтэй ижил болгоно.

Active Directory-д нэгдэх

  1. System Preferences > Users & Groups > Network account server хэсэгт очно.
  1. Edit > Open Directory Utility дарна.
  1. Directory Utility дотор локал Username болон Password-оо оруулна.
  1. Active Directory Domain-ы нэрийг оруулаад Bind дарна.
  1. Directory Utility дотор локал Username болон Password-оо дахин оруулна.
  1. Domain-ы Username болон Password-оо оруулна.
  1. Users & Groups хэсэгт буцаж орж төхөөрөмж Active Directory-д амжилттай нэгдсэн эсэхийг шалгана.
Анхааруулга: Төхөөрөмжийн нэр зураас (hyphen) агуулж байвал LDAP эсвэл Active Directory зэрэг directory domain-д холбогдож чадахгүй байж болно.

Холбогдохын тулд зураасгүй төхөөрөмжийн нэр ашиглана уу.

Энэ хуудсанд гарсан нэр томъёо

Endpoint
Хамгаалж буй компьютер, сервер, виртуал машин
Policy
Хамгаалалтын тохиргооны багц; төхөөрөмж эсвэл бүлэгт оноодог
Network
Таны байгууллагын бүх төхөөрөмжийн жагсаалт (Inventory)
Relay
Шинэчлэлт, суулгацыг дотоод сүлжээнд түгээдэг агент
Асуулт байна уу?AI туслах GravityZone-ийн монгол баримтаас хайна. Нарийн асуудлыг таны гэрээт борлуулагч, Bitdefender Mongolia-ийн инженер шийднэ.