Gentoo Logo

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

1.  /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 1.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 1.1: 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 1.1: 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 1.1: 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 1.1: Bescherm tegen slechte errorberichten

# /bin/echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

Schakel bescherming in tegen slechte errormessages.

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

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

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

1.  Andere kernel patches

En er zijn er waarschijnlijk nog een ganse boel meer...

Upgedate op 3 augustus 2006

De originele versie van dit document was laatst geupdate om 17 december 2013

Donate to support our development efforts.

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