20 Tips om je Linux server te beveiligen (Deel 2)
Dit artikel is het vervolg op het artikel 20 Tips om je Linux server te beveiliging (Deel 1).
We gaan verder met mijn tips. In dit artikel bespreek ik de volgende 10 tips om je Linux server te beveiligen. Het is slim op mijn eerste artikel te lezen door op bovenstaande link te klikken.
#11 Iptables en TCPwrappers
Met Iptables kun je de firewall (netfilter) aanpassen van je Linux-kernel. Gebruik daarom de firewall om al het verkeer naar binnen en buiten te filteren en laat alleen het nodige verkeer door. Iptables is niet alleen om verkeer te filteren maar het kan ook voorkomen dat je server last heeft van DDoS aanvallen. Maak ook gebruik van TCPwrappers om het internet verkeer te filteren.
#12 /etc/sysctl.conf beveiliging
Bij het opstarten van je server worden een paar instellingen ingelezen die in sysctl.conf staan. Hier kun je een paar beveiligingsinstellingen invoeren. Een voorbeeld hiervan kan de volgende zijn:
# Turn on execshield
kernel.exec-shield=1
kernel.randomize_va_space=1
# Enable IP spoofing protection
net.ipv4.conf.all.rp_filter=1
# Disable IP source routing
net.ipv4.conf.all.accept_source_route=0
# Ignoring broadcasts request
net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.icmp_ignore_bogus_error_messages=1
# Make sure spoofed packets get logged
net.ipv4.conf.all.log_martians = 1
#13 Verschillende partities
Gebruik zoveel mogelijk verschillende partities. Zo zorg je ervoor dat alle bestanden apart staan en zo kun je ze nog beter beveiligen. Zorg ervoor dat de volgende systeemmappen op een aparte partitie staan voor maximale beveiliging:
/usr
/home
/var en /var/tmp
/tmp
Maak voor elke actieve service een aparte partitie aan; bijv. voor FTP en Apache. Bewerk daarna /etc/fstab en zet de volgende functies erbij:
- noexec – voorkomt dat er bestanden worden uitgevoerd.
- nodev – voorkomt dat het als een device wordt gezien.
- Nosuid – voorkomt SUID/SGID toegang op de partitie.
Hieronder een voorbeeld van wat je in de /etc/fstab kunt zetten:
/dev/sda5 /ftpdata ext3 defaults,nosuid,nodev,noexec 1 2
#13.1 Disk Quotas
Beperk de opslagruimte voor gebruikers (discquota). Je kunt dit als volgt toepassen:
- Gebruik quotas per file system, bewerk /etc/fstab;
- Mount ze opnieuw;
- Creëer een quota-database en genereer diskusage table;
- Lees hier meer over quotas toepassen.
#14 Schakel IPv6 uit
Voor IPv6 zijn er nog geen goede tools beschikbaar om het te beveiligen en daarom is het het doelwit van vele hackers; het beste is dan ook om IPv6 uit te schakelen. Op vele distro’s is het standaard ingeschakeld en crackers gebruiken het om data over het netwerk te sturen. Zo maken ze het moeilijk voor systeembeheerders om toezicht op de netwerk te houden.
#15 SUID en SGID binaries
Alle bestanden waar SUID/SGID op is ingeschakeld kunnen misbruikt worden, en dat is niet wat we willen. Als een uitvoerbaar bestand een probleem of een bug heeft kan het misbruikt worden en daarom is het verstandig om te weten welke bestanden uitvoerbaar zijn. Je kunt hiervoor het “find” commando gebruiken.
#Vind alle User ID bestanden:
find / -perm +4000
# vind alle Gourp ID bestanden:
find / -perm +2000
# Of Combineer ze in een commando
find / \( -perm -4000 -o -perm -2000 \) -print
find / -path -prune -o -type f -perm +6000 -ls
#15.1 World-Writable bestanden
World-Writable bestanden zijn bestanden die als het ware door de hele wereld aangepast kunnen worden. Daarom moet je bestanden altijd toewijzen aan gebruikers of groepen. Als iemand bij een World-writable bestand komt kan hij alles aanpassen. We gebruiken hier weer het “find” commando om world-writable bestanden te vinden.
find /dir -xdev \( -nouser -o -nogroup \) -print
#16 Gebruik een gecentraliseerde Authentication Service
Gebruik een gecentraliseerde authenticatie service. Dit maakt het makkelijker en veiliger om je gebruikers en groepen te beheren. Je maakt het anders behoorlijk moeilijk voor jezelf door je gebruikers lokaal te beheren en heb je geen goed overzicht van alle gebruikers. Je kunt dus het beste al je Linux-accounts en athenticatiegegevens op een plek hebben zodat je een beter overzicht hebt. Ze kunnen dan ook vanaf een centraal punt gesynchroniseerd worden met andere servers. Gebruik niet NIS voor gecentraliseerde authenticatie maar gebruik openLDAP voor clients en servers.
#16.1 Kerberos
Je kunt Kerberos gebruiken voor het authenticatiegedeelte. Door middel van kerberos kunnen gebruikers op een veilige manier inloggen op het netwerk. Kerberis zorgt ervoor dat alle pakketjes die over het netwerk gaan gecodeerd worden met behulp van je logingegevens. Kerberos gebruikt symmetrische encryptie om je te authenticeren en nadat je ingelogd bent ordt er een sessie voor je aangemaakt. Wanneer je uitlogt wordt de sessie beeindigd.
#17 Logging en auditing
Het is altijd belangrijk om te weten wat er op je server gebeurd. Dit kun je doen door goed je logs bij te houden. Zo kun je ook hack/crack pogingen detecteren. Standaard worden deze logbestanden bijgehouden op de locatie /var/log/. Je kunt zelf naar programma’s zoeken die niet goed geconfigureerd zijn en zo gevoelig zijn om te worden gehackt.
#17.1 Monitor verdachte logbestanden met Logwatch/Logcheck
Je kunt gebruik maken van programma’s zoals Logwatch en Logcheck om je log bestanden te lezen. Dit soort tools maken het makkelijker om je logbestanden te lezen. Je kunt zelfs instellen dat je emails ontvangt wanneer er verdachte logbestanden worden geconstateerd.
#17.2 Systeem Accounting met auditd
Met auditd kun je je server auditen (testen). Tijdens het opstarten van je server wordt het bestand “/etc/audit.rules” ingelezen. Je kunt ook het bestand /etc/audit.rules aanpassen, bijvoorbeeld waar alle log bestanden moeten worden opgeslagen. Met auditd kun je de volgende gegevens ophalen en testen:
- Systeem opstart en afsluit evenementen (reboot / halt);
- Datum en de tijd van het evenement;
- Gebruiker die verantwoordelijk is voor een evenement (zoals toegang vragen naar bepaalde bestanden);
- Type van de evenement (bewerk/toegang/verwijder/update van bestanden en commando’s);
- Success/falen van een evenement;
- Vinden wie aanpassingen heeft toegebracht aan de netwerk instellingen;
- Evenementen van gebruikers/groep aanpassingen;
- Zien wie aanpassingen heeft aangebracht aan bestanden.
#18 OpenSSH server
Ik raad het aan om gebruik te maken van OpenSSH. Zoals ik eerder zei kunnen alle gegevens over het netwerk onderschept en zelfs gemanipuleerd worden. Met behulp van OpenSSH is je verbinding gecodeerd en hebben Man-in-the-middle aanvallen weinig zin.
#19 Installeer en gebruik een IDS
een IDS (intrusion detection system) detecteerd aanvallen van buitenaf zoals DDoS aanvallen. IDS monitort je netwerkverkeer. IDS voorkomt niks, het waarschuwt het alleen. Als je aanvallen wilt voorkomen moet je ook gebruik maken van een IPS (Intrusion Prevention System).
Je kunt bijvoorbeeld Snort gebruiken als IDS. Snort maakt gebruikt van packet logging en controleert real-time traffic binnen je netwerk.
#20: Beveilig bestanden, mappen en email
Linux komt standaard met een goede beveiliging voor onbevoegde personen door middel van File permissions toe te passen. Met fysieke toegang op de computer kun je bestanden verplaatsen en toch toegang krijgen tot bepaalde bestanden. Je kunt je makkelijk beveiligen tegen dit soort aanvallen met de volgende tools:
- Gpg commando om je bestanden te encrypten;
- Linux passwords om je bestanden te beveiligen door middel van OpenSSL en Mcrypt;
- Ecryptfs om directories te encrypten;
- TrueCrypt om complete harde schijfen te encrypten (Windows/Mac/Linux);
- Encrypted swap.
#20.1 Beveilig mailservers
Maak gebruik van SSL-certificaten en GPG-sleutels voor je emailcommunicatie op je mailserver en clients.
Heb je een opmerking of andere reactie? Laat het me weten via het contactformulier of door een reactie te plaatsen onder dit bericht.

Leuke artikel? deel het!
deel het op Facebook Tweet Dit!