[ << ]
[ < ]
[ Home ]
[ > ]
[ >> ]
9. Kernel Beveiliging
Inhoud:
9.a. Verwijderen van overbodige functionaliteit
De basisregel van kernelconfiguratie is om alles te verwijderen wat je niet
nodig hebt. Dit zorgt ervoor dat je een kleine kernel hebt met de minste kans
op fouten (die zich bevinden in drivers e.d.).
Overweeg tevens om module-ondersteuning uit te schakelen. Alhoewel het mogelijk
is om rootkit modules te gebruiken zonder deze feature maakt het het toch
moeilijker voor gewone hackers om dit te proberen.
9.b. /proc (kernel flags)
Veel kernelparameters kunnen aangepast worden via het /proc bestandssysteem of
door gebruik te maken van sysctl.
Om dynamisch kernelparameters aan te passen moet CONFIG_SYSCTL aan staan in je
kernel. Dit is default in een 2.4-kernel.
Codevoorbeeld 2.1: Negeren van ping-pakketten |
# /bin/echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all
|
Dit zal ICMP type 0 (gekend als ping) pakketten uitschakelen. De reden hiertoe
is dat ICMP meer informatie bevat dan dat je denkt. Sommige beheerders zullen
misschien klagen dat ze niet kunnen pingen ter controle van het netwerk.
Er is echter geen reden voor outsiders om te kunnen pingen. Maar soms kan het
wel interessant zijn voor insiders om te kunnen pingen. Om dit toe te laten
sluit je ICMP type 0 enkel uit op de publieke interface via je firewall.
Codevoorbeeld 2.2: Negeren van broadcast-pings |
# /bin/echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
|
Dit schakelt broadcast-antwoorden uit.
Je wil zeker geen smurf versterker worden. Smurf versterkers of X-mass trees
zijn methoden die een hacker gebruikt om een explosief grote hoeveelheid
traffic te genereren naar een bepaald doel.
Codevoorbeeld 2.3: Weigeren van source-routed pakketten |
# /bin/echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route
|
Dit schakelt source-gerouteerde pakketten uit.
Aanvaard geen source-gerouteerde pakketten. Hackers gebruiken soms
sourcerouting om traffic te genereren die lijkt alsof ze vanuit je eigen
netwerk komen, maar die teruggerouteerd worden langs het pad dat ze kwamen,
zodat hackers je netwerk kunnen misleiden. Source routing wordt amper gebruikt
voor meer vriendelijke doeleinden, dus mag je die gerust uitschakelen.
Codevoorbeeld 2.4: Negeren van redirect-pakketten |
# /bin/echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects
|
Schakelt ICMP redirect uit. ICMP redirects kunnen gebruikt worden
om je routingtabellen aan te passen, mogelijk met kwade bedoelingen.
Codevoorbeeld 2.5: Bescherm tegen slechte errorberichten |
# /bin/echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
|
Schakel bescherming in tegen slechte errormessages.
Codevoorbeeld 2.6: Activeren van reverse path filtering |
# for i in /proc/sys/net/ipv4/conf/*; do
/bin/echo "1" > $i/rp_filter;
done
|
Nota:
Indien je IP forwarding aanschakelt, wordt dit al vanzelf gedaan.
|
Schakel reverse path filteren in. Dit verzekert je dat de pakketten legitieme
bronadressen gebruiken, en dit door automatisch binnenkomende pakketten te
weigeren wiens bronadres niet overeenkomt met de netwerkinterface waar ze op
toekomen. Dit heeft als voordeel dat IP spoofing niet mogelijk wordt, echter
kan het problemen opleveren bij assymetrische routering (pakketten die van
jouw host naar een andere host gaan nemen een andere weg dan deze die
van de andere host naar jouw host gaan) alsook indien je een non-routing host
gebruikt die verschillende IP adressen heeft op verschillende interfaces.
Codevoorbeeld 2.7: Loggen van alle voordien uitgeschakelde pakketten |
# /bin/echo "1" > /proc/sys/net/ipv4/conf/all/log_martians
|
Log gespoofede pakketten, source gerouteerde pakketten en redirect pakketten.
Codevoorbeeld 2.8: IP forwarding uitschakelen |
# /bin/echo "0" > /proc/sys/net/ipv4/ip_forward
|
Verzeker jezelf ervan dat IP forwarding af staat. Je wenst dit enkel voor
speciale doeleinden.
Al deze instellingen worden gereset nadat je gereboot hebt. Het is dus
aangeraden om het volgende script aan een runlevel toe te voegen en deze
uitvoerbaar te maken:
Codevoorbeeld 2.9: /etc/init.d/procparam |
#!/sbin/runscript
depend() {
before *
}
start() {
ebegin "Setting /proc options."
/bin/echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all
/bin/echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
/bin/echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route
/bin/echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects
/bin/echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
for i in /proc/sys/net/ipv4/conf/*; do
/bin/echo "1" > $i/rp_filter
done
/bin/echo "1" > /proc/sys/net/ipv4/conf/all/log_martians
/bin/echo "0" > /proc/sys/net/ipv4/ip_forward
eend 0
}
|
Voeg het nu toe aan de default runlevel door rc-update add procparam
default uit te voeren.
9.c. Grsecurity
De patch van Grsecurity zit in
de sys-kernel/hardened-sources maar is default uitgeschakeld.
Configureer je kernel zoals je normaal doet en configueer daarna de Grsecurity
opties. Een goede uitleg is beschikbaar op de Gentoo Hardened project pagina.
Recente Hardened-sources voorzien de 2.* versie van Grsecurity Grsecurity website
9.d. Kerneli
Kerneli is een patch die encryptie
toevoegt aan de huidige kernels. Door je kernel te patchen krijg je nieuwe
opties zoals Cryptografische sleutels, Digest algoritmen en Cryptografische
loopfilters.
Waarschuwing:
De kerneli patch is op dit moment niet beschikbaar in een stabiele versie
voor de laatste stabiele kernel, dus wees op je hoede als je die gebruikt.
|
9.e. Andere kernel patches
En er zijn er waarschijnlijk nog een ganse boel meer...
[ << ]
[ < ]
[ Home ]
[ > ]
[ >> ]
The contents of this document are licensed under the Creative Commons -
Attribution / Share Alike license.
|