Hoofdstuk 4 - Netwerkinfrastructuur
31
!" $#
E-business oplossingen moeten bruikbaar zijn voor de meeste aspecten van een onderneming. Hierdoor moeten op elk niveau de beschikbare technologieën overwogen en geëvalueerd worden. Dit eerste deel bespreekt een geschikte netwerkinfrastructuur. Deze vormt het fundament waarop de middleware, primaire en secundaire applicaties functioneren. Middleware wordt besproken in het vijfde hoofdstuk. Primaire en secundaire applicaties worden besproken in het zesde hoofdstuk.
%'& ()+*-,/.021
De netwerkinfrastructuur is de basis waarop e-business functioneert. Deze infrastructuur richt zicht op services die een hoge beschikbaarheid vereisen, en mogelijkheden om deze services te beschermen. Er werd een onderscheid gemaakt tussen Webservers, Database servers, File en Print servers, Mailservers, Proxy servers, DNS servers en Directory servers. Deze worden in het eerste deel van dit hoofdstuk besproken. De beveiliging van de netwerkinfrastructuur kan geschieden door middel van firewalls, cryptografie en beveiligingsgereedschappen tegen virussen. Deze worden besproken in het tweede deel van dit hoofdstuk. Case voorbeeld: Koninklijke Militaire School (KMS) De Koninklijke Militaire School (www.rma.ac.be) gebruikt Linux voor haar netwerk. Hiervoor wordt gebruik gemaakt van ‘standaard’ PC’s, uitgerust met Red Hat Linux 7.x. Er wordt gebruik gemaakt van Apache, Sendmail, Bind, Wu-ftpd, Squid, nfsd, MySQL, Samba, Netatalk en Lprng. De beveiliging van het netwerk werd gerealiseerd door firewalls op basis van Iptables en Ipchains, toegangscontrole op alle servers door tcpd, en geëncrypteerde communicatiekanalen met ssh. Linux werd gekozen omwille van de stabiliteit van de toepassingen die erop draaien en omwille van de technische functionaliteit van deze toepassingen. Bron: Xavier Neyt, Electrical Engineering Dpt (Royal Military Academy), bereikbaar op
[email protected]
354!67.!8/9": ,/( GNU/Linux is voortgekomen uit het Internet, en is vandaag verantwoordelijk voor vele services op dit Internet. De synergie tussen het Internet en Open Source software had tot gevolg dat Open Source software steeds beter werd en zodoende ook betere services kon aanbieden op het Internet. Hierdoor is het niet verwonderlijk is dat GNU/Linux op deze markt van open standaarden succesvol is. Dit blijkt eveneens uit onderzoek1 van IDC waarin blijkt dat Linux hoofdzakelijk gebruikt voor het bouwen van een netwerkinfrastructuur. De netwerkinfrastructuur richt zicht op services die een hoge beschikbaarheid vereisen, en mogelijkheden om deze services te beschermen. Er werd een onderscheid gemaakt tussen Webservers, Database servers, File en Print servers, Mailservers, Proxy servers, DNS servers en Directory servers. 1
Dan Kusnetzky en Al Gillen, Linux: A Jouney into the Enterprise, IDC, beschikbaar op www.redhat.com
31
Hoofdstuk 4 - Netwerkinfrastructuur
32
Deze services zijn vrij beschikbaar onder Linux, en kenmerken zich door hun betrouwbaarheid, stabiliteit en mogelijkheden tot aanpassing aan specifieke behoeften. Door de modulariteit van Linux kan de functionaliteit en beveiliging van deze infrastructuur aangepast worden aan specifieke behoeften. Bovendien maken deze Open Source services gebruik van open standaarden waardoor de infrastructuur vrij is van restricties en de kans op vendor lock-in afneemt. Een infrastructuur op basis van Linux betekent overigens niet dat de eindgebruiker ook met Linux overweg moet kunnen: zowel Linux, Windows, Macintosh als andere clients kunnen gebruik maken van deze open infrastructuur door middel van protocollen zoals Samba en Netatalk. Een dergelijke infrastructuur zal bovendien de Total Cost of Ownership (TCO) aanzienlijk doen dalen: hoge licentiekosten die gepaard gaan met een gelijkaardige commerciële infrastructuur op UNIX of Windows NT/2000 zijn op Linux immers aanzienlijk lager. Op vlak van Database servers is de situatie echter anders. Databases zijn misschien onderhevig aan de meeste weerstand tegen Open Source. De beveiliging van data is immers een gevoelig onderwerp, waardoor ondernemingen vrijwel verplicht zijn te vertrouwen op commerciële databases met grote naambekendheid voor hun bedrijfskritische databases. Dit is waarschijnlijk ook de reden waarom database leveranciers relatief snel gemotiveerd waren om hun producten op het Linux platform beschikbaar te stellen. De beveiliging van de netwerkinfrastructuur kan geschieden door middel van firewalls, cryptografie, en beveiligingsgereedschappen tegen virussen. De meeste beveiligingsgereedschappen tegen virussen richten zich op het detecteren en het zuiveren van data die verzonden wordt naar Windows hosts, wanneer deze verbonden zijn met een Linux infrastructuur. Wat firewalls en cryptografie betreft, biedt GNU/Linux zowel pregeconfigureerde distributies als zogenaamde bouwpakketten die zich kenmerken door een ‘do it yourself’flexibiliteit. Hierdoor kan de beveiliging volledig aangepast worden aan de behoeften.
32
Hoofdstuk 4 - Netwerkinfrastructuur
33
!" $#"%% &! ' Services met hoge beschikbaarheid (cfr. high availability) zijn diensten die dagelijks 24 uur, zeven dagen per week, het hele jaar door beschikbaar moeten zijn. Het is moeilijk om een complete bespreking te geven van deze services omdat er op één machine soms meerdere services of diensten (“servers” in Linux terminologie) tegelijk draaien. Dit deel tracht de belangrijkste services te bespreken. Belangrijk is dat deze servers allemaal redundant zijn opgesteld. Er kan een onderscheid gemaakt worden tussen Webservers, Database servers, File en Print servers, Mailservers, Proxy servers, DNS servers en Directory servers.
()+*,)+*.-0/21435/2678/2693
Een Web server maakt gebruik van het client/server model en het Hypertext Transfer Protocol (HTTP) voor het versturen van Web pagina’s naar de browser (HTTP client). Een Web server spreekt dus dezelfde taal (HTTP) als de browsers. Waar browsers zich voornamelijk toespitsen op het afbeelden van tekstuele en grafische data, zal een Web server zich richten op het manipuleren en verzenden van data naar de browsers op de meest efficiënte en schaalbare manier. In het begin van het internet tijdperk verstrekten Web servers voornamelijk statische inhoud. Later werd hun interne architectuur soepeler zodat hun functionaliteit uitgebreid kon worden. De huidige trend naar dynamische data generatie, versterkt door de trend naar personalisatie van de inhoud, heeft de Web server getransformeerd van een efficiënte front-end naar een complexe logische container (cfr. Application servers2) en een gestandaardiseerd communicatiekanaal (zogenaamde communication buses2 zoals CORBA en DCOM). Vandaag is Apache (www.apache.org) de referentie Web server met een marktaandeel van 63% (www.netcraft.com). Apache vormt de basis voor commerciële producten zoals IBM Websphere (www.ibm.com/linux) en Red Hat Stronghold (www.redhat.com/software/apache/stronghold). Regelmatige studies van Apache veiligheidsadviseurs tonen aan dat het laatste ernstige probleem met de Apache Web server dateert van januari 1997. Onder bepaalde omstandigheden kon een aanvaller een willekeurige code uitvoeren op de server. Dit probleem was te wijten aan een buffer overflow in de Apache cookie module en werd hersteld in Apache 1.1.3. Sindsdien hebben er zich geen noemenswaardige problemen meer voorgedaan. Case voorbeeld: Amazon bespaart $17 miljoen met Linux Door over te gaan op Linux heeft de webwinkel Amazon in het derde kwartaal van 2001 zijn technologie-uitgaven met $17 miljoen weten te drukken tot $54 miljoen. Hoewel ook een deel van deze besparing te danken is aan lagere telefoonkosten, is het grootste deel ervan gerealiseerd door dure UNIX-systemen in het front-end te vervangen door HP-servers met Red Hat Linux erop. Volgens IDC-analyst Dan Kusnetsky bedraagt de Total Cost of Ownership (TCO) van Linux-servers maar een vijfde tot de helft van commerciële Unix-systemen. De webpagina’s van Amazon worden vanaf nu geserveerd door Red Hat Linux Stronghold Web server, een derivaat van het Open Source Apache project. Amazon was eerder reeds overgestapt op Red Hat gebaseerde machines voor beveiligde betalingen (cfr. e-procurement). Bron: http://news.com.com/2100-1001-275155.html?legacy=cnet 2
Zie hoofdstuk 5: Middleware
33
Hoofdstuk 4 - Netwerkinfrastructuur
34
Een eerste, maar niet voldoende, reden waarom Apache een succes is geworden, is de beschikbaarheid van de broncode. Het geheim van Apache – in aanvulling op solide code en nauwkeurig onderzoek - ligt in een minimalistisch design, zorgvuldige aandacht voor detail en een configuratieproces waardoor het eenvoudig is om als administrator te weten wat er gebeurt. Apache installeert een klein aantal server-extensies, hoewel bepaalde distributies meerdere extensies toevoegen waardoor er zich problemen kunnen voordoen. Elke extensie houdt immers een potentieel beveiligingsrisico in. De standaard Apache, die gecompileerd is met de broncode, installeert geen enkele Apache module (extensie). Men krijgt enkel een basis Web server. Deze basis Apache kan vervolgens uitgebreid worden volgens de behoeften van de onderneming. Bovendien draaien alle Apache componenten als ‘nonprivileged users’. Als er zich een buffer overflow voordoet is de schade beperkt. Tenslotte plaatst Apache alle configuratie-instellingen in één bestand, httpd.conf, dat een gecentraliseerde configuratie verstrekt.
( +) ,* ) 1 53 / 3 2/ 6 87 / 6 3
Vandaag zijn nagenoeg alle databases beschikbaar voor Linux, met uiteraard uitzondering van Microsoft SQL3. In dit deel worden de belangrijkste databases kort besproken. Hierbij wordt een onderscheid gemaakt tussen Open Source databases en commerciële databases. Open Source databases voor Linux Sedert Linux de harten van commerciële database leveranciers heeft weten te veroveren, blijven de Open Source databases steeds krachtiger worden. Hieronder volgt een gedeeltelijke lijst van Open Source databases. MySQL (www.mysql.com) is ongetwijfeld het meest gebruikte relationele databasemanagementsysteem (RDBMS). Het is snel, betrouwbaar en Open Source. Een vergelijking op de benchmark-pagina van de MySQL-website laat zien dat deze RDBMS zonder meer de vergelijking aankan met commerciële producten als DB2, Informix, en Oracle, hoewel deze laatsten waarschijnlijk beter overweg kunnen met zeer grote databases. Dit wil overigens niet zeggen dat MySQL niet wil schalen. Uit de praktijk blijkt dat voor veel Webapplicaties de omvang van de databases vrij bescheiden blijft, zodat MySQL zonder twijfel inzetbaar is. De MySQL 3.x-serie is dan ook al jaren één van de echte werkpaarden van het internet. Case voorbeeld: handy.de en Yahoo! Finance gebruiken MySQL Yahoo! Finance gebruikt MySQL voor de opslag van data die gebruikt wordt voor het weergeven van nieuwskoppen, beurskoersen en dergelijke. Het betreft hier tabellen van meer dan 25 GB met ongeveer 260 miljoen records. Bij onze oosterburen is ‘handy.de’ nummer drie op de e-commerce ranglijst, na ‘bol.de’ en ‘amazon.de’. De portal kent ruim twee miljoen geregistreerde gebruikers, die allemaal beheerd worden met behulp van MySQL in een cluster van vier Linux servers. Bron (Yahoo! Finance): http://www.mysql.com/articles/us/yahoo_finance.html Bron (handy.de): http://www.mysql.com/articles/us/handy.de.html PostgreSQL (www.postgresql.org) behoort samen met MySQL tot één van de meest populaire databases op het Linux platform. PostgreSQL is een krachtige en complete SQL implementatie en is eveneens Open Source. Andere SQL gebaseerde Open Source databases zijn onder andere SAP DB (www.sapdb.org) en Firebird (firebird.sourceforge.net). Deze zijn het resultaat van de ‘open sourcing’ van respectievelijk SAP AG database en Borland Interbase. 3
Microsoft SQL server is niet beschikbaar voor Linux. Er is echter een Open Source project dat een socket schrijft voor een Microsoft SQL server waardoor Linux clients een applicatie kunnen laten verbinden met deze socket. Meer informatie hieromtrent is terug te vinden op odbcsocket.sourceforge.net.
34
Hoofdstuk 4 - Netwerkinfrastructuur
35
Commerciële databases voor Linux De meeste commerciële databases zijn eveneens beschikbaar op Linux: IBM DB2 (www.software.ibm.com/data/db2/linux), Informix (www-4.ibm.com/software/data/informix), Oracle (www.oracle.com), Sybase (www.sybase.com/linux), Ingres II database (www.cai.com), Borland Interbase (www.inprise.com/interbase) Adabas D (www.softwareag.com), Frontbase (www.frontbase.com) en Software AG Tamino XML Server (www.softwareag.com/tamino). Case voorbeeld: Kiala Kiala (www.kiala.com) is een Belgisch e-Logistics bedrijf dat zich specialiseert in een afhaalservice. De klant bestelt per catalogus, via televisie of Internet. Wanneer de bestelde goederen beschikbaar zijn, wordt de klant verwittigd en kan deze de goederen afhalen in het op voorhand gespecificeerd afhaalcentrum. Onder de Partners van Kiala.com bevinden zich bijvoorbeeld La Redoute, Yves Rocher, Quelle, 3 Suisses, Gouden Gids Shopping en Proxis.be. Kiala maakt hierbij gebruik van een Oracle database op Linux. Het uitgangspunt was pragmatisch: gebruik “best of breed” componenten om te komen tot een “best of breed” systeem dat de verwachtingen van de onderneming inlost. Oracle werd gekozen boven Open Source databases, zoals MySQL en PostgreSQL, omwille van de uitgebreide functionaliteit die (nog) niet terug te vinden is in Open Source databases. Bron: Jasper Nuyens, President & CEO, Life (www.life.com)
()+*,) /4/ 6 3 /267 /2693
Vele organisaties maken gebruik van meerdere besturingssystemen zoals UNIX/Linux, Windows en Macintosh. File en Print servers helpen bij het integreren van deze verschillende ‘werelden’ zodat het bijvoorbeeld mogelijk wordt een Windows bestand te lezen op een Linux machine of een Macintosh bestand af te drukken op een Linux printer. Linux kan dienst doen als File Server voor UNIX, MS-Windows, Macintosh en Novell gebaseerde systemen door gebruik te maken van Netatalk en Samba. Een meer algemene File server is terug te vinden bij wu-ftpd (www.wu-ftpd.org). Netatalk (netatalk.sourceforge.net) is een vrije implementatie van het Appletalk protocol en verzorgt connectiviteit met Macintosh. Samba (www.samba.org) is een suite die de connectiviteit verzorgt met SMB/CIFS clients zoals Windows 95/98/ME, Windows NT, Windows 2000, en LanManager clients. Recente benchmark tests4 wezen bovendien uit dat een dergelijke File en Print server ongeveer dubbel zo krachtig is als de Windows2000 File en Print servers die het nabootst. Het aanbieden van een Print Service kan eveneens met behulp van Linux gebeuren. Linux omvat print spooling software. Lprng (www.lprng.com) is een algemene Print server. De Samba en Netatalk pakketten, die eerder reeds vermeld werden, leveren eveneens Print Server mogelijkheden. Dit betekent dat printers verbonden kunnen zijn op de seriële of parallelle poort van Linux systemen, of op Ethernet en beheerd door een Linux systeem. Een lijst met printers die ondersteund worden door Linux is terug te vinden op www.linuxprinting.org/database.html. Dergelijke services bieden de mogelijkheid om binnen eenzelfde onderneming gebruik te maken van verschillende besturingssystemen, zonder hierbij mogelijkheden tot samenwerking op te offeren. Een dergelijke infrastructuur zal bovendien de Total Cost of Ownership (TCO) aanzienlijk doen dalen: hoge licentiekosten die gepaard gaan met een gelijkaardige commerciële infrastructuur op UNIX of Windows NT/2000 zijn op Linux immers aanzienlijk lager. 4
www.itweek.co.uk/News/1131114
35
Hoofdstuk 4 - Netwerkinfrastructuur
36
Case voorbeeld: Linux Print Systeem bij Cisco Systems, Inc Cisco, leverancier van netwerk hardware zoals routers en switches, gebruikt een redundant systeem van 50 print servers met Linux, Samba en Netatalk. Dit systeem print naar ongeveer 1.600 printers wereldwijd en bedient daarmee ongeveer 10.000 UNIX, Windows en Macintosh gebruikers, waarvan enkele in bedrijfskritische omgevingen. De software die hiervoor geschreven werd door Cisco is beschikbaar op ceps.sourceforge.net (Cisco Enterprise Print System). Bron: Damian Ivereigh (
[email protected]), Unix systeembeheerder en ingenieur bij Cisco.
()+*,) (
35/2678/2693
Een Mail server leidt het elektronische berichtenverkeer in goede banen. Er zijn twee soorten mail-servers: één voor het versturen van berichten (de SMTP-server) en één voor het ontvangen van berichten (de IMAP of POP-server). Sendmail (www.sendmail.org) is de meest populaire UNIX-gebaseerde SMTP implementatie. Wanneer een Sendmail server een bericht ontvangt, probeert Sendmail dit bericht onmiddellijk te leveren aan de geadresseerde. Wanneer deze ontvanger niet bereikbaar is, wordt het bericht opgeslagen in een wachtrij. Sendmail beheert eveneens de mailboxes (strikt gezien wordt er een extern programma gebruikt, bijvoorbeeld mail of procmail). Om deze mailboxes dan te raadplegen is er client software nodig (de MUA of Mail User Agent). Indien de client het Sendmail mailboxformaat verstaat (bijvoorbeeld mutt en pine), is er geen bijkomende software nodig. Wanneer er echter gewerkt wordt met een tussenprotocol, zoals POP3 of IMAP, is er bijkomende software nodig, bijvoorbeeld Fetchmail of Qpopper. Qpopper (www.qpopper.org) is een POP3 server. Fetchmail (www.tuxedo.org/~esr/fetchmail/) is een mailprogramma dat in staat is om mail te leveren via POP3 of IMAP. Case voorbeeld: Belgacom Skynet Belgacom Skynet gebruikt Sendmail en Qpopper op Linux, gecombineerd met Apache als Webserver en Tomcat. Doorslaggevend bij deze keuze was de performantie, de wereldwijde assistentie, de beschikbaarheid van de broncode en het feit dat het product gratis is. Bron: www.m-tech.ab.ca/linux-biz/skynet.html en Jean Marie Van Lierde (
[email protected]) In plaats van een eigen e-mail oplossing te maken, kan men een pre-geconfigureerde e-mail server overwegen. SuSE Linux eMail Server III (www.suse.de) is een e-mail totaaloplossing op basis van Open Source. Het ondersteunt alle relevante Internet standaards zoals IMAP, LDAP, SMTP, POP3, TLS en SASL. Bovendien biedt deze mail server een web front end via SKYRiX Web Groupware (www.skyrix.de).
( +) ,* ) 6 3 2/ 6 7 2/ 96 3
Proxy servers slaan geraadpleegde Internet bestanden tijdelijk lokaal op zodat deze nog gedurende een bepaalde tijd beschikbaar blijven. Als voor een tweede maal dezelfde Internet bestanden opgevraagd worden, zorgt de Proxy server ervoor dat deze van een eigen, lokale server komen in plaats van het ‘trage’ internet. Dit verkleint de behoefte aan bandbreedte en vermindert toegangstijden voor dezelfde data voor de volgende gebruiker. Het meest gebruikte proxy-programma is Squid (www.squid-cache.org). Squid is een intelligente en snelle proxy-server die uitzoekt of de Internet-site inmiddels veranderd is en bij eventuele veranderingen slechts de veranderde documenten via het internet binnenhaalt. De onveranderde zaken worden lokaal, via een eigen server, aangevoerd.
36
Hoofdstuk 4 - Netwerkinfrastructuur
37
De World Wide Web Offline Explorer of Wwwoffle (www.gedanken.demon.co.uk/wwwoffle) is een goede off-line proxy-server, die wanneer men off-line is en een pagina opzoekt die niet in de cache staat, vraagt of hij hem moet downloaden zodra men de volgende keer on-line gaat. Men kan ook pagina' s laten monitoren als men wilt dat ze up -to-date blijven. Dit alles is gemakkelijk in te stellen met een zelf meegeleverde Web interface.
()+*,)
3 / "3/2678/ 6 3
DNS staat voor Domain Naming System en is een gedistribueerde database, verspreid over het Internet, waarin alle namen en bijbehorende IP-adresssen van hosts op het Internet te vinden zijn. Elke computer op een netwerk heeft een uniek IP adres. DNS converteert namen naar nummers en andersom. Deze conversie is niets anders dan een "tabel" met een kolom namen (zoals ftp.linux.org) en een kolom adressen (zoals 199.249.150.4). De meest populaire DNS server is named (www.isc.org/products/BIND). Dit programma is onderdeel van BIND (Berkeley Internet Name Daemon) en is beschikbaar onder BSD (Berkeley Software Distribution) licentie, dewelke eveneens de broncode vrij beschikbaar stelt.
( +) ,* )
6 /
6 . 3 2/ 6 87 /
63
Beveiligingscertificaten – zoals we in het volgende deel zullen zien – helpen ons met de vraag “wie is die persoon,”. Op vragen zoals “Tot welke groep behoort deze persoon?” blijven beveiligingscertificaten het antwoord schuldig. Deze vragen kunnen nochtans nuttig zijn voor een service die instaat voor het bepalen van toegangspermissies of het verstrekken van functionaliteit voor een bepaalde doelgroep. Andere vragen kunnen zich richten op het vinden van een bepaalde server in het netwerk of het vinden van het e-mail adres van een bepaalde gebruiker. Deze vragen kunnen beantwoord worden door Directory servers. In de meeste organisaties heeft elke gebruiker meerdere user IDs en paswoorden om toegang te krijgen tot verschillende delen van het netwerk. Het is aan de gebruiker om deze te onthouden, maar omdat paswoorden gemakkelijk vergeten worden is het aanlokkelijk om eenvoudige paswoorden te kiezen. Dit komt de beveiliging uiteraard niet ten goede. Het zou veel beter zijn om voor elke gebruiker één user ID en één paswoord te hebben. Dit is het moment waar directories naar voor komen. De directory verstrekt single sign-on door user ID en paswoord in één locatie van het netwerk te plaatsen en de gebruiker éénmaal te authentificeren. Dit komt zowel de beveiliging als het gebruiksgemak ten goede. De taak van de systeem administrator wordt eveneens eenvoudiger door het elimineren van redundantie in de user database: er is immers enkel de directory. Een directory kan tevens gebruikt worden voor het beheren van e-mail adressen en het beheren van bronnen in het netwerk. Tenslotte kunnen certificaten ook een deel worden van de directory. Dit hoeft niet, maar het is wel aan te raden omdat certificaten gekoppeld zijn aan één entiteit (namelijk de gebruiker). Eén van de eerste directory service mechanismen was Novell NDS. NDS draait op vele platforms, waaronder Linux. De meest populaire directory service voor UNIX/Linux is het Network Information Service (NIS) protocol dat ontwikkeld werd door Sun Microsystems. NIS beantwoord echter steeds minder aan hedendaagse behoeften, waardoor de overstap op LDAP (www.openldap.org) onvermijdelijk wordt. Het Leightweight Directory Access Protocol (LDAP) is een indexeringssysteem, vergelijkbaar met een telefoongids of de directories in een bestandssysteem zoals we dat gewoon zijn. Het verleent snel toegang tot data op een gestandaardiseerde manier. LDAP heeft een flexibel data model dat gebaseerd is op open standaarden die toegankelijk zijn over TCP/IP. Het wordt algemeen aanvaard als een standaard. Bovendien heeft LDAP een ingebouwde beveiliging die gebruik maakt van Access Control lists (ACL) en die ondersteuning biedt voor beveiligingstechnologieën als SSL en Kerberos (zie verder). 37
Hoofdstuk 4 - Netwerkinfrastructuur
4
38
" "
In de wereld van globale datacommunicatie, goedkope Internetverbindingen en het hoge tempo van soft- en hardware ontwikkeling, wordt beveiliging een steeds belangrijker onderwerp. Beveiliging is nu een basisvereiste omdat globale ICT inherent onveilig is. Bij het bepalen van een beveiligingsbeleid moet er een balans gevonden worden zodat het systeem nog steeds bruikbaar is en toch veilig is voor de doeleinden. Een eerste aanzet tot beveiliging werd reeds gegeven in het hoofdstuk ‘Elementaire vereisten’. In dit deel wordt er aandacht besteed aan firewalls, cryptografie en beveiligingsgereedschappen tegen virussen, wormen en Trojaanse paarden. Beveiliging in een e-business context houdt echter meer in dan enkel deze aspecten. Er moet bijvoorbeeld ook aandacht besteed worden aan fysieke beveiliging5. Deze aspecten bevinden zich echter buiten de scope van deze thesis.
()2)+* 6 23 3/ 6
3/
6 /
/ - 6 /
Virussen zijn kwaadaardige computerprogramma’s die worden ontworpen en geschreven om zich te verspreiden. Virussen kunnen een computer binnendringen zonder toestemming van de gebruiker en zonder dat hij het zelf merkt. Technisch gesproken hecht een klassiek virus zich aan uitvoerende programma’s en kopieert het zich automatisch van het ene bestand naar het andere dat de nietsvermoedende computergebruiker opent. Virussen vermenigvuldigen niet enkel zichzelf, ze kunnen ook – schadelijke of onschadelijke – acties uitvoeren, variërend van een tekst die op het scherm verschijnt, tot het permanent wissen van alle gegevens. Uit de praktijk is gebleken dat Linux nauwelijks gevoelig is aan virussen. Het bereik van een virus is immers beperkt tot de ruimte van de gebruiker die het virus uitvoert. Hierdoor is het moeilijk voor een virus om diep in het systeem door te dringen. Er ontstaat natuurlijk wel een probleem wanneer het virus uitgevoerd wordt door root of superuser. Maar wanneer deze zich bewust is van veiligheid zal hij allicht geen verdachte bestanden uitvoeren. Op dit moment richten virus scanners6 voor Linux zich op het detecteren en het zuiveren van data die verzonden wordt naar Windows hosts door een Linux File/Mailserver. Dit is nuttig om het verspreiden van virussen op niet-Linux machines tegen te gaan. Door het gebrek aan virussen voor Linux zijn er tot op heden geen virus scanners voor het Linux besturingssysteem of applicaties. Naast virussen bestaan er eveneens Trojaanse paarden. Dit zijn boosaardige programma’s die zich vermommen als een echte applicatie. In tegenstelling tot virussen kunnen Trojaanse paarden zichzelf niet dupliceren. Trojaanse paarden staan meestal toe dat een aanvaller van op afstand toegang krijgt (remote access) tot de computer of zijn bronnen. Trojaanse paarden zijn meestal verpakt als ‘root kits’. Dit is een set van Trojaanse systeemapplicaties. Meestal levert een ‘root kit’ Trojaanse versies van ps, getty, paawd, tcp_wrappers, login, en syslogd. Trojaanse paarden zijn een grotere bedreiging voor Linux en kunnen gedetecteerd worden door regelmatig de integriteit van binaire bestanden te verifiëren, of door het gebruik van Chkrootkit en Root Kit Detector. Root Kit Detector (www.vancouver-webpages.com/rkdet/) is een daemon die waarschuwt wanneer iemand een ‘root kit’ tracht uit te voeren. Chkrootkit (www.chkrootkit.org) controleert een Linux systeem op de aanwezigheid van een ‘root kit’. 5
Met fysieke beveiliging wordt bedoelt dat bijvoorbeeld onbevoegden geweerd moeten worden uit ICT systemen. Linux virus scanners voor Windows hosts: AmaViS (www.amavis.org/amavis.html), AntiVir for Linux (www.hbedv.com), AVX Virus Scanner (www.avx.com), Interscan Viruswall (www.antivirus.com/products/isvw/), Sophos AntiVirus (www.sophos.com/products/antivirus/savunix.html), Anomy e-mail sanitizer (mailtools.anomy.net) en Network Associates (www.nai.com/international/uk/asp_set/buy_try/try/product_evals.asp) 6
38
Hoofdstuk 4 - Netwerkinfrastructuur
39
Het verifiëren van de integriteit van binaire bestanden kan gebeuren door Tripwire, RPM of digital signature algoritmen zoals MD5 Checksum. Tripwire (www.tripwire) is de meest populaire tool voor het verifiëren van de integriteit van binaire bestanden onder Linux. Het is eenvoudig te gebruiken, goed te configureren. Het biedt de mogelijkheid tot het automatiseren van regelmatige controles, en rapporteert elke verandering via e-mail. De Redhat Package Manager (RPM) heeft een ingebouwde methode ter verificatie van de binaire integriteit. Dit is vooral handig voor het controleren van een klein aantal verdachte bestanden. Een derde mogelijkheid is het controleren van een MD5 Checksum van een bestand tegen eerdere Checksums van dat bestand. Een MD5 checksum kan gegenereerd worden door het uitvoeren van “md5sum bestandsnaam”. Alternatieve commando’s voor md5sum zijn cksum en sum. Naast Trojaanse paarden, bestaat er ook een gevaar voor Wormen. Een worm is een onafhankelijk programma dat zichzelf van de ene computer naar de andere kopieert. Een worm vermenigvuldigt zich via een netwerk of het Internet, van computer naar computer. Deze replicatie tast niet alleen de computer aan maar ook het prestatievermogen van het netwerk in een onderneming. Net als een virus kan een worm schade veroorzaken door bijvoorbeeld gegevens te vernietigen of vertrouwelijke informatie door te sturen. Een bug in BIND (Berkeley Internet Name Daemon) versie 8.2.3 maakte het bijvoorbeeld mogelijk dat de “Lion” Worm schade kon toebrengen aan Linux systemen. Deze bug werd snel opgelost, maar illustreert het gevaar van Wormen voor besturingssystemen, waaronder Linux. Applicaties zoals bijvoorbeeld Sophos (www.sophos.com) kunnen hier een uitweg bieden.
()2) 6 /
3
Door de integratie van het internet in de business, scheiden de meeste bedrijven hun interne netwerk niet meer af van het Internet. Het feit dat interne en externe knooppunten in een netwerk hetzelfde protocol gebruiken bij onderlinge communicatie, schept problemen bij het beveiligen van eigendom. Op dit punt komt de firewall naar voor. Een firewall is een code die bepaalt welke data pakketten er van het ene netwerk naar het andere netwerk verstuurd mogen worden. Vaak is dit op een router zoals FreeSCO (www.freesco.org) tussen een lokaal netwerk en het internet. Het meest voorkomende type van firewall wordt gebruikt om het Internet te scheiden van een lokaal netwerk zodat informatieverkeer gecontroleerd en gevolgd (monitoring) kan worden. Het doel is dan het beveiligen van het interne netwerk tegen indringer van buitenaf. Packet Filtering firewalls zijn de meest voorkomende types van firewall. Een Packet Filtering firewall werkt op de netwerklaag van het OSI model. Data kunnen het systeem enkel verlaten of binnenkomen als de regels van de firewall dit toelaten. Wanneer pakketten bij de firewall toekomen worden ze gefilterd op basis van hun type, source address, destination address en de port information die elk pakket bevat. Packet Filtering is het type van firewall dat ingebouwd is in de Linux kernel. Op dit moment onderscheiden we drie Linux kernels: de 2.0.x kernel, de 2.2.x kernel en de 2.4.x kernel. Bij 2.0.x kernels werd er gebruik gemaakt van IPFWDADM, bij 2.2.x kernels van IPCHAINS en bij 2.4.x kernels van NAT en IPTABLES. Het beheer van deze firewalls kan gebeuren op vele manieren, maar een grafische front-end zoals GuardDog (www.simonzone.com/software/guarddog) is waarschijnlijk de eenvoudigste. GuardDog is een gebruiksvriendelijke firewall voor KDE die gebruik maakt van de ingebouwde iptables of ipchains packet filtering faciltiteiten van Linux. IPFWADM (2.0.x kernel) Ipfwadm is een dienst voor het beheren van IP accounting en firewall services bij de Linux 2.0.x kernel. Ipfwadm is een vervanging van het oudere ipfw dat kan gevonden worden in oude versies van het net-tools pakket, met dit verschil dat Ipfwadm veel vollediger en eenvoudiger is om te gebruiken dan ipfw. Ipfwadm wordt echter steeds meer vervangen door het concept van IPChains, wat hieronder besproken zal worden. 39
Hoofdstuk 4 - Netwerkinfrastructuur
40
IPChains (2.2.x kernel) IPChains is een herschrijven van de Linux IPv4 firewall code en een herschrijven van ipfwadm (welke een herschrijven was van ipfw). Dit concept vereist een Linux kernel die IP Packet filtering ondersteunt (2.2.x kernel of hoger). Verder moeten de IPChains tools geïnstalleerd worden zodat kan bepaald worden welke IP pakketten voorbij mogen. IPChains heeft verscheidene parameters die ingevuld kunnen worden voor IP Masquerading. De combinatie van IPChains en IP Masquerading vormen een firewall die gelijkaardig is aan commerciële firewall oplossingen van Cisco en 3Com, maar aan een fractie van de kost ervan. IP Masquerade is een functie in Linux die gelijkaardig is aan NAT (Network Address Translation) dat kan teruggevonden worden in vele commerciële firewalls, netwerk routers en de Linux kernel 2.4.x. Wanneer een Linux host bijvoorbeeld verbonden is met het internet dan zal IP masquerade toelaten om andere interne computers die verbonden zijn met deze Linux host ook toegang te verschaffen tot het internet. Linux IP Masquerading staat deze functionaliteit toe, ondanks het feit dat deze interne computers geen officieel IP adres toegewezen hebben gekregen. MASQ staat toe dat een aantal machines onzichtbaar toegang krijgen tot het internet via de MASQ gateway (of de Linux host). Voor andere machines op het internet lijkt het alsof al het uitgaand verkeerd van de IP MASQ Linux server zelf komt. Buiten de extra functionaliteit, verstrekt IP Masquerading eveneens de basis tot een zeer veilige netwerkomgeving. Een goed ontworpen firewall maakt het dan vrijwel onmogelijk om binnen te breken in het security configured masquerading system en het interne LAN dat achter dit systeem ligt. IPTables en NAT (2.4.x kernel) IPTables is een vervanging voor IPChains in de Linux 2.4.x kernel. IPTables heeft meer mogelijkheden dan IPChains en is tevens logischer gestructureerd. Eén van de nieuwe kenmerken is connection tracking7, beter bekend als ‘Stateful Inspection’. Er wordt onderscheid gemaakt tussen vier mogelijke toestanden: established, new, related en invalid. IPTables is een onderdeel van het NetFilter project (netfilter.samba.org). NetFilter is een framework voor het filteren van pakketten. NAT (Network Address Translation) is beschreven in RFC 1631, dewelke de relatie bespreekt tussen NAT en CIDR8 (Classless Interdomain Routing) als een manier om de uitputting van IP adressen tegen te gaan. NAT is de vertaling van een Internet Protocol adres (IP adres) dat gebruikt wordt binnen een netwerk naar een ander IP adres dat gekend is binnen een ander netwerk. Het ene netwerk wordt omschreven als het privaat netwerk, het andere is het publiek netwerk. NAT reduceert de behoefte aan een grote hoeveelheid van publiek gekende IP adressen door het creëren van een scheiding tussen publiek gekende en privaat gekende IP adressen. CIDR verenigt publiek gekende IP adressen in blokken zodat minder IP adressen verkwist9 worden. Inkomend en uitgaand verkeer ondergaat dan telkens een vertaalslag tussen de naamgeving van het privaat netwerk en de naamgeving in het publiek netwerk. Dit helpt bij het verzekeren van 7
Mogelijkheid tot Connection tracking, i.e. de mogelijkheid voor het uitvoeren van stateful packet inspection. Dit concept werkt voor zowel ICMP, UDP als TCP verbindingen. Bijvoorbeeld: stateful ICMP filtering laat enkel een ICMP echo-reply toe als er eerst een echo-request het systeem verlaten heeft. Dit konden we niet verwezenlijken met IPChains. Vele beheerders blokkeerden enkel echo-requests, maar accepteerden echo-replies blindelings onder de assumptie dat een echo-reply altijd het antwoord zou zijn op een eigen ping. Dit is echter fout. Ongevraagde echoreplies kunnen een teken zijn van een Smurf (http://www.cert.org/advisories/CA-1998-01.html) amplification aanval, een Tribe Flood Network (http://www.cert.org/incident_notes/IN-99-07.html) communicatie tussen master en daemon, of een Loki 2 backdoor (http://www.infowar.com/iwftp/phrack/Phrack51/P51-06.txt). 8 http://searchnetworking.techtarget.com/sDefinition/0,,sid7_gci213850,00.html 9 IPv4 is kwistig met IP adressen. CIDR en NAT verlengen de levensduur van IPv4 met enkele jaren totdat IPv6 algemeen aanvaard wordt.
40
Hoofdstuk 4 - Netwerkinfrastructuur
41
beveiliging vermits alle inkomend en uitgaand verkeer door een vertaalproces moet. Dit proces biedt ook mogelijkheden tot het qualificeren of authentificeren van het verkeer, of een pakket te vergelijken met voorgaande pakketten. Bovendien is het mogelijk om het aantal pogingen voor een connectie te beperken, zoals in SYN-flooding10 Denial of Service (DOS), en het voorkomen dat de logs overbelast worden, zoals gebeurde bij de Jolt2 11 fragment-driven DOS attack. Case voorbeeld: Marconi gebruikt Linux kernel 2.4.x faciliteiten voor hun firewall Marconi is een leverancier van hard- en software voor de communicatie en informatie industrie. De visie van het bedrijf is gebaseerd op deze van Guglielmo Marconi, de vader van de moderne communicatie, die meer dan 100 jaar geleden het eerste draadloze bericht verzond. Vandaag telt Marconi meer dan 48.000 medewerkers in 100 landen. De beveiliging van hun netwerk gebeurt met Linux firewalls op basis van de faciliteiten van kernel 2.4.x. Bron: www.marconi.com en http://www.mandrakebizcases.com/article.php?sid=102 Firewall oplossingen van SuSE, Mandrake, Coyote Linux en IPCop: Wanneer een onderneming een firewall wenst op te zetten, kan deze kiezen om zelf een firewall te bouwen of een firewall aan te kopen. Het is mogelijk om eender welke Linux distributie te configureren als firewall, maar hier is wel enige voorkennis vereist. Daarom is het aan te raden een distributie te gebruiken die ontworpen is om te dienen als firewall. SuSE Firewall on CD en Mandrake Single Network Firewall zijn voorbeelden van dergelijke systemen. Mandrake’s firewall (www.mandrakesoft.com/products/snf) richt zich eerder op kleine ondernemingen. Het is eenvoudig te configureren, en is geschikt voor kleine locale netwerken. SuSE’s firewall (www.suse.com/us/products/suse_business/firewall) richt zich op de middelgrote tot grote ondernemingen. De standaard versies van zowel SuSE als Mandrake worden geleverd met een basis firewall die geschikt is voor een werkstation, en kleine netwerken van thuisgebruikers. Dit marktsegment kan ook gebruik maken van bijvoorbeeld Coyote Linux of IPCop. Coyote Linux (www.coyotelinux.com) beschikt niet over alle eigenschappen van de zonet besproken distributies, maar vormt een goede basis firewall/router. Wanneer er een behoefte is aan Intrusion Detection, een Web proxy, of andere “geavanceerde” eigenschappen, dan zijn SuSE en Mandrake beter geschikt. IPCop (www.ipcop.org) daarentegen levert een complete firewall oplossing met ondersteuning van bijvoorbeeld Web Proxy, DHCP server, VPN (FreeS/WAN) en Intrusion Detection System. Het installeren en configureren van Coyote en IPCop vereist meer expertise dan de zojuist besproken distributies. Het voordeel is echter dat de hardware vereisten zeer laag zijn (386SX met 8 Mb RAM, in tegenstelling tot SuSE: Pentium met 128 Mb RAM en Mandrake: Pentium met 32 Mb RAM). Naast deze Open Source firewalls, zijn er eveneens vele commerciële oplossingen beschikbaar: Firewall-1 for Linux (www.checkpoint.com/products/firewall-1/pbrief.html), Phoenix Adaptive Firewall (www.progressive-systems.com/products/phoenix), Gateway Guardian Firewall (www.gatewayguardian.com/products/gg_personal.shtml), Smoothwall (www.smoothwall.org) en Xsentry Internet Firewall (www.trustix.com/products/xsentry).
10 11
http://www.niksula.cs.hut.fi/~dforsber/synflood/result.html http://www.checkpoint.com/techsupport/alerts/ipfrag_dos.html
41
Hoofdstuk 4 - Netwerkinfrastructuur
()2)/ 6
//26 /
42
/
/
Veel Internetgebruikers zijn zich er niet van bewust dat er van alles kan gebeuren met informatie die onbeschermd over het Internet reist. Berichten kunnen bijvoorbeeld worden afgeluisterd of onderweg worden gewijzigd. Geheimhouding van informatie is zeer belangrijk bij communicatie over een open medium zoals het Internet. Om geheimhouding of vertrouwelijk karakter te garanderen, wordt meestal gebruik gemaakt van versleuteling, oftewel encryptie. Versleuteling is in feite niets meer dan een geavanceerde vorm van geheimschrift waarmee leesbare tekst door middel van een formule wordt omgezet in een onleesbare, versleutelde tekst. Encryptie wordt gebruikt om documenten onleesbaar te maken tijdens transport over het internet. Eerst zullen geheime en publieke encryptie aan de orde komen. Daarna zullen X.509 en PGP certificaatvormen behandeld worden. Vervolgens volgt een uiteenzetting over SSL, S-HTTP, HTTPS, S/MIME en SSH. Tenslotte worden enkele Linux IPSEC uitvoeringen en Kerberos onder de loep genomen. PGP, X.509 en Public-Key versleuteling Public-Key versleuteling, zoals dat gebruikt wordt voor PGP, gebruikt een sleutel voor het coderen en een sleutel voor het decoderen. Traditionele versleuteling gebruikt echter dezelfde sleutel voor het coderen en decoderen; deze sleutel moet bekend zijn bij beide partijen en zal dus op de een af andere wijze veilig van de een naar de ander overgebracht moeten worden. Dit principe heet ook wel "symmetrische versleuteling". Vergelijk deze vorm van versleuteling met een brandkast: iedereen die de sleutel heeft kan er iets uithalen, wijzigingen aanbrengen aan de inhoud ervan en het terug leggen. Alle anderen moeten de brandkast met bruut geweld openen. Het nadeel van symmetrische encryptie is de overdracht van het gedeelde geheim. Deze overdracht gebeurt immers over een onveilig medium. Zo kan een luistervink de geheime sleutel opvangen. Een mogelijk probleem bij symmetrische encryptie is het uitwisselen van gedeelde geheimen wanneer de gebruikers elkaar niet kennen. Om de noodzaak van het veilig overbrengen van de coderingssleutel te verlichten, gebruikt Public-Key versleuteling twee afzonderlijke sleutels: een publieke sleutel en een persoonlijke sleutel. Ieders publieke sleutel is beschikbaar voor iedereen om de codering uit te voeren, terwijl tegelijkertijd iedereen zijn of haar persoonlijke sleutel heeft om berichten, die gecodeerd zijn met de juiste publieke sleutel, te decoderen. Deze methode van versleuteling heet "asymmetrische versleuteling". De safe is een brievenbus geworden: iedereen kan er wat instoppen, maar alleen diegene met de juiste sleutel is in staat er wat uit te halen. Natuurlijk moet degene, die een versleutelde boodschap aan iemand wil sturen, nog wel zijn publieke sleutel zien te verkrijgen. Alleen op die manier immers kan een boodschap gemaakt worden die alleen voor de ontvanger leesbaar is. Een public key wordt, voordat het verspreid wordt, verpakt in een certificaat. Behalve de public key bevat een certificaat persoonsgegevens van de eigenaar en de digitale handtekening van één of meer personen die er voor instaan dat de persoonsgegevens inderdaad bij deze public key horen. Verder bevat een certificaat onder andere nog een geldigheidsduur. Public key certificaten zijn kleine hoeveelheden van data die, wanneer ze juist uitgewisseld zijn, de identiteit van alle partijen in een communicatie kunnen garanderen. Er zijn twee soorten certifcaten: PGP- (Pretty Good Privacy) en X.509-certificaten. De eerstgenoemde worden vooral gebruikt binnen mail-programma’s terwijl laatstgenoemde bijvoorbeeld ook gebruikt worden bij de communicatie tussen een webserver en een Webclient. Hieronder volgt een opsomming van de soorten certificaten die verwerkt kunnen worden en de toegevoegde waarde van signering door de organisatie. 42
Hoofdstuk 4 - Netwerkinfrastructuur •
43
PGP-certificaten: Bij gebruik binnen e-mail geeft een gesigneerd certificaat de ontvanger van het bericht de zekerheid dat de verzender daadwerkelijk is wie hij beweert te zijn. Bij gebruik binnen PGP-net (waarmee een zogenaamd Virtual Private Network (VPN) opgezet kan worden) geeft een gesigneerd certificaat de andere kant van de beveiligde verbinding de zekerheid dat hij contact heeft met de pc van de juiste persoon. Organisaties zoals Amnesty International en Greenpeace gebruiken PGP om hun correspondentie en documenten te beveiligen tegen overheden. GnuPG (GNU Privacy Guard, GPG, beschikbaar op www.gnupg.org) is een GNU implementatie van PGP die voldoet aan de OpenPGP standaard. GnuPG richt zich op het ongedaan maken van enkele beperkingen (commercieel, legaal en technisch) van PGP. Case voorbeeld: Greenpeace gebruikt Linux voor de beveiliging van hun data Greenpeace draagt op vele vlakken bij aan Open Source projecten. Het interne intranet van Greenpeace is volledig gebaseerd op Linux en men is bezig met nieuw Web Content Management Systeem (CMS) te bouwen met Linux. De bedoeling is om op korte termijn alle Greenpeace desktops wereldwijd uit te rusten met Linux. Redenen voor het gebruik van Linux zijn de vrijheid, de lage Total Cost of Ownership (TCO) en de mogelijkheden tot beveiliging van hun data en communicatie. Greenpeace opereert immers in een omgeving van vijandige instanties. Daarom is een sterke beveiliging van hun data en communicatie noodzakelijk. Bron: Brian Fitzgerald, Greenpeace information technology (www.greenpeace.org en
[email protected]).
•
director
X.509 certificaten: Bij gebruik binnen mail en binnen een VPN geeft certificering dezelfde toegevoegde waarde als bij PGP-certificaten. Er kan een onderscheid gemaakt worden tussen client-, server- en applet signing-certificaten. X.509 client-certificaten kunnen verder gebruikt worden om de toegang tot een Web server te regelen. Een Web server kan bijvoorbeeld zo ingesteld worden dat toegang alleen toegestaan wordt aan degenen die in het bezit zijn van een certificaat dat gesigneerd is door de organisatie en dat aangeeft dat de bezitter deel uitmaakt van een bepaalde faculteit en bijvoorbeeld een bepaalde werkgroep. X.509 server-certificaten worden gebruikt op secure-servers die gebruik maken van het SSL-protocol (Secure Sockets Layer-protocol). Een gesigneerd server-certificaat geeft een gebruiker de zekerheid dat hij contact heeft met een server die daadwerkelijk beheerd wordt door een organisatie zoals die in het certificaat wordt omschreven en dat de naam waarmee de server zich bekendmaakt daadwerkelijk de naam is, waaronder het is geregistreerd. X.509 applet signing-certificaten worden gebruikt om Java-applets te signeren die in een Internetprogramma gedownload en uitgevoerd kunnen worden. Een certificaat dat gesigneerd is geeft de gebruiker de zekerheid dat de applet daadwerkelijk afkomstig is van de organisatie die vermeld is in het certificaat.
Open-Source PKI implementaties voor Linux zijn te vinden in OpenCA (openca.sourceforge.net), pyCA (www.pyca.de), en de Mozilla PKI projecten (www.mozilla.org/projects/security/pki).
43
Hoofdstuk 4 - Netwerkinfrastructuur
44
SSL, S-HTTP, HTTPS, S/MIME en SSH SSL, S-HTTP en S/MIME zijn standaard protocollen die instaan voor encryptie en beveiliging van een service tussen Web servers. Deze protocollen ondersteunen X.509 digitale certificaten. Er bestaan eveneens alternatieven die PGP ondersteunen. PGP/MIME, bijvoorbeeld, is een PGP alternatief voor S/MIME. •
SSL of Secure Sockets Layer, is een versleutelingsmethode die ontwikkeld is door Netscape om in beveiliging over het Internet te voorzien. Het ondersteunt diverse versleutelingsprotocollen en voorziet in client en server authenticatie. SSL opereert op de transportlaag, creëert een veilig versleuteld kanaal met gegevens en kan dus naadloos vele soorten gegevens versleutelen. OpenSSL (www.openssl.org) levert een open source implementatie van het SSL protocol.
•
HTTPS (Hypertext Transfer Protocol over Secure Socket Layer, of HTTP over SSL) is een beveiligde, geëncrypteerde versie van HTTP dat gebruikt wordt voor bijvoorbeeld financiële transacties en andere vertrouwelijke informatie die over het Internet verzonden wordt.
•
S-HTTP is een ander protocol dat voorziet in beveiligingsdiensten over het Internet. Het is ontworpen om te voorzien in vertrouwelijkheid, authenticatie, integriteit en niet afwijzend12 te zijn terwijl het meerdere sleutelbeheertechnieken en cryptografische algoritmen ondersteunt via onderhandeling over de mogelijkheden tussen de betrokken partijen in iedere transactie. S-HTTP is beperkt tot de specifieke software die het uitvoert en versleutelt elk bericht individueel.
•
S/MIME of Secure Multipurpose Internet Mail Extension, is een versleutelingsstandaard die gebruikt wordt om e-mail en andere soorten berichten op het Internet te versleutelen. Het is een open standaard, ontwikkeld door RSA. Het is waarschijnlijk dat we het binnenkort onder Linux tegenkomen. Meer informatie over S/MIME kan worden gevonden op home.netscape.com/assist/security/smime/overview.html.
•
SSH (Secure shell), ook bekend als Secure Socket Shell, biedt authenticatie en encryptie voor data die men verzendt vanuit een commando interface (de “shell”) om zodoende op een veilige manier toegang te krijgen tot een computer op afstand. Het is beschikbaar gesteld voor Linux door OpenSSH (www.openssh.org). Het levert drie gereedschappen slogin, ssh, en scp – dewelke verbeterde versies zijn van de vroegere rlogin, rsh en rcp.
Linux Virtual Private Networks (VPN): IPSec, CIPE en ENSKIP Meestal biedt beveiliging services zoals encryptie en authenticatie op het applicatieniveau. PGP en GnuPG bieden security voor e-mail. SSL biedt security voor Web verkeer. Het zou echter gemakkelijk zijn om één gemeenschappelijke security layer te hebben ongeacht het type van applicatie dat hier gebruik van maakt. Met andere woorden: we hebben behoefte aan security op de netwerklaag (cfr. OSI-model), waardoor alle communicatie hierboven automatisch beveiligd is. De IPSec (Internet Protocol Security) normen definiëren een set protocollen die gebruikt kunnen worden om versleutelde VPN' s te bouwen. Het is een poging van de IETF om veilige (gebaseerd op Public-Key cryptografie) communicaties op de netwerklaag (of meer correct: tussen de netwerk- en de transportlaag) te creëren en om te voorzien in authenticatie, integriteit, toegangscontrole en vertrouwelijkheid. Een systeem dat gebaseerd is op IPSec laat organisaties toe om Virtual Private Networks (VPNs) in te richten, omdat de volledige communicatie tussen twee LANs volledig en transparant geëncrypteerd kan worden. Enkel de gateway machines moeten geconfigureerd worden. De rest van het netwerk moet hier niet van op de hoogte zijn. 12
Men kan niet aangezien worden voor iemand anders.
44
Hoofdstuk 4 - Netwerkinfrastructuur
45
Linux x-kernel is een IPSec uitvoering, die ontwikkeld wordt op de Universiteit van Arizona (www.cs.arizona.edu/xkernel/hpcc-blue/linux.html). Het gebruikt een object-gebaseerde opzet voor het uitvoeren van netwerkprotocollen genaamd x-kernel. Beknopt gezegd is de xkernel een methode om berichten op het kernelniveau door te geven, wat zorgt voor een gemakkelijkere uitvoering. Een andere vrij verkrijgbare IPSEC uitvoering is Linux FreeS/WAN (www.freeswan.org). Hun webpagina verklaart: "Met deze diensten kan men veilige tunnels door niet vertrouwde netwerken bouwen. Alles wat door het niet vertrouwde net gaat wordt gecodeerd door de IPSEC gateway machine en gedecodeerd door de gateway aan de andere kant. Het resultaat is een Virtual Private Network of VPN. Dit is een netwerk dat effectief privé is, ondanks dat het machines op verschillende sites omvat die zijn verbonden door het onveilige Internet." IPSEC is echter een zware en gecompliceerde set van protocollen met een vele opties. Uitvoeringen van de volledige set protocollen worden nog zelden gebruikt en sommige geschilpunten (zoals sleutelbeheer) zijn nog niet volledig opgelost. CIPE (Cryptographic IP Encapsulation, beschikbaar op www.inka.de/~bigred/devel/cipe.html) gebruikt een eenvoudiger benadering, waarbij veel instellingen die in parameters vastgelegd kunnen worden (zoals de keuze van het actuele versleutelingsalgoritme wat gebruikt wordt) een keuze is die tijdens de installatie gemaakt moet worden. Dit beperkt de flexibiliteit, maar zorgt voor een eenvoudige (en derhalve efficiënte, makkelijk te debuggen...) uitvoering. CIPE versleutelt de gegevens op de netwerklaag. Pakketten die reizen tussen hosts op het netwerk worden versleuteld. Het primaire doel van deze software is te voorzien in een faciliteit voor een veilige subnetwerk interconnectie (beschermt tegen het afluisteren of aftappen van berichten, inclusief het analyseren van het netwerkverkeer en faked message injection) over een onveilig packet netwerk zoals het Internet. CIPE kan gebruikt worden bij "tunnelling" om een Virtual Private Network (VPN) aan te maken. Versleuteling op de netwerklaag heeft het voordeel dat het zo gemaakt kan worden dat het transparant werkt tussen de twee netwerken verbonden in het VPN, zonder enige wijziging aan applicatiesoftware. Naast CIPE heeft Sun Microsystems een nieuw protocol ontwikkeld, genaamd SKIP (Secure Key management Internet Protocol), voor het managen van de encryptie op IP niveau. Er is een vrije implementatie van Sun' s SKIP protocol voor Linux onder de naam ENSKIP (www.tik.ee.ethz.ch/~skip/). ENSKIP levert encryptie en authentificatie van pakketten op de IP laag tussen twee of meerdere machines. Kerberos Kerberos (web.mit.edu/kerberos/www) is een authenticatiesysteem. Als een gebruiker inlogt, authenticeert Kerberos deze gebruiker (gebruik makend van een wachtwoord) en voorziet het de gebruiker in een manier om zijn identiteit te bewijzen aan andere servers en hosts verspreid over het netwerk. Deze authenticatie wordt dan gebruikt door programma' s zoals ‘rlogin’ om het de gebruiker mogelijk te maken op andere hosts in te loggen zonder wachtwoord (in plaats van het .rhosts bestand). Deze authenticatiemethode kan ook gebruikt worden door het mailsysteem om te garanderen dat de mail is aangeleverd bij de juiste persoon, evenals het garanderen dat de afzender is wie hij beweert te zijn. Kerberos en de andere programma' s die erbij geleverd worden, voorkomen dat gebruikers het systeem ‘spoofen’ en zodoende laten geloven dat ze iemand anders zijn. Helaas is het installeren van Kerberos erg indringend. Het vereist de aanpassing of vervanging van vele standaard programma’s.
45