User Tools

Site Tools


aix:user_adldap

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
aix:user_adldap [2021/11/02 10:56]
manu
aix:user_adldap [2022/08/22 09:24] (current)
manu [User password is expired]
Line 1: Line 1:
 ====== AIX with Active Directory authentification ====== ====== AIX with Active Directory authentification ======
  
- ​{{:​aix:​logo-aix.png|}}+Kerberos vs LDAP for authentification ?
  
-https://www.ibm.com/​support/​pages/​active-directory-ad-aix-step-step-instructions-integrate-active-directory-2016-aix-ldap-protocol+LDAP and Kerberos together make for a great combinationKerberos is used to manage credentials securely (authentication) while LDAP is used for holding authoritative information about the accounts, such as what they'​re allowed to access (authorization),​ the user's full name and uid. You can also add in helpful things such as an external email address or a room number in a structured way.
  
-http://www.wmduszyk.com/?​p=11663&​langswitch_lang=pl&​cpage=1#​comment-50005+Most other LDAP setups involve in storing passwords in the LDAP directory itself using the userPassword attributeWhile this is ok for a basic setup, one can do much better with just a little effort 
 + 
 + ​{{:​aix:​logo-aix.png|}} 
 + 
 +Kerberos can be an addon but it 'll only be used for password authentification,​ not required as standard LDAP client will do it also.
  
 ===== Required components ===== ===== Required components =====
Line 19: Line 23:
  
 ===== Configuring Windows Active Directory ===== ===== Configuring Windows Active Directory =====
 +
 +**A connection user for AD is required, with rights to read all**
 +
  
 **These are mandatory attributes to be able to connect from AIX to AD** **These are mandatory attributes to be able to connect from AIX to AD**
Line 89: Line 96:
 </​cli>​ </​cli>​
  
-===== Connection to Active Directory =====+===== Connection to Active Directory ​(unsecure) ​=====
  
 Setup LDAP: Setup LDAP:
Line 186: Line 193:
 [root@aix001]/​root> ​ chsec -f /​etc/​security/​login.cfg -s usw -a mkhomeatlogin=true [root@aix001]/​root> ​ chsec -f /​etc/​security/​login.cfg -s usw -a mkhomeatlogin=true
 </​cli>​ </​cli>​
- + 
 +Change authentification order (to prevent error: Error committing changes to “default”,​ disable authcontroldomain)  
 +<cli prompt='>'>​ 
 +[root@aix001]/​root>​ chsec -f /​etc/​security/​login.cfg -s usw -a authcontroldomain=''​ 
 +[root@aix001]/​root>​ chsec -f /​etc/​security/​user -s default -a SYSTEM="​files or LDAP"​ 
 +[root@aix001]/​root>​ chsec -f /​etc/​security/​user -s default -a registry=LDAP 
 +[root@aix001]/​root>​ chsec -f /​etc/​security/​login.cfg -s usw -a authcontroldomain=LDAP 
 +</​cli>​ 
 Test a remote connection Test a remote connection
 <cli prompt='>'>​ <cli prompt='>'>​
Line 200: Line 215:
 </​cli>​ </​cli>​
  
 +===== Connection to Active Directory (secure SSL) =====
  
 +Setup LDAP:
  
 +Create the key DB
 +<cli prompt='#'>​
 +[root@labo]/​etc/​security/​ldap#​ gsk8capicmd_64 -keydb -create -db /​etc/​security/​ldap/​ldap.kdb -pw "​password"​ -type cms -stash
 +[root@labo]/​etc/​security/​ldap#​ ll
 +...
 +   4 -rw------- ​   1 root     ​system ​          88 Nov  3 15:52 ldap.crl
 +   4 -rw------- ​   1 root     ​system ​          88 Nov  3 15:52 ldap.kdb
 +   4 -rw------- ​   1 root     ​system ​          88 Nov  3 15:52 ldap.rdb
 +   4 -rw------- ​   1 root     ​system ​         193 Nov  3 15:52 ldap.sth
 +</​cli>​
 +
 +<cli prompt='#'>​
 +[root@labo]/​etc/​security/​ldap#​ gsk8capicmd_64 -keydb -list -db /​etc/​security/​ldap/​ldap.kdb -pw "​password"​ -stash
 +Currently supported key database types:
 +  cms
 +  pkcs11
 +  pkcs12
 +  csp
 +  pkcs7
 +
 +KDB file format is CMS version 4
 +hdmac:
 +    ...
 +dbmac:
 +    ...
 +KDB password does not expire.
 +
 +Record count 0, Record size 5000
 +Expected KDB file size is 88 bytes
 +Actual KDB file size is 88 bytes.
 +File size is as expected, good.
 +</​cli>​
 +
 +I add a CA certificate into the key DB
 +<cli prompt='#'>​
 +[root@labo]/​etc/​security/​ldap#​ gsk8capicmd_64 -cert -add -db /​etc/​security/​ldap/​ldap.kdb -pw "​password"​ -type pem -file BA_certificate/​ca2.ba.cer -label "​BA_ca2.cer" ​      
 +[root@labo]/​etc/​security/​ldap#​ gsk8capicmd_64 -cert -list -db /​etc/​security/​ldap/​ldap.kdb -pw "​password"​
 +Certificates found
 +* default, - personal, ! trusted, # secret key
 +!       ​BA_ca2.cer
 +
 +
 +[root@labo]/​etc/​security/​ldap#​ gsk8capicmd_64 -cert -details -db /​etc/​security/​ldap/​ldap.kdb -pw "​password"​ -label "​BA_ca2.cer"​
 +Label : BA_ca2.cer
 +Key Size : 2048
 +Version : X509 V3
 +Serial : 5a8xxxxxxxxxxxxxxxxxxf
 +Issuer : CN=CA.BA.LU,​DC=ba,​DC=lu
 +Subject : CA.BA.LU,​DC=ba,​DC=lu
 +Not Before : February 5, 2012 5:54:02 PM GMT+01:00
 +
 +Not After : February 5, 2015 6:04:01 PM GMT+01:00
 +
 +Public Key
 +    ...
 +Trust Status : Enabled
 +</​cli>​
 +
 +<cli prompt='#'>​
 +[root@labo]/​etc/​security/​ldap#​ ldapsearch -L -D "​CN=ldap usr,OU=ALL Users,​OU=ALL Users & Groups,​DC=ba,​DC=bc,​DC=lu"​ -w "​Mypasswd"​ -h ldap.ba.lu -p 636 -K /​etc/​security/​ldap/​ldap.kdb -b "​OU=ALL Users,​OU=ALL Users & Groups,​DC=ba,​DC=bc,​DC=lu"​ '​(objectClass=*)' ​ uid uidNumber gidNumber Loginshell unixHomeDirectory
 +...
 +dn: CN=My User1,​OU=ALL Users,​OU=ALL Users & Groups,​DC=ba,​DC=bc,​DC=lu
 +uid: myuser1
 +unixHomeDirectory:​ /​home/​myuser1
 +loginShell: /​usr/​bin/​bash
 +gidNumber: 1200xxxxx
 +uidNumber: 12004yyyyy
 +</​cli>​
 +
 +Configure LDAP client with SSL certificate
 +<cli prompt='#'>​
 +[root@aix001]/​root#​ mksecldap -c -h ldap_srv.xxx.lu -n 636 -k /​etc/​security/​ldap/​ldap.kdb -w "​password"​ -j SSL -c -a "​CN=user1,​OU=Grp-Users,​DC=ad,​DC=myorg,​DC=mydom,​DC=lu"​ -p xxxxxxxxxx -h ad.mydom.lu -d "​DC=ad,​DC=myorg,​DC=mydom,​DC=lu"​ -A ldap_auth -u NONE
 +</​cli>​
 ===== Errors ===== ===== Errors =====
 +
 +==== LDAP in debug mode ====
 +
 +Add rotation for the debug file
 +<cli prompt='#'>​
 +# cat /​etc/​logrotate.d/​system.conf
 +/​var/​log/​syslog/​ldap.debug {
 +    copytruncate
 +    rotate 3
 +    size=100M
 +}
 +</​cli>​
 +
 +Create the debug file
 +<cli prompt='#'>​
 +# touch /​var/​log/​syslog/​ldap.debug
 +</​cli>​
 +
 +Restart the LDAP daemon in debug mode
 +<cli prompt='#'>​
 +[root@aix01]/​root#​ export LDAP_DEBUG=65535
 +[root@aix01]/​root#​ export LDAP_DEBUG_FILE=/​var/​log/​syslog/​ldap.debug
 +[root@aix01]/​root#​ stop-secldapclntd
 +The secldapclntd daemon is successfully terminated.
 +[root@aix01]/​root#​ start-secldapclntd
 +Starting the secldapclntd daemon.
 +The secldapclntd daemon started successfully.
 +</​cli>​
  
 ==== User password is expired ==== ==== User password is expired ====
Line 220: Line 338:
   lastupdate ​       SEC_INT pwdLastSet ​     s       ​UTC ​    yes   lastupdate ​       SEC_INT pwdLastSet ​     s       ​UTC ​    yes
  
 +<cli prompt='#'>​
 +[root@labo]/​etc/​security/​ldap#​ /​usr/​sbin/​restart-secldapclntd
 +
 +[root@labo]/​etc/​security/​ldap#​ pwdadm -R LDAP -q user1
 +user1:
 +        lastupdate = 1634548341
 +</​cli>​
  
 (compare that to the '​days'​ unit that is used for shadowLastChange,​ shown above). (compare that to the '​days'​ unit that is used for shadowLastChange,​ shown above).
Line 243: Line 368:
 </​code>​ </​code>​
  
 +==== User password is expired maxage ====
 +
 +Accounts seems to be expired on AIX, a work around is to set maxage to 0 (as default)
 +
 +Another workarround is to find a parameter unto AD param, that is set to **0**
 +Ex:
 +<cli prompt='#'>​
 +[root@labo]/​etc/​security/​ldap#​ cat sfur2user.map
 +maxage ​         SEC_INT ​        ​codePage ​               s       ​na ​     yes
 +</​cli>​
 +
 +This is not the right parameter, but since shadowmax has disappear from AD, there is no substitution
 +
 +==== Autologin ====
 +
 +Current users in AD are automaticaly logged in with their user **without password** ???
 +
 +I use PAM as connection method and one line was missing into /​etc/​pam.conf,​ the second in the following file
 +<cli>
 +...
 +sshd    auth    requisite ​      ​pam_permission file=/​etc/​auth.allow found=allow
 +sshd    auth    required ​       pam_aix
 +</​cli>​
 +
 +==== Unable to login ====
 +
 +If ssh connection is failing, and you password is OK, no lock...\\
 +Check the config file **/​etc/​security/​ldap/​ldap.cfg**,​ maybe the groupbasedn has a bad definition !!!\\
 +Too restrictive in the search, or bad OU
 +<cli>
 +userbasedn:​OU=My Users,​OU=ALL Users & Groups,​DC=ba,​DC=bc,​DC=lu
 +groupbasedn:​OU=app,​OU=users Groups,​OU=ALL Users & Groups,​DC=ba,​DC=bc,​DC=lu
 +</​cli>​
  
 ===== Optional components ===== ===== Optional components =====
Line 271: Line 429:
 </​cli>​ </​cli>​
  
 +===== Additionnal commands =====
 +
 +==== UNIX commands ====
 +
 +Check for password of **ldap-sds** user
 +<cli prompt='#'>​
 +# ldapsearch -L -D ...  '​(&​(objectclass=*)(uid=userad01))'​ uid uidNumber gidNumber Loginshell unixHomeDirectory ​                                                 ​
 +</​cli>​
 +<cli prompt='#'>​
 +# ldapsearch -L -D ...  '​(&​(objectclass=*)(uid=userad01))'​
 +</​cli>​
 +
 +==== Windows commands ====
 +
 +Parameters extracted from Active Directory (using Powershell)
 +<cli prompt='>'>​
 +PS C:​\Windows\System32>​ Get-AdUser -Filter "​givenName -eq '​userad01'"​ -Properties *
 +</​cli>​
 +
 +You have 2 commands to list groups Get-ADGroup and Get-ADGroupMember
 +<cli prompt='>'>​
 +PS C:​\Windows\System32>​ Get-ADGroup -Identity '​groupad01'​ -Properties *
 +</​cli>​
 +
 +===== References =====
 +
 +https://​www.ibm.com/​support/​pages/​active-directory-ad-aix-step-step-instructions-integrate-active-directory-2016-aix-ldap-protocol
 +
 +http://​www.wmduszyk.com/?​p=11663&​langswitch_lang=pl&​cpage=1#​comment-50005
  
 https://​aerostitch.github.io/​linux_and_unix/​AIX/​AIX-Security-Kerberos_Authentication.html https://​aerostitch.github.io/​linux_and_unix/​AIX/​AIX-Security-Kerberos_Authentication.html
aix/user_adldap.1635846982.txt.gz · Last modified: 2021/11/02 10:56 by manu