sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #17143
Fork bombe
KRBJ (Kristian Bjørnskov) wrote (subj. "Re: [TEKNIK] Udswap en udvalgt process"):
> Hvad med at starte et program op der spiser alt den memory den kan
> komme til
[... cut crazy memory allocator ...]
Fedt. Så fik jeg tjekket, at mine memory-begrænsninger i
/etc/security/limits.conf virker.
Er der nogen, der har en fork-bombe (program, der fork'er tonsvis
af børne-processer), så jeg kan teste, om min proces-begrænsning
også virker som forventet?
Forskud på evt. spørgsmål:
På nogle maskiner, der benyttes af mere end én person af gangen
er det uhensigtsmæssigt, hvis en bruger kommer til at lægge beslag
på så mange ressourcer, at de andre ikke kan arbejde. Fx. har jeg
set eksempler på, at folk logget ind via XDM blev smidt af, hvis
en anden XDM-bruger startede talrige kæmpe programmer.
For at begrænse rammerne for folks udskejelser har jeg skabt en
/etc/security/limits.conf med flg. indhold:
* hard memlock 60000
* hard rss 60000
* hard as 60000
* hard data 60000
* hard stack 60000
* hard nproc 500
* hard maxlogins 30
* hard fsize 500000
De første fem linjer siger mig egentlig ikke så meget og er derfor
sat lidt i blinde. Det viste sig dog, at "as"-linjen var den, der
bestemte hvor langt Kristians crazy-memory-allocator program kunne
nå (60mB).
Den sidste linje handler om, at jeg ikke gider at rode med egentlige
quotas. Linjen forhindrer mod følgende situation, som jeg engang
oplevede: Et problem i et X-program førte til en eksplosivt voksende
.xsession-errors fil, som til sidst bevirkede DoS ved at fylde
filsystemet op.
For at linjerne får effekt kræver det, at følgende linje er indsat
i relevante /etc/pam.d/... fil:
session required /lib/security/pam_limits.so
Fx. kunne /etc/pam.d/xdm se ud som følger:
auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_pwdb.so shadow nullok
auth required /lib/security/pam_nologin.so
account required /lib/security/pam_pwdb.so
password required /lib/security/pam_cracklib.so
password required /lib/security/pam_pwdb.so shadow nullok use_authtok
session required /lib/security/pam_pwdb.so
session optional /lib/security/pam_console.so
session required /lib/security/pam_limits.so
--
Greetings from Troels Arvin, Copenhagen, Denmark
Follow ups
References