Active Directory kasutamine operatsioonisüsteemiga Debian v. 7 Wheezy

Allikas: Imre kasutab arvutit
Mine navigeerimisribaleMine otsikasti

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

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