wiki:SynUsers

LDAP backend

Alle Syn-3 gebruikers staan opgeslagen in de ldap database. Deze gebruikers hebben echter geen shell. Het is ook nog steeds mogelijk om gewoon shell users aan te maken met useradd. Dit staat los van elkaar.

Het hele systeem is echter wel aangepast, zodat pam en nsswitch ook ldap aware zijn.

LDAP basis gegevens

  • Base: dc=syn-3
  • Root DN: cn=Manager,dc=syn-3
  • Root wachtwoord: Lees deze file uit: /etc/webint/LDAP_MASTER_PASSWD
  • User DN: uid=username,ou=Users,dc=syn-3
  • Group DN: cn=groupname,ou=Groups,dc=syn-3
  • Hostname: ldap-master en ldap-slave. Gebruik altijd deze hostnames want die worden door de SCC ingesteld in de /etc/hosts file.

LDAP beheer tools

Om users en groepen toe te voegen en te verwijderen kun je gebruik maken van de smbldap* commandos. Dit zijn versies die het gebruikers beheer op de juiste manier uitvoeren en ook rekening houden met samba. (en windows clients)

[Syn-3] root@darkstar.example.net /etc/postinst.d# smbldap
smbldap-groupadd   smbldap-groupmod   smbldap-passwd     smbldap-useradd    smbldap-userinfo   smbldap-usershow
smbldap-groupdel   smbldap-groupshow  smbldap-populate   smbldap-userdel    smbldap-usermod    smbldap_tools.pm

Sommige van deze commando's werken nogal onduidelijk en krikky!

Users

Met getent krijg je een overzicht van alle unix+ldap users:

[Syn-3] root@darkstar.example.net ~# getent passwd
root:x:0:0::/root:/bin/bash
bin:x:1:1:bin:/bin:
...
Administrator:x:0:512:Netbios Domain Administrator:/home/users/Administrator:/bin/false
mailadmin:x:500:512:System User:/home/mailadmin:/bin/bash
nobody:x:999:514:nobody:/dev/null:/bin/false
test:x:1002:513:System User:/home/users/test:/bin/bash
test2:x:1004:513:System User:/home/users/test2:/bin/bash

Deze geeft dus een combinatie van de users uit /etc/passwd en die uit ldap.

De UID range is als volgt ingedeeld:

  • 0 t/m 499 zijn vaste standaard unix users die reeds aanwezig zijn.
  • 500 t/m 980 zijn unix users die met useradd worden gemaakt.
  • 1000 en verder zijn Syn-3 LDAP gebruikers, aangemaakt via de SCC.

Groepen

Groepen werken ongeveer op dezelfde manier:

[Syn-3] root@darkstar.example.net ~# getent group
root::0:root
bin::1:root,bin,daemon
...
qmail:x:56:
jannie:x:116:
Domain Admins:x:512:Administrator
Domain Users:x:513:geert,test,test2
Domain Guests:x:514:
Domain Computers:x:515:
Internet:x:516:
Windows VPN - pptp:x:520:
mijngroep:x:1002:

Indeling van de GID range is als volgt:

  • 0 t/m 99 zijn vaste standaard unix groepen die reeds aanwezig zijn.
  • 100 t/m 399 zijn unix users die met groupadd worden aagemaakt.
  • 500 t/m 999 zijn Syn-3 LDAP systeem groepen. Deze maak je in de postinstaller aan met smbldap-groupadd en kunnen niet door de systeembeheerder verwijderd worden.
  • 1000 en verder zijn Syn-3 LDAP groepen die door de administrator met de SCC aangemaakt zijn.

Het aanmaken van extra groepen doe je door in de post installer zoiets te doen:

if ! getent group "SVN read access" &> /dev/null; then
 smbldap-groupadd -g 540 "SVN read access" || exit 1;
fi

Zorg dat je zeker weet dat de GID niet in gebruik is door andere pakketjes! Zie de lijst hieronder.

Gereserveerde groepen en GIDs

  • 512 Domain Admins -- Gebruikt voor Syn-3 fileserver en Windows.
  • 515 Domain Computers -- Gebruikt voor Syn-3 fileserver en Windows.
  • 514 Domain Guests -- Gebruikt voor Syn-3 fileserver en Windows.
  • 513 Domain Users -- Gebruikt voor Syn-3 fileserver en Windows.
  • 516 Internet -- Leden hebben toegang tot de proxyserver.
  • 520 Windows VPN - pptp -- Leden kunnen inbellen met Windows pptp.
  • 521 OpenVPN access -- Leden kunnen connectie maken via OpenVPN (als ze een correct certificaat hebben)
  • 530 SugarCRM -- Leden kunnen inloggen op SugarCRM
  • 540 SVN read access -- Leden kunnen de svn tree lezen.
  • 541 SVN write access -- Leden kunnen de svn tree bewerken.
  • 542 Trac access -- Leden hebben toegang tot het Trac systeem.

Werk deze lijst bij aub!

Als je een nieuwe service of webapplicatie hebt die authenitate doet, maak dan een nieuwe gereserveerde groep aan en zorg er voor dat er op group lidmaatschap gecontroleerd word! Zo kan de systeembeheerder eenvoudig toegang geven of weigeren voor deze applicatie.

LDAP tree indeling

De tree is als volgt ingedeeld:

dc=syn-3
\_ou=System
  \_uid=admin
\_ou=AdminObjects
  \_ou=SMTPObjects
    \_ou=MailTransports
  \_ou=DNSObjects
  \_ou=DHCPObjects
\_ou=ResourceObjects
  \_ou=ResourceGroups
  \_ou=Resources
\_ou=Users
  \_uid=Administrator
  \_uid=mailadmin
    \_ou=addr
  \_uid=nobody
  \_uid=<other users>
    \_ou=addr
\_ou=Groups
  \_cn=Domain Admins
  \_cn=Domain Users
  \_cn=Domain Guests
  \_cn=Domain Computers
  \_cn=Internet
  \_sambaSID=S-1-5-32-544
  \_sambaSID=S-1-5-32-545
  \_cn=Windows VPN - pptp
\_ou=Computers
\_cn=NextFreeUnixId
\_sambaDomainName=EXAMPLE.NET

Speciale LDAP attributen

Bepaalde attributen gebruiken we voor niet-standaard dingen:

  • groupwareServer: hier kan je de hostname invullen van de Syn-3 server die verantwoordelijk is voor de LDAP email adressen van de destbetreffende user. (zie mail/qmail.php in de SCC)

Authenticatie backends

De opzet van Syn-3 is zo gemaakt dat men gebruik kan maken van allerlei diensten met behulp van 1 inlognaam en password. Er zijn een aantal authenticatie services die allemaal in de LDAP database kijken. Deze kun je dus gebruiken als je een nieuwe applicatie hebt die user logins moet doen.

We hebben de volgende backends:

  • Openldap - (duh) Je kan uiteraard rechstreeks tegen de ldap server authenticaten.
  • Radius - Je moet lid zijn van groep 520 Windows VPN - pptp. (Misschien moeten we dit ooit nog van naam veranderen?)
  • Cyrus-sasl - Gebruikt voor cyrus-imap server, maar kan ook door andere services gebruikt worden. Geen groups-check.
  • Pam - Bepaalde services zoals cups en sshd kunnen rechstreeks tegen PAM authenticaten. (Die op zijn beurt met ldap praat)
  • Samba - Samba kan als PDC aanmeld server gebruikt worden voor Windows clients.

Automatisch aanmaken extra gegevens

Mailboxen, openxhchange accounts etc worden automatisch aangemaakt door de verschillende modules in de SCC.

Je ziet dit ook terug in de logmelding na het aanmaken van een gebruiker.

De file userman.php in iedere SCC module is hier verantwoordelijk voor:

[Syn-3] root@darkstar.example.net ~# ls /usr/webint/htdocs/*/userman.php -l
-rwxr-xr-x  1 root root  498 Sep 11 18:01 /usr/webint/htdocs/examplemodule/userman.php*
-rwxr-xr-x  1 root root  682 Sep 11 18:01 /usr/webint/htdocs/mail/userman.php*
-rwxr-xr-x  1 root root 1954 Sep 11 18:01 /usr/webint/htdocs/openxchange/userman.php*
-rwxr-xr-x  1 root root  670 Sep 11 18:01 /usr/webint/htdocs/samba/userman.php*

Zodra er een nieuwe user toegevoegd is word er een syncronisatie slag uitgevoerd tegen de ldap server. Deze syncronisatie slag kan de systeembeheerder ook handmatig uitvoeren, mocht er een user op een andere manier zijn toegevoegd. Dit kan voorkomen als je meerdere syn3 servers hebt, of een externe ldap server.

Bij het syncroniseren kijkt de SCC welke users zich in LDAP bevinden, en welke users zich in de afzonderlijke modules bevinden. Hierna worden de destbetreffende users in de modules worden aangemaakt en verwijderd. Het verwijderen gaat uit veiligheids overwegingen niet automatisch! De Administrator moet hiervoor op de speciale 'opschonen' knop drukken.

Last modified 7 months ago Last modified on 11/22/16 16:55:52