Gentoo Logo

1.  /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.

1.  /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 1.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.

1.  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 1.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 1.1: /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 1.1: 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 1.1: /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 1.1: 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).

1.  /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.

1.  /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 1.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.

Upgedate op 26 december 2005

De originele versie van dit document was laatst geupdate om 15 november 2011

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.