MENU
 
Home
Nieuwsbrief
GC in de media
SiteMap
 
 
Tips en Tricks
Excel
Word
Photoshop
PowerPoint
Surf Tips
Gmail
Android
iPad
Excel ClipTips
 
cursus Office 2016
Excel
Outlook
PowerPoint
Word
 
cursus Office 2013
Excel
PowerPoint
Word
Nieuw in Excel 2013
Nieuw in Word 2013
Nieuw in PowerPoint 2013
 
cursus Office 2010
Access
Nieuw in Excel 2010
Excel automatiseren
Excel
OneNote
Outlook
PowerPoint
Word
 
cursus Office 2007
Access
Excel
Outlook
PowerPoint
Publisher
Visio
Word
 
cursus Office
2000-2002-2003-XP
Access
Excel
PowerPoint
Outlook
Word
 
cursus Photoshop
Animatie
CS6
CS5
CS4
CS2 - CS3
Lightroom 3
Elements 6
Mask Pro
Nik Collection
 
cursus Dreamweaver
CS3
 
cursus Illustrator
CS4
 
cursus Flash
CS4
 
cursus Fireworks
CS4
 
cursus Paint Shop Pro
X en X2
 
cursus Premiere
Elements 7-8
 
cursus Joomla
Joomla 1.5
 
Sociale Netwerk sites
Facebook
LinkedIn
Twitter
 
iPad
Apps
 
Diversen
Celtx
CSS
DropBox
Firefox 3.6
GIMP
Internet Explorer 9
LIME
Linux
OpenSUZE
PREZI
ProShow Producer
YouTube
 
cursus Google
Agenda
Analytics
Gmail
Zoeken
Picasa 3
SketchUp
Chrome
Street View
 
cursus Windows
Live Movie Maker
Windows 10 nieuw
Windows 8
Windows 7
XP
Vista
 
cursus Office '97
Word
Excel
 
 

 

Cursus Linux   go to : Index - Vorige - Volgende
       
Les 18

Security

 
       
       
Linux is "by default" vrij goed beveiligd voor zowel local als remote exploits. Beveiligingslekken doen zich meestal voor op het programmaniveau. Een server is immers even veilig als zijn zwakste schakel.
 
Local exploits zijn beveiligingslekken waarbij een normale gebruiker op één of andere manier er in slaagt iets te doen op het systeem waarvoor hij/zij geen rechten heeft. Deze vorm is minder erg omdat locale gebruikers niet anoniem zijn (men kan gemakkelijk de schuldige opsporen).
De meeste systemen worden ook maar gebruikt door één persoon of meerdere personen die elkaar vertrouwen. Deze vorm van exploit is enkel belangrijk indien men locale gebruikers heeft die men niet kan vertrouwen.
 
Remote exploits zijn aanvallen op netwerkservices van een computer. Men probeert door bufferoverflows of programmafouten toegang te krijgen tot het systeem. Deze vorm van exploits zijn heel belangrijk voor computers die verbonden zijn met het internet (of een ander netwerk waar men de remote computers niet kan vertrouwen). Zit je in een locaal netwerk waar je de anderen kan vertrouwen, dan moet je je hierover ook geen zorgen maken.
De grootste bron van beveiligingslekken bevindt zich in de services. Er is niet veel dat een exploit op een service met beveiligingslek kan tegenhouden. Er zijn wel enkele dingen die kunnen helpen:
  • Gebruik enkel services die écht nodig zijn (zet de andere af via bijvoorbeeld
    Linuxconf - Control - ControlPan - Control Service Activity).
    Hoe minder services je hebt draaien hoe gemakkelijker het is om te patchen/upgraden.
  • De services die je hebt draaien in het oog houden. Indien er een beveilingingslek wordt ontdekt onmiddellijk patchen/upgraden.
  • In de recentere Linuxdistributies draaien remote services meestal als een gebruiker met weinig of geen rechten. Op die manier zal als de service wordt gekraakt de kraker niet meer toegang krijgen dan de service zelf (rechten waarmee een kraker niet veel kan mee doen dus). Indien je zelf programma's schrijft/compileert, denk dan hieraan.
 
Indien local exploits belangrijk zijn voor jouw systeem, volg dan net zoals bij de remote exploits de bugs&patches.
 
BELANGRIJK !
Kies altijd voor moeilijk te raden paswoorden!

De meeste inbraken gebeuren nog altijd via slecht gekozen paswoorden.
Gebruik dus nooit jouw geboortedatum, de naam van vriend(in), hond,... als paswoord.
Maak liefst gebruik van paswoorden waarin cijfers en speciale tekens zitten.
 
Firewall
Een bijkomend onderdeel in de beveiliging van een computer is een firewall. Hiermee kan je de beveiliging van de netwerktoegang beheren. Merk wel op dat een firewall in geen enkel geval een goede reden is om onveilige services te draaien! Indien je iemand toelating geeft om een service met een beveiligingsfout te gebruiken, dan zal de firewall tot niets dienen.
 
Met een firewall kan je wel services afschermen van bepaalde computers of netwerken.
Je kan ook met behulp van routing een beveiliging maken die een intern netwerk afschermd van de buitenwereld (internet,...).
 
De firewalls in Linux zijn bij iedere kernel versie aangepast geweest. Zo hebben we:
  • ipfwadm (kernel 2.0)
  • ipchains (kernel 2.2)
  • iptables (kernel 2.4)
De werking tussen ipfwadm en ipchains is ongeveer gelijkaardig. Het grootste verschil is de syntax. Om deze reden (en ook door de ouderdom van de 2.0 kernel) gaan we ipfwadm niet bespreken in deze documentatie.
In kernel 2.4 kan ipchains verder worden gebruikt in plaats van iptables.
Je moet hiervoor de ipchains.o driver laden.
 
Opbouw IPCHAINS (en IPFWADM)
De basis van ipchains is vrij logisch opgebouwd. Men heeft drie verschillende chains:
  • Input: binnenkomende pakketten worden hier opgevangen
  • Output: pakketten die vertrekken vanaf deze computer worden hier verwerkt
  • Forward: als onze computer een router is kunnen we hierin definiëren wat we willen routen
 
We kunnen ook de policy van zo'n chain wijzigen. Standaard staat de policy op ACCEPT (we laten alles door), maar we kunnen die ook op DENY zetten (alles weigeren). Dit is van belang als we een een firewall opbouwen. We kunnen dan kiezen voor "laat alles binnen, behalve x" of "laat niets binnen, behalve x".
 
We kunnen ook de policy van zo'n chain wijzigen. Standaard staat de policy op ACCEPT (we laten alles door), maar we kunnen die ook op DENY zetten (alles weigeren). Dit is van belang als we een een firewall opbouwen. We kunnen dan kiezen voor "laat alles binnen, behalve x" of "laat niets binnen, behalve x".
  • ACCEPT: ontvang de data, zonder filtering (dit wordt vooral gebruikt als de policy op DENY staat)
  • DENY: negeer de data die binnenkomt
  • REJECT: informeer de remote host dat zijn verkeer werd geweigerd
  • MASQ: voor het gebruik van NAT (Network Adress Translator). Wordt gebruikt bij het routen van verkeer vanaf een intern netwerk
  • internet. De router gaat de binnengekomen pakketten aanpassen en doorsturen
  • REDIRECT: doorsturen naar een andere poort/ander adres �� RETURN: de chain-policy beslis
 
In volgend diagram wordt werking van de chains voorgesteld.
 
Opbouw IPTABLES
IPTABLES is totaal verschillend van IPCHAINS. Inkomende pakketten die bedoeld zijn voor routing komen niet meer langs de input of output chain (zie diagram).
 
De forward chain is volledig gescheiden van input/output.
 
Als we verder kijken in het "design" van IPTABLES zien we dat er boven de chains ook nog TABLES zijn. Iedere table heeft een eigen reeks van chains. Er zijn zo 3 standaardtables:
  • filter: de normale filters met input, output en forward chains
  • nat: specifiek voor NAT. Bevat de chains prerouting, postrouting en output
  • mangle: het wijzigen van pakketten. Bevat prerouting en output
 
De benamingen van wat we met de pakketten kunnen doen zijn lichtjes gewijzigd:
  • ACCEPT (zie ipchains)
  • DROP: tegenhanger van DENY bij ipchains
  • QUEUE: stuur het pakketje naar "userspace" (waar hopelijk een programma klaarstaat om het op te vangen)
  • RETURN (zie ipchains)
Je kan ook nog altijd extensies zoals REJECT gebruiken, maar die worden nu gedefinieerd als optie.
 
Een simpel voorbeeld
Voor de precieze werking van ipchains of iptables kan je de man-pages raadplegen, maar we raden vooral de HOWTO's aan op http://www.linuxdoc.org of http://netfilter.samba.org.
 
Zowel de ipchains als iptables syntax wordt in dit hoofdstuk beschreven.
Om op te vragen welke rules actief zijn kan je volgende commando's gebruiken:
ipchains -L
of
iptables -L
 
Om de policy van een chain te wijzigen (bijvoorbeeld de input chain) gebruiken we:
ipchains -P input DENY
of
iptables -P INPUT DROP
 
Stel dat we één enkele poort willen blokkeren (blokkeren van poort 139 voor inkomend verkeer op een bepaalde ethernetkaart):
ipchains -A input -i eth0 -p TCP -d 0/0 139 -j DENY
of
iptables -A INPUT -i eth0 -p TCP --destination-port 139 -j DROP
 
Met de optie "-i" definiëren we voor welke netwerkkaart de rule geldig is (indien niet aangegeven is de rule geldig voor alle kaarten). Met de optie "-d" geef je een adres en poort op, omdat het ip-adres niet relevant is, definiëer je 0/0, wat alle adressen voorstelt (bij iptables moeten we geen adres gebruiken). "-j" zegt de netwerklaag wat er met het pakket moet gebeuren indien je een pakket ontvangt dat overeenstemt met de door jou opgegeven criteria. Met "-p" definiëren we het protocol, dit kan bijvoorbeeld ook UDP zijn. We kunnen ook de optie "-s" (source) gebruiken indien je wil filteren op afkomst van een pakket (in dit voorbeeld doen we dit niet).
 
Voor het invoegen/verwijderen van rules kan je volgende opties gebruiken (zowel ipchains als iptables):
  • A: append, toevoegen
  • D: delete, verwijderen
  • R: replace, wijzigen
 
Indien je een hele table of chain wil leegmaken kan je volgende commando's gebruiken:
ipchains -F of ipchains -F chain
iptables -F of iptables -F CHAIN
 
GUI tools
Uiteraard kan je de firewall ook wijzigen via GUI tools of automatische scripts.
 
Je kan onder andere in Linuxconf zo'n configuratie vinden. De meeste distributies leveren zelf tools hiervoor (sommige hebben zelfs een configuratie bij de installatie).
De meeste tools die je hiervoor vindt kunnen ook routing configureren.
 
De configuratie van de firewall vindt je in Config - Networking - Firewalling
 
Een aanrader is zeker Bastille-linux, te vinden op http://www.bastille-linux.org. Dit is een soort wizard script die aan de hand van vrij gemakkelijke vragen een firewall opstelt.
 
Na even vlug opgezocht te hebben op http://www.freshmeat.net vind je nog enkele andere voorbeelden zoals:
fwbuilder (te gebruiken met iptables), http://www.fwbuilder.org
 
Het programma is geschreven in C++ en GTK, maar er zijn RPM bestanden verkrijgbaar met de reeds gecompileerde code.
 
Een alternatief is Jfwadm. Dit is een configuratieprogramma voor ipchains dat geschreven werd in JAVA. Zie http://perso.libertysurf.fr/mickaelf/JFwadmin/
 
Firewall Appliance
Velen vinden het misschien handig om hun netwerk aan te sluiten op het internet, maar willen hun netwerk wel afgeschermen en beveiligen van de buitenwereld. Je kan dit door het installeren van een router/firewall, maar je kan ook een (oude) PC met Linux ombouwen tot router/firewall.
 
In dit gedeelte is het enkel de bedoeling om te laten zien hoe een basisconfiguratie van zo'n router eruit ziet.
 
Om een internetlijn te delen tussen meerdere gebruikers moet je NAT gebruiken (zie hoofdstuk IP). Door NAT kan je de private adressen op jouw netwerk laten vertalen door de router alsof ze van de router zelf komen. Hierdoor wordt het mogelijk om met meerdere computers gebruik te maken van één officieel internet adres.
 
Je kan de configuratie altijd uitbreiden tot bijvoorbeeld een proxy-server die vaak opgevraagde pagina's bewaardt, maar dit is optioneel (op trage computers zet je best geen proxy-server).
 
De hardware die je nodig hebt:
  • 1 PC, 386 of hoger (486 aangeraden)
  • 16Mb RAM (met oudere distributies kan men zo laag gaan als 4Mb, maar dit is niet aan te raden).
  • 2 netwerkkaarten
  • internetconnectie (telenet, ADSL, huurlijn, dial-up,...) en een intern netwerk
 
Je zet eerst routing aan. Je kan dit in Linuxconf - Client Tasks - Routing and Gateways - Set Defaults - knop Enable Routing of de optie "net.ipv4.ip_forward=1" definiëren in /etc/sysctl.conf (enkel voor RedHat en afgeleide distributies).
Je kan routing ook "at runtime" aanzetten door het commando "echo 1 > /proc/sys/net/ipv4/ip_forward" (bij deze methode gaat de informatie verloren bij een herstart van het systeem, dus hou er rekening mee dat je dit dan nogmaals moet uitvoeren).
 
Vervolgens moet je bij iedere start van het systeem volgende commando's draaien (we nemen aan dat 192.168.20.0 het netwerkadres van jouw interne netwerk is):
 
IPCHAINS
Bij iptables moeten we een aparte table gebruiken in plaats van de forward chain
iptables -P FORWARD DROP
iptables -A FORWARD -i eth1 -o eth0 -m state --state

ESTABLISHED,RELATED -j ACCEPT

iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.20.0/24 -j

MASQUERADE

 
eth0 = netwerkkaart aan LAN
eth1 = netwerkkaart aan internet
 
Nota: Dit is enkel een skelet van een configuratie, bijkomende configuratie van de firewall is aangeraden.
 
Er zijn ook GUI programma's die dit kunnen configureren (zie eerder in dit hoofdstuk).
 
Interne PC's
Op de interne PC's moet je het volgende configureren:
  • Default gateway = (interne) ip-adres van jouw router/firewall
  • DNS = DNS adressen van jouw ISP (of die van een andere geldige DNS server)
  • proxy server (enkel nodig bij Telenet omdat daar http-verkeer wordt geblokkeerd)
 
Voor meer gedetailleerde instructies mag je een bezoek brengen aan http://www.linuxdoc.org en zoeken naar de Masquarading HOWTO
 
 
 
 
Index - Vorige - Volgende
 
 
 
 

All courses now available in English:
www.swotster.com

copyright © 2012 - Swotster Ltd - Hong Kong - China