[ << ]
[ < ]
[ Home ]
[ > ]
[ >> ]
5. Gebruiker/Groep Beperkingen
Inhoud:
5.a. /etc/security/limits.conf
Het controleren en beperken van resource-gebruik kan zeer efficient zijn om
lokale DoS te voorkomen, of om het maximaal aantal logins van een gebruiker of
groep gebruikers te beperken.
Codevoorbeeld 1.1: /etc/security/limits.conf |
* soft core 0
* hard core 0
* hard nproc 15
* hard rss 10000
* - maxlogins 2
@dev hard core 100000
@dev soft nproc 20
@dev hard nproc 35
@dev - maxlogins 10
|
Indien je overweegt om nproc of maxlogins voor een bepaald gebruiker op 0 te
plaatsen, misschien dat je dan beter de gebruiker verwijdert. Het voorbeeld
hierboven stelt de instellingen in voor de groep "dev" voor
processen, core bestanden en maxlogins. De rest krijgt de default instellingen.
Nota:
/etc/security/limits.conf is een deel van de PAM package en zal
enkel werken bij programma's die PAM gebruiken.
|
5.b. /etc/limits
Limieten zijn gelijkaardig aan het limitbestand
/etc/security/limits.conf. Het enige verschil is het formaat en
het feit dat deze enkel werkt op gebruikers (niet op groepen). Laten we eens
kijken naar een degelijke configuratie:
Codevoorbeeld 2.1: /etc/limits |
* L2 C0 U15 R10000
kn L10 C100000 U35
|
Hier stellen we de default instellingen in alsook een specifieke setting voor
de gebruiker kn. Limieten zijn onderdeel van de shadow package en gelden
enkel voor het shadow login programma. Het is niet noodzakelijk om hierin
instellingen te veranderen indien je de PAM setting in je make.conf aangezet
hebt en PAM correct geconfigureerd is.
5.c. Quotas
Het plaatsen van quota's op een bestandssysteem verhindert dat gebruikers die
partitie vullen met (al dan niet nutteloze) bestanden, of zelfs dat de
gebruikers erop schrijven. Quota-ondersteuning moet in de kernel zitten en moet
als optie meegegeven zijn tijdens het mounten van een partitie. De kerneloptie
kan je vinden onder File systems -> Quota support.
Codevoorbeeld 3.1: Installeren van quota |
# emerge quota
|
Pas je /etc/fstab aan en voeg usrquota en grpquota toe aan de
partities waarvan je het gebruik wil beperken zoals aangegeven in het
voorbeeld.
Codevoorbeeld 3.2: /etc/fstab |
/dev/sda1 /boot ext2 noauto,noatime 1 1
/dev/sda2 none swap sw 0 0
/dev/sda3 / reiserfs notail,noatime 0 0
/dev/sda4 /tmp reiserfs notail,noatime,nodev,nosuid,noexec,usrquota,grpquota 0 0
/dev/sda5 /var reiserfs notail,noatime,nodev,usrquota,grpquota 0 0
/dev/sda6 /home reiserfs notail,noatime,nodev,nosuid,usrquota,grpquota 0 0
/dev/sda7 /usr reiserfs notail,noatime,nodev,ro 0 0
/dev/cdroms/cdrom0 /mnt/cdrom iso9660 noauto,ro 0 0
proc /proc proc defaults 0 0
|
Op elke partitie die gebruik moet maken van de quota-ondersteuning moet je de
quota-bestanden aanmaken (quota.user en quota.group) en deze in de root van
elke partitie plaatsen.
Codevoorbeeld 3.3: Aanmaken van quota-bestanden op /tmp |
# touch /tmp/quota.user
# touch /tmp/quota.group
# chmod 600 /tmp/quota.user
# chmod 600 /tmp/quota.group
|
Deze stap moet uitgevoerd worden op elke partitie waar je quota's wil
gebruiken. Nadat je de quota-bestanden aangemaakt hebt en geconfigureerd, moet
je een script als rc-script aanmaken zodat de quota's automatisch geactiveerd
worden tijdens het booten. Kopieer en plak het volgende script in een bestand
genaamd /etc/init.d/quotas. Maak gewoon dat bestand aan (het
bestaat nog niet) en maak het uitvoerbaar.
Codevoorbeeld 3.4: /etc/init.d/quotas |
#!/sbin/runscript
depend() {
need localmount
}
start() {
if [ -x /sbin/quotacheck ]
then
ebegin "Checking quotas. This may take some time."
/sbin/quotacheck -avug
eend $?
fi
if [ -x /sbin/quotaon ]
then
ebegin "Turning on quota."
/sbin/quotaon -avug
eend $?
fi
}
stop() {
if [ -x /sbin/quotaon ]
then
ebegin "Turning off quota."
/sbin/quotaoff
eend $?
fi
}
|
Voeg deze dan toe aan de default runlevel met rc-update add quotas
default en voeg een quota-controle toe als cronjob (crontab -e) om
periodisch elke week de quota's te scannen: 0 3 * * 0 /sbin/quotacheck
-avug.
Nadat je je systeem gereboot hebt (nieuwe kernel, herinner je nog?) is het tijd
om de quota's van de gebruikers en de groepen in te stellen. edquota -u
kn zal de gedefinieerde editor ($EDITOR, default is nano) opstarten en zal
de quota's voor de gebruiken kn weergeven zodat je deze dan kan aanpassen.
-g zal hetzelfde laten doen voor een gegeven groep.
Codevoorbeeld 3.5: Instellen van de quota's van gebruiker kn |
Quotas for user kn:
/dev/sda4: blocks in use: 2594, limits (soft = 5000, hard = 6500)
inodes in use: 356, limits (soft = 1000, hard = 1500)
|
Voor meer details, lees man edquota of The quota mini HOWTO
(Engels).
5.d. /etc/login.defs
Indien het beleid verklaart dat de gebruikers hun paswoord elke week moeten
aanpassen, moet je de variabele PASS_MAX_DAYS op bijvoorbeeld 14 zetten, en de
variabele PASS_WARN_AGE op 7. Het is tevens aangeraden dat je
paswoordveroudering gebruikt om brute krachtmethoden tegen te gaan: geef ze
genoeg tijd en een brute krachtmethode kan elk paswoord kraken.
We raden tevens aan om LOG_OK_LOGINS op yes te plaatsen.
5.e. /etc/login.access
Het login.access bestand is ook deel van de shadow package en bevat een
toegangscontroletabel. De tabel wordt gebruikt om te bepalen wie wel en niet
kan inloggen gebaseerd op gebruikersnaam, groepnaam of hostnaam. Per default
mogen alle gebruikers inloggen dus is dit bestand in het begin enkel gevuld met
commentaar en voorbeelden. Als je dus je pc aan het beveiligen bent raden we
aan om iedereen uit te schakelen (zodat ze niet kunnen inloggen) behalve de
personen die mogen inloggen (en dat is meestal enkel jezelf bij de meeste
servers).
Nota:
De settings in dit bestand zijn niet geldig voor de root-gebruiker.
|
Codevoorbeeld 5.1: /etc/login.access |
-:ALL EXCEPT wheel sync:console
-:wheel:ALL EXCEPT LOCAL .gentoo.org
|
Waarschuwing:
Wees voorzichtig wanneer je deze opties configureert, aangezien fouten ervoor
kunnen zorgen dat je zelf geen toegang meer hebt tot de machine!
|
Nota:
Deze aanpassingen zijn niet geldig voor SSH aangezien SSH niet gebruik maakt
van /bin/login per default. Je kan daar echter wel voor zorgen door
"UseLogin yes" te plaatsen in /etc/ssh/sshd_config.
|
Dit voorbeeld zal ervoor zorgen dat leden van de wheel-groep wel kunnen
inloggen op de console, alsook gebruikers van het gentoo.org-domein. Misschien
te paranoide, maar beter dat dan je systeem te zien vallen in handen van
hackers.
[ << ]
[ < ]
[ Home ]
[ > ]
[ >> ]
The contents of this document are licensed under the Creative Commons -
Attribution / Share Alike license.
|