Als laatste onderdeel van een PAM configuratie regel wordt de bestands naam gegeven van de module die gebruikt
moet worden, alsook de bijbehorende argumenten. Of er argumenten moeten meegegeven worden hangt af van de module
in questie.
Een succesvolle PAM-toepassing staat of valt met de modules die gebruikt worden. Het overzicht dat volgt
kan niet volledig zijn omdat de modules en hun eigenschappen nogal eens per distributie kunnen verschillen
(immers iedere ontwikkelaar is vrij).
module |
commentaar |
pam_access |
Deze module zorgt ervoor dat op basis van de instellingen die hiervoor vastgelegd zijn in /etc/security/access.conf
toegang wel of niet verleend wordt. Hiertoe moeten in access.conf namen van gebruikers en/of systemen die wel of geen
toegang hebben worden opgenomen. Deze module werkt alleen op systemen waar niet gekeken wordt naar een .rhosts-bestand.
|
pam_chroot |
Met deze module kan men ervoor zorgen dat een gebruiker na verificatie in een nep-root directory terecht komt.
'/' is dan eigenlijk '/ergens-anders'. Het voordeel van deze werkwijze is dat men gast gebruikers die shell-toegang
krijgen tot het systeem kunt beperken, zodat ze niet op locaties kunnen terecht komen waar ze niets te zoeken hebben.
|
pam_cracklib |
Deze module zorgt ervoor dat wordt nagegaan of een nieuwe wachtwoord wel veilig genoeg is. Hiervoor is het nodig dat
de systeem bibliotheek en het woordenboek /usr/lib/cracklib_dict op het systeem geïnstalleerd zijn. Elk nieuw in
te voeren wachtwoord wordt dan eerst vergeleken met woorden in dit woordenboek. Als het nieuwe wachtwoord door deze
test heen komt, wordt gekeken of het nieuwe wachtwoord niet teveel gelijkt op het oude wachtwoord. Zorg ervoor
dat de module pam_cracklib altijd aangeroepen wordt voordat pam_pwdb wordt aangeroepen.
|
pam_deny |
Deze module zorgt ervoor dat toegang ontzegd wordt, waarbij een foutmelding naar de betreffende toepassing wordt
doorgegeven. Deze module kan in alle vier componenten van PAM worden aangeroepen; bij het aanroepen van de
account-component wordt het onmogelijk in te loggen; indien de authentication-component wordt aangeroepen, wordt
toegang tot standaard toepassingen ontzegd.; bij toepassing op de password-component is het niet langer
toegestaan het wachtwoord te wijzigen en indien toegepast op de session-component wordt het een toepassing
onmogelijk gemaakt een sessie te starten op een hostcomputer.
|
pam_ftp |
Om als anonymous gebruiker toegang te krijgen tot een ftp-server, kan man deze module inzetten. De module vraagt
tijdens de verifcatie van een anonymous gebruiker op een ftp-server een email-adres van deze gebruiker dat als
wachtwoord gebruikt kan worden. Dit gebeurt alleen als een gebruiker met de naam anonymous zich aanmeldt bij het systeem.
|
pam_group |
Deze module zorgt ervoor dat de gebruiker automatisch lid wordt van een bepaalde groep. Welke groepen hiervoor
voor welke gebruikers gebruikt worden, wordt geregeld in /etc/security/group.conf. Groepen aan wie op deze manier
lidmaatschap wordt toegewezen, worden toegevoegd aan de groepen waarvan de gebruiker al lid is op basis van
/etc/group.
|
pam_issue |
Deze module zorgt ervoor dat het bestand /etc/issue getoond wordt voordat de loginprompt gegenereerd wordt. In
/etc/issue kan een tekst worden opgenomen. Denk hierbij aan mededelingen doe men aan de gebruikers wil tonen
voordat ze op de server kunnen inloggen.
|
pam_limits |
Op basis van deze module kan men, via het configuratie bestand /etc/security/limits.conf beperkingen instellen
voor resources die door gebruikers of groepen gebruikt kunnen worden. Deze beperkingen gelden dan voor iedereen,
met uitzondering de gebruikers waarvan het UID gelijk is aan 0. De instellingen die hiermee vastgelegd kunnen
worden, zijn vergelijkbaar met de beperkingen die door middel van quota kunnen worden ingesteld.
|
pam_mail |
Door middel van deze module kan na inloggen aangegeven worden of de gebruiker nieuwe mail heeft.
De module kijkt hiervoor in de email directory van de gebruiker.
|
pam_mkhomedir |
Als een gebruiker tijdens het inloggen geen homedirectory blijkt te hebben, zorgt deze module ervoor dat er
automatisch een homedirectory wordt gemaakt. Deze module kan nuttig zijn als een gebruiker door middel van
NIS of LDAP inlogt op verschillende systemen. Het is dan niet nodig dat de systeem beheerder op elk van deze
systemen handmatig een home-directory maakt. De module kan als volgt gebruikt worden :
session required pam_mkhomedir.so skel=/etc/skel umaks=0022. Hierbij wordt verwezen naar de skeleton directory.
Dit is een directory waarin algemene bestanden geplaatst kunnen worden die bij het maken van een gebruiker
automatisch naar diens homedirectory worden gekopieerd.
|
pam_motd |
Deze module zorgt ervoor dat het bestand /etc/motd automatiscj wordt weergegeven nadat de gebruiker is aangemeld.
De module kan als volgt worden gebruikt : login session pam_motd.so motd=/etc/motd. Let overigens op het
verschil in gebruik met pam_issue, dat ervoor zorgt dat een melding gegenereerd wordt voordat de gebruiker een
login prompt te zien krijgt.
|
pam_nologin |
Deze module zorgt ervoor dat het nologin-mechanisme in werking gezet wordt. Wanneer men gebruik maakt van deze module,
kan men het inloggen voor alle gebruikers, met uitzondering van de gebruiker root, onmogelijk maken door een bestand
met de naam nologin te maken in de directory /etc op de server. De gebruikers krijgen de inhoud van het bestand
/etc/nologin te zien. Als het bestand niet bestaat doet de pam_nologin module niets. Om zinnig gebruik te maken van
deze module moet men alle logins ermee beveiligen, dit betekent dat het attribuut required hieraan meegegeven moet worden.
|
pam_permit |
Dit is wellicht de onveiligste PAM-module; deze zorgt er namelijk voor dat altijd en overal toegang wordt verleend.
Het is hiervoor wel nodig dat een gebruikersnaam opgegeven wordt, de meeste toepassingen willen ook nog dat dit een
geldige gebruikers naam is. Sommige toepassingen nemen ook echter genoegen met een ongeldige gebruikers naam. Gebruik
van deze module zet het systeem voor iedereen open, gebruik ze dan ook alleen maar voor test doeleinden.
Voorbeeld : login account required pam_permit.so
|
pam_pwcheck |
Deze module zorgt ervoor dat op basis van een instellingen bestand /etc/login.defs gekeken wordt of een nieuw
wachtwoord aan de gestelde minimum eisen voldoet. Daarnaast wordt het nieuwe wachtwoord vergeleken met de
cracklib-bibliotheek, die dientgevolge ook geinstalleerd moet zijn.
|
pam_pwdb |
Deze module wordt gebruikt ter vervanging van de oudere pam_unix modules. Indien aangeroepen vanuit de account-component,
zorgt deze module ervoor dat gecontroleerd wordt of de account en het bijbehorende wachtwoord nog geldig zijn. Om
te achterhalen welk wachtwoord daar dan exact voor gebruikt moet worden, wordt gebruikt gemaakt van het
instellingen bestand /etc/pwdb.conf, waarin wordt bijgehouden in welke bestanden naar een wachtwoord gekeken wordt
wanneer een gebruiker zich aanmeldt. Dit bestand /etc/pwdb.conf is ook het bestand dat men moet aanpassen
wanneer men ervoor zou willen zorgen dat tijdens het inloggen niet langer gekeken wordt naar de inhoud van bestand
/etc/shadow. Laat overigens duidelijk zijn dat het af te raden is om dit te doen, het is alleen goed om te weten
waar het geregeld wordt.
|
pam_rhosts_auth |
Deze module bepaald op welke wijze verificatie bij een andere computer moet plaatsvinden als deze binnenkomt via
één van de onveilige r-opdrachten.(rlogin, rcp, rshell). De standaard methode hiervoor is dat eerst gebruik
gemaakt wordt van de instellingen in /etc/hosts.equiv en vervolgens gekeken wordt in ~/.rhosts. Het exacte gedrag
kan echter door middel van argumenten gewijzigd worden; zo bestaat er bijvoorbeeld de opdracht no_rhosts die ervoor
zorgt dat de inhoud van het bestand ~/.rhosts niet bekeken wordt.
|
pam_rootok |
Deze module zorgt ervoor dat de gebruiker kan gebruik maken van een service zonder dat deze eerst daarvoor een
wachtwoord hoeft in te geven. Het klassieke voorbeeld is dat de module gebruikt kan worden om root toegang tot
services te geven via de opdracht su. Hiervoor zijn de volgende twee regels nodig
- su auth sufficient pam_rootok.so
- su auth required pam_unix_auth.so
|
pam_securetty |
Met behulp van deze module kan men ervoor zorgen dat op basis van de terminals (tty) die genoemd zijn in
/etc/securetty bepaald wordt of de superuser (de gebruiker root) wel of geen toegang krijgt tot het systeem.
Aangezien het vanuit de optiek van beveiliging absolute noodzaak is dat eerst dit bestand moet gechecked worden
voordat toegang verleend wordt, moet deze module met de flag required worden aangeroepen voordat enig andere
module met de flag sufficient wordt aangeroepen. Zo kan men er bijvoorbeeld voor zorgen dat de gebruiker root
niet via een onveilige telnet sessie kan binnenkomen.
|
pam_stack |
Dit is een algemene module die door RedHat ontworpen is en dus in deze distributie en in Fedora gebruikt wordt.
De module pam_stack geldt als de algemene module die specifieke modules aanroept die voor bepaalde services
relevant zijn. Deze specifieke modules zijn ook altijd modules die voorkomen in de directory /etc/pam.d.
|
pam_time |
Deze module zorgt ervoor dat via instellingen in het configuratie bestand /etc/security/time.conf de toegang
tot bepaalde services verboden kan worden. Op elke regel in time.conf staan achtereenvolgens de services, ttys,
gebruikers, en tijden gespecifieerd. Zo kan man bijvoorbeeld aan de gebruiker root de toegang via speudo-terminals
tot de toepassing xsh ontzeggen in het weekend en op maandag door in time.conf de regel
xsh;ttyp*;root;!WdMo0000-2400 op te nemen.
De belangrijkste beperking voor deze module is dat er momenteel geen mechanisme is dat ervoor zorgt dat een sessie
wordt afgebroken op het moment dat een verboden tijdstip is aangebroken; wel maakt de service het onmogelijk na
het aanbreken van het tijdstip de betreffende service nog te gebruiken.
|
pam_unix |
Dit is de standaard UNIX verificatie module die ervoor zorgt dat op basis van /etc/passwd, shadow, of NIS kan ingelogd
worden. Deze module is inmiddels opgevolgd door pam_unix2.
|
pam_warn |
Deze module zorgt ervoor dat waarschuwingen weggeschreven worden naar syslog. Op deze manier zorgt men ervoor
dat wanneer er iets misgaat daar toch een melding van kan terugvinden in de logboek bestanden.
|