CentOS Active Directory gebruiker authenticatie

 In Servers

Via Active Directory van Microsoft kunnen gebruikersaccounts en apparaten vanaf een centrale plek worden beheerd. Maar werkt dat eigenlijk ook op Linux en kunnen gebruikers op Linux aanmelden met hun vertrouwde Windows domeinaccount? Het bijhouden van individuele gebruikersaccounts voor elke medewerker brengt een risico met zich mee. Met individuele gebruikersaccounts moet je namelijk op elke server inloggen om te kijken hoe de rechten ingesteld staan. Er is een risico dat individuele gebruikersaccounts niet worden uitgeschakeld wanneer een medewerker het bedrijf verlaat. Ook vergeten gebruikers hun wachtwoord nog wel eens. Centraal beheer van je gebruikersaccounts voorkomen deze risico’s. In dit artikel leg ik je exact uit hoe je een Active Directory koppeling tot stand brengt op CentOS zodat jouw gebruikers via hun vertrouwde domeinaccount kunnen aanmelden.

Installeren onderdelen en koppelen van Active Directory

Voordat je een CentOS server kunt koppelen met Active Directory zul je de Samba tools moeten installeren. Op onze server maken we gebruik van CentOS 8 waarbij yum vervangen is door dnf. Met de onderstaande commando’s worden de benodigde onderdelen geïnstalleerd.

dnf install samba samba-client samba-winbind samba-winbind-clients

Indien je gebruik maakt van CentOS 7 gebruik dan onderstaande commando.

yum install samba samba-client samba-winbind samba-winbind-clients

Vervolgens verwijderen we het standaard samba configuratiebestand en vervangen we deze door onze configuratie.

rm -f /etc/samba/smb.conf && vi /etc/samba/smb.conf

Plak de onderstaande configuratie in het bestand en pas de dik gedrukte tekst aan naar de parameters van jouw omgeving. Sla het bestand vervolgens op.

[global]workgroup = shortdomeinnaam
password server = domeincontroller.domeinnaam.local
realm = domeinnaam.local
security = domain
idmap config * : range = 16777216-33554431
template shell = /bin/bash
kerberos method = secrets only
winbind use default domain = true
winbind offline logon = false

passdb backend = tdbsam

printing = cups
printcap name = cups
load printers = yes
cups options = raw

[homes]comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes

[printers]comment = All Printers
path = /var/tmp
printable = Yes
create mask = 0600
browseable = No

[print$]comment = Printer Drivers
path = /var/lib/samba/drivers
write list = root
create mask = 0664
directory mask = 0775

De volgende stap is het lid maken van de server tot Active Directory. Met onderstaande commando wordt een verbinding tot stand gebracht tussen de CentOS server en de domeincontroller. Pas de domeingebruiker aan naar een gebruiker die voldoende rechten heeft om machines toe te voegen aan Active Directory.

net ads join -U domeingebruiker

Als de server eenmaal toegevoegd is kun herstart de winbind service met onderstaande commando.

systemctl enable winbind && systemctl restart winbind

Vervolgens kun je met het commando wbinfo -t controleren of er een actieve verbinding is naar de domein controller.

wbinfo Active Directory

Aansluitend kun je de winbind authenticatie als standaard instellen voor gebruikers. Dan zal eerst in Active Directory worden gezocht naar gebruikersaccounts en vervolgens pas de lokale gebruikers op de server.

authselect select winbind –force

Beveiligingsgroep configureren

Na het instellen zou je nu moeten kunnen aanmelden met domeinaccount. Standaard wordt iedereen toegelaten tot de server. Als gebruikers inloggen met hun domeinaccount zijn ze standaardgebruiker, zonder rechten. Je kunt aanmelden door je gebruikersnaam in te tikken zonder toevoeging van domeinnaam. Wil je extra beveiliging toevoegen volg dan onderstaande instructies. Hierin maken we een beveiligingsgroep waar een gebruikersaccount lid van moeten zijn voordat ze toegang krijgen tot de server. Maak eerst een beveiligingsgroep in Active Directory. Wij houden doorgaans de beveiligingsgroep naam SSH_servernaam aan. Voer het onderstaande commando uit om een access list te maken.

rm -f /etc/security/access.conf && vi /etc/security/access.conf

Voer hier nu de onderstaande inhoud in en vervang de domeinnaam en beveiligingsgroep naar de waarden van jouw omgeving.

+ : domeinnaam\SSH_servernaam : ALL
+ : root : ALL
– : ALL : ALL

Bewerk vervolgens het bestand /etc/pam.d/password-auth en voeg onder de regel: account required pam_unix.so broken_shadow de onderstaande tekst toe.

account required pam_access.so

pam access CentOS

Sla vervolgens het bestand op. Gebruikers die niet onderdeel zijn van de beveiligingsgroep zullen de onderstaande foutmelding zien wanneer ze proberen te verbinden.

Gebruikersaccount root uitschakelen voor SSH

Tot slot kan het root account worden uitgeschakeld om in te loggen over SSH. Zorg ervoor dat je domeinaccount wel eerst voldoende rechten heeft zodat jezelf niet uitsluit. Je kunt je gebruikersaccount toevoegen aan de root gebruikers met het commando visudo. Als je eenmaal je domeingebruiker van voldoende rechten hebt voorzien kun je het root account uitschakelen.

Bewerk het bestand /etc/ssh/sshd_config en zoek naar PermitRootLogin en verander deze waarde naar PermitRootLogin no. Tot slot herstart de ssh service met het commando systemctl restart sshd.

Linux serverbeheer

Bij Enexus beheren we verschillende Linux servers. Met serverbeheer voorkomen we storingen en staan we klaar bij technische mankementen. Wij verzorgen de belangrijke beveiligingsupdates voor je Linuxserver en kunnen technische installatie en configuratie voor je uitvoeren. Wil je meer weten wat we voor jou kunnen beteken neem dan eens vrijblijvend contact op.

Recent Posts
Een schermafbeelding van een PRTG CentOS server monitoring interface met verschillende grafieken en statistieken.