wordpress hosting - vpn - cloud - statistiekservice - email

Authenticatie voor Centos 6 middels de AD

SSSD

Intro

In oudere versies van Linux is lastiger om users te authenticeren met behulp van de Active Directory van Windows. Echter uit bijvoorbeeld beheersoogpunt is het soms wel gewenst dat dit gebeurd. Users hebben dan 1 inlog voor Windows en Linux. Deze uitleg is bruikbaar voor Redhat/CentOS 6.x servers en soortgelijken.

Software

Om middels sssd te kunnen authenticeren zijn een aantal packages nodig die als volgt geinstalleerd kunnen worden:

yum -y install authconfig  pam_krb5 samba-common oddjob-mkhomedir sssd 

De Kerberos configuratiefile moet er zo uit zien in /etc/krb5.conf:

[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 default_realm = example.ORG
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true

[realms]
 example.ORG = {
  kdc = dc-01-p.example.org:88
 }

[domain_realm]
 example.org = example.ORG
 .example.org = example.ORG

Het [global] gedeelte van /etc/samba/smb.conf dient er zo uit te zien:

[global]
   workgroup = EXAMPLE-DOMAIN
   realm = example.ORG
   security = ads
   idmap config * : range = 16777216-33554431
   template homedir = /home/%U
   template shell = /bin/bash
   winbind use default domain = true
   winbind offline logon = false

Let op dat onder Standalone Server de volgende parametes zijn uitgecommentarieerd:

;security = user
;passdb backend = tdbsam

De configuratiefile van sssd moet er zo uitzien in /etc/sssd/sssd.conf (deze configuratiefile bestaat meestal nog niet)

[sssd]
config_file_version = 2
reconnection_retries = 3
sbus_timeout = 30
services = nss, pam
domains = EXAMPLE.ORG
[nss]
filter_groups = root
filter_users = root
reconnection_retries = 3
[pam]
reconnection_retries = 3
[domain/example.ORG]
debug_level = 0
cache_credentials = False
id_provider = ldap
auth_provider = krb5
chpass_provider = krb5
access_provider = ldap
ldap_schema = rfc2307bis
ldap_referrals = False
ldap_search_base = dc=example,dc=org
ldap_user_search_base = cn=users,dc=example,dc=org
ldap_user_object_class = user
ldap_group_search_base = ou=Groups,dc=example,dc=org
ldap_group_object_class = group
ldap_user_name = sAMAccountName
ldap_user_home_directory = unixHomeDirectory
ldap_user_member_of = memberOf
ldap_access_order = expire
ldap_account_expire_policy = ad
ldap_force_upper_case_realm = True
ldap_id_use_start_tls = False
ldap_default_bind_dn = cn=sssd,ou=Service Accounts,ou=Groups,dc=example,dc=org
ldap_default_authtok_type = password
ldap_default_authtok = $PASSWORD
ldap_tls_cacertdir = /etc/openldap/cacerts
krb5_realm = ExAMPLE.ORG
krb5_canonicalize = False

 

LET OP: Zet de rechten van de sssd.conf file goed anders start sssd niet op. Dit doe je met:

chmod 600 /etc/sssd/sssd.conf


Joinen van het example.org domein

Restart het e.e.a. om alle wijzigingen actief te maken:

service sssd restart
service winbind restart 

Om het example.org domein te joinen geef je:

net ads join example.org -U <admin user>

Om te controleren of het joinen geslaagd is geef je: (foutmeldingen over dns ed kunnen genegeerd worden)

net ads testjoin

Als het joinen daadwerkelijk geslaagd is kan de authenticatie worden aangepast met:

authconfig --enablesssd --enablesssdauth --enablemkhomedir --update

Opmerking: Het kan zijn dat het restarten voor het stop gedeelte een foutmelding geeft, zolang de tweede stap, het starten maar een Ok geeft.

Om ervoor te zorgen dat na een reboot het authenticeren tegen de AD blijft werken:

chkconfig oddjobd on
chkconfig winbind on
chkconfig messagebus on 


Toegang beperken tot groepen

Dit gaat anders dan onder CentOS 7 / Redhat 7. We beperken de toegang tot groepen door de ssh daemon configuratie aan te passen en de volgende regel toe te passen:

AllowGroups developers administrators root


In dit voorbeeld kan root inloggen, administrators en de developers via hun AD account. Laat bijv. developers weg als deze op de betreffende server niets te zoeken hebben


Problemen oplossen

Een enkele keer wordt /etc/nsswitch.conf niet geupdate, deze dient er als volgt uit te zien (voor CentOS/Redhat 6):

#
# /etc/nsswitch.conf
#
passwd:     files sss winbind
shadow:     files sss winbind
group:      files sss winbind
hosts:      files dns
bootparams: nisplus [NOTFOUND=return] files
ethers:     files
netmasks:   files
networks:   files
protocols:  files
rpc:        files
services:   files sss
netgroup:   files sss
publickey:  nisplus
automount:  files sss
aliases:    files nisplus

Controleer of een AD user herkend wordt op een linux server:

id <ad-account>

Je krijgt dan iets terug als (de Windows AD groepen waartoe iemand lid van is):

RedHat 7 komt met nieuwe dingen en verbeteringen

redhatlinux-transparent-300x300RedHat heeft onlangs versie 7 gelanceerd van hun Enterrprise Linux distributie. In deze versie 7 zitten, uiteraard, een aantal verbeteringen t.o.v. de vorige versie maar ook een aantal nieuwe dingen. Hier een kort overzichtje van een aantal nieuwigheden en verbeteringen:

  • Intergratie met de Active Directory, geen winbind meer nodig.
  • Performance en optimalization tools. Met oa. tuna kan grafisch kernel parameters worden getuned en de effecten ervan worden bekeken.
  • XFS is het standaard filesysteem, support voor max. 500TB. EXT-4 wordt ook ondersteund maar komt niet verder dan 50TB devices.
  • Vernieuwde installatie waarbij (server)rollen gekozen kunnen worden en daarna additionele packages
  • Upgrade assistent om RedHat 6.5 of hoger te kunnen upgraden naar RedHat 7.
  • NTP is vervangen door chrony, het ntp package is er nog wel.
  • Introductie van containers om applicaties in hun eigen omgeving te laten draaien voor veiligheid en eenvoudige uitrol.
  • Systemcontrol (systemctl) is nu de standaard en vervangt (de nog wel aanwezige) service en chkconfig en maakt start/stop script intelligenter en de resources beter te beheren.

Daarnaast zijn er voor de desktop omgeving (wie gebruikt daar RedHat voor?) uiteraard de nieuwe KDE en GNOME omgevingen meegeleverd. Een compleet overzicht van alles wat nieuw en veranderd is vind je hier: http://www.redhat.com/rhecm/rest-rhecm/jcr/repository/collaboration/jcr:system/jcr:versionStorage/6945bd2d0a05260142050b2f447f7fb5/1/jcr:frozenNode/rh:resourceFile