Endpoint-ийг Active Directory-д нэгтгэх — 2-р хэсэг: Winbind ашиглан Linux төхөөрөмжийг нэгтгэх
Энэ хуудсыг AI-аар орчуулж, автоматаар шалгасан. Нарийн тохиргоо хийхээсээ өмнө англи эхтэй тулгаж болно.
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- Шаардлагатай багцуудыг суулгана.
# yum -y install samba4-winbind samba4-winbind-clients pam_krb5 krb5-libs - Дараах командыг ажиллуулж нэвтрэлт баталгаажуулах провайдерыг (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 /etc/nsswitch.confфайл дахь параметрүүдийг идэвхжүүлжnsswitch.confфайлыг тохируулна:passwd: compat winbind group: compat winbind- 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 зөв шинэчлэгдсэн тул энэ алдааны мессежийг үл тооно уу.
- Дараах командыг ажиллуулж 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- Шаардлагатай багцуудыг суулгана.
# yum install samba samba-client samba-winbind samba-winbind-client 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- 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
- Дараах командуудыг ажиллуулж 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 ашиглан Linux төхөөрөмжийг Active Directory (AD) domain-д нэгтгэхийн тулд доорх алхмуудыг дагахаас гадна Ерөнхий урьдчилсан нөхцөл-үүдийг хангасан байх ёстой.
Жишээ:
Realm: example.local
Domain User: administrator
Domain IP: 11.11.11.11- Шаардлагатай багцуудыг суулгана.
krb5клиентийг суулгана.# zypper in krb5-client
- 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- Дараах багцуудыг суулгана:
# zypper in samba-client samba-libs samba-winbind 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
- Хуучин
nsswitch.confфайлыг тохируулна.
/etc/nsswitch.conf файл дахь параметрүүдийг идэвхжүүлнэ:
passwd: compat winbind
group: compat winbind- Дараах командыг ажиллуулж Kerberos-той холболт тогтооно.
# kinit Administrator - Дараах командыг ажиллуулж Active Directory domain-д нэгтгэнэ.
#net ads join -U Administrator - Дараах командуудыг ажиллуулж Winbind daemon-ийг идэвхжүүлээд эхлүүлнэ.
# systemctl enable winbind # systemctl start winbind - LDAP клиентийг тохируулна.
- Шаардлагатай багцуудыг суулгана.
zypper in openldap2-client cyrus-sasl-gssapi /etc/openldap/ldap.confфайлд дараах мөрүүдийг нэмнэ.URI ldap://example.local BASE dc=example,dc=local REFERRALS OFF
- Шаардлагатай багцуудыг суулгана.
- Дараах командуудыг ажиллуулж 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- Дараах багцуудыг суулгана.
# sudo apt install samba krb5-config krb5-user winbind libpam-winbind libnss-winbind
Domain-ы нэрийг зөвхөн том үсгээр оруулна:
Realm-ийн Kerberos server талбарыг хоосон үлдээнэ.
Kerberos realm-ийн administrative server талбарыг хоосон үлдээнэ.
- Дараах командыг ажиллуулж PAM-ийг тохируулаад “Create home directory on login” сонголтыг идэвхжүүлнэ.
# sudo pam-auth-update
Чухал
Энэ команд Debian болон Ubuntu14-д хамаарахгүй.
nsswitch.confфайлыг тохируулж,/etc/nsswitch.confфайл дахь параметрүүдийг идэвхжүүлнэ.passwd: compat winbind group: compat winbindsmb.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
- Хуучин
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- 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
- Kerberos ticket үүсгээд шалгана.
- Дараах командуудыг ажиллуулж 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.11Error: 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-ийг идэвхгүй болгоно.SELINUX=disabled pbis-open*.shкомандыг дахин ажиллуулна.
Энэ хуудсанд гарсан нэр томъёо
- Endpoint
- Хамгаалж буй компьютер, сервер, виртуал машин
- Policy
- Хамгаалалтын тохиргооны багц; төхөөрөмж эсвэл бүлэгт оноодог
