Systeemdiensten en tcp-wrappers Het eerste waar je naar moet kijken, voordat je je Linux systeem op
ENIG netwerk aansluit, is wat voor diensten je moet bieden. Diensten
die je niet hoeft te bieden moeten uitgeschakeld worden, zodat je
één ding minder hebt om je zorgen over te maken en aanvallers
een plek minder hebben om te zoeken naar een lek. Er zijn een aantal manieren om diensten onder Linux uit te schakelen. Je
kunt kijken naar je /etc/inetd.conf bestand om te zien welke diensten
worden aangeboden door je inetd. Schakel degenen die je niet nodig
hebt uit door een # aan het begin van de regel te plaatsen en
vervolgens je inetd proces een SIGHUP te sturen. Je kunt ook diensten uit je /etc/services bestand verwijderen (of
een # aan het begin van de regel plaatsen). Dit heeft tot
gevolg dat lokale clients de dienst ook niet kunnen vinden (als je
bijvoorbeeld ftp verwijdert en probeert te ftp-en naar een remote
site vanaf die machine, zal dat mislukken en de boodschap "unknown service"
zal getoond worden). Het is meestal de moeite niet waard om diensten te
verwijderen uit /etc/services, omdat het geen aanvullende beveiliging
verschaft. Als een lokale persoon ftp zou willen gebruiken ondanks
het feit dat je een # aan het begin van de regel hebt geplaatst,
maken ze hun eigen client aan die de gebruikelijke FTP poort gebruikt en nog
prima werkt. Enkele diensten die je wellicht ingeschakeld zou willen laten zijn:ftptelnet (of ssh)mail, zoals pop-3 of imapidentd Als je weet dat je een bepaald pakket niet gaat gebruiken, kun je het ook
helemaal verwijderen. rpm -e naam van het pakket onder de
Red Hat distributie zal het gehele pakket verwijderen. Onder Debian doet
dpkg --remove hetzelfde. Bovendien moet je echt de rsh/rlogin/rcp utility's uitschakelen en tevens
voorkomen dat login (gebruikt door rlogin), shell (gebruikt door
rcp) en exec (gebruikt door rsh) worden gestart in
/etc/inetd.conf. Deze protocollen zijn extreem onveilig en zijn in
het verleden het doel geweest van misbruik. Je moet /etc/rc.d/rc[0-9].d (op Red Hat;
/etc/rc[0-9].d op Debian) controleren om te zien of er servers in
deze directory's gestart worden die niet nodig zijn. De bestanden in deze
directory's zijn eigenlijk symbolische links naar bestanden in de directory
/etc/rc.d/init.d (op Red Hat; /etc/init.d op Debian). Het
hernoemen van de bestanden in de init.d directory schakelt alle
symbolische links uit die naar dat bestand verwijzen. Als je een dienst
slechts voor een bepaald run level uit wilt schakelen, hernoem dan de
desbetreffende symbolische link door de hoofdletter S te vervangen
door een kleine letter s, zoals dit:
root# cd /etc/rc6.d
root# mv S45dhcpd s45dhcpd Als je rc bestanden in BSD-stijl hebt, moet je /etc/rc*
controleren op programma's die je niet nodig hebt. Bij de meeste Linux distributies worden tcp_wrappers geleverd die al je
TCP diensten "wrappen". Een tcp_wrapper (tcpd) wordt aangeroepen door
inetd in plaats van de echte server. tcpd controleert dan de
host die om de dienst verzoekt en start ofwel de echte server op of weigert
toegang vanaf die host. Met tcpd kun je de toegang tot je TCP
diensten beperken. Je moet een /etc/hosts.allow aanmaken en alleen
toevoegen in de hosts die toegang tot de diensten van je machine nodig hebben. Als je een dialup thuisgebruiker bent, stellen we voor dat je ze ALLEMAAL
weigert. tcpd logt ook mislukte pogingen om toegang tot diensten te
krijgen, dus dit kan je waarschuwen als je aangevallen wordt. Als je nieuwe
diensten toevoegt, moet je je ervan overtuigen dat je ze zo configureert dat
ze tcp-verbindingen gebruiken als ze zijn gebaseerd op TCP. Een
normale dialup gebruiker kan bijvoorbeeld voorkomen dat buitenstaanders
verbinding maken met zijn machine en toch de mogelijkheid hebben om post te
ontvangen en netwerkverbindingen naar het Internet te maken. Om dit te doen,
moet je het volgende aan je /etc/hosts.allow toevoegen: ALL: 127. En natuurlijk bevat /etc/hosts.deny: ALL: ALL wat externe verbindingen naar je machine voorkomt en je toch toestaat om
van binnenuit een verbinding te maken met servers op het Internet. Houd in gedachten dat tcp_wrappers alleen diensten die uitgevoerd worden
door inetd beschermt en een bepaald aantal anderen. Het is heel goed
mogelijk dat er ook andere diensten op je machine draaien. Je kunt netstat
-ta gebruiken om een lijst te zoeken met alle diensten die je machine
aanbiedt.