Active Directory kasutamine operatsioonisüsteemiga Debian v. 7 Wheezy
Sissejuhatus
Active Directory http://en.wikipedia.org/wiki/Active_Directory ...
Mõisted
- TDB - Trivial Database
- CTDB - Clustered Trivial Database
- SMB -
- CIFS -
- AD DS - Active Directory Domain Services
Tööpõhimõte
- LDAP kataloogi hierarhia moodustavad nt Organizational Unit'id (OU) jms elemendid
- LDAP hierarahias asuvad nt User ja Group tüüpi objektid
- objektidel on erinevad atribuudid, nt userPrincipalName, mail, proxyAddresses
- LDAP kataloogis saab teha otsinguid, nt leides mingis hierarhia osas kõik objektid, mille atribuudil on mingi ettaantud väärtus
Tarkvara paigaldamine ja keskkonna ettevalmistamine
Moel või teisel tuleb kasutada võimalikult uut Samba tarkvara, nt v. 4.1. Paigaldamise tulemusel tekivad failisüsteemi muu hulgas kaks käivitusskripti
/etc/init.d/samba /etc/init.d/samba-ad-dc
kusjuures tundub, et ainult teist kasutatakse
# ls -ld /etc/rc2.d/*samba* lrwxrwxrwx 1 root root 21 Sep 21 15:43 /etc/rc2.d/S16samba-ad-dc -> ../init.d/samba-ad-dc
Samba v. 4 Active Directory kasutamine operatsioonisüsteemiga Debian v. 8 Jessie
Tarkvara paigaldamiseks sobib öelda
# apt-get install samba smbclient
Paigaldamise käigus tekivad
- tdbtool - trivial database tools utiliidid
Samba v. 4 Active Directory kasutamine operatsioonisüsteemiga Debian v. 7 Wheezy
Lisada süsteemi wheezy-backports tugi
# cat /etc/apt/sources.list deb http://ftp.ee.debian.org/debian/ wheezy-backports main contrib non-free deb-src http://ftp.ee.debian.org/debian/ wheezy-backports main contrib non-free
ning öelda
# apt-get -t wheezy-backports install samba smbclient
Keskkonna ettevalmistamine
- Aeg peab olema ok
# apt-get install ntp # dpkg-reconfigure tzdata
- hostname peab olema ok
# hostname -f ad-1.imool.org # hostname ad-1
AD seadistamine ja käivitamine
Seadistamine
Seadistus genereeriakse, olemasolevad protsessid tuleb esmalt lõpetada ning seadistusfail kustutada (millegipärast tuleb just selle käivitusskriptiga sulgeda)
# /etc/init.d/samba stop [ ok ] Stopping samba-ad-dc (via systemctl): samba-ad-dc.service. [ ok ] Stopping smbd (via systemctl): smbd.service. [ ok ] Stopping nmbd (via systemctl): nmbd.service.
# rm /etc/samba/smb.conf # samba-tool domain provision --use-rfc2307 --interactive Realm [ORG]: IMOOL.ORG Domain [IMOOL]: IMOOL Server Role (dc, member, standalone) [dc]: DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: DNS forwarder IP address (write 'none' to disable forwarding) [10.1.1.99]: Administrator password: Retype password: Looking up IPv4 addresses Looking up IPv6 addresses No IPv6 address will be assigned Setting up secrets.ldb Setting up the registry Setting up the privileges database Setting up idmap db Setting up SAM db Setting up sam.ldb partitions and settings Setting up sam.ldb rootDSE Pre-loading the Samba 4 and AD schema Adding DomainDN: DC=imool,DC=org Adding configuration container Setting up sam.ldb schema Setting up sam.ldb configuration data Setting up display specifiers Modifying display specifiers Adding users container Modifying users container Adding computers container Modifying computers container Setting up sam.ldb data Setting up well known security principals Setting up sam.ldb users and groups Setting up self join Adding DNS accounts Creating CN=MicrosoftDNS,CN=System,DC=imool,DC=org Creating DomainDnsZones and ForestDnsZones partitions Populating DomainDnsZones and ForestDnsZones partitions Setting up sam.ldb rootDSE marking as synchronized Fixing provision GUIDs A Kerberos configuration suitable for Samba 4 has been generated at /var/lib/samba/private/krb5.conf Setting up fake yp server settings Once the above files are installed, your Samba4 server will be ready to use Server Role: active directory domain controller Hostname: ad-1 NetBIOS Domain: IMOOL DNS Domain: imool.org DOMAIN SID: S-1-5-21-2623409179-1871329518-2702587950
kus
- /var/lib/samba/private/krb5.conf - sobiv kerberos teenuse võti
Tulemusena tekib seadistusfail /etc/samba/smb.conf
# cat /etc/samba/smb.conf # Global parameters [global] workgroup = IMOOL realm = IMOOL.ORG netbios name = AD-1 server role = active directory domain controller dns forwarder = 10.1.1.99 idmap_ldb:use rfc2307 = yes
[netlogon] path = /var/lib/samba/sysvol/imool.org/scripts read only = No
[sysvol] path = /var/lib/samba/sysvol read only = No
kus
- TODO
Käivitamine
Seejärel saab samba protsessid käivitada
# /etc/init.d/samba start
Tulemusena tekitavad sellised protsessid
# ps aux | grep samba .. root 4666 0.2 8.7 487948 44380 ? Ss 00:13 0:00 /usr/sbin/samba -D root 4684 0.0 6.3 487948 32228 ? S 00:13 0:00 \_ /usr/sbin/samba -D root 4685 0.0 6.4 487948 32992 ? S 00:13 0:00 \_ /usr/sbin/samba -D root 4687 0.0 6.7 492100 34508 ? S 00:13 0:00 \_ /usr/sbin/samba -D ...
ja kuulavatakse sellistel portidel
# netstat -lnp | grep samba tcp 0 0 0.0.0.0:135 0.0.0.0:* LISTEN 4685/samba tcp 0 0 0.0.0.0:464 0.0.0.0:* LISTEN 4691/samba tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN 4697/samba tcp 0 0 0.0.0.0:88 0.0.0.0:* LISTEN 4691/samba tcp 0 0 0.0.0.0:636 0.0.0.0:* LISTEN 4689/samba tcp 0 0 0.0.0.0:1024 0.0.0.0:* LISTEN 4685/samba tcp 0 0 0.0.0.0:3268 0.0.0.0:* LISTEN 4689/samba tcp 0 0 0.0.0.0:3269 0.0.0.0:* LISTEN 4689/samba tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 4689/samba .. udp 0 0 10.1.1.87:464 0.0.0.0:* 4691/samba udp 0 0 0.0.0.0:464 0.0.0.0:* 4691/samba udp 0 0 0.0.0.0:53 0.0.0.0:* 4697/samba udp 0 0 10.1.1.87:88 0.0.0.0:* 4691/samba udp 0 0 0.0.0.0:88 0.0.0.0:* 4691/samba udp 0 0 10.1.1.87:389 0.0.0.0:* 4690/samba udp 0 0 0.0.0.0:389 0.0.0.0:* 4690/samba udp 0 0 10.1.1.87:137 0.0.0.0:* 4687/samba udp 0 0 10.1.1.255:137 0.0.0.0:* 4687/samba udp 0 0 0.0.0.0:137 0.0.0.0:* 4687/samba udp 0 0 10.1.1.87:138 0.0.0.0:* 4687/samba udp 0 0 10.1.1.255:138 0.0.0.0:* 4687/samba udp 0 0 0.0.0.0:138 0.0.0.0:* 4687/samba ...
AD teenusega seotud andmed asuvad kataloogides
/var/lib/samba/private /var/lib/samba/sysvol
Esmane testimine
Testimiseks sobib öelda smbclient abil
# smbclient -L localhost -U% Domain=[IMOOL] OS=[Unix] Server=[Samba 4.1.11-Debian]
Sharename Type Comment
--------- ---- -------
netlogon Disk
sysvol Disk
IPC$ IPC IPC Service (Samba 4.1.11-Debian)
Domain=[IMOOL] OS=[Unix] Server=[Samba 4.1.11-Debian]
Server Comment
--------- -------
Workgroup Master
--------- -------
# smbclient //localhost/netlogon -UAdministrator -c 'ls' Enter Administrator's password: Domain=[IMOOL] OS=[Unix] Server=[Samba 4.1.11-Debian] . D 0 Mon Aug 25 23:56:23 2014 .. D 0 Tue Aug 26 00:00:18 2014
64475 blocks of size 65536. 31223 blocks available
DNS seadistamine ja testimine
Active Directory arvuti peab kasutama nimelahenduseks ise enda nimeserverit
# cat /etc/resolv.conf domain imool.org nameserver 10.1.1.87
# host -t SRV _ldap._tcp.imool.org _ldap._tcp.imool.org has SRV record 0 100 389 ad-1.imool.org
# host -t SRV _kerberos._udp.imool.org _kerberos._udp.imool.org has SRV record 0 100 88 ad-1.imool.org
# host -t A ad-1.imool.org ad-1.imool.org has address 10.1.1.87
Kerberos seadistamine ja testimine
Testimiseks kerberos kliendi abil tuleb esmalt paigaldada
# apt-get install krb5-user
kus
- Default Kerberos version 5 realm - IMOOL.ORG
- ning linkida seadistusfail
# ln -sf /var/lib/samba/private/krb5.conf /etc/krb5.conf
kus
# cat /etc/krb5.conf [libdefaults] default_realm = IMOOL.ORG dns_lookup_realm = false dns_lookup_kdc = true
Seejärel sobib öelda
# kinit administrator@IMOOL.ORG Password for administrator@IMOOL.ORG: # klist Ticket cache: FILE:/tmp/krb5cc_0 Default principal: administrator@IMOOL.ORG
Valid starting Expires Service principal
08/23/2014 17:09:58 08/24/2014 03:09:58 krbtgt/IMOOL.ORG@IMOOL.ORG
renew until 08/24/2014 17:09:54
Windows 7 töökohaarvuti liidestamine AD teenusega
Windows 7 töökohaarvti AD kontrolli alla lülitamiseks tuleb
- olla töökohaarvutisse sisse logitud kohaliku Administrator prigileegiga kasutajana
- seadistada arvuti nimeserveriks ad arvuti ip aadress
- valida
Start -> Computer -> Properties -> Change settings
ning
Domain: imool.org
Seejärel tuleb arvuti alglaadida. Tulemusena sobib AD liidestatud töökohaarvutisse domeeni kasutajana sisselogimiseks
- kasutajanimi - AUUL\kasutajanimi
- parool - domeeni andmebaasis olev parool
või lokaalse kasutajana
- kasutajanimi - ARVUTI-NIMI\kasutajanimi
- parool - arvuti lokaalses andmebaasis olev parool
Kasulikud lisamaterjalid
Windows 8.1 töökohaarvuti liidestamine AD teenusega
TODO
Debian v. 8 Jessie töökohaarvuti liidestamine AD teenusega
Arvuti domeeniga liitmise ettevalmistuseks tuleb
- arvuti hostname peab vastama õige nimega, st domeeninimi sobima AD seadistusega, nt
# hostname -f deb-ad-client-1.auul.pri.ee
# hostname deb-ad-client-1
- arvuti peab kasutama AD nimeserverit
# cat /etc/resolv.conf domain auul search auul nameserver 192.168.10.19
Kerberose tarkvara paigaldamiseks sobib öelda
# apt-get install krb5-user libpam-krb5
kus vastata
- Default Kerberos version 5 realm - AUUL.PRI.EE
Paigaldamise tulemusena tekib sellise sisuga seadistusfail
# cat /etc/krb5.conf [libdefaults] default_realm = AUUL.PRI.EE dns_lookup_realm = false dns_lookup_kdc = true
[realms]
AUUL.PRI.EE = {
kdc = 192.168.10.19
admin_server = 192.168.10.19
}
Kontrolliks sobib öelda, oluline on kasutada domeeninimes suurtähti
# kinit Administrator@AUUL.PRI.EE Password for Administrator@AUUL.PRI.EE: Warning: Your password will expire in 41 days on Sat 04 Oct 2014 10:02:30 AM EDT
# klist ...
Seejärel paigaldada pakett winbind, mille käigus paigaldatase muuhulgas samba pakett
# apt-get install winbind
Seejärel tekitada nt sellise sisuga /etc/samba/smb.conf seadistusfail
# cat /etc/samba/smb.conf [global] security = ads realm = AUUL.PRI.EE password server = 192.168.10.19 workgroup = AUUL idmap uid = 10000-20000 idmap gid = 10000-20000 winbind enum users = yes winbind enum groups = yes template homedir = /home/%D/%U template shell = /bin/bash client use spnego = yes client ntlmv2 auth = yes encrypt passwords = yes winbind use default domain = yes restrict anonymous = 2 domain master = no local master = no preferred master = no os level = 0
Seejärel restartida protsessid
# /etc/init.d/winbind stop # /etc/init.d/samba stop # /etc/init.d/samba start # /etc/init.d/winbind start
Domeeniga liidestamiseks sobib öelda
# net ads join -U Administrator Enter Administrator's password: Using short domain name -- AUUL Joined 'DEB-AD-CLIENT-1' to dns domain 'auul.pri.ee'
Tulemusena saab küsida nt nii
# wbinfo -u priit administrator mart krbtgt guest
# wbinfo -i priit priit:*:10001:10004:Priit Kask:/home/AUUL/priit:/bin/bash
NSS õpetamiseks tuleb paigaldada
# apt-get install libnss-winbind
ning /etc/nsswitch.conf failis peab sisalduma
passwd: compat winbind group: compat winbind shadow: compat winbind
Tulemusena saab öelda
# getent passwd ... priit:*:10001:10004:Priit Kask:/home/AUUL/priit:/bin/bash
PAM õpetamiseks tuleb paigaldada, paketihalus teeb vajalikesse kohtadesse /etc/pam.d all ise sobivad muudatused
# apt-get install libpam-winbind
Tulemusena saab logida liidestatavasse arvuti nt ssh abil sisse AD priit kasutaja/parool abil
$ ssh administrator@liidestatud.arvuti Warning: Your password will expire in 41 days on Tue Mar 15 23:19:52 2016
... administrator@tka:~$ pwd /home/IMOOL/administrator
Liidestamise seisukohast ei ole see oluline, aga nt smbclient oskab kasutada AD kerberose ticketit (tundub, et kasutajanimi võetakse kasutada olevast ticketist)
# apt-get install smbclient # su - priit $ smbclient //samba.loomaaed/samba -k
Domeenist eemaldamiseks
# net ads leave -U Administrator Enter Administrator's password: Deleted account for 'MYSQL-1' in realm 'SISE.MORAAL.EE'
Kasulikud lisamaterjalid
AD haldamine
Haldamiseks sobib kasutada Windows vahendeid, nt paigaldades nö tavalise Windows 7 peale RSAT (Remote Server Administration Tools) tarkvara, mille paigaldamise juhised leiab nt aadressilt http://www.addictivetips.com/windows-tips/how-to-install-the-group-policy-management-in-w indows-7/. Kasutamiseks tuleb esmalt vastavad komponendid sisse lülitada
- AD UC (Active Directory Users and Computers) haldamine
Start -> Turn Windows features on of off -> RSAT -> Role Administration Tools -> AD DS and AD LDS Tools \ -> AD DS Tools -> AD DS Snap-ins and Command-line Tools
- GPO (Group Policy Object) haldamine
Start -> Turn Windows features on of off -> RSAT -> Feature Administration Tools -> Group Policy Management Tools
- DNS (Domain Name System) haldamine
Start -> Turn Windows features on of off -> RSAT -> Role Adminstration Tools -> DNS Server Tools
AD UC
AD UC haldamiseks sobib valida Start -> otsingu lahtri kaudu leida
Active Directory Users and Computers
või samast käivitada dsa.msc snap-in
dsa.msc
GPO
GPO haldamiseks sobib valida Start -> otsingu lahtri kaudu leida
Group Policy Management
või samast käivitada gpmc.msc snap-in
gpmc.msc
DNS
DNS haldamiseks sobib valida Start -> otsingu lahtri kaudu leida
Domains and Names
või samast käivitada dnsmgmt.msc snap-in
dnsmgmt.msc
Tundub, et kui tsoone lisada, siis muudatuse kehtestamiseks tuleb 2014 aasta suvel Samba protsessidele teha restart.
Kasulikud lisamaterjalid
Märkused
Domeenikontrollerit saab hallata ka domeeniga liidestamata haldusarvutist, sel juhul sobib cmd käivitada "Run as administrator" ning seejärel
C:\> runas /netonly /user:imool.org\Administrator "mmc dsa.msc /domain=imool.org /server=10.1.1.87"
kus
- imool.org\Administrator - hallatava domeenikontrolleri administaatori privileegiga kasutajanimi (tundub, et töötav ka suvali.ne\Administrator)
- /domain=imool.org - hallatava domeeni nimi
- /server=10.1.1.87 - hallatava domeenikontrolleri ip aadress
Sedasi saab käivitada samaaegselt mitme AD haldamiseks erinevad ADUC haldusliidse aknad, kuid peab arvestama, et kõnelause arvutiga mitte liidestatud domeenikontrollerite kasutamisel võib episoodiliselt esineda häireid (tundub, et mitte fataalseid vigu).
Hierarhia tekitamine
Tavaliselt võiks kasutajad asuda eraldi moodustatud Organizational Unit sees, nt People
imool.org -> New -> Organizational Unit
ja lahtrisse sisestada People
Kasutajate haldamine
Kasutaja lisamiseks tuleb avada
People -> New -> User
ning täita diagloog
TODO
WPKG haldusvahendi kasutamine
TODO
Kasulikud lisamaterjalid
AD LDAP kataloogi kasutamine
LDAP kataloogi poole saab pöörduda nt selliselt
$ ldapsearch -x -H ldap://192.168.10.19 -D "Administrator@auul.pri.ee" -w parool -b "dc=auul,dc=pri,dc=ee"
kus
- -D järel sobib ka
-D "cn=Administrator,cn=users,dc=auul,dc=pri,dc=ee
või Apache Directory Studio abil
- kasutajanimi - Administrator@auul.pri.ee
- parool - parool
Kataloogis kirjeldatud kasutajate nimekiri
# samba-tool user list Administrator martkask priitkask krbtgt Guest
Administrator parooli muutmine (nt kui see on expired)
# samba-tool user setpassword Administrator New Password: Changed password OK
Kasutaja lisamine
# samba-tool user add priitk 'prIId,la456.' \ --given-name="Priit" --surname="Kask" \ --userou="OU=Imool" --mail-address="priit@imool.ee"
Kasutaja eemaldamine
# samba-tool user delete priitk
Kasulikud lisamaterjalid
- https://wiki.samba.org/index.php/User_and_Group_management
- https://wiki.samba.org/index.php/Samba-tool-external
Postfix ja Dovecot kasutamine
Postfix ja Dovecot nö kaaperdavad sellised AD atribuudid
- houseIndentier - ees töötav Dovecot imap proxy server saab teada backend imap serveri ip aadressi (nt '192.168.1.252')
- title - kasutaja quota (nt '6000000')
- homePostalAddress - imap kasutajanimi (nt vana või uue backendi oma, üleminekuajaks) (nt 'priit.kask@moraal.ee')
- postalAddress - kui kasutajale tulevad kirjad on vaja saata lisaks muudele aadressidele (nt puhkuse ajal asendajale, uuele kollegile, ülemusele jne; kasutatakse )
- mail - kanooniline rcpt_to eposti aadress (nt 'mart.kask@moraal.ee')
- proxyAddresses - alternatiivsed rcpt_to eposti aadressid (nt 'smtp:mart@moraal.ee')
Postfix kasutamine vastu AD LDAP kataloogi
Olgu AD LDAP kataloogis kasutaja primaarne eposti aadress kirjas userPrincipalName väärtusena ning aliased proxyAddresses väärtusena.
$ ldapsearch -x -H ldap://192.168.10.19 -D "cn=Priit Kask,cn=users,dc=imool,dc=org" -w parool \ -b "cn=users,dc=auul,dc=pri,dc=ee" "(&(|(userPrincipalName=priit.kask@imool.org)\ (proxyAddresses=smtp:priit@imool.org))(objectClass=person) \ (!(userAccountControl=514)))" userPrincipalName proxyAddresses
# extended LDIF # # LDAPv3 # base <cn=users,dc=auul,dc=pri,dc=ee> with scope subtree # filter: (&(|(userPrincipalName=priit.kask@imool.org)(objectClass=person)(!(userAccountControl=514))) # requesting: userPrincipalName #
# Priit Kask, Users, auul.pri.ee dn: CN=Priit Kask,CN=Users,DC=imool,DC=org userPrincipalName: priit.kask@imool.org proxyAddresses: priit@imool.org proxyAddresses: kask@imool.org
# search result search: 2 result: 0 Success
Üks võimalus Postfixi seadistada saatma kirju edasi Dovecot'ile on kasutada virtual mailbox ja virtual alias tehnikat. See viis on suhteliselt üldine selles mõttes, et ühe postfix serveri abil saab korraldada erivate domeenide eposti. Sissetulevate kirjadega tegeleb Postfix se lliselt
- kui kiri on võimalik saata otse mailbox'i, siis seda tehakse
- kui kirja ei saa saata otse mailbox'i, siis proovitakse lahendada aliaseid ning klappimisel saadetakse kiri vastuseks saadud mailbox aadressile
Postfixi sobib seadistada nt selliselt
# cat /etc/postfix/main.cf .. virtual_mailbox_domains = imool.org virtual_mailbox_maps = ldap:/etc/postfix/virtual-mailbox-maps-ldap.cf virtual_alias_maps = ldap:/etc/postfix/virtual-alias-maps.cf virtual_transport = lmtp:unix:/var/run/dovecot/lmtp
ning (/etc/postfix/virtual-alias-maps.cf on sama sisuga)
# cat /etc/postfix/virtual-mailbox-maps-ldap.cf server_host = 10.1.1.87 search_base = dc=imool,dc=org query_filter = (&(|(userPrincipalName=%s)(proxyAddresses=smtp:%s))(objectClass=person)(!(userAccountControl=514))) result_attribute = userPrincipalName version = 3 bind = yes start_tls = no bind_dn = vmail@imool.org bind_pw = ad-kasutaja-vmail-parool scope = sub debuglevel = 0
kus
- server_host - AD kataloogi aadress
- search_base -
- query_filter -
Katsetamiseks sobib öelda
# postmap -q imre.oolberg@auul.pri.ee ldap:/etc/postfix/virtual-mailbox-maps-ldap.cf imre.oolberg@auul.pri.ee
# postmap -q imre@auul.pri.ee ldap:/etc/postfix/virtual-mailbox-maps-ldap.cf imre.oolberg@auul.pri.ee
# postmap -q sedapole@auul.pri.ee ldap:/etc/postfix/virtual-mailbox-maps-ldap.cf
Dovecot kasutamine vastu AD LDAP kataloogi
Põhimõtteliselt saab toimuda autentimine vastu LDAP kataloogi kahel viisil
- kataloogi vastu kasutajat autentiv nö lõppkasutaja rakendus saadab kasutaja nime ja parooli ning server rakenduse ldap plugin kasutab neid LDAP kataloogi vastu autentimiseks saades nö õige või väär vastuse; ja tagastab lõppkasutaja rakendusele tõene või väär vastuse
- kataloogi vastu kasutajat autentiv nö lõppkasutaja rakendus saadab kasutaja nime ja parooli, server rakenduse ldap plugin küsib mingi kokkulepitud (ja plugina konfis kirjeldatud kasutaja/parooliga) LDAP kataloogi käest kõnealuse kasutaja parooli (ilmselt vastava sõnumilühend
i (ingl. k. hash); seejärel arvutab saadetud paroolist hash'i ning võrdleb neid; ja tagastab lõppkasutaja rakendusele tõene või väär vastuse
Tundub, et Active Directory LDAP kataloog põhimõtteliselt ei võimaldagi seda parooli sõnumilühendit väljastada, seega jääb kasutada ainult esimene võimalus. Selleks sobib kasutada nt sellist /etc/dovecot/dovecot-ldap.conf.ext seadistusfaili
# cat /etc/dovecot/dovecot-ldap.conf.ext hosts = 10.1.1.87 ldap_version = 3 auth_bind = yes base = dc=imool,dc=org auth_bind_userdn = IMOOL\%u
kusjuures rakenduses on kasutajanimi kujul 'priit.kask', st ilma @imool.org domeenita ja IMOOL\ prefiksita.
Peab arvastama, et IMAP klient ei ise ei krüpti andmeid, sh kasutajanime ega parooli, tõsi need kodeeritakse base64 algoritmiga
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE STARTTLS AUTH=PLAIN] Dovecot ready. A0001 AUTHENTICATE PLAIN AHByaWl0Lmthc2sub3JnAHByaWlkdXBhcm9vbA==
Dekodeerimiseks sobib öelda
$ perl -MMIME::Base64 -e 'print decode_base64("AHByaWl0Lmthc2sub3JnAHByaWlkdXBhcm9vbA=="); print "\n";'
priit.kask.orgpriiduparool
Kusjuures vastav kodeerimine võiks toimuda nt selliselt
$ perl -MMIME::Base64 -e 'print encode_base64("\0priit.kask@imool.org\0priiduparool");'
AHByaWl0Lmthc2sub3JnAHByaWlkdXBhcm9vbA==
Katseks saab telnet abil sisse logida sedasi
$ telnet localhost 143 Trying ::1... Connected to localhost.localdomain. Escape character is '^]'. * OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE STARTTLS AUTH=PLAIN] Dovecot ready. . login "imre.oolberg@imool.ee" "parool" . OK [CAPABILITY IMAP4rev1 LITERAL+ ....] Logged in . list "" "*" . logout
Kasutajate olemasolu kontroll Postfix releetamise juhtumil
Üldiselt on soovitav kasutada interneti ja MS Exchange serveri eposti komponendi vahel mingit SMTP releed, nt Postfix. Sel juhul peab Postfix saama kontrollida, kas adressaat on olemas. Kui pole, siis Postfix annab kohe SMTP protokolli sees sellest saatjale teada ja kirja vast u ei võta. Kui on, siis Postfix võtab kirja vastu ning saadab edasi Exchangele. Seega, kontrollimisel ei ole vaja Postfixil teada nt Exchange listide puhul listi liikmete aadresse, vaid lihtsalt kas list on olemas või mitte.
Active Directory kasutajate ülesleidmiseks sobib kasutada ühte või enamat nt sellist Postfix ldap kliendi seadistusfaili
# cat /etc/postfix/relay-recipient-maps-ad-users.cf server_host = 10.168.27.9 search_base = ou=Kasutajad,dc=imool,dc=org query_filter = (&(|(userPrincipalName=%s)(proxyAddresses=smtp:%s))(objectClass=person)(!(userAccountControl=514))) result_attribute = userPrincipalName version = 3 bind = yes start_tls = no bind_dn = postfix@imool.org bind_pw = xxx scope = sub debuglevel = 0
kus
- TODO
Listidele vastavad Active Directory grupid, vastab Postfix ldap kliendi seadistus võiks olla nt selline
# cat /etc/postfix/relay-recipient-maps-ad-groups.cf server_host = 10.168.27.9 search_base = ou=Grupid,dc=imool,dc=org query_filter = (&(objectclass=group)(mail=%s)) result_attribute = mail version = 3 bind = yes start_tls = no bind_dn = postfix@imool.org bind_pw = xxx scope = sub debuglevel = 0
kus
- TODO
Postfix saadab kirju laiali AD peal kirjeldatud listidesse
Tüüpiliselt on AD'ga ühendatud postfix frontend ülesandeks saada teada AD käest kõik legaalsed rcpt_to aadressid ja lihtsalt edasi releetada eksisteerivatele aadressidele tulnud kirju. Lisaks võib olla asjakohane AD'ga ühendatud postfix frontendis saata AD's kirjeldatud listid e aadressiele saabunud kirjad laiali listi liikmeteks olevatele aadressidele. Seda saab teha nt sellise virtual aliaste kirjeldusega
# cat /etc/postfix/virtual_aliases_maps.ldap server_host = 192.168.10.125 search_base = dc=sise,dc=moraal,dc=ee query_filter = (&(|(mail=%s)(proxyAddresses=smtp:%s))(objectClass=person)(!(userAccountControl=514))) result_attribute = postalAddress version = 3 bind = yes start_tls = no bind_dn = postfix-fe@sise.moraal.ee bind_pw = parool scope = sub debuglevel = 0
kus
- TODO
Sellise töötluse erijuks on kui tuleb saata nt kasutajale priit@moraal.ee saadetud kirjadest lisaks koopia aadressile mart@moraal.ee.
Postfix saadab kirju laiali AD peal kirjeldatud listidesse
Vastuseks on AD distribution listi memberite aadressidele
# cat virtual-mailbox-maps-ldap-groups-RIA-members.cf server_host = 192.168.10.125 search_base = dc=sise,dc=moraal,dc=ee query_filter = (&(|(mail=%s)(proxyAddresses=smtp:%s))(objectclass=group)) leaf_result_attribute = mail special_result_attribute = member version = 3 bind = yes start_tls = no bind_dn = postfix-fe@sise.moraal.ee bind_pw = parool scope = sub debuglevel = 0
UPN
UPN (UserPrincipalName) võimaldab siduda kasutajaga nö default'ist erineva UserPrincipalName väärtuse. Selleks tuleb kasutada domain.msc snap-in abi
Active Directory Domains and Trust
ning kirjeldada domeenid valides avanenud dialoogis
Active Directory Domains and Trust -> Properties -> UPN Suffixes -> Alternativ UPN Suffix -> Add
Tulemusena saab kasutaja tekitamisel või olemasole kasutaja puhul valida mitme domeeni vahel
Active Directory Users and Computers -> kasutaja Properties -> Account -> User logon name
Samba AD paigalduse eemaldamine
Samba AD paigalduse eemaldamiseks sobib öelda
# apt-get purge samba smbclient samba-vfs-modules samba-libs:amd64 samba-dsdb-modules samba-common-bin samba-common
Tulemusena kustatakse seadistusfailid, andmed, logid ja käivitusskriptid
/var/lib/samba /etc/samba/smb.conf ...
Varundamine ja taaste
TODO
Liidestatud Linux arvuti juhtimine
# /opt/pbis/bin/regshell list_values '[HKEY_THIS_MACHINE\Services\lsass\Parameters\Providers\ActiveDirectory\]'
+ "AssumeDefaultDomain" REG_DWORD 0x00000001 (1)
+ "HomeDirTemplate" REG_SZ "%H/%U"
+ "LoginShellTemplate" REG_SZ "/bin/bash"
+ "Path" REG_SZ "/opt/pbis/lib/lsa-provider/ad_open.so"
+ "RequireMembershipOf" REG_MULTI_SZ[0] "IMOOL.EE\\sysadmin"
REG_MULTI_SZ[1] "IMOOL.EE\\rpar-arendus-postgres"
+ "SyncSystemTime" REG_DWORD 0x00000001 (1)
+ "UserDomainPrefix" REG_SZ ""
"AddDomainToLocalGroupsEnabled" REG_DWORD 0x00000000 (0)
"CacheEntryExpiry" REG_DWORD 0x00003840 (14400)
"CacheType" REG_SZ "memory"
"CreateHomeDir" REG_DWORD 0x00000001 (1)
"CreateK5Login" REG_DWORD 0x00000001 (1)
"DomainManagerCheckDomainOnlineInterval" REG_DWORD 0x0000012c (300)
"DomainManagerExcludeTrustsList" REG_MULTI_SZ
"DomainManagerIgnoreAllTrusts" REG_DWORD 0x00000000 (0)
"DomainManagerIncludeTrustsList" REG_MULTI_SZ
"DomainManagerUnknownDomainCacheTimeout" REG_DWORD 0x00000e10 (3600)
"HomeDirPrefix" REG_SZ "/home"
"HomeDirUmask" REG_SZ "022"
"Id" REG_SZ "lsa-activedirectory-provider"
"IgnoreGroupNameList" REG_MULTI_SZ
"IgnoreUserNameList" REG_MULTI_SZ
"LdapSignAndSeal" REG_DWORD 0x00000000 (0)
"LogNetworkConnectionEvents" REG_DWORD 0x00000001 (1)
"MachinePasswordLifespan" REG_DWORD 0x00278d00 (2592000)
"MemoryCacheSizeCap" REG_DWORD 0x00000000 (0)
"MultiTenancyEnabled" REG_DWORD 0x00000000 (0)
"NssEnumerationEnabled" REG_DWORD 0x00000001 (1)
"NssGroupMembersQueryCacheOnly" REG_DWORD 0x00000001 (1)
"NssUserMembershipQueryCacheOnly" REG_DWORD 0x00000000 (0)
"RefreshUserCredentials" REG_DWORD 0x00000001 (1)
"RemoteHomeDirTemplate" REG_SZ ""
"SkeletonDirs" REG_SZ "/etc/skel"
"TrimUserMembership" REG_DWORD 0x00000001 (1)
Grupi (ja ka kasutaja) lisamine, lisamisel tuleb kõik olemasolevad ka ära näidata
# /opt/pbis/bin/regshell set_value '[HKEY_THIS_MACHINE\Services\lsass\Parameters\Providers\ActiveDirectory\]'\ RequireMembershipOf "IMOOL.EE\\sysadmin" "IMOOL.EE\\rpar-arendus-postgres" "IMOOL.EE\\weblogic"
AD kataloogis tehtud muudatuste leviku kiirendamiseks (või isegi esilekutsumiseks) sobib öelda
# /opt/pbis/bin/ad-cache --delete-all # /opt/pbis/bin/enum-groups --level 1
ning teenuse restart
# service lwsmd restart
PBIS tarkvara eemaldamine
# service lwsmd stop # dpkg -l \*pbis\* | grep ^ii # apt-get purge pbis-open pbis-open-gui pbis-open-upgrade
Häda korral maksab küsida katkises ja mõnes töötavas arvutis kõiki settinguid
# /opt/pbis/bin/config --dump
ning seejärel neid võrrelda ja teha sama config programmiga vajalikud muudatused.
Kui kasutaja sisselogimisel ei teki /home/kasutajanimi kataloogi ja logisse kirjutatakse
Jul 17 00:04:54 arvuti lsass: [lsass] Failed to create home directory for user (imre), actual error 40158
siis tuleb eemaldada autofs ja autofs5 paketid
# apt-get purge autofs autofs5
Vahel aitab pbis-open tarkvara eemaldada ja uuesti paigaldada
# apt-get purge pbis-open # rm -rf /etc/pbis
Tundub, et iseenesest ei sega sisselogimist kui AD grupi nimeline grupp on ka arvutis lokaalselt kirjeldatud, aga segadust võib see tekitada.
Selleks, et Ubuntu v. 12.04 ja 8.x pbis abil töötaksid susisevaid tähti siseldavate nimedega (mitte kaustajanimedega) kasutajad, peab /etc/init.d/lwsmd skripti fix_locale() funktsiooni töö lõpus exportima muutuja LANG väärtusega et_EE.UTF8', selleks peavad olema funktsiooni ka ks viimast rida
LANG="et_EE.UTF8" export LANG
ning arvutisse paigaldatud lokaat
# locale -a | grep et_ et_EE.utf8
Kasulikud lisamaterjalid
- Samba kasutamine operatsioonisüsteemiga Debian Squeeze
- http://vimeo.com/11527979#t=3m15s
- https://github.com/myrjola/docker-samba-ad-dc
- https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO
- http://www.matrix44.net/cms/notes/gnulinux/samba-4-ad-domain-with-ubuntu-12-04
- http://www.howtoforge.com/postfix-dovecot-authentication-against-active-directory-on-centos-5.x
- https://help.ubuntu.com/community/DovecotLDAP
- Samba4 AD domeeniga liidestatud Samba4 failiserveri kasutamine operatsioonisüsteemiga Debian v. 8 Jessie
- http://ltb-project.org/wiki/documentation/self-service-password
- http://www.linuxmail.info/postfix-active-directory-ldap-lookup-howto/