ICTivity documentgegevens Document, Titel : Linux in een Netwerkomgeving Controlehistorie Calculaties opmerking gecontroleerd door n.v.t. n.v.t. n.v.t. n.v.t. Spelling en lay-out opmerking gecontroleerd door Dhr. P. Halling Dhr. R. Kommeren n.v.t. n.v.t. Versiehistorie Versie Datum 1.0 9-4-2004 1.1 24-5-2004 2.0 7-6-2004 Wijziging gemaakt door Denis de Wit Denis de Wit Denis de Wit Linux in een netwerkomgeving Opmerking Tussenverslag Conceptverslag Eindverslag Pagina 1 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Voorwoord Dit verslag is als afstudeeropdracht aan de AVANS hogeschool opleiding elektrotechniek geschreven. De afstudeeropdracht is bij het bedrijf ICTivity uitgevoerd dat zich specialiseert in onafhankelijke ICT-oplossingen voor het bedrijfsleven. Het Besturingssysteem Linux is relatief nieuw voor ICTivity, waardoor beperkte expertise aanwezig is op dit gebied. De reden waarom dit onderwerp gekozen is, is dat er op deze manier een bijdrage geleverd kan worden aan de kennis van Linux binnen het bedrijf. Mijn opdracht is om een netwerk te configureren met open source software die dezelfde functionaliteiten als een Windows/Novell netwerk. Lezers met de nodige voorkennis van Linux worden verwezen naar hoofdstuk 3. In dit hoofdstuk zal een begin worden gemaakt met de configuratie van Linux. Diegene die informatie zoeken over Linux op het werkstation worden verwezen naar hoofdstuk 6. Lezers die het procesverloop willen lezen kunnen in bijlage 7 kijken. Veel dank is verschuldigd aan dhr. P. Halling die een afstudeerplaats binnen ICTivity beschikbaar heeft gesteld. Speciale dank gaat uit naar Ruud Rombout en Rolf Bleukens. Zij hebben het mogelijk gemaakt dat ik tijdens mijn stage een cursus Linux kon volgen. Ook het tweede deel van de cursus staat op het moment van schrijven op de planning. Juni 2004, Denis de Wit, Eindhoven Linux in een netwerkomgeving Pagina 2 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Inhoudsopgave ICTivity documentgegevens......................................................................................... 1 Voorwoord...................................................................................................................... 2 Inhoudsopgave .............................................................................................................. 3 Samenvatting ................................................................................................................. 6 Samenvatting ................................................................................................................. 6 Inleiding .......................................................................................................................... 8 Hoofdstuk1: Doelstellingen en Planning .................................................................... 9 Hoofdstuk 2: Introductie Linux .................................................................................. 12 2.1 UNIX .................................................................................................................... 12 2.2 Linux ................................................................................................................... 13 2.2.1 De kernel ...................................................................................................... 14 2.2.2 De shell ........................................................................................................ 15 2.2.3 X en Window Managers .............................................................................. 16 2.2.4 GNU .............................................................................................................. 18 2.2.5 Beschikbaarheid van Linux ....................................................................... 19 2.2.5.1 SuSE ...................................................................................................... 19 2.2.5.2 Red Hat .................................................................................................. 19 2.2.5.3 Toelichting platformkeuze voor server .............................................. 20 Hoofdstuk 3: Configuratie van Linux ........................................................................ 21 3.1 DHCP................................................................................................................... 21 3.1.1 Configuratie bestand .................................................................................. 21 3.1.2 lease database............................................................................................. 23 3.1.3 De DHCP server starten en stoppen ......................................................... 24 3.2 DNS ..................................................................................................................... 25 3.2.1 Wat is DNS? ................................................................................................. 25 3.2.2 Bestandslocaties......................................................................................... 25 3.2.3 Caching nameserver ................................................................................... 26 3.2.3.1 De configuratie...................................................................................... 26 3.2.3.2 Configuratie van werkstations ............................................................ 26 3.2.4 Reverse lookups ......................................................................................... 27 3.2.4.1 Reverses opvragen met dig................................................................. 28 Linux in een netwerkomgeving Pagina 3 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. 3.3 Samba ................................................................................................................. 29 3.3.1 Domain controller ....................................................................................... 29 3.3.2 Installatie van Samba.................................................................................. 30 3.3.3 Configuratie van Samba ............................................................................. 31 3.3.3.1 Het Samba configuratiescript smb.conf............................................. 31 3.3.3.2 Aanmaken van de gebruikte directories, groepen en gebruikers ... 35 3.3.4 Mounten van Samba shares op een Linux cliënt ..................................... 37 3.4 Squid ................................................................................................................... 38 3.4.1 Toegangscontrole ....................................................................................... 38 3.4.2 Squid Configureren..................................................................................... 40 3.4.5 Log Bestanden ............................................................................................ 41 3.4.6 Squid Configuratie met Webmin ............................................................... 41 3.5 Firewall................................................................................................................ 43 3.5.1 Packet filter .................................................................................................. 44 3.5.2 Stateful Packet Filter................................................................................... 45 3.5.4 Application level gateway .......................................................................... 46 3.5.5 IPTables ....................................................................................................... 46 3.5.6 Firewall Rules .............................................................................................. 48 3.5.7 iptables configureren met Webmin ........................................................... 48 Hoofdstuk 4: Apache Webserver ............................................................................... 50 Hoofdstuk 5: Configuratie van de Mailserver ........................................................... 52 5.1 Een standalone, Dedicated e-mail Server ....................................................... 53 5.2 OpenExchange is meer dan een mailserver ................................................... 55 5.3 Kosten................................................................................................................. 58 Hoofdstuk 6: Linux op werkstation............................................................................ 59 6.1 Mandrake Linux ................................................................................................. 59 6.2 Red Hat Linux & Fedora Core ........................................................................... 60 6.3 Debian Linux ...................................................................................................... 60 6.4 SuSE Linux ......................................................................................................... 61 6.5 Vergelijking......................................................................................................... 62 Conclusie ..................................................................................................................... 63 Bronvermelding ........................................................................................................... 65 Bijlagen......................................................................................................................... 67 Bijlage 1: DHCP server ............................................................................................ 68 Bijlage 2: Caching nameserver .............................................................................. 69 Bijlage 3: Voorbeeld example.com ........................................................................ 70 Bijlage 4: Samba ...................................................................................................... 71 Bijlage 6: MS Project schema ................................................................................. 76 Bijlage 7: Projectverloop ......................................................................................... 77 Register ........................................................................................................................ 78 Linux in een netwerkomgeving Pagina 4 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Linux in een netwerkomgeving Pagina 5 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Samenvatting Linux is ontstaan als een afgeleide van de UNIX kloon Minix. Een van de belangrijkste redenen waaraan Linux zijn succes te danken heeft, is dat het het eerste open besturingssysteem is dat multitasking- en multiprocessing mogelijkheden voor meerdere gebruikers ondersteund. Tevens ondersteunt Linux pre-emptive multitasking zodat processen een gelijk deel van de processortijd toegewezen krijgen. Daarnaast is de broncode van Linux vrij beschikbaar. Het hart van Linux is de Linux kernel. De kernel levert de basisfunctionaliteit en is modulair opgebouwd. Op deze manier is het mogelijk een ideale kernel te bouwen voor een systeem met alleen die componenten die het besturingsysteem nodig heeft en de rest weg te laten. Boven de kernel bevindt zich de shell. De shell is verantwoordelijk voor het juist interpreteren van de door de gebruiker ingegeven commando’s. Er zijn voor Linux verschillende shells beschikbaar waarvan de Bash-shell het meest wordt toegepast. Boven de shell bevindt zich X, deze is onderverdeeld in twee delen: de X-servers die verantwoordelijk zijn voor de aansturing van de grafische kaart en de X-cliënts waarop door de gebruiker gewerkt kan worden. X heeft één nadeel, het biedt geen functionaliteit voor het beheer van vensters. Dit nadeel wordt opgeheven wanneer gebruik wordt gemaakt van Window managers. Deze Window managers maken het mogelijk om vensters te vergroten, verkleinen en dat er een menu wordt weergegeven om programma’s te starten. Een uitbreiding van een Window manager is een desktop environment. Deze voorzien in een universele interface waarmee gewerkt kan worden. DHCP maakt het mogelijk dynamische IP-adressen toe te wijzen aan werkstations. De Linux DHCP server is DHCPD. Het configuratiebestand bevindt zich in de directory /etc/dhcpd.conf. De DHCP server houdt een lease database bij van cliënts die een IPadres hebben toegewezen gekregen. DNS is een systeem waarin gegevens over domeinnamen worden opgeslagen. DNS is een flexibel, hiërarchisch, gedistribueerd en redundant systeem. DNS is opgebouwd uit zones, die elk één of meerdere subdomeinen kunnen bevatten. Om Linux netwerkbronnen te delen met (hoofdzakelijk) Windows cliënts kan gebruik worden gemaakt van Samba. Samba is een open source implementatie van Server Message Block en Common Internet File System. Met Samba is het mogelijk een Primairy Domain Controller te bouwen. Dit levert diverse voordelen voor de netwerkclients. De cliënts kunnen zo volstaan met een enkele aanmelding voor diverse services zoals: fileserver, firewall, proxy server, enz. Wanneer op een veilige manier op een netwerk een Internet verbinding gedeeld moet worden, kan gebruik worden gemaakt van een proxy server. De proxy server die bij Linux wordt meegeleverd is SQUID. SQUID is een softwarepakket dat zowel proxy, http caching, ftp, SSL, toegangscontrole, enz. ondersteunt. Om SQUID te configureren kan gebruik worden gemaakt van de beheerderstool ‘Webmin’. Dit programma biedt vele functionaliteiten in een webbased interface. Firewalls zorgen voor een scheiding tussen het Internet en het interne bedrijfsnetwerk. De firewall die bij Linux wordt meegeleverd is IPtables. IPtables bestaat uit twee delen, Linux in een netwerkomgeving Pagina 6 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. de kernzijde (draait in de kernel) en de gebruikerszijde. Ook IPtables is te configureren met Webmin. Als een bedrijf zelf een Internet pagina wil hosten moet deze in het bezit zijn van een webserver. De Linux webserver is het veelgebruikte Apache. Deze is zeer eenvoudig in te stellen. De standaardinstellingen zijn goed te gebruiken voor een eenvoudige webserver. Een enkele instelling dient verandert te worden, waaronder de locatie van de website op de harde schijf en het bestand dat automatisch moet worden opgestart wanneer een gebruiker op de website komt. Voor veel bedrijven is communicatie van essentieel belang. Om deze reden wordt vaak gekozen voor groupware pakketten zoals Exchange van Microsoft of Groupwise van Novell. Echter een bedrijf kan ook voor de Linux distributie van SuSE kiezen. Dit heet SuSE Linux OpenExchange server en heeft een goede overzichtelijke beheers- en gebruikersinterface die veel functionaliteiten bevat. Een bedrijf kan er voor kiezen Linux als server te draaien maar kan nog een stap verder gaan door ook Linux te passen op werkstations. Bij werkstations is het belangrijk op de gebruiksvriendelijkheid en betrouwbaarheid te beoordelen. Er worden een viertal distributies vergeleken, respectievelijk: Mandrake, Red Hat, Debian en SuSE. Wanneer puur een vergelijking wordt gemaakt tussen de Linux distributies kan op dit moment het best gekozen worden voor Red Hat Linux. Deze keuze is gebaseerd op de feiten dat er veel support voor Red Hat wordt gegeven, er goede documentatie te vinden is op Internet en een goed pakket aan software wordt meegeleverd. Wanner Linux wordt vergeleken met Windows dan moet in de meeste gevallen Windows als winnaar worden aangewezen. Dit komt doordat veel software voor Windows is geschreven en niet op Linux draait. Pas wanneer voldoende software voor Linux beschikbaar komt, kan hier verandering in komen. Linux in een netwerkomgeving Pagina 7 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Inleiding Dit verslag is geschreven in het kader van een afstudeeropdracht voor de AVANS hogeschool en voor het bedrijf ICTivity. ICTivity wil zich, om op de marktontwikkelingen te kunnen inspelen, in Linux specialiseren. En dan voornamelijk in SuSE Linux. Deze distributie is onlangs belangrijk geworden voor ICTivity omdat Novell deze Linux distributie eind 2003 heeft overgenomen en een groot deel van deze Linux versie gaat gebruiken in toekomstige productlijnen. Hoewel het economische belang van ICTivity bij SuSE Linux ligt, is er toch voor gekozen om voor dit onderzoek hoofdzakelijk gebruik te maken van Red Hat. Veel software en documentatie is op dit moment geschreven voor deze distributie. Uiteindelijk zullen de verschillen tussen Red Hat en SuSE niet zo groot zijn en is het eenvoudig om, wanneer er meer software beschikbaar komt voor SuSE, de inhoud van dit verslag om te zetten voor gebruik met SuSE Door een “onderzoek te doen over Linux” zijn de medewerkers van ICTivity in staat om zich de kennis over dit besturingssysteem snel en gemakkelijk eigen te maken. Er zijn binnen het bedrijf maar een beperkt aantal medewerkers die zich specialiseren in Linux. Het doel van dit verslag is om informatie van velerlei bronnen samen te voegen tot een overzichtelijk goed gedocumenteerd naslagwerk waarmee een engineer snel basic informatie kan vinden over Linux en de mogelijkheden hiervan. De engineer kan zien waar verschillende commandoregels in een script voor staan zonder hiervoor lange tijd op Internet te hoeven zoeken. Dit verslag zal onder de engineers die in het Linux-traject zitten worden gedistribueerd. Het verslag is verdeeld over twee delen; In het eerste deel wordt Linux op een server besproken en in het tweede deel Linux op het werkstation. De opbouw van dit verslag is als volgt. In hoofdstuk 1 wordt een inleiding gegeven wat Linux is en hoe het is ontstaan. Vervolgens wordt in hoofdstuk 2 ingegaan op de configuratie van de standaard Linux services zoals: DNS, DHCP, Samba bestandsdeling, SQUID proxy server en Firewall. In de hoofdstukken 3 en 4 wordt de configuratie van externe programma’s op Linux behandeld. Nadat de configuratie van een Linux server is besproken wordt in hoofdstuk 5 verder ingegaan op Linux op het werkstation. Hierin wordt behandeld welke distributie het best te gebruiken is, of Linux gebruiksvriendelijk genoeg is en of het toepasbaar is op het werkstation. In de conclusie is te lezen wat de uiteindelijke uitkomst van dit onderzoek is. Linux in een netwerkomgeving Pagina 8 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Hoofdstuk1: Doelstellingen en Planning Doelstelling Het doel van dit project is om documentatie op te leveren over Linux in netwerkomgevingen. In deze documentatie worden de volgende functionaliteiten behandeld. Server: DNS DHCP Fileserver Router Internet server Proxy Domain Controller Mailserver Alternatief voor ZENworks. Werkstation: Alle bovengenoemde Cliënts die nodig zijn om op de server te kunnen werken, Oordeel over de hoeveelheid software in de distributie, Oordeel over gebruiksvriendelijkheid ten opzichte van Windows. Er zijn voor dit project een aantal tussendoelen te formuleren: Vergelijking kunnen maken op basis van gevonden bronnen welke Linux distributie het meest geschikt is voor op server/werkstation Genoeg kennis van Linux inwinnen om zodoende Linux te kunnen configureren Maken conceptverslag met beschikbare informatie Uitwerken eindverslag met alle beschikbare informatie Presentatie over Linux in Netwerkomgeving Het onderwerp Linux is onlangs relevant geworden voor bedrijven in de ICT-sector nadat bekend is geworden dat Novell, Suse Linux heeft overgenomen. Linux zal hierdoor over niet al te lange tijd een belangrijke speler gaan worden binnen de ICT wereld. Op het eind van dit project is het op te leveren product hoe en of een netwerk kan worden opgebouwd met Linux met alleen software die op Linux draait. Tevens wordt ook gekeken wat de mogelijkheden van Linux zijn. Linux in een netwerkomgeving Pagina 9 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Projectgrenzen Er zal een beschrijving worden gemaakt over de volgende onderwerpen: Hoe is Linux ontstaan, Wat is Linux Linux op server: Configuratie van Linux met functionaliteiten (DNS, DHCP, router, webserver, proxy server, mailserver, vervanging voor ZENworks. Linux op een werkstation: configuratie voor cliënt van alle bovenstaande functionaliteiten, gebruiksvriendelijkheid, toepasbaarheid. De Linux distributies die voor de server zullen worden onderzocht, zullen beperkt blijven tot de twee grote spelers op de Linux markt, namelijk: Suse Red Hat Voor Linux op het werkstation is er een grotere selectie gemaakt, namelijk: Suse Red Hat Mandrake Debian Linux in een netwerkomgeving Pagina 10 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Planning Onderstaand schema geeft de planning weer die oorspronkelijk in het Project Management Document is geplaatst. De dikgedrukte punten zijn de mijlpalen. Het MS Project schema is te vinden in bijlage 6. Invullen opdrachtformulier Planning Uitwerken projectplan Inleveren Projectplan Informatie verzamelen Uitwerken Voortgangspresentatie Voortgangspresentatie Maken Tussenverslag Inleveren tussenverslag Info verzamelen, analyseren, uitwerken en testen Maken Conceptverslag Inleveren Conceptverslag 5 days 5 days 6 days 1 day 26-1-004 2-2-2004 9-2-2004 17-2-004 30-1-2004 6-2-2004 16-2-2004 17-2-2004 19 days 17-2-2004 12-3-2004 5 days 15-3-2004 19-3-2004 22 days 1-3-2004 30-3-2004 15 days 22-3-2004 1 day 9-4-2004 9-4-2004 9-4-2004 23 days 12-4-2004 12-5-2004 10 days 13-5-2004 26-5-2004 1 day 26-5-2004 26-5-2004 Uitwerken Concept tot Eindverslag Inleveren Eindverslag 11 days 27-5-2004 10-6-2004 1 day 10-6-2004 10-6-2004 Uitwerken Afstudeerpresentatie Presentatie en Verdediging afstudeerproject 12 days 11-6-2004 28-6-2004 1 day 28-6-2004 Tabel 1.0.1: Planning Linux in een netwerkomgeving Pagina 11 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Hoofdstuk 2: Introductie Linux Linux is ontstaan als een afgeleide van het besturingssysteem UNIX. Om het ontstaan van Linux goed te kunnen plaatsen, wordt eerst kort aandacht besteed aan de ontstaansgeschiedenis van UNIX. In het project is ook de keuze gemaakt om met het algemene Linux gedeelte te beginnen. Dit is gedaan om zo Linux te leren kennen en begrijpen. De informatie uit dit hoofdstuk kan dan ook worden toegepast op alle grote Linux distributies. 2.1 UNIX In 1969 begon op een afgeschreven DEC-computer in een laboratorium van BellTelephone de ontwikkeling van het besturingssysteem UNIX. Oorspronkelijk was dit een project van het Massachusetts Institute of Technology (MIT), AT&T Bell Labs en General Electric om een flexiebel en interactief besturingssysteem te ontwikkelen voor de GE 635 mainframecomputer. Naast flexiebel en interactief moest dit systeem ook veilig zijn en moest het eenvoudig zijn om informatie uit te wisselen. Ken Thompson en Dennis Ritchie waren de personen die aan het besturingssysteem werkten. Na veel tegenslagen was uiteindelijk in 1970 de eerste versie van UNIX beschikbaar. Nadat deze versie was verschenen, werd het project in het laboratorium van Bell voortgezet. De tweede release van UNIX werd beschikbaar gesteld, met als belangrijkste vernieuwing een aantal mogelijkheden voor documentprocessing. Veel van deze onderdelen worden nog steeds gebruikt in de UNIX versies van tegenwoordig. De broncode van UNIX was in het begin in principe vrij en dat had zo zijn gevolgen. In 1972 waren er al tien verschillende varianten in omloop. In 1973 werd te kern van het UNIX besturingssysteem (de kernel) herschreven in een voorloper van de huidige programmeertaal C. Hiermee werd het systeem tot wat het nu in nog steeds is. Het besturingssysteem won snel aan populariteit omdat het in tegenstelling tot alle andere besturingssystemen compact was geschreven in een goed te begrijpen programmeertaal. Daarbij bevatte UNIX een aantal succesvolle nieuwe ideeën en werd het niet geheim gehouden. Doordat UNIX geschreven werd in de programmeertaal C, was het eenvoudig voor de programmeurs om er een toepassing voor te schrijven. Deze toepassingen werden vaak later aan de officiële versie van UNIX toegevoegd. In 1974 kregen een aantal universiteiten toestemming om UNIX voor onderwijsdoelen te gebruiken. Een van de eerste universiteiten die het besturingssysteem toepaste, was de universiteit van Californië in Berkeley. Even later kwam het ook beschikbaar voor commercieel gebruik. In die tijd werd UNIX onder andere al veel gebruikt voor de ondersteuning van het telefoonverkeer in de laboratoria van Bell-Telephone. Linux in een netwerkomgeving Pagina 12 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Vanaf de 1975 ontwikkelde UNIX zich snel. Er verschenen veel verschillende UNIX dialecten van verschillende bedrijven en UNIX vond op veel terreinen zijn toepassing. Op veel plaatsen waar computerkracht nodig was en ook waar mainframes groot waren, werd het besturingssysteem massaal toegepast. Zo werd UNIX het besturingssysteem waarmee raketten de ruimte in geschoten konden worden, waarmee de kern van het vroege Internet (ARPAnet) gebouwd werd en waar vele bedrijven hun voorraden mee beheerden. Tegenwoordig wordt UNIX gebruikt op veel computers over de hele wereld, variërend van lichte Personal Computers (PC) tot grote supercomputers. Wat is UNIX nu eigenlijk? Deze vraag kan op twee manieren worden beantwoord: in de enge zin en in de ruime zin. In de enge zin is UNIX de kern van een besturingssysteem, die ervoor zorgt dat er met de computer gewerkt kan worden, dat programma’s gebruik kunnen maken van de faciliteiten die de computer biedt zoals printers en harde schijven. In de ruimere zin is UNIX niet alleen de kern van een besturingssysteem, maar ook alle daarmee samenhangende programma’s die het werken met dit besturingssysteem makkelijker maken. Hierbij kan worden gedacht aan programma’s die gebruikt worden voor het bewerken van bestanden of voor het beheer van gebruikers. Er bestaat echter niet één UNIX. Er bestaan vele tientallen UNIX versies. Deze zijn afgeleid van één van de twee oer UNIX versies, namelijk het Berkeley Software Distribution (BSD) of System V. De laatste tijd heeft het aandeel van System V sterk aan terrein gewonnen ten opzichte van BSD UNIX. In de praktijk komt het erop neer dat er twee verschillende hoofdversies van UNIX zijn, elk met hun eigen bijzonderheden en met zijn eigen commandoset. Deze verschillen zijn ook, hetzij in mindere mate, ook te onderscheiding in de verschillende Linux distributies. 2.2 Linux Linux is een besturingssysteem dat ooit is begonnen als een verbetering van de puur voor educatieve doeleinden gebruikte UNIX-kloon Minix. Het is vanaf het eerste begin ontworpen als “gratis” besturingssysteem; dat wil zeggen: een besturingssysteem waarvan de broncode gratis kan worden gedownload. Er wordt hier dan ook niet gesproken over een gratis besturingssysteem maar over een open source besturingssysteem. Linux is oorspronkelijk ontwikkeld de student Linus Torvalds uit Finland, om gebruikt te worden op de Intel 80386 processor. Tegenwoordig wordt er door honderden programmeurs over de hele wereld gewerkt aan de ontwikkeling van Linux. Linux in een netwerkomgeving Pagina 13 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Een van de belangrijkste redenen waaraan Linux zijn succes te danken heeft, is dat het het eerste open besturingssysteem is, dat multitasking- en multiprocessing mogelijkheden voor meerdere gebruikers op het PC platform ondersteunt. Daarnaast is de broncode van Linux en de meeste programma’s die erop gebruikt worden vrij beschikbaar. Op die manier kan iedereen er aanpassingen op schrijven en juist doordat iedereen mee kan werken aan de ontwikkeling van Linux, is het een van de meest stabiele besturingssystemen die er bestaan. Zoals alle besturingssystemen van tegenwoordig ondersteunt Linux pre-emptive multitasking. Dit betekend dat meerdere programma’s tegelijkertijd gebruik kunnen maken van de processor (CPU), waarbij elk proces een gelijk deel van de processortijd krijgt toegewezen. Het besturingssysteem heeft echter altijd de gelegenheid om in te grijpen. Naast deze mogelijkheid ondersteunt Linux ook computers met meerdere processors (symmetric multiprocessing). Dit zorgt ervoor dat op een computer met meerdere processors verschillende actieve processen gelijktijdig gebruik kunnen maken van de functies die door het besturingssysteem beschikbaar worden gesteld. Dit maakt Linux tot een geschikt besturingssysteem voor servers. Door de mogelijkheid die Linux biedt om meerdere taken en processen gelijktijdig af te handelen, is het ook mogelijk om meerdere gebruikers tegelijkertijd te bedienen. Naast multiprocessing en multitasking is Linux ook multiuser. Meerdere gebruikers kunnen gelijktijdig gebruik maken van de systeembronnen van een Linux-computer. Hierbij levert Linux een goede vorm van beveiliging door middel van permissies. Ook dit aspect maakt Linux zeer geschikt als besturingssysteem voor servers. 2.2.1 De kernel Het hart van Linux is de Linux kernel. De kernel is het deel van het besturingssysteem dat de basisfunctionaliteit levert die nodig is voor de werking van andere delen van het besturingssysteem. Hierbij moet onder andere gedacht worden aan het aansturen van hardware. De Linux kernel onderscheidt zich hierin van andere kernels door de aanwezigheid, en soms afwezigheid, van ondersteuning van bepaalde hardware componenten in de computer. Deze ondersteuning wordt geleverd in de vorm van modulaire stuurprogramma’s. Dit betekend dat ze wel geladen kunnen worden maar dit niet noodzakelijk is wanneer dit niet nodig is. De ideale Linux kernel zou een verzameling zijn van exact die modules die nodig zijn om de hardware in de computer te ondersteunen. Dit betekend dat iedereen een eigen kernel op maat kan maken, waarin precies de ondersteuning zit voor de componenten die in een bepaalde situatie nodig zijn. Wanneer ervoor wordt gekozen een eigen kernel te maken, betekend dit dat er een kernel ontstaat van kleine omvang met maximale prestaties. Dit is dan ook precies de reden waarom Linux zo populair is geworden op allerlei apparaten, zoals telefoons, GPS-systemen en besturingssystemen op servers. Linux in een netwerkomgeving Pagina 14 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Er zijn twee soorten kernels: Ontwikkelkernels kunnen worden herkend door het oneven getal op de tweede positie van het versienummer. Stabiele kernels hebben een even getal op de tweede positie. Er dient voor gezorgd te worden dat er in productiesystemen altijd gebruik wordt gemaakt van een stabiele kernel. 2.2.2 De shell De shell is het deel van het besturingssysteem dat ervoor zorgt dat de commando’s die door de gebruikers worden ingegeven, op de juiste wijze worden geïnterpreteerd. Daarnaast levert de shell de tekstgeoriënteerde interface waarmee de gebruiker kan werken. Er kan gesteld worden dat de shell ervoor zorgt dat een gebruiker niet al te ingewikkelde commando’s aan de kernel kan doorgeven. Voor het Linux platform zijn meerdere shells beschikbaar. De meest gebruikte shell is bash (Bourne Again SHell). Dit is een verbetering van de Bourne shell, die op het UNIX platform veel wordt gebruikt. Andere shells die gebruikt kunnen worden zijn: tc-shell (tcsh) en de pdk-shell (pdksh). Dit zijn verbeterde shells die ook op het UNIX platform gebruikt worden. Standaard wordt in de meeste distributies gebruik gemaakt van de bash shell. Als er meerdere gebruikers zijn ingelogd krijgt iedere gebruiker zijn eigen shell. Ook kan per gebruiker worden ingesteld welke shell zij moeten gebruiken. Figuur 2.2.2.1: De componenten van het besturingssysteem Linux in een netwerkomgeving Pagina 15 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. 2.2.3 X en Window Managers Een volgend onderdeel dat bijna altijd wordt meegeleverd met Linux is X. X levert Xservers die zorgen voor de aansturing van de grafische kaart van een computer. Deze servers maken het mogelijk een grafische interface op de computer actief te hebben. Daarnaast zijn er de X-cliënts: de programma’s waarmee gewerkt wordt op de Xserver. De X-cliënts kunnen zich op dezelfde computer als de X-server bevinden, maar ook op een andere computer in het netwerk. Deze manier van werken levert onder andere op, dat het niet uitmaakt of er op een netwerk of op een stand-alone computer wordt gewerkt. Een afgeleide van X is XFree86, een project met als doel een X-implementatie te leveren voor de PC. XFree86 wordt onderhouden door het XFree86 project. Op bijna alle Linux-systemen wordt gebruik gemaakt van X-servers en cliënts die afkomstig zijn van het XFree86 project. Een nadeel van X zoals die was ontwikkeld is, dat X zelf geen functionaliteit heeft voor het beheer van vensters. Na het opstarten laat een X-server alleen maar een zwart-wit gestippelde achtergrond zien met daarop één enkel venster. Daarom wordt ook gebruik gemaakt van Window Managers. Een Window Manager zorgt er voor dat vensters groter of kleiner gemaakt kunnen worden en dat er een menu wordt weergegeven waarmee programma’s opgestart kunnen worden. Dit komt het erop neer dat X en de Window Manager voorzien in een grafische interface. Een voordeel van deze combinatie is dat de gebruiker niet meer alle commando’s hoeft te kennen maar de beschikbare functies gewoon kan aanklikken. Linux in een netwerkomgeving Pagina 16 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Figuur 2.2.4.1: De shell Er zijn veel Window Managers beschikbaar, van zeer weinig tot heel uitgebreid in omvang en functionaliteit. Bijna alle Window Managers zijn ook beschikbaar gesteld onder de condities van de GPL (zie paragraaf 1.2.4). Naast Window Managers zijn er ook nog de desktop environments. Een desktop environment is een uitbreiding op een Window Manager. Het nut van een desktop environment is het voorzien van een universele interface waarmee gewerkt kan worden. Dit betekend dat een desktop environment programma’s bevat die binnen de grafische omgeving gebruikt kunnen worden. Bij een desktop environment worden library bestanden meegeleverd, dit zijn bestanden met uitvoerbare code die door verschillende programma’s gedeeld kunnen worden. De twee belangrijkste desktop environments die veel worden gebruikt zijn KDE en Gnome. In afbeelding 1.2.4.2 is de desktop environment KDE te zien. Linux in een netwerkomgeving Pagina 17 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Figuur 2.2.4.2: Werken met een desktop environment 2.2.4 GNU Elke Linux installatie maakt vaak gebruik van de zogenoemde GNU utilities. De afkorting GNU staat voor “GNU, not UNIX”, waarmee bedoeld wordt dat het om dezelfde tools gaat maar dat er niet voor betaald hoeft te worden. Dit zijn programma’s die beschikbaar zijn gesteld onder de condities van de GNU General Public Licence (GPL). De GPL is samengesteld op initiatief van de Free Software Foundation (FSF), die als doel heeft gratis software beschikbaar te stellen. De belangrijkste eis die wordt gesteld aan GPL software is dat alle software door iedereen gebruikt, gekopieerd en veranderd mag worden zolang de aanpassingen ook weer beschikbaar worden gesteld onder de GPL. Dit zorgt ervoor dat de software altijd gratis blijft nadat het ooit beschikbaar is gesteld door de GPL. Behalve dat het mogelijk is om programma’s beschikbaar te stellen onder de condities van de GPL, werkt de FSF zelf ook aan programma’s die vervolgens weer beschikbaar worden gesteld onder de termen van de GPL. De FSF kan dit doen dankzij sponsors die geld beschikbaar stellen. De meeste van de utilities ontwikkeld door FSF lijken veel op de software waar wel voor betaald moet worden. In het algemeen kan worden gesteld dat de belangrijke UNIX commando’s waardoor het werken met de Linux kernel iets eenvoudiger wordt, beschikbaar zijn gesteld door de GPL. Linux in een netwerkomgeving Pagina 18 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. 2.2.5 Beschikbaarheid van Linux Linux is gratis beschikbaar. Er zijn echter verschillende manieren om aan een Linux installatie te komen. De eerste manier is het zelf samenstellen van een Linux distributie. Dit valt echter niet mee en valt buiten het bestek van dit verslag maar meer informatie is te vinden op: http://lfs.pagefault.net/lfs/news.html. De tweede manier is een kant en klare distributie downloaden van het Internet. Dit is echter vaak een beperkte versie. Toch is in eerste instantie hiervan gebruik gemaakt om zo de verschillen tussen de verschillende distributies te ontdekken. Vervolgens zijn de Linux distributies die het meest toepasbaar zijn gebleken aangeschaft om van de volledige functionaliteit gebruik te kunnen maken. Een Linux distributie kopen kost niet veel en is geen beperkte versie. Vaak worden diverse zaken bijgeleverd zoals: ondersteuning en een handleiding. De twee grootste distributies zijn: Red Hat en SuSE. 2.2.5.1 SuSE SuSE levert de meest uitgebreide van alle Linux distributies. Waar bij andere distributies maar twee of drie CD’s worden meegeleverd, levert SuSE er zeven en daarnaast ook nog een DVD. Dit heeft als nadeel dat een uitgebreide installatie vrij veel tijd kost. SuSE blinkt uit door het uitgebreide installatiehandboek dat wordt meegeleverd. Door de geautomatiseerde installatieprocedure is SuSE Linux geschikt voor beginnende gebruikers. 2.2.5.2 Red Hat Een van de populairste distributies op dit moment is Red Hat Linux. Red Hat levert een geïntegreerd pakket met een installatieprogramma dat weinig toelichting nodig heeft. Hierdoor is ook Red Hat Linux geschikt voor beginnende gebruikers. Een van de belangrijkste zaken afkomstig van Red Hat, is de Red Hat Package Manager, die door veel distributies gebruikt wordt om de installatie van software eenvoudiger te maken. Een ander interessant feit is dat Red Hat contact heeft met veel grote computer- en softwarefabrikanten om de productlijn zo goed mogelijk af te stemmen. Linux in een netwerkomgeving Pagina 19 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. 2.2.5.3 Toelichting platformkeuze voor server Voordat met dit project is begonnen, is de keuze gemaakt om alleen de twee grootste Linux distributies te onderzoeken. Deze keuze is gemaakt omdat deze de meeste support geven aan bedrijven. Red Hat biedt zelfs cursussen aan waarvoor een certificering kan worden behaald. Dit heeft als voordeel, dat er gecertificeerde engineers zijn die problemen met Red Hat bij bedrijven op professionele wijze kunnen analyseren en oplossen. Het economische belang van ICTivity zal in de toekomst echter bij de SuSE distributie liggen. Dat komt doordat Novell SuSE heeft overgenomen en er daardoor meer enterprise georiënteerde producten op de markt zal brengen. Tevens komt Novell eind van dit jaar met een Netware versie die volledig onder Linux draait. Hierdoor is de keus gemaakt om te beginnen met het testen van de SuSE distributie. Doordat SuSE onder leiding van Novell pas net is begonnen zich op de enterprise markt te wagen, is veel enterprise software nog niet geschreven voor SuSE Linux. Er is wel software beschikbaar maar lang niet zoveel als voor Red Hat Linux dat zich al sinds jaar en dag op de enterprise markt bevind. Dit heeft als nadeel dat er zeer weinig documentatie en oplossingen te vinden zijn van de enterprise software onder SuSE. Nadat deze conclusie was getrokken, werd een nieuwe Red Hat 9 installatie uitgerold. Zoals juist al vermeldt is voor Red Hat veel meer software beschikbaar dan voor SuSE. Onder deze software vallen DHCP servers, DNS servers en Samba servers. Deze programma’s zijn van groot belang voor de voortgang van dit onderzoek. Dit was één van de doorslaggevende factoren om in het vervolg van dit onderzoek gebruik te maken van Red Hat. Een ander groot voordeel dat gaandeweg dit onderzoek is gebleken, is het feit dat voor Red Hat veel meer documentatie op Internet te vinden is met betrekking tot problemen, installatie en configuratie van software. Linux in een netwerkomgeving Pagina 20 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Hoofdstuk 3: Configuratie van Linux Er wordt van uitgegaan dat de installatie van Linux geen problemen met zich meebrengt. Alle stappen die tijdens de installatie moeten worden doorlopen hebben niet veel toelichting nodig. Bij een server is vooral de betrouwbaarheid en performance een belangrijk gegeven. In dit hoofdstuk wordt ingegaan op het configureren van een aantal standaard Linux onderdelen zoals DHCP, DNS, Samba en SQUID. In deze volgorde zijn deze services ook geconfigureerd in de loop van het project. Hiervoor is gekozen om eerst vertrouwd te raken met de standaard Linux services. 3.1 DHCP Tijdens dit project is er voor gekozen om te beginnen de DHCP server te configureren. Dit zorgt ervoor dat het netwerk geconfigureerd is. DHCP is eigenlijk de afkorting van Dynamic Host Configuration Protocol. Dit protocol zorgt ervoor dat er dynamisch IP-adressen aan cliënt werkstations worden toegekend. Wanneer gebruik gemaakt wordt van DHCP kan een apparaat iedere keer dat verbinding wordt gemaakt met het netwerk een ander IP-adres krijgen. Dit is niet altijd gewenst, daarom ondersteund het DHCP protocol een mix van statische en dynamische IP-adressen. Om een DHCP server te configureren wordt bij Linux standaard gebruik gemaakt van het programma DHCPD. Het configuratiescript van dit programma bevindt zich in de directory /etc/dhcpd.conf. 3.1.1 Configuratie bestand De eerste stap die gezet moet worden om de DHCP server te configureren is het aanmaken van een script, waarin netwerk informatie voor de cliënts staat. Dit bestand bestaat uit twee secties, namelijk het globale gedeelte en het share gedeelte. In het globale deel staat de configuratie die geldt voor alle cliënts, in het share gedeelte kunnen zaken staan die gelden voor één of groep computers of gebruikers. Wanneer een optie in zowel het globale als in het share gedeelte voor komt, zal de optie in het share gedeelte altijd dominant zijn ten opzichte van de optie in het globale gedeelte. Binnen het configuratiescript kunnen twee verschillende statements worden toegepast namelijk: Parameters: deze geven aan hoe een taak moet worden uitgevoerd, of welke netwerk configuratie opties er naar de cliënt worden verzonden. Declaraties: deze leveren een beschrijving van het netwerk, beschrijving van de clients, leveren IP-adressen aan de clients of leveren een groep van parameters naar een groep van declaraties. Linux in een netwerkomgeving Pagina 21 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Sommige parameters moeten beginnen met het woord “option”. Deze parameters configureren DHCP opties en moeten dus niet worden geïnterpreteerd als opties waarvan de cliënt zelf mag bepalen of ze worden uitgevoerd. Hieronder zullen de stappen die niet standaard goed staan worden behandeld. De rest van het script kan gewoon standaard blijven. Hiervoor is gekozen om de lezer niet te overladen met stukken code. Het volledige script kan worden gevonden in bijlage 1. Allereerst moet een DNS parameter worden opgenomen in het configuratiescript. Deze parameter configureerd of de DHCP server gebruik moet maken van dynamische DNS. Zonder deze parameter zal de DHCP server nooit starten en zal een fout genereren. Er zijn sinds de laatste versie drie verschillende mogelijkheden namelijk: “ad-hoc”, “interim” en “none”. De “ad-hoc” methode is een oude methode en verdient niet meer de voorkeur. Omdat straks gebruik wordt gemaakt van een DNS server dient de waarde ‘interim’ aan het commando te worden meegegeven. Hierdoor wordt de hostnaam automatisch doorgegeven aan het DNS systeem. ddns-update-stye interim; Omdat de Linux server op dit moment beschikt over twee netwerkkaarten, zal ook aangegeven moeten worden op welke netwerkkaart(en) de DHCP server actief moet zijn. Dit om conflicten met andere netwerken te voorkomen. Daarom wordt onderstaande regel aan het configuratiescript toegevoegd: DHCPDARGS=eth1 Hierdoor wordt aangegeven dat de DHCP server alleen actief is op de tweede ethernetkaart namelijk: eth1. Vervolgens kan de leasetijd worden aangegeven. De leasetijd geeft aan na welke tijd het IP-adres van een (ooit eerder aangemeld) werkstation verloopt en het dus weer wordt vrijgegeven voor andere werkstations. Deze tijd moet worden opgegeven in seconden. Vervolgens moet worden geconfigureerd binnen welk subnet en subnetmasker de DHCP server zijn werk moet doen. Dit kan worden bereikt door de volgende regel in het script op te nemen: subnet 192.168.1.0 netmask 255.255.255.0 { De twee onderstaande regels vertellen de cliënt dat de router zich bevindt op IP-adres 192.168.1.1 en dat het subnetmasker waar het zich in bevindt 255.255.255.0 is. option routers 192.168.1.1; Linux in een netwerkomgeving Pagina 22 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. option subnet-mask 255.255.255.0; De volgende twee regels geven aan de cliënt door dat deze zich bevindt in het domein ictivity.demon.nl en dat de DNS server zich bevindt op IP-adres 192.168.1.1. option domain-name “ictivity.demon.nl”; option domain-name-servers 192.168.1.1; Onderstaande regel is misschien wel de belangrijkste van het configuratiescript. Deze geeft aan tussen welke adressen IP-nummers uitgegeven mogen worden. In het geval hierboven is dat tussen 192.168.1.20 en 192.168.1.150. Er is dus ruimte voor 130 computers met gelijktijdige netwerktoegang. range 192.168.1.20 192.168.1.150; } De bovenstaande configuratie is gebruikt in de Linux testomgeving. Er is echter nog mogelijkheid om ervoor te zorgen dat een bepaalde computer iedere keer hetzelfde IPadres krijgt toegewezen. Dit kan in de praktijk erg handig zijn. Dit is eenvoudig te realiseren door eenvoudig een aantal regels in het script toe te voegen: host denis { option host-name “denis.ictivity.demon.nl”; hardware ethernet 00:A0:78:8E:9E:AA; fixed-address 192.168.1.25; } Hierin wordt geconfigureerd dat de computer met de DNS naam: denis.ictivity.demon.nl met het hardwareadres (MAC): 00:A0:78:8E:9E:AA altijd het IP-adres 192.168.1.25 krijgt toegewezen. 3.1.2 lease database Op de DHCP server in de map /var/lib/dhcpd/dhcp.leases wordt een database bijgehouden van cliënts die een IP-adres hebben toegewezen gekregen. Dit bestand mag niet met de hand worden bijgewerkt. De lease informatie van ieder recent uitgedeeld IP-adres, wordt automatisch opgeslagen in deze database. De informatie bestaat uit de lengte van de lease, bij welke computer het lease IP-adres thuishoort, de start- en einddatum van de lease en het MAC adres van de netwerkkaart die om een IP-adres gevraagd heeft. De leasedatabase wordt van tijd tot tijd opnieuw opgebouwd zodat het bestand nooit echt groot kan worden. Eerst worden alle nog geldige leases gekopieerd en opgeslagen in een tijdelijk bestand. Vervolgens wordt het dhcpd.leases bestand hernoemd naar dhcpd.leases~. Hierna wordt het tijdelijke bestand met de nog geldige Linux in een netwerkomgeving Pagina 23 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. leases hernoemd naar dhcpd.leases. Op deze manier wordt de database eenvoudig opgeschoond. Wanneer door een fout tijdens dit proces de DHCP deamon wordt afgesloten of het systeem vastloopt, is het bestand dhcpd.leases bestand verwijderd, maar nog niet teruggeschreven. Dit bestand is echter wel nodig om de DHCP server te starten. Wanneer dit gebeurd mag nooit een nieuw dhcp.leases bestand worden aangemaakt omdat dan alle oude leases worden verwijderd en dit kan veel problemen veroorzaken. De oplossing is om het bestand dhcpd.leases~ te hernoemen naar dhcpd.leases en vervolgens de server te starten. Hoe de DHCP server gestart moet worden wordt beschreven in de volgende paragraaf. 3.1.3 De DHCP server starten en stoppen Wanneer de DHCP server voor de eerste maal wordt gestart moet het bestand dhcpd.leases handmatig worden aangemaakt. Dit kan door het volgende commando in te typen: touch /var/lib/dhcp/dhcpd.leases Nadat het lease bestand is aangemaakt kan de DHCP server worden gestart. Dit kan door de volgende regel achter de prompt in te typen: /sbin/service dhcpd start De opdracht “start” achteraan de regel, kan worden vervangen door “restart” of “stop”. Dit om de DHCP server opnieuw te starten of geheel te stoppen. Linux in een netwerkomgeving Pagina 24 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. 3.2 DNS 3.2.1 Wat is DNS? Simpel gezegd: Domain Name System (DNS) is het systeem dat ervoor zorgt dat namen worden omgezet in IP-adressen en IP-adressen weer in namen. Maar dat is iets te simpel. DNS doet nog veel meer dan dat. Over het algemeen kan gezegd worden er in DNS gegevens over domeinnamen opgeslagen. Dit kunnen IP-adressen zijn, maar ook namen van mailservers en zelfs vrije tekst. DNS is een flexibel, hiërarchisch, gedistribueerd en redundant systeem. Flexibel: Het is mogelijk om vele soorten informatie op te slaan in DNS. Hiërarchisch: DNS is georganiseerd vanaf een hoogste punt, de DNS root. Onder de root liggen de zogenaamde toplevel domeinnamen zoals 'nl', 'com' en 'org'. Daar weer onder liggen de second level domeinnamen zoals 'linux' onder 'org'. Een ook daar weer onder liggen domeinnamen. Gedistribueerd: elk subdomein kan op zijn eigen nameserver draaien. Het is dus niet nodig om alle informatie centraal op te slaan. Redundant: elk domein behoort meerdere nameservers te hebben. De DNS root heeft er bijvoorbeeld 13 en het domein 'nl' heeft er op het moment van schrijven 7. Kleine en middelgrote domeinen hebben meestal twee nameservers. DNS is opgebouwd uit zones, die elk één of meerdere (sub)domeinen kunnen bevatten. 3.2.2 Bestandslocaties De locaties van de bestanden zijn afhankelijk van het al dan niet chrooten van de server. Dit zorgt voor een grotere beveiliging, maar is iets lastiger op te zetten. Met het commando chroot wordt de root (hoofddirectory van een bestandssysteem) op een ander punt gelegd. Alle directories die boven de nieuwe root staan zijn voor gebruikers niet meer te benaderen. In een normale configuratie zonder chroot gebruiken worden de volgende bestandslocaties gebruikt: Configuratie: /etc/named.conf Zonefiles: /var/named/zones/ Dit is echter sterk afhankelijk van de gebruikte distributie. Over het algemeen is het verstandig om de voorkeuren van de gebruikte distributie over te nemen, in plaats van de hier gegeven bestandslocaties. In een chrooted configuratie worden de volgende bestandslocaties gebruikt: Configuratie: /var/named/etc/named.conf Zonefiles: /var/named/zones/ Linux in een netwerkomgeving Pagina 25 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. In veel setups is het gebruikelijk om zonefiles (bestanden die gegevens bevatten over domeinen) te plaatsen in /var/named/ en niet in /var/named/zones/. In de praktijk blijkt dit echter niet handig te werken, vooral wanneer bind chrooted draait (wat uiteraard de voorkeur heeft, uit veiligheidsoogpunt). Daarom dient de directory aangemaakt te worden in /var/named/zones. 3.2.3 Caching nameserver De eerste stap van het opzetten van bind is het opzetten van een zogenaamde caching nameserver, ook wel recursieve nameserver genoemd. In deze setup gaat de nameserver op zoek naar gegevens bij andere nameservers. 3.2.3.1 De configuratie Het configuratiebestand heeft de naam: named.conf. In bijlage 2 is een voorbeeld te vinden van dit bestand. Vaak kan de standaardconfiguratie die standaard is ingevuld grotendeels worden overgenomen. Deze configuratie heeft drie bestanden nodig, die waarschijnlijk al staan in /var/named/. Deze moeten worden verplaatst naar /var/named/zones/. De bestanden zijn: root.hint: heet soms ook named.root of db.root localhost.zone: ook wel db.localhost of db.local 127.0.0.zone: ook wel db.127.0.0 of db.127 Wanneer bind wordt gestart met /etc/init.d/named start, kunnen er wat tests worden uitgevoerd, namelijk: host localhost 127.0.0.1: moet opleveren: "localhost. has address 127.0.0.1" host 127.0.0.1 127.0.0.1: moet opleveren: "1.0.0.127.in-addr.arpa.domain name pointer localhost." host nl.linux.org 127.0.0.1: moet opleveren: "nl.linux.org. has address 131.211.28.48" host is een van de diagnostische tools van bind. 3.2.3.2 Configuratie van werkstations Nu bind draait, kunnen de werkstations zo geconfigureerd worden dat ze gebruik maken van de opgezette server. Hiertoe wordt het bestand /etc/resolv.conf als volgt aangepast: nameserver 172.16.1.1 Linux in een netwerkomgeving Pagina 26 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Vaak zal eerst /etc/hosts geraadpleegd worden voor DNS. De “hosts” regel kan eventueel worden aangepast in het bestand /etc/nsswitch.conf: hosts: files dns 3.2.4 Reverse lookups Meestal is het niet voldoende om een IP-adres te krijgen wanneer een naam wordt hostnaam wordt ingevuld, anders om is ook noodzakelijk ook het omgekeerde te kunnen. Dit wordt een reverse lookup genoemd. Omdat aan een IP-adres niet te zien is tot welke zone deze behoort, is er een speciale zone waarin alle IP-adressen opgenomen kunnen worden, in-addr.arpa. Het adres wordt geschreven van 'achter naar voren' en gevraagd aan het DNS-systeem: wanneer de naam niet bekend is maar wel het IP-adres, bijvoorbeeld 1.2.3.4, dan kan er worden gezocht naar: 4.3.2.1.Inaddr.arpa. De resource records die namen aan adressen koppelen zijn zogenaamde PTR-records. Net als bij andere resource records is het hierbij mogelijk dat een IP wijst naar meerdere namen. In de praktijk gebeurt dat echter zelden en is het feitelijk ook niet wenselijk. Zie het voorbeeld in bijlage 3 van example.com. Het netwerk van example.com is 10.0.x.y. Daarbinnen is een opdeling tussen 10.0.0.x voor de webservers en dergelijke en 10.0.1.x voor het kantoor. Er is voor gekozen om de zone 0.10.In-addr.arpa hiervoor te gebruiken. Het was eventueel ook mogelijk geweest om 10.In-addr.arpa te gebruiken. Die kan meer adressen bevatten, maar is vaak eerder een nadeel dan een voordeel. De zonefile in het voorbeeld bevat de reverses van 10.0.0.x en een delegatie naar ns.office.example.com voor de reverses van 10.0.1.x. Wanneer men de naam wil weten van 10.0.0.2, dan kan er worden gevraagd aan het PTR-record van 2.0.0.10.I-addr.arpa, waarna als antwoord ns.example.com wordt gegeven. Wanneer men de naam wil weten van 10.0.1.1 is, dan gaat de nameserver dat vragen aan ns.office.example.com omdat er een delegatie is opgenomen. Op ns.office.example.com draait de zone 1.0.10.in-addr.arpa. Linux in een netwerkomgeving Pagina 27 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. 3.2.4.1 Reverses opvragen met dig Dig vraagt altijd letterlijk om de opgegeven resource record, de volgende opdracht zal bijvoorbeeld het A-record opvragen van 10.0.0.1: dig 10.0.0.1 De -x optie geeft aan dat dig moet vragen om een PTR-record en dat hij de data automatisch moet omzetten naar reverse-notatie. De volgende opdracht vraagt om de PTR-record voor 1.0.0.10.in-addr.arpa: dig -x 10.0.0.1 Host vraagt wel automatisch om een PTR-record als zijn argument lijkt op een IP-adres. Linux in een netwerkomgeving Pagina 28 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. 3.3 Samba Samba is één van de meest interessante te configureren services van dit project. Hiervoor is extra tijd genomen omdat de mogelijkheden bijna eindeloos zijn. Bij veel netwerken wordt gebruik gemaakt van verschillende netwerkprogrammatuur zoals: Linux/Unix De vele Windows varianten OS/2 Macintosh OS X Enz… Voor de netwerkbeheerder ligt de zware taak om al deze incompatibele netwerksystemen aan elkaar te knopen. De oplossing biedt zich aan in de vorm van Samba, dit protocol is compatibel met alle bovengenoemde besturingssystemen. Met Samba is het mogelijk om bestandsuitwisseling mogelijk te maken onafhankelijk van het gekozen platform. Samba is de open source implementatie van de Server Message Block (SMB) en Common Internet File System (CIFS) protocollen. CIFS is een doorontwikkeling van het SMB protocol. CIFS heeft niet alleen de mogelijkheid om bestanden en printers te delen tussen de verschillende platformen, over verschillende netwerkprotocollen, maar het is van zichzelf een transportprotocol. Samba wordt meestal toegepast voor het delen van bestanden en printers tussen Windows cliënts en Linux/UNIX servers. Als fileserver zou de performance van Samba, qua snelheid en qua betrouwbaarheid, een stuk hoger liggen dan die van Windows NT/2000/2003. 3.3.1 Domain controller De Primary Domain Controller (PDC), zoals Microsoft die heeft ontwikkeld, is het eenvoudigst in gebruik omdat deze een aantal administratieve taken combineert. De PDC levert diensten zoals “single sign-on” (enkele aanmelding voor diverse services), informatie over de domeingebruikers en gebruiker authenticatie. Het voordeel van deze manier van authenticatie is dat gebruikers zich maar één keer hoeven aan te melden voor alle ter beschikking gestelde services. Zonder PDC zou de gebruiker zich moeten aanmelden voor de fileserver, firewall, proxy server, enz. Linux in een netwerkomgeving Pagina 29 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Samba beschikt over een goede PDC net zoals die van Windows NT. Deze heeft de volgende functionaliteiten: Zwevende profielen; het maakt niet uit op welk werkstation wordt aangemeld, de gebruiker houdt altijd zijn eigen bureaublad. Standaard inloggen van alle Windows cliënts, Windows NT/2000 type systeem beleid Naam services Op gebruikersniveau beveiliging voor Windows 9x/ME cliënts. Het enige nadeel dat Samba heeft ten opzichte van een Microsoft Domain Controller is, dat Samba niet ingesteld kan worden als Backup Domain Controller (BDC) wanneer de PDC een Windows server is. Er is wel een manier om twee Samba machines te installeren als PDC/BDC, maar dat wordt in dit verslag niet behandeld. 3.3.2 Installatie van Samba Wanneer gekozen is om Samba op Linux te gebruiken als PDC moet Samba eerst geïnstalleerd worden op Linux. Wanneer deze is bijgeleverd in de Linux distributie dient deze eerst te worden verwijderd om plaats te maken voor de nieuwste versie. Dit verwijderen kan worden gedaan door het commando: rpm –e <pakketnaam> in te typen achter de Linux prompt. Wanneer de pakketnaam niet bekend is kan dit worden achterhaald door het commando: rpm –qa | grep samba Dit commando laat een lijst zien met pakketten die de naam Samba bevatten. Deze pakketnamen moeten ingevuld worden bij <pakketnaam>. Wanneer de nieuwe versie van Samba is gedownload, kan deze worden geïnstalleerd door het commando in te typen: rpm –i <pakketnaam> Wanneer dit succesvol verlopen is, kan verder worden gegaan met het configureren van Samba. Linux in een netwerkomgeving Pagina 30 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. 3.3.3 Configuratie van Samba 3.3.3.1 Het Samba configuratiescript smb.conf Samba wordt geconfigureerd door het script van het bestand smb.conf aan te passen. Bij Red Hat bevindt dit bestand zich in de /etc/samba directory. Bij andere Linux distributies kan dit bestand zich ergens anders bevinden. Om te kijken waar dit bestand zich bevindt kan simpel het volgende commando worden ingetypt: locate smb.conf In de testopstelling wordt gebruik gemaakt van Red Hat 9.0 dus staat het smb.conf bestand gewoon in de bovengenoemde directory. Het bestand kan worden veranderd met behulp van een editor. De meest gebruikte editor in Linux is de vi-editor. Deze kan worden opgestart door het commando: vi <bestandsnaam> In dit geval wordt dat dus vi smb.conf. Nu zal de inhoud van smb.conf worden weergegeven. Door nu op de letter i van “Insert” te drukken kan de tekst worden bewerkt. Wanneer dit script moet worden opgeslagen dient op ESC gedrukt te worden en vervolgens op :wq. Dit staat voor Write Quit. Dit commando slaat het bestand op en sluit de vi-editor af. Let hierbij wel op de volgorde van de commando’s! Wanneer :wq wordt omgedraaid zal de vi-editor eerst worden afgesloten en vervolgens worden opgeslagen. Dit resulteert dat het bestand dus niet wordt opgeslagen. In bijlage 4 is het hele configuratiescript te zien dat in deze situatie is gebruikt. Hieronder volgt een korte uitleg over dit bestand. Elke regel waarvoor een # of een ; staat wordt overgeslagen door het programma, deze tekens staan vaak voor uitleg van het script of regels die niet worden gebruikt. Verder is er nog Global en Shared gedeelte in het script. Wanneer een waarde zowel in het Global als in het Shared gedeelte voorkomt wordt de waarde die in het Shared gedeelte voorkomt uitgevoerd. Het Shared gedeelte is dus altijd dominant ten opzichte van het Global gedeelte. # workgroup = NT-Domain-Name or Workgroup-Name workgroup = ICTIVITY netbios name = Linux Linux in een netwerkomgeving Pagina 31 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. De eerste regel die wordt uitgevoerd geeft de werkgroep weer waar de Linux server lid van is. De tweede regel geeft de sharenaam van de Linux server weer, die de Windows gebruikers op hun werkstation te zien krijgen wanneer zij in hun netwerkomgeving kijken. server string = Samba Server %v %h In dit gedeelte van het script wordt de beschrijving van de Linux server ingesteld. In dit geval dus Samba Server. %v geeft het Samba versienummer mee en %h laat de computernaam zien. hosts allow = 192.168.1. 127. Deze regels zijn belangrijke regels voor de beveiliging van Samba. Hierin wordt geregeld dat alleen computers geaccepteerd worden die in het IP-bereik 192.168.1.0 of 127.0.0.0 zitten. 127.0.0.0 is altijd de eigen computer in dit geval de Linux server. Die mag standaard altijd inloggen tenzij in het script wordt aangegeven dat het NIET mag. max log size = 50 Hierin wordt aangegeven dat het log bestand nooit groter mag worden dan 50kb. De waarde die hier wordt opgegeven is in kilobyte. security = user Dit geeft aan op welk niveau de bestanden van de Linux server gedeeld moeten worden. Er zijn een aantal mogelijkheden zoals: user en share. In de user mode moet de gebruiker zich aanmelden. In de share mode kan iedere gebruiker in die gedeelde map komen. ; ; password level = 8 username level = 8 Deze regels worden op dit moment niet gebruikt maar is voor extra veiligheid wel de moeite waard te vermelden. Het nummer 8 achter password level staat voor het minimum aantal karakters die de gebruiker als wachtwoord moet ingeven. Bij minder karakters wordt het wachtwoord niet geaccepteerd. Voor de “username level” geldt hetzelfde alleen dan voor de gebruikersnaam. encrypt passwords = yes smb passwd file = /etc/samba/smbpasswd De eerste regel geeft aan of er gebruik moet worden gemaakt van gecodeerde wachtwoorden. Zonder gecodeerde wachtwoorden kan men in het bestand /etc/samba/smbpasswd het wachtwoord snel achterhalen. Dit is een belangrijk beveiligingsprobleem. Dit is de eerste reden waarom voor encrypt passwords de optie yes is gegeven. Linux in een netwerkomgeving Pagina 32 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. De tweede reden is dat Microsoft vanaf Windows ’98, standaard gecodeerde wachtwoorden ondersteunt. Wanneer er encrypt password = no had gestaan was het niet mogelijk geweest met Windows versies nieuwer dan Windows ’95 in te loggen. unix password sync = Yes passwd program = /usr/bin/passwd %u passwd chat = *New*password* %n\n *Retype*new*password* %n\n *passwd:*all*authentication*tokens*updated*successfully* In deze sectie wordt doorgegeven aan Samba dat het de wachtwoorden tussen Linux, UNIX en Windows moet synchroniseren. Wanneer er in Windows een wachtwoord gewijzigd wordt, zal dit ook in Samba worden gewijzigd. Verder worden er paden aangegeven waar het wachtwoordprogramma te vinden is en welke procedure er moet worden gevolgd om het wachtwoord te kunnen veranderen. Zo zal Samba twee keer vragen het wachtwoord in te typen om vervolgens te vertellen dat alle authenticatietokens zijn geüpdate. interfaces = 192.168.1.1/24 In het geval van de testopstelling moet deze regel worden geconfigureerd omdat de Linux server over twee netwerkkaarten beschikt. Hier wordt geconfigureerd dat alleen cliënts geaccepteerd mogen worden die aan de netwerkkaart 192.168.1.1 met subnetmasker 255.255.255.0. local master = yes De regel hierboven verteld de samba server dat deze zich als master-browser voor de werkgroep beschikbaar moet stellen. os level = 64 Wanneer Samba is geconfigureerd als PDC dient deze een hogere waarde mee te krijgen dan de eventueel aanwezige Windows NT server. In dit geval, waar maar één server in het netwerk aanwezig is, heeft dit getal geen grote waarde. domain master = yes De regel hierboven vertelt Samba dat deze zich als een PDC moet gedragen. preferred master = yes Wanneer meerdere werkgroep file servers aanwezig zijn, bijvoorbeeld een Windows NT server, dan krijgt de computer waarin deze optie op “yes” staat altijd het voordeel ten opzichte van de andere. Wanneer in dit netwerk een Windows NT machine is opgenomen, zal de Samba server altijd voorrang krijgen ten nadele van de Windows NT machine. Linux in een netwerkomgeving Pagina 33 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. domain logons = yes Deze optie geeft aan dat Samba zich moet gedragen als domein inlog server voor Windows ’95 werkstations. Dit zorgt ervoor dat de gecodeerde wachtwoorden zo worden omgezet dat gebruikers van een Windows ’95 werkstation zonder problemen kunnen inloggen. Windows ’95 maakt namelijk nog geen gebruik van gecodeerde wachtwoorden. logon logon logon logon path = \\%L\Profiles\%U home = \\%L\%U drive = F: script = netlogon.bat Hierin staat het pad naar het loginscript, de homedirectory, wat de eerste netwerkschijf wordt en hoe het loginscript bestand heet. In dit geval is de eerste netwerkschijf drive F: en heet het login script netlogon.bat. Nu volgt het share gedeelte van het smb.conf bestand. Hierin worden de werkelijke directories gedeeld. [homes] comment = Home Directories browseable = no writable = yes valid users = %S create mode = 0664 directory mode = 0775 Hierboven worden de home directories gedefinieerd. Er staat dat er niet via netwerkomgeving mag worden gebrowsed en dat er wel in geschreven mag worden. Valid users =%S staat voor de gebruikers die gebruik mogen maken van de home directories. %S is de variabele waarin de gebruikersnaam wordt ingevuld van diegene die inlogt. Verder staan en nog verschillende modes die gebruikt moeten worden. # Un-comment the following and create the netlogon directory for Domain Logons [netlogon] comment = Network Logon Service path = /home/samba/netlogon writable = no share modes = no Hierin staat het pad naar het loginscript en de home directory. Er mag niet naartoe gebrowsed worden vanuit netwerkomgeving en mag alleen worden gelezen. Linux in een netwerkomgeving Pagina 34 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. [Profiles] path = /home/samba/profiles browseable = no De laatste regel uit het configuratiescript van Samba configureerd het pad naar waar de profielen worden opgeslagen. Er moet dan gedacht worden aan een omgeving met flexibele werkplekken waarbij de medewerkers van het bedrijf steeds op een ander werkstation zitten. Deze willen wel hun eigen bureaublad hebben, dus wordt deze opgeslagen op de server. Wanneer de gebruiker inlogt wordt het bureaublad rechtstreeks vanaf de server geladen in plaats van de lokale harde schijf. 3.3.3.2 Aanmaken van de gebruikte directories, groepen en gebruikers Wanneer Samba is geconfigureerd met smb.conf moeten alle gebruikte groepen en directories worden aangemaakt. Eerst worden groepen aangemaakt voor de machines die in mogen loggen en de daaraan gekoppelde gebruikers. Dit wordt gedaan door middel van de volgende commando’s /usr/sbin/groupadd -g 200 admins /usr/sbin/groupadd -g 201 machines Hierin wordt het programma groupadd gestart die een groep maakt van admins met groepsnummer 200 (Linux werkt met groepsnummers, geen enkel groepsnummer mag overeenkomen met een ander groepsnummer). Vervolgens moeten de directories die zijn toegepast in het script worden aangemaakt. mkdir -m 0775 /home/samba /home/samba/netlogon Hierboven staat dat er twee nieuwe directories aangemaakt moeten worden in directory mode 0775. Dit zijn /home/samba en /home/samba/netlogon. Vervolgens worden er rechten toegekend aan de directory /home/samba/netlogon. Met het volgende commando wordt de root gebruiker van de admins groep eigenaar van de directory /home/samba/netlogon. Dit wil zeggen dat alleen de root-gebruiker gemachtigd is om te schrijven en veranderen. chown root.admins /home/samba/netlogon Vervolgens wordt dezelfde procedure herhaald voor de zwevende profielen met de commando’s: mkdir /home/samba/profiles chown 1757 /home/samba/profiles Samba vereist dat iedere computernaam die inlogt op de server bekend is. Alle computers dienen dus aangemaakt te worden. Dit kan met het commando: Linux in een netwerkomgeving Pagina 35 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. /usr/sbin/useradd -g machines -d /dev/null -c "Windows 98 laptop" -s /bin/false test$ Hierboven staat aangegeven dat er een machine aangemaakt moet worden in de machines groep, dat deze niet beschikt over een home directory, vervolgens kan een omschrijving van het werkstation worden ingegeven en er is geen toegang tot de shell. De computernaam is “test” en het $ teken staat voor een “trust account”. Hierna kan de authenticatie worden ingesteld en wordt het wachtwoord gelocked. Dit is te bereiken door het volgende te typen: passwd -l test$ Wanneer dit commando goed is uitgevoerd komt er te staan: passwd: Success. Nu is het wachtwoord voor Linux ingesteld maar dit moet ook gedaan worden voor Samba. In Linux staan alle programma’s los van elkaar. Het wachtwoord voor Samba kan als volgt worden ingesteld: /usr/bin/smbpasswd -a -m test Wanneer dit bestand niet bestaat zal dit worden aangemaakt. Er dient op gelet te worden dat het programma smbpasswd niet het dollarteken achter de machinenaam nodig heeft. De paramaters –a en –m staan voor respectievelijk “add” toevoegen aan database en –m dat het hier om een machineaccount gaat. Nu de machine bekend is kan een gebruiker worden aangemaakt. Dit gaat op bijna dezelfde manier als hierboven al beschreven is, daarom zal hier slechts een korte uitleg volgen. Wanneer de gebruiker in de Shell mag komen kan bijvoorbeeld de volgende commandoregel worden gebruikt: /usr/sbin/useradd -g users -d /home/denis -c "Denis de Wit" -s /bin/bash denis Hierin wordt aan Linux kenbaar gemaakt dat er een gebruiker wordt toegevoegd die thuishoort in de groep “users”, homedirectory staat in /home/denis, de omschrijving van de persoon is “Denis de Wit”, hij mag in de Shell komen en zijn aanmeldnaam is denis. Wanneer deze persoon niet in de shell mag komen kan het stuk in de regel /bin/bash worden vervangen door /bin/false. Vervolgens dient de gebruiker nog een wachtwoord te krijgen voor Linux als ook voor Samba. Dit gaat volgens hetzelfde principe als zojuist is behandeld. Linux in een netwerkomgeving Pagina 36 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Nu is de configuratie voltooid en kan getest worden of alles goed is geconfigureerd. Dit testen is te doen door het commando “testparm” te gebruiken. Als het goed is wordt de volgende tekst teruggegeven op het scherm: Load smb config files from /etc/samba/smb.conf Processing section "[homes]" Processing section "[netlogon]" Processing section "[Profiles]" Loaded services file OK. Nu zeker is dat alles naar behoren werkt kan Samba worden gestart. Dit is te doen door de volgende opdrachtregel achter de prompt in te vullen: /etc/rc.d/init.d/smb start In plaats van “start” kan ook “stop” of “restart” worden gegeven om Samba te stoppen of opnieuw te starten. Vervolgens kan worden getest of Samba ook daadwerkelijk werkt. Door het volgende in te toetsen: smbclient -L localhost Wanneer hier om een wachtwoord wordt gevraagd dient hiervoor niets te worden ingevuld. Wanneer de volgende melding wordt gegeven is Samba goed ingesteld: Anonymous login successful Hierna kunnen de Windows werkstations worden geconfigureerd dat ze zich moeten aanmelden in het domein, waarvan de domeinnaam hetzelfde is als wat er in het smb.conf bestand staat ingevuld achter workgroup. 3.3.4 Mounten van Samba shares op een Linux cliënt Eerst dient een directory te worden aangemaakt waarin de share wordt gezet. Gekozen is om dit in de standaard sharemap te plaatsen, namelijk /mnt. mkdir /mnt/server Vervolgens kan het volume worden gemount met: mount –t smbfs –o username=<gebruiker>,password=<wachtwoord> //Linux/root /mnt/server Het mountpoint heet nu /mnt/server. Via deze weg is nu de opslagruimte van de server op het werkstation te benaderen. Linux in een netwerkomgeving Pagina 37 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. 3.4 Squid Een proxy server biedt Internettoegang aan meerdere gebruikers tegelijk door het delen van een enkele Internet verbinding. Een goede proxy server biedt ook de mogelijkheid om aanvragen te cachen, hierdoor wordt de verbinding minder belast doordat bij een tweede aanvraag eerst de lokale data wordt doorgegeven. Squid is een software pakket dat zowel proxy, HTTP caching, ftp, gopher enz. ondersteunt. Bovendien ondersteunt het SSL, toegangs controles, cachen van DNS en onderhoudt het een log bestand waarin alle aanvragen worden bewaard. 3.4.1 Toegangscontrole Door middel van toegangscontrole mechanismen, kan de toegang tot Internet worden gecontroleerd, vooral met betrekking tot tijdsduur, tijdstip, cachen, toegang tot populaire websites of website groepen, enz. De Squid toegangscontrole bestaat uit twee onderdelen, Access Control List (ACL) elementen en een toegangslijst. Een toegangslijst maakt toegang tot de service mogelijk of juist onmogelijk. Enkele belangrijke soorten ACL elementen worden hieronder genoemd src : Source (bron), ofwel het IP adres van cliënts dst : Destination(doel), ofwel de IP adressen van de betreffende server(s) srcdomain : Source, ofwel de domeinnaam van de cliënt dstdomain : Destination, ofwel de domeinnaam van de server time : Tijd, dag, week, datum... url_regex : URL standaard uitdrukkingspatroon koppeling urlpath_regex: URL-path standaard uitdrukkingspatroon koppeling, zonder protocol en naam van de gastheer proxy_auth : Gebruikers authorisatie met behulp van externe processen maxconn : Maximum aantal verbindingen vanaf een enkel cliënt IP adres Om deze controles te activeren, moet eerst een ACL worden gedefinieerd, en daarna kan deze worden toegepast. Het format voor een ACL statement is: Acl acl_element_name type_of_acl_element values_to_acl Opmerking: acl_element_name kan een door de gebruiker gedefinieerde naam zijn die gegeven is aan een ACL element. Geen twee ACL elementen mogen dezelfde naam hebben. Iedere ACL bestaat uit een lijst met waarden. Wanneer wordt gezocht naar een overeenkomst, wordt voor meerdere waarden gebruik gemaakt van de "OR"-logica. Met andere woorden: een ACL element wordt gezien als overeenkomstig, zodra een van de opgegeven waarden overeenkomt. Linux in een netwerkomgeving Pagina 38 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Niet alle ACL elementen kunnen worden gebruikt in combinatie met alle soorten toegangslijsten. Verschillende ACL elementen worden aangegeven op verschillende regels en Squid combineert deze en maakt er een lijst van. Er zijn een aantal verschillende toegangslijsten beschikbaar. Degene die hier gebruikt gaan worden zijn hieronder te vinden: http_access: Laat HTTP cliënts een verbinding maken via de HTTP poort. Dit is de primaire toegangscontrole lijst. no_cache: Definieert het cachen van antwoorden op aanvragen. Een toegangslijst regel bestaat uit "keywords" zoals "allow" of "deny" die toegang tot een bepaald ACL element voor de service of een aantal services regelt. Opmerking: De regels worden gecontroleerd in de volgorde waarop ze zijn opgegeven en de controle stopt zodra er een overeenkomst is gevonden. Een toegangslijst kan bestaan uit meerdere regels. Zodra geen van de regels overeenkomt, is de standaard actie het omgekeerde van de laatste regel in de lijst; het is dus verstandig om duidelijk te zijn over de standaard actie. Alle elementen van een toegangsregel zijn samengevoegd met "AND" en worden op de volgende manier uitgevoerd: http_access Action statement1 AND statement2 AND statement OR. http_access Action statement3 Multiple http_access statements worden gekoppeld via "OR" terwijl elementen van een toegangsregel met "AND" worden gekoppeld De regels worden altijd van boven naar beneden worden gelezen. Linux in een netwerkomgeving Pagina 39 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. 3.4.2 Squid Configureren De werking en het gedrag van Squid worden aangegeven door de instellingen in het configuratie bestand, hier is dat "squid.conf". Dit bestand kan meestal worden gevonden in de directory /etc/squid. Het eerste dat moet worden ingesteld is de http_port, deze geeft aan op welk socketadres Squid aanvragen van cliënt systemen moet aannemen. Standaard staat dit op 3128. Naast alleen een poortwaarde kan ook het IP adres van de machine waar Squid op draait worden aangegeven: http_port 172.16.1.57:3128 Met de bovenstaande invulling, zit Squid op IP adres 172.16.1.57 met het poortadres 3128. Hier kan ieder ander poort adres worden opgegeven, maar er dient wel voor gezorgd te worden dat er geen andere applicatie dat poortadres al in gebruik heeft. Met ongeveer gelijkwaardige configuratie regels kunnen ook de poorten voor andere services worden opgegeven. Standaard zal Squid geen toegang geven aan cliënts, om dit mogelijk te maken moeten de toegangscontrole lijsten worden aangepast. Er moeten eigen regels worden opgesteld voor toegang. In het bestand squid.conf, boven de regel “http_access deny all”, kunnen de volgende regels worden toegevoegd: acl mynetwork 172.16.1.1/255.255.255.0 http_access allow mynetwork “mynetwork” is de naam van de ACL en de volgende regel is de regel die toe moet worden gepast op een bepaalde ACL, geheten "mynetwork". 172.16.1.1 is een referentie naar het netwerkadres met het netmask 255.255.0.0. mynetwork is in feite niets meer dan een naam voor een groep machines in het netwerk en de volgende regel geeft de cliënts toegang. De bovenstaande veranderingen samen met "http_port" is al voldoende om Squid werkend te krijgen. Na de veranderingen kan Squid met het volgende commando worden gestart: service squid start Na iedere verandering in het configuratie bestand, moet het draaiende Squid proces worden gestopt om de nieuwe instellingen te activeren bij een herstart. Deze twee stappen kunnen met het volgende commando worden uitgevoerd: /etc/rc.d/init.d/squid restart Linux in een netwerkomgeving Pagina 40 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. 3.4.3 Windows Cliënt Machine Configuratie Aangezien de cliënt aanvraag vanaf een bepaalde poort van de proxy server moet komen, moet de cliënt zo worden ingesteld dat deze een aanvraag doet op de juiste poort. Dit kan voor Microsoft Internet Explorer als volgt worden ingesteld: 1. Klik op "Extra" -> "Internet Opties" 2. Selecteer het Tab-blad "Verbindingen" en klik op "LAN instellingen" 3. Vink de "Proxy Server" box aan en geef het IP adres van de proxy server en het poortadres op (http_port address). 3.4.4 Toegangscontrole Gebruiken Meervoudige toegangscontrole en regels bieden een zeer goede en flexibele manier om de cliënttoegang tot Internet te beheren. Voorbeelden van de meest voorkomende controles worden in bijlage 5 gegeven. Er is een keuze gemaakt om slechts enkele van deze voorbeelden te testen om zo tijd terug te winnen die is verloren met Samba. 3.4.5 Log Bestanden Alle log bestanden van Squid staan in de directory /var/log/squid. Hierin staan de cache log, toegangs (access) logs en het store.log. Het bestand access.log bevat informatie over de aanvragen van cliënts, activiteit en het beheert de opgave voor iedere HTTP & ICP query die ontvangen wordt door de proxy server, het IP adres van de cliënts, de aanvraag methode, het aangevraagde URL, enz. De gegevens in dit bestand kunnen worden gebruikt om de toegangsaanvragen te analyseren. 3.4.6 Squid Configuratie met Webmin Voor diegene die niet zo thuis zijn in script bestanden biedt het programma Webmin uitkomst. Deze methode is gebruikt om de server in de Linux testopstelling te configureren. Webmin kan als volgt worden benaderd: Start een Internetbrowser en typ in de adresbalk: http://<ip-adres van server>:10000 Dus bijvoorbeeld: http://172.16.1.1:10000. Vervolgens dient te worden ingelogd met het “root” account en wachtwoord. Daarna kan op het icoon “servers” worden geklikt waarna het scherm van de verschillende servers wordt weergegeven. Selecteer nu “Squid Proxy Server”. Linux in een netwerkomgeving Pagina 41 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Nu kan de optie “ports and Networking” worden geselecteerd en komt het scherm voor zoals die in afbeelding 2.4.6.1. Figuur 3.4.6.1: Ports and Networking in Webmin Op deze pagina kan hetzelfde worden ingesteld als in het script onder: http_port 172.16.1.57:3128 Nadat deze instelling is ingesteld en opgeslagen, kan worden teruggekeerd naar het hoofdscherm van Squid. Vervolgens dient het icoon “Access Control” geselecteerd te worden. Hierin kunnen zaken als ACL’s ingesteld worden. Klik op “all” in de sectie “Access control lists” op deze pagina en hier kan worden ingevuld welke IP-adressen er toegang hebben tot het Internet. Dit is te zien in figuur 2.4.6.2. Er kunnen ook eigen ACL’s worden toegevoegd. Figuur 3.4.6.2: Cliënt Address Access Control List Na deze actie hebben deze cliënts nog steeds geen toegang tot Internet. De oorzaak hiervan is dat Squid nog steeds standaard alle gebruikers blokkeert. Dit kan worden opgelost door in de sectie “Proxy Restrictions” op de “deny” te klikken die vóór “all” staat. Vervolgens komt er een scherm waar gekozen kan worden tussen de opties “deny” en “allow”. Hier dient “allow” geselecteerd te worden. Als het goed is, is nu het scherm te zien zoals getoond is in afbeelding 2.4.6.3 op de volgende pagina. Linux in een netwerkomgeving Pagina 42 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Figuur 3.4.6.3: Access Control Lists Nu kan Squid worden gestart en kunnen de gebruikers gebruik maken van de proxy server. 3.5 Firewall Een "Firewall" heeft minstens 2 netwerkverbindingen (bijvoorbeeld ethernet en adsl/modem/isdn), en werkt dus als een soort router. Een firewall filtert het verkeer tussen de netwerken, en gebruikt daarvoor filter-regels. De manier waarop dat werkt en waar die regels vastliggen, onderscheidt verschillende soorten firewall systemen. Er kan gewerkt worden op niveau van transport of van gebruik. De "packetfilter" werken op niveau van het netwerkprotocol (OSI laag 3 en 4) en filtert datapakketjes op basis van de kenmerken toegepast door deze laag. De "Application Level Gateway" werkt op het "application layer" niveau (OSI laag 5, 6, 7), wat kan gaan tot het analyseren van de, voor de firewall, nuttige gegevens, wat goede controle mogelijk maakt. Daarbij kan een firewall ook nog de stroom van pakketten bestuderen, en daaruit meer conclusies trekken dan mogelijk is uit één op zichzelf staand pakket. Wanneer Linux wordt toegepast als gateway computer, kan hierop gelijk een firewall geïnstalleerd en geconfigureerd worden. Er zijn zelfs speciale Linux distributies die op één diskette passen en waarmee van een oude computer een volledige firewall en router gemaakt kan worden. Linux in een netwerkomgeving Pagina 43 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Enkele voorbeelden van dit soort distributies zijn: Coyote, LFR, FloppyT. De firewall toepassingen die in Linux distributies beschikbaar zijn ipfwadm, ipchains of iptables. De eerste twee firewall toepassingen worden bij nieuwe versies van distributies niet meer gebruikt omdat deze veroudert zijn. Op dit moment wordt bij de twee grote distributies (Red Hat en SuSE) alleen nog iptables meegeleverd. De versie van Red Hat waarmee wordt getest draait op kernel 2.4. Kernel 2.0 Kernel 2.2 Kernel 2.4 ipfwadmin Ipchains iptables packetfilter chains, port forw, transp. proxy, QoS, IPv6, masq/NAT statefull inspection, traffic shaping, extra NAT options Tabel 3.5.1: firewall functionaliteiten Dit firewall programma is afkomstig van een open source project genaamd Netfilter. Deze firewall is erg uitgebreid en ondersteunt onder andere het Network Address Translation (NAT) protocol om andere werkstations op het netwerk onzichtbaar te laten zijn wanneer deze gebruik maken van de internetverbinding. 3.5.1 Packet filter Het IP protocol maakt gebruik van een header met extra informatie waarmee de data ingepakt wordt. De firewall kan die informatie gebruiken, maar moet er rekening mee houden dat die ook gemanipuleerd kan zijn. Zo wordt in de header, het adres van de afzender en dat van de bestemming vermeld. De bestemming is bruikbaar voor de firewall. In het "option" veld kan aangegeven worden langs welke weg het pakket over het Internet gestuurd moet worden. De antwoorden van deze pakketten leggen diezelfde weg in omgekeerde richting ook weer af. Een wijziging hier kan grote gevolgen hebben: iemand die wil meelezen zal graag zijn adres in dat veld krijgen. Er moet altijd rekening gehouden worden, dat de gegevens in de header gemanipuleerd kunnen zijn. Als een IP pakket te lang is wordt het opgesplitst in fragmenten, die bij de ontvanger weer samengevoegd worden. Daarbij worden de velden Total Length, Identification, More Fragments, en Fragment Offset gebruikt. Het is voor een firewall moeilijker bij een opgesplitst pakket om de inhoud te beoordelen. ICMP staat voor Internet Control Message Protocol, en strekt zich over twee OSI lagen uit: het wordt overgebracht in de data, maar heeft een IP-functie. ICMP Redirect berichten hebben invloed op de routing tabel, ook PING maakt gebruik van ICMP. Ook hier dringt een keuze zich op om dingen te blokkeren. Linux in een netwerkomgeving Pagina 44 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. 3.5.2 Stateful Packet Filter Bij UDP en ICMP is het nog moeilijker dan bij TCP om de verbinding te controleren. Daarom wordt gebruik gemaakt van een Stateful Packet Filter, die zich ook inlaat met het leggen van de verbinding, de daaruit gewonnen gegevens later gebruikt bij het beoordelen van de volgende pakketten. Daarbij komen toestanden in iptables voor als: ESTABLISHED (verbinding gelegd), NEW (verbinding tot stand brengen), RELATED (verbinding tot stand brengen als uitbreiding op een bestaande verbinding, bijvoorbeeld bij FTP: een controle en een data verbinding), INVALID (geen of ongeldige verbinding). Ook al zijn alle "flags" op de meest verwarrende manier veranderd, dan nog mag een firewall zich niet van zijn stuk laten brengen of door zijn reactie te veel informatie over zichzelf vrijgeven. 3.5.3 Filter Eerst wordt er een standaard maatregel ingesteld: bijvoorbeeld: ‘laat alles door behalve wat hierna verboden wordt’, of: ‘laat niets door tenzij wat hierna toegelaten wordt’. Om veiligheidsredenen wordt meestal deze laatste manier gekozen. De filterregels worden achtereenvolgens doorlopen tot het pakket verwerkt is. Daardoor speelt de volgorde van de filters in de filterregels ook een rol. Er zijn 3 rijen "chains": INPUT: voor eigen systeem bestemd OUTPUT: uitgaande pakketten FORWARD: van één netwerk interface doorgestuurd naar de volgende. o Kernel -2.2: input + forward + output o Kernel 2.4: input | forward | output De "forward" pakketten komen nu dus rechtstreeks in de "forward-rij" terecht, terwijl ze vroeger de input, forward, en output rij doorliepen. Linux in een netwerkomgeving Pagina 45 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. 3.5.4 Application level gateway Application level gateway zit als een proxy tussen de cliënt en de server. De cliënt verbindt met de proxy, en vraagt daar de informatie aan. Die beslist dan om de vraag verder te stellen. De gateway kan bijvoorbeeld checken of de gebruiker op de cliënt toegang heeft tot die dienst. Deze kan ook "content filtering" doen door het weigeren van URL's, viruscheck, Active-X controls eruit halen, enz. Verder kan een cache de efficiëntie van het systeem verhogen, en kan bijvoorbeeld vermeden worden dat persoonsgegevens buiten gaan. Voor het gebruik van een proxy, moet de verbinding worden opgesteld dooor gebruik te maken van SOCKS. Dat betekent dat de cliëntsoftware daarin moet voorzien (Bij Konqueror: Settings -> Configure Konqueror -> Proxy). Hoewel encryptie ook in het kader van beveiliging wordt gebruikt, is duidelijk dat het de filtering bemoeilijkt of zelfs tegenwerkt, zeker als die vanaf de cliënt wordt toegepast. Soms is het echter mogelijk dat met de firewalls te integreren. 3.5.5 IPTables IPtables bestaat uit twee kanten: de gebruikers- en de kern-zijde. Het kernel deel hoort bij de kernel, wordt ermee verspreid, erin gecompileerd als iedere andere willekeurige module zoals: geluid, filesysteem, enz. De opbouw van iptables in de kernel is te zien in de figuur op de volgende pagina. Naast het belangrijkste deel van iptables dat minimaal aanwezig moet zijn, is er keuze mogelijk voor onderdelen voor NAT, logging, connection tracking enz. De gebruikerskant bestaat uit een "binary", die ook iptables wordt genoemd, maar apart van de kern verspreidt een aangepast wordt, deze bevat de regels. Voor de regels wordt de hoofdletterversie gebruikt van de commando’s uit de vorige paragraaf. NAT is mogelijk op gebied van bron of van bestemming (source NAT werkt in de POSTROUTING chain, destination NAT werkt in de PREROUTING/OUTPUT chain). IP-masquerading is een vorm van SNAT (Source NAT). Linux in een netwerkomgeving Pagina 46 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Netwerk mangle PREROUTING Nat PREROUTING Filter INPUT Local Process Mangle OUTPUT Filter FORWARD Nat OUTPUT Filter OUTPUT Nat POSTROUTING Network Figuur 3.5.5.1: opbouw firewall Het bovenstaande diagram vertegenwoordigt de stroom van datapakjes door de kernel. In elk vak is een naam te vinden in hoofdletters en in kleine letters. Elke naam in kleine letters (mangel, nat, filter) verwijst naar een ‘table’. Echter kan beter gezegd worden dat deze woorden verwijzen naar kernel subroutines waarin de door de beheerder gedefinieerde regels staan. Met het commando: iptables –t kan de te programmeren subroutine (table) worden gekozen. Bijvoorbeeld: iptables –t nat verwijst naar de subroutine ‘nat’. Wanneer de optie –t niet wordt meegegeven, wordt de opdracht automatisch aan de subroutine ‘filter’ meegegeven. Linux in een netwerkomgeving Pagina 47 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. De woorden in hoofdletters definiëren ‘chains’. In dit geval staan hier alleen standaard ‘chains’. Vaak worden de standaardinstellingen toegepast in netwerken omdat deze vaak al goed werken. Wanneer er toch iets gewijzigd moet worden kan dit worden gedaan met het commando: Iptables -P chain-naam Bijvoorbeeld: iptables -t nat -A POSTROUTING ... Bovenstaand commando plaatst een, door de beheerder gedefinieerde, opdrachtregel in de POSTROUTING ‘chain’. Deze opdrachtregel wordt uitgevoerd door de ‘nat’ subroutine. Wanneer alle regels zijn gedefinieerd kan de firewall worden gestart met het commando: /etc/rc.d/firewall 3.5.6 Firewall Rules Onderstaande commando’s kunnen worden gebruikt in het configuratiescript van IPtables: ACCEPT: pakket doorlaten DROP: pakket weggooien REJECT: pakket weigeren (afzender krijgt info) MASQ/NAT: verander IP adres, poortnummer REDIRECT: omleiden naar andere poort CRYPT: versleutelen (VPN) LOG: bijhouden in log-bestand, eventueel bijkomend naast andere actie. 3.5.7 iptables configureren met Webmin Wie niet zo thuis is in het zelf schrijven van code kan dit natuurlijk altijd laten doen. Webmin is een uitgebreid programma om Linux te beheren. Ook nu wordt eenvoudig gebruik gemaakt van deze interface. Tijdens de voortgang van het project is in eerste instantie gekeken naar het scriptbestand zelf. Vervolgens is de configuratie uitgevoerd met behulp van Webmin. Hierna is het script weer bekeken om erachter te komen wat er is verandert. Deze aanpak blijkt een goede leermethode te zijn. Om een regel in webmin toe te voegen kan via een browser worden gesurft naar: http://<server-ip>:10000 Linux in een netwerkomgeving Pagina 48 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Klik vervolgens op het icoon ‘networking’ en vervolgens op ‘Linux Firewall’. Als het goed is wordt het volgende scherm weergegeven. Figuur 3.5.7.1: Squid configuratie met Webmail Zoals te zien is kan worden gekozen voor welke ‘table’ een regel toegevoegd moet worden. Verder kunnen regels worden toegevoegd voor de ‘chains’: INPUT, FORWARD en OUTPUT. Vervolgens kunnen deze regels worden bewaard en kan iptables zo worden geconfigureerd dat deze automatisch start bij het opstarten van de server. Linux in een netwerkomgeving Pagina 49 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Hoofdstuk 4: Apache Webserver De meest gebruikte webserver op Internet is de Apache webserver. Deze webserver bestaat intussen in veel verschillende versies voor diverse besturingssystemen. Op het Internet wordt vaak gebruik gemaakt van Linux als Apache platform. Omdat de meeste bedrijven een eigen webserver hebben, is dit onderwerp in het verslag opgenomen. Het zal in de toekomst vaker voorkomen dat een engineer een Linux webserver moet installeren. In dat geval is dit hoofdstuk bedoeld als naslagwerk. Apache bestaat uit twee onderdelen. Er is een webserver deamon, httpd en het bijbehorende configuratiebestand httpd.conf. Bij de huidige versies van Apache vindt alle configuratie plaats in httpd.conf, op oudere versies is de configuratie verdeeld over drie bestanden namelijk: httpd.conf, access.conf en srm.conf. Het zijn heel veel instellingen mogelijk in de Apache configuratie, echter een klein deel hiervan is interessant voor dit verslag. Hieronder zullen deze instellingen worden besproken. ServerRoot: Deze instelling bepaald wat de rootdirectory is van de Apache server. Met de rootdirectory wordt in dit geval de directory bedoeld waarin alle webpagina’s en configuratiebestanden voorkomen. Deze directory verschilt nogal per distributie. Bij Red Hat bevindt zich deze onder: /var/www/html. Het wordt aanbevolen deze standaarddirectory te gebruiken. Kostte nogal wat tijd om deze te veranderen wat niet gelukt is. De huidige gebruikte instelling is: ServerRoot "/etc/httpd" Port: Standaard staat deze ingesteld op poort 80. dit is de standaardpoort voor http. Voor testdoeleinden of slechte manier van beveiliging kan een ander poortnummer worden opgegeven. Wanneer gebruik wordt gemaakt van beveiligde SSL verbindingen dan dient hier poort 443 aan te worden toegevoegd. In de testopstelling is de instelling: Listen 80. User en Group: Met de directives User en Group kan worden aangegeven als welke gebruiker of groep de webserver actief is. Standaard zijn dat de gebruikers Nobody en de groep Nogroup. Dit zijn accounts waaraan weinig rechten gekoppeld zijn. Op het moment dat een persoon op de website per ongeluk toegang krijgt tot de shell, moeten de rechten zo laag mogelijk zijn ingesteld. Iedere wijziging van de gebruikersnaam in de naam van een gebruiker is een potentieel gevaar voor de beveiliging van de website. De standaardinstelling is bij de testopstelling gewoon blijven staan. ServerAdmin: Met deze directive kan het e-mailadres van de beheerder van de webserver gegeven worden. Dit adres wordt aan de personen op de website doorgegeven wanneer er problemen zijn. De gemaakte instelling is: ServerAdmin [email protected] ServerName: Om de naam van de webserver in te stellen kan deze directive gebruikt worden. Wanneer de webserver vanaf het Internet benadert moet worden, moet ervoor worden gezorgd dat dit ook een werkelijk bestaande DNSnaam is. Deze instelling is niet gebruikt omdat er gebruik wordt gemaakt van DNS. Linux in een netwerkomgeving Pagina 50 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. DocumentRoot: Deze directive wordt gebruikt om een absoluut pad op te geven naar de directory waarin de HTML documenten staan. Elke installatie heeft hiervoor een standaardoplossing. Op een webserver voor grotere netwerken kan het handig zijn om deze directory op een apart volume op de schijf te zetten. Dit pad is in geval van de Linux testserver: DocumentRoot "/var/www/html". Dit is gewoon de standaarddirectory voor HTML documenten van Apache. DirectoryIndex: Een directory index bepaalt op welke manier een gebruiker overzicht krijgt van de bestanden in een bepaalde directory. Er kan hier gebruik worden gemaakt van speciale indexbestanden. Deze directive zorg ervoor dat wanneer bijvoorbeeld in een browser wordt ingetypt: http://www.ictivity.nl dat automatisch het bestand index.htm wordt opgestart zonder dat de naam van dit bestand in de browser hoeft te worden ingetypt. Tijdens het testen was er één probleem, standaard staat hierbij alleen index.html opgegeven. Op de gebruikte website was de eerste pagina niet index.html maar Index-frameset.htm. Deze waarde moest dus worden toegevoegd aan deze directive: DirectoryIndex Index-frameset.htm index.html index.html.var. Daar komt nog bij dat deze website niet in de standaarddirectory geïnstalleerd was. Het heeft een tijd geduurd voordat dit probleem was opgelost en Apache goed draaide. Er zijn natuurlijk veel meer instellingen te maken. Maar met behulp van deze instellingen is het mogelijk om een eenvoudige webserver op te zetten. Problemen hebben zich hierbij eigenlijk nauwelijks voorgedaan. Het enige probleem waar tegenaan gelopen is, is dat telkens de testpagina werd weergegeven. Na dit probleem in een forum te hebben geplaatst, bleek een instelling in de DirectoryIndex niet juist te staan. Na dit te hebben verholpen bleek de webserver goed te werken. Een aardige toevoeging van het httpd.conf configuratiebestand, is het script dat ergens op een webpagina is gevonden. Dit script zorgt ervoor dat onveilige http verbindingen automatisch worden omgeschreven naar het veilige https verbindingen. Dit is handig voor bedrijven bij toepassingen zoals portals en webmail. Het script ziet er als volgt uit: # redirect http to https # If you don't try to access https, then redirect to https RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [L,R] Wanneer gebruik wordt gemaakt van virtuele hosts moeten de volgende twee regels ook aan iedere virtuele host entry in het httpd.conf worden toegevoegd: RewriteEngine on RewriteOptions inherit Linux in een netwerkomgeving Pagina 51 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Hoofdstuk 5: Configuratie van de Mailserver Voor veel bedrijven is communicatie met medewerkers van essentieel belang. De evolutie van groupware heeft de laatste jaren dan ook een enorme vlucht genomen. Er zijn twee grote mainstream groupware leveranciers, namelijk: Exchange van Microsoft Groupwise van Novell Het is de bedoeling om een open source vervanging te zoeken, die zoveel mogelijk overeenkomende functionaliteiten bevat met de zojuist genoemde software. In eerste instantie is op diverse forums gezocht op Internet. Hieruit bleek dat qmail-toaster een vaak genoemde mailserver is. Nadat was uitgezocht hoe deze geconfigureerd en geïnstalleerd moest worden kon deze worden geïnstalleerd. Als snel na de installatie bleek dat dit een leuk mailprogramma is voor thuis maar niet in een bedrijfsomgeving. Door het ontbreken van enkele essentiële onderdelen voor een organisatie zoals: kennismanagement, taken, overzichtelijke agenda enz. werd deze oplossing aan de kant gezet. Na nog een dag te hebben besteedt aan het zoeken naar alternatieven, bleek SuSE Linux OpenExchange server ook goede recensies te hebben. OpenExchange is relatief goedkoop en is eenvoudig te beheren. OpenExchange bevat onder andere de volgende open source componenten: Postfix Apache 1.3 Cyrus IMAP OpenLDAP Samba PostgreSQL SpamAssassin Tomcat SuSE OpenExchange server ondersteunt de volgende standaard beveiligingsprotocollen: Transport Layer Security (TLS) Simple Authentication and Security Layer (SASL) SMTP Authentication (SMTP-AUTH) Linux in een netwerkomgeving Pagina 52 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. 5.1 Een standalone, Dedicated e-mail Server Bij SuSE Linux OpenExchange server wordt SuSE Enterprise Linux 8 meegeleverd. Deze combinatie is ontwikkeld om te draaien als stand alone, dedicated server. Samen met Samba en OpenLDAP kan deze server gebruikt worden als domain controller voor gemengde Linux/Windows netwerken. Samba dient dan als file-share service terwijl OpenLDAP de gebruikers authenticatie database beheerd. Een waarschuwing is wel op zijn plaats. Bij SuSE Linux Enterprise server worden beheerprogramma’s meegeleverd. Dit mag niet worden gebruikt om OpenExchange te configureren. In plaats daarvan moeten de beheerprogramma’s worden gebruikt van OpenExchange zelf. Om deze programma’s te benaderen kan een Internet browser worden gestart met daarin het IP-adres van de server. Vervolgens kan worden ingelogd met de gebruikersnaam: cyrus. De gebruiker ‘mailadmin’ kan worden gebruikt om de email van de beheerder te lezen. Het wachtwoord voor deze gebruikers is hetzelfde wachtwoord dat wordt gebruikt voor de ‘root’ account. Er zijn in OpenExchange server veel toepassingen geïntegreerd, met ingebouwde veiligheid (SMTP-AUTH, TLS), ondersteuning voor meerdere domeinen, virtuele domeinen, POP, IMAP en webmail. Inbellen wanneer dit noodzakelijk is (dial-ondemand) is eenvoudig in te stellen. Tevens wordt er een programma meegeleverd die binnenkomende SPAM kan markeren en verwijderen. Gebruikers kunnen hierbij zelf aangeven wat er met de gemarkeerde e-mail moet gebeuren. De belangrijkste functionaliteit van SuSE OpenExchange server is de webinterface die zowel gebruikt kan worden door gebruikers als door beheerders. Dankzij deze interface hebben gebruikers geen stand-alone e-mail cliënt op de werkplek nodig. Ondersteuning voor e-mail cliënts is echter wel toegevoegd aan OpenExchange server voor diegene die deze echt nodig hebben. Echter deze biedt niet dezelfde mogelijkheden als de webinterface. Onderstaand zijn een aantal afbeeldingen van de webinterface te zien. Linux in een netwerkomgeving Pagina 53 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Figuur 5.1.1: Portal nadat gebruiker heeft ingelogd. Figuur 5.1.2: Overzichtelijke webmail interface Linux in een netwerkomgeving Pagina 54 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Figuur 5.1.3: De admin interface waarmee OpenExchange geconfigureerd kan worden 5.2 OpenExchange is meer dan een mailserver Geen enkel bedrijf kiest een groupware pakket om alleen maar mail te versturen. De basis waarop OpenExchange server draait is een PostgreSQL database. Documenten worden opgeslagen in deze database als database objecten, in plaats van gewoon gekopieerd via Samba. De gebruikers zien hier uiteraard helemaal niets van, deze zien een mooie directory structuur en maken gebruik van een grafische interface. Om items te benaderen, wordt gebruik gemaakt van hyperlinks. Dit resulteert in een overzichtelijke structuur (zie figuur 4.2.1). Een laag schijfgebruik wordt gerealiseerd doordat wanneer een bestand wordt gekopieerd deze alleen een nieuwe snelkoppeling maakt naar het originele bestand. Op deze manier wordt voorkomen dat een bestand door gebruikers oneindig vaak wordt gekopieerd. Linux in een netwerkomgeving Pagina 55 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Figuur 5.2.1: Overzichtelijke database op basis van hyperlinks Wat erg handig is in OpenExchange server is dat de gebruikers zelf hyperlinks naar bestanden kunnen aanmaken. Deze kunnen vervolgens worden gedeeld met andere gebruikers of gebruikersgroepen, zonder dat de organisatie van de bestanden zelf wordt veranderd. Al deze links bij elkaar vormen een knowledge database. Ook hier zien de gebruikers alleen hyperlinks, niet de echte bestanden of directories. Voor gebruikers is het ook handig om de zoekfunctie te gebruiken. Deze doorzoekt alle teksten op het gezochte trefwoord. Verder is een agenda aanwezig waarop duidelijk alle geplande afspraken staan. Tevens is het mogelijk om een andere gebruiker toegang te geven tot diverse onderdelen van de agenda. Een handige optie is ‘teamview’. Dit maakt het mogelijk om wanneer er voor meerdere personen afspraken gemaakt moeten worden beide agenda’s weer te geven om snel een overzicht te krijgen wanneer beide personen ingepland kunnen worden. Linux in een netwerkomgeving Pagina 56 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Figuur 5.2.2: Teamview Er is zijn discussieforums en ‘pin-boards’ geïntegreerd in OpenExchange server zodat informatie of taken snel kan worden uitgewisseld. Het ‘pin-board’ wordt ook direct op de introductiepagina op de portal weergegeven. Linux in een netwerkomgeving Pagina 57 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. 5.3 Kosten OpenExchange is een uitgebreid pakket met vele functies. Het pakket bevat het besturingssysteem en tien groupware cliënts voor de relatief lage prijs van €1475,Gebruikers van externe e-mail cliënts zoals outlook hoeven niet te betalen voor licenties. Voor elke extra groupware cliënt dient €50 betaalt te worden. Een overzicht van de kosten van de verschillende mailservers is in de tabel hieronder weergegeven. Er wordt van uit gegaan dat er geen extra support pakketten worden aangeschaft. Verder is er van uitgegaan dat alle gebruikers van OpenExchange server in het bezit zijn van een licentie om op de portal te kunnen inloggen. Voor Groupwise hoeft niet betaald te worden voor de software zelf, maar alleen voor de cliënts. Overzicht prijzen mailservers 10 users Microsoft Exchange server standaard Novell Groupwise 6.5 SuSE LinuxOpenExchange server 100 users 500 users 1000 users 1.914,00 8.844,00 39.644,00 78.144,00 1.237,50 12.375,00 61.875,00 123.750,00 1.475,00 5.975,00 25.975,00 50.975,00 Overzicht producten Microsoft Exchange server standaard Licentie per gebruiker Novell Groupwise 6.5 Licentie per gebruikers SuSE Linux OpenExchange server incl. 10 cliënts Licentie per gebruiker Tabel 5.3.1: Overzicht prijzen mailservers 1.144,00 77,00 0,00 123,75 1.474,00 50,00 Uit de tabel kan worden opgemaakt dat wanneer SuSE Linux OpenExchange server wordt gebruikt voor bedrijven met 10 gebruikers dit niet de goedkoopste e-mailserver is. Pas vanaf bedrijven met 100 gebruikers is deze mailserver goedkoper dan Exchange van Microsoft of Novell Groupwise. Dit is de reden dat SuSE Linux OpenExchange server geschikt is voor middelgrote tot grote bedrijven die op zoek zijn naar een goede mailoplossing, omdat hierin alle belangrijke groupware onderdelen aanwezig zijn en dit pakket zeer eenvoudig te configureren is. Linux in een netwerkomgeving Pagina 58 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Hoofdstuk 6: Linux op werkstation In een project waarvan de naam “Linux in een netwerkomgeving” is, moet zowel de serverkant als de cliëntkant worden besproken. Linux op het werkstation in interessant omdat hiermee een grote besparing kan worden gedaan op de licentiekosten. In dit hoofdstuk wordt besproken of Linux al klaar is om op het werkstation te worden toegepast. Belangrijk zijn hier net als bij servers: betrouwbaarheid en performance. Echter omdat de gebruiker constant met deze computer moet werken komen hier zaken als: gebruiksvriendelijkheid en beschikbare software bij. Er is voor gekozen om de Internetversies te downloaden om op die manier een vergelijking te kunnen maken met betrekking tot bovengenoemde punten. Er wordt per distributie een korte omschrijving gemaakt om vervolgens de voor- en nadelen met elkaar te vergelijken. 6.1 Mandrake Linux De Linux distributie Mandrake Linux was gestart in juli 1998 door Gaël Duval. Al sinds de eerste release van de distributie is deze al enorm populair. De basis van Mandrake is gebaseerd op die van Red Hat, met de verschillen dat de standaard desktop werd veranderd van Gnome naar KDE en de installatieprocedure werd vereenvoudigd door gebruik te maken van eenvoudige menu’s. Dankzij deze menu’s werd een einde gemaakt aan het feit dat Linux moeilijk te installeren was. De hardwareondersteuning en partitie utilities werden door veel gebruikers geprezen als de beste die tot dan toe beschikbaar waren, terwijl andere distributies er niet in slaagden om een eenvoudig te gebruiken tool hiervoor te ontwikkelen. Mandrake Linux is hedendaags volgroeid tot een volwaardige distributie voor beginnende gebruikers die zoeken naar een alternatief voor Windows. De ontwikkeling van Mandrake is volledig open en transparant. De updates verschijnen dagelijks op de server in de zogenaamde cooker directory. Wanneer een nieuwe release in beta fase verschijnt, volgt een korte maar intense testsessie. Vanaf versie 9 is deze tijd iets langer geworden. Deze methode van ontwikkelen heeft als voordeel dat de uitgebrachte software altijd up-to-date is. Het nadeel is echter dat de kans op bugs groter wordt en dat de distributie minder stabiel is dan bij andere distributies. Veel gebruikers vinden de hoeveelheid fouten acceptabel, men heeft altijd de nieuwste software-updates en zij kunnen leven met het idee dat het besturingssysteem af en toe vastloopt. Voordelen: Gebruiksvriendelijk, Grafische configuratie utilities, enorm veel support van de Mandrake gemeenschap, ondersteunt het veranderen van de NTFS partitie grootte. Nadelen: In sommige nieuwe releases zijn nog veel fouten aanwezig, deze releases zijn alleen beschikbaar voor personen die lid zijn van de MandrakeClub. Linux in een netwerkomgeving Pagina 59 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. 6.2 Red Hat Linux & Fedora Core Voor veel mensen staat Red Hat synoniem voor Linux. Dit omdat Red Hat waarschijnlijk de meest bekende Linux distributie in de wereld is. De laatste versie van Red Hat als gratis besturingssysteem is Red Hat 9. Hierna zullen alle gratis versies worden geleverd onder de naam door Fedora Core. Men is bang dat Fedora Core gaat dienen als testversie van Red Hat en hierdoor veel bugs zal bevatten. Wat is er zo speciaal aan Red Hat? Het is een mix van oude en nieuwe pakketten samen met eigen ontwikkelde software. De pakketten zijn nooit echt up-to-date; wanneer er een nieuwe beta versie wordt aangekondigd, worden de versienummers bevroren en worden er alleen nog veiligheidsupdates voor dit pakket uitgebracht. Het uiteindelijke resultaat is een door en door geteste en stabiele distributie. Red Hat levert niet zoveel software mee als SuSE. Dat lijkt jammer, maar het is eigenlijk wel prettig. Bij de distributie is een aantal duidelijke keuzes gemaakt waardoor het overzicht behouden blijft. Zo levers Red Hat bijvoorbeeld niet zes verschillende email cliënts maar alleen de beste. Een andere reden waarom Red Hat zo populair is geworden is omdat het handige services aanbiedt. Een voorbeeld is het Red Hat Network. Software updates zijn via dit netwerk eenvoudig te downloaden en te installeren. Dit kan gezien worden als een soort Windows Update waarbij het programma zelf gaat zoeken naar updates en deze vervolgens zelf installeert zonder dat de tussenkomst van de gebruiker vereist is. Software updates zijn in principe niet gratis, hiervoor dient een abonnement genomen te worden. Er is echter ook een gratis account waarvoor iedere twee maanden een enquête moet worden ingevuld. Voordelen: Red Hat wordt wereldwijd gebruikt, veel software wordt specifiek voor Red Hat ontwikkeld, logische opbouw, enorm veel support van de Red Hat gemeenschap, veel innovatie Nadelen: slechte multimedia ondersteuning, ongerustheid over de overgang van Red Hat naar Fedora. 6.3 Debian Linux Debian is een volledig non-commercieel project. Honderden vrijwillige ontwikkelaars verspreid over de hele wereld dragen hun steentje bij aan het project. Dit project is goed georganiseerd en iedereen dient zich strikt aan de eisen van het project te houden. Het resultaat is een hoogwaardige distributie net de naam: Debian. Tijdens het ontwikkelen van software doorloopt deze een drietal fasen: “unstable”, “testing” en “stable”. Wanneer een nieuw softwarepakket net ontwikkeld is wordt deze als “unstable” aangeduid. Vervolgens worden er verschillende tests mee uitgevoerd. Wanneer het pakket de tests doorstaat wordt het overgeheveld naar “testing”. Daar wordt het pakket zwaar getest en zal enkele maanden in beslag nemen. Pas wanneer hier alle tests succesvol zijn afgerond wordt dit de nieuwe “stable” (stabiele) versie. Dit resulteert in een stabiele, niet altijd up-to-date distributie. Linux in een netwerkomgeving Pagina 60 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Debian staat bekend als een echte techneutendistributie, waarbij de makers nadrukkelijk niet streven naar winst maar uitsluitend proberen een zo goed mogelijke distributie in elkaar te draaien. Debian is minder geschikt voor beginners, maar wel voor Linux-kenners die een flexibel systeem willen dat volledig naar hun hand te zetten is. Dit blijkt wanneer Linux geïnstalleerd moet worden, geen mooie procedure, maar een aantal consolebased menu’s waarin aangegeven moet worden wat precies de bedoeling is. Helaas blinken deze schermen niet uit in duidelijkheid. Het updaten van de distributie was tot voor kort voor een beginner haast onmogelijk, maar in de nieuwe distributie wordt de handige tool “apt-get” meegeleverd. Dit is een handig programma om Debian pakketten te updaten dat rekening houdt met “dependencies”. Dit houdt in dat wanneer een pakket afhankelijk is van het andere, deze ook wordt geüpdate om problemen te voorkomen Voordelen: 100% gratis, goede website en bronnen voor support, goed geteste software-updates en moeiteloze software updates met “apt-get”. Nadelen: Alleen gevorderde gebruikers krijgen Debian geïnstalleerd, de stabiele software-updates zijn al verouderd voordat deze beschikbaar zijn. 6.4 SuSE Linux SuSE is een bedrijf dat zich van oorsprong vooral op de desktopmarkt heeft gericht, hoewel er wel een aantal enterprise producten beschikbaar zijn. De distributie heeft veel positieve reacties gehad voor de installatieprocedure met de YaST configuratietools. De documentatie die wordt meegeleverd bij de versie die gekocht kan worden, is pas geleden geprezen als meest complete, meest grondige en de meest bruikbare die tot nu toe beschikbaar is. De distributie is het meest populair in Europa en noord Amerika. In Azië en andere delen van de wereld is het niet beschikbaar. Sinds kort is SuSE overgenomen door Novell. De ontwikkeling van SuSE vindt volledig achter gesloten deuren plaats. Er zijn geen publieke beta versies beschikbaar om te testen. Ook is het niet mogelijk om de volledige versie te downloaden van Internet. Dit is iets wat andere distributies wel doen. SuSE is verkrijgbaar in twee versies, namelijk: SuSE Personal en SuSE Professional. In de testopstelling is alleen de versie SuSE Professional beschikbaar. Het verschil zit in de hoeveelheid meegeleverde software en beschikbare handboeken. Op de installatie CD’s en DVD is ongeveer alles aanwezig wat er aan Linux software te bedenken is, zoals videobewerking, openoffice 1.1, enz. Linux in een netwerkomgeving Pagina 61 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. De goede indruk van SuSe Linux wordt alleen maar versterkt wanneer het product geïnstalleerd is. SuSE biedt een zeer complete distributie die prettig oogt en eenvoudig werkt. Een van de kenmerkende onderdelen is het beheersprogramma YaST2. Hiermee kan volledig beheer worden uitgevoerd over SuSE Linux. Niet alleen hardware wordt hiermee geïnstalleerd maar ook software. Op dit laatste punt blinkt SuSE overigens uit in vergelijking tot de andere besproken distributies: er wordt bij het installeren van software automatisch gecontroleerd of er andere programma’s nodig zijn om de software te kunnen gebruiken. Is dit het geval, dan wordt die software automatisch mee geïnstalleerd. Voordelen: Professioneel oog tot in ieder detail, eenvoudig te gebruiken YaST configuratieprogramma Nadelen: Niet over de hele wereld verkrijgbaar en alleen via softwareleveranciers of via FTP download. 6.5 Vergelijking Geen van de hier besproken Linux-distributies is duidelijk slechter dan de ander. Alleen Debian valt in mijn opzicht iets buiten de boot. Deze is moeilijk te installeren en biedt standaard geen Openoffice aan, wat de compatibiliteit met Windows werkstations negatief beïnvloedt. In Mandrake, Red Hat en SuSE is Openoffice wel aanwezig wat de kantoorfunctionaliteit ten goede komt. Op dit moment kan Red Hat het meest worden aanbevolen omdat standaard al een goed pakket aan software wordt meegeleverd en veel Linux-software op Internet voor Red Hat is geschreven. In de toekomst wanneer Novell samen met SuSE een nieuwe standaard voor Linux in een netwerkomgeving heeft gevormd zou dit wel eens kunnen veranderen. Er zijn echter een aantal nadelen te noemen wanneer Linux wordt vergeleken met Windows op het werkstation. Er kan worden gesteld dat op het gebied van tekstverwerken beide besturingssystemen elkaar niet ver ontlopen. Linux kan goed met het bestandsformaat van Microsoft om, die worden gebruikt om Word en Excel documenten op te slaan. De enige fout die mij bekend is, is wanneer er gebruik wordt gemaakt van macro’s. Doordat het bestandsformaat goed overeen komt, is het mogelijk om een gemixt netwerk met Windows – en Linux cliënts op te zetten. Op dit moment is veel software, die op cliënts draaien, echter geschreven voor Windows. Hier beginnen dus de problemen. Linux is niet compatible met Windows dus zal het onmogelijk zijn om deze software op Linux te draaien. Dit is een groot probleem waar Linux mee te kampen heeft op een werkstation. De verwachting is echter, omdat Novell zich heeft gestort in het Linux verhaal, dat softwareleveranciers Linux als volwaardig besturingssysteem gaan zien. Wanneer er voldoende software voor Linux beschikbaar komt, dan zal het niet lang meer duren voordat Linux echt gaat doorbreken als het besturingssysteem voor het werkstations. Maar op dit moment is de beste keuze om te kiezen voor Windows als besturingssysteem voor op de desktop computer. Linux in een netwerkomgeving Pagina 62 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Conclusie Linux is hard op weg een goed alternatief te vormen voor diverse server besturingssystemen. Voor ‘statische’ taken als DHCP, DNS, Proxy en webserver is Linux een, meestal beter en sneller, alternatief dan andere besturingssystemen zoals Microsoft Windows of Novell. De Primairy Domain Controller (PDC) die met Linux wordt meegeleverd mist eigenlijk nog een goed overzichtelijke grafische interface waarin de positie van de gebruikers, printers, enz. in de tree kan worden weergegeven. Doordat dit overzicht ontbreekt, is deze oplossing alleen geschikt voor kleine- tot middelgrote bedrijven. De reden is dat dit soort bedrijven weinig medewerkers in dienst hebben waardoor eenvoudig een administratie van werknemers kan worden bijgehouden. De Linux distributie Red Hat is op dit moment het best te gebruiken wanneer de Linux server voor bovenstaande taken wordt gebruikt. Red Hat heeft dit vooral te danken aan de ruime hoeveelheid informatie die op Internet te vinden is, de vele softwarepakketten die voor deze distributie geschreven zijn en de support die wordt gegeven. Red Hat geeft zelfs cursussen aan engineers die zo hun Red Hat Service Engineer certificaat kunnen behalen. Wanneer moet worden gekozen welke mailserver geschikt is voor bedrijven, staan de zaken er anders voor. Na een tweetal mailservers te hebben getest, blijkt OpenExchange server een prima alternatief voor middelgrote tot grote bedrijven. Het besturingssysteem dat bij OpenExchange server wordt meegeleverd is SuSE Enterprise Server, op een andere Linux distributie zal dit niet draaien. Voor de mailserver kan niet echt een keuze worden gemaakt tussen verschillende distributies. Wanneer men voor OpenExchange server kiest is men verplicht SuSE enterprise server te gebruiken. Wordt naar de keuze voor Linux op een server gekeken naar de stabiliteit, betrouwbaarheid en performance voor de desktop komen daar nog twee zaken bij namelijk: gebruiksvriendelijkheid en beschikbare software. Qua stabiliteit, betrouwbaarheid, performance en gebruiksvriendelijkheid zit het met Linux wel goed. De gebruiker wordt een mooie goed overzichtelijke grafische interface voorgeschoteld met mooi login scherm en een start menu waarin programma’s kunnen worden opgestart. Wat betreft beschikbare software ligt de situatie iets moeilijker. Wanneer een gebruiker alleen gebruik maakt van standaard software zoals Openoffice Word of Excel zijn er weinig problemen. Het enige probleem wat mij bekend is, is wanneer gebruik gemaakt wordt van macro’s, dit wordt door Linux fout geïnterpreteerd. Wanneer gebruikt gemaakt wordt van softwarepakketten voor een bepaalde doelgroep, zoals advocatuur software, is dit vaak voor Windows geschreven. Deze software is over het algemeen niet te draaien op Linux. Dit maakt Linux ongeschikt voor dit soort toepassingen. Linux in een netwerkomgeving Pagina 63 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Dit grote nadeel kan alleen worden weggenomen wanneer deze softwarefabrikanten hun software beschikbaar maken voor Linux. Veel fabrikanten zijn hier al hard aan bezig, maar vooralsnog is het nog niet zo ver. Zijn alle vooraf gestelde doelstellingen gehaald? Nee, een alternatief voor Novell ZENworks is voor Linux niet gevonden. Er is veel tijd aan een programma Red Carpet besteed maar dit blijkt niet dezelfde functionaliteit te hebben dan ZENworks. Tijdens dit project is een extra doelstelling aan het licht gekomen, namelijk de enkele authenticatie voor alle aangeboden services. Dit zou mogelijk moeten zijn wanneer gebruik wordt gemaakt van een pimairy domain controller (PDC). Echter moet deze enkele authenticatie service worden toegevoegd aan de PDC. Dit bleek moeilijker te zijn dan was gedacht. Na overleg is ervoor gekozen om deze service niet in dit project mee te nemen. De conclusie is dat Linux een goed alternatief biedt voor statische server toepassingen echter om Linux op het werkstation te gebruiken zal men nog even geduld moeten hebben tot voldoende software beschikbaar gesteld is. Linux in een netwerkomgeving Pagina 64 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Bronvermelding Boeken: Sander van Vugt, Leerboek Linux Systeembeheer, 2003, Academic Service Schoonhoven, 90 395 2042 9 Internet: DHCP: http://www.redhat.com/docs/manuals/linux/RHL-9-Manual/custom-guide/s1-dhcpconfiguring-server.html http://www.tldp.org/HOWTO/DHCP/x369.html http://lists.suse.com/archive/suse-linux/2003-May/0020.html http://www.linuxforum.com/linux-dhcp-server/x369.html Algemeen: http://www.redhat.com/docs/manuals/linux/RHL-9-Manual/custom-guide/index.html http://www.onlamp.com/linux/cmd/ http://www.linuxfocus.org/Nederlands/Themes/sysadm.html DNS: http://handsonhowto.com/dns101.html http://www.faqs.org/docs/securing/chap21sec162.html SQUID: http://www.pcquest.com/content/linux/linux8/103030707.asp Samba: http://networking.earthweb.com/netos/article.php/1144701 http://networking.earthweb.com/netos/article.php/1151091 http://www.sugoi.org/bits/index.php?bit_id=33 http://www.bilbos-stekkie.com/smb_print_share/index.php?action=0 http://www.linuxprinting.org/kpfeifle/SambaPrintHOWTO/Samba-HOWTO-Collection3.0-PrintingChapter-11th-draft.html#14_8_2 http://www.samba.netfirms.com/sambconf.htm Firewall: http://www.informatie-beveiliging.nl/publicaties/2004/02/pca200402.shtml http://www-jerry.oit.duke.edu/linux/HOWTO/ipchains_howto.html http://www.linuxdocs.nl/index.php?pagina=RedHat%20router http://www.sintjozefscollege.be/ecol/index.php?a=2 http://home.nedlinux.nl/~chromisx/xpadsl.php http://www.ruwebit.net/article/77 http://www.cites.uiuc.edu/wsg/talks/iptables/iptables-rh8.html Linux in een netwerkomgeving Pagina 65 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Mailserver: http://www.qmailtoaster.com/#mass http://www.askdavis.com/qmailtoaster/#toasterinstall http://networking.earthweb.com/netos/article.php/1582441 http://networking.earthweb.com/netos/article.php/10951_1582441_2 Webserver: http://www.phpfreaks.com/tutorials/12/2.php http://www.thescripts.com/serveradministration/webservers/apache/theapachewebserv er/ Webmin: http://www.webmin.com http://www.swelltech.com/support/webminguide-1.0/index.html Red Carpet Enterprise (Application Delivery): http://www.ximian.com/products/redcarpet_enterprise/ http://www.novell.com/documentation/lg/ximian/rcserver.pdf Nuttige Links: Linux ISO’s: http://www.linuxiso.org/ Updates en add on software voor Linux http://www.rpmfind.net Webmin download (Redhat, Caldera, SuSE, Mandrake): http://prdownloads.sourceforge.net/webadmin/webmin-1.140-1.noarch.rpm Zelf Linux Distributie maken http://lfs.pagefault.net/lfs/news.html Linux in een netwerkomgeving Pagina 66 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Bijlagen Linux in een netwerkomgeving Pagina 67 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Bijlage 1: DHCP server # Sample /etc/dhcpd.conf ddns-update-stye interim; DHCPDARGS=eth1 subnet 192.168.1.0 netmask 255.255.255.0 { option routers 192.168.1.1; option subnet-mask 255.255.255.0; option domain-name “ictivity.demon.nl”; option domain-name-servers 192.168.1.1; range 192.168.1.20 192.168.1.150; } Linux in een netwerkomgeving Pagina 68 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Bijlage 2: Caching nameserver /* Onderstaande Access Control List bevat een lijst met IP-ranges die binnen het bedrijfsnetwerk gebruikt worden. Pas deze lijst zo aan dat deze ranges erin opgenomen zijn. */ acl "local_net" { localhost; 10/8; 172.16/12; 192.168/16; }; options { /* voor chroot: /zones */ directory "/var/named/zones"; auth-nxdomain no; recursion yes; allow-recursion { local_net; }; allow-transfer { none; }; }; // generic zones zone "." { type hint; file "root.hint"; }; zone "localhost" in { type master; file "localhost.zone"; }; zone "0.0.127.in-addr.arpa" { type master; file "127.0.0.zone"; }; Linux in een netwerkomgeving Pagina 69 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Bijlage 3: Voorbeeld example.com $TTL 1D 0.10.in-addr.arpa. erik.example.com. ( IN SOA ns.example.com. 2003040901 28800 14400 3600000 ; ; ; ; serial refresh (8 hours) retry (4 hours) expire (5 weeks 6 86400 ) ; minimum (1 day) days 16 hours) 1 1.0 2.0 3.0 Linux in een netwerkomgeving IN NS ns.example.com. IN IN IN IN NS PTR PTR PTR ns.office.example.com. www.example.com. ns.example.com. mail.example.com. Pagina 70 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Bijlage 4: Samba # This is the main Samba configuration file. You should read the # smb.conf(5) manual page in order to understand the options listed # here. Samba has a huge number of configurable options (perhaps too # many!) most of which are not shown in this example # # Any line which starts with a ; (semi-colon) or a # (hash) # is a comment and is ignored. In this example we will use a # # for commentry and a ; for parts of the config file that you # may wish to enable # # NOTE: Whenever you modify this file you should run the command "testparm" # to check that you have not made any basic syntactic errors. # #======================= Global Settings [global] # workgroup = NT-Domain-Name or Workgroup-Name workgroup = ICTIVITY netbios name = Linux # server string is the equivalent of the NT Description field server string = Samba Server %v %h # # # # # This option is important for security. It allows you to restrict connections to machines which are on your local network. The following example restricts access to two C class networks and the "loopback" interface. For more examples of the syntax see the smb.conf man page hosts allow = 192.168.1. 127. # Put a capping on the size of the log files (in Kb). max log size = 50 # Security mode. Most people will want user level security. See # security_level.txt for details. security = user # Password Level allows matching of _n_ characters of the password for # all combinations of upper and lower case. ; password level = 8 ; username level = 8 # You may wish to use password encryption. Please read # ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba documentation. # Do not enable this option unless you have read those documents encrypt passwords = yes smb passwd file = /etc/samba/smbpasswd Linux in een netwerkomgeving Pagina 71 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. # # # # # # The following are needed to allow password changing from Windows to update the Linux system password also. NOTE: Use these with 'encrypt passwords' and 'smb passwd file' above. NOTE2: You do NOT need these to allow workstations to change only the encrypted SMB passwords. They allow the Unix password to be kept in sync with the SMB password. unix password sync = Yes passwd program = /usr/bin/passwd %u passwd chat = *New*password* %n\n *Retype*new*password* %n\n *passwd:*all*authentication*tokens*updated*successfully* # Configure Samba to use multiple interfaces # If you have multiple network interfaces then you must list them # here. See the man page for details. interfaces = 192.168.1.1/24 # Browser Control Options: # set local master to no if you don't want Samba to become a master # browser on your network. Otherwise the normal election rules apply local master = yes # OS Level determines the precedence of this server in master browser # elections. The default value should be reasonable os level = 64 # Domain Master specifies Samba to be the Domain Master Browser. This # allows Samba to collate browse lists between subnets. Don't use this # if you already have a Windows NT domain controller doing this job domain master = yes # Preferred Master causes Samba to force a local browser election on startup # and gives it a slightly higher chance of winning the election preferred master = yes # Enable this if you want Samba to be a domain logon server for # Windows95 workstations. domain logons = yes # Where to store roving profiles (only for Win95 and WinNT) # %L substitutes for this servers netbios name, %U is username # You must uncomment the [Profiles] share below logon path = \\%L\Profiles\%U logon home = \\%L\%U logon drive = F: logon script = netlogon.bat Linux in een netwerkomgeving Pagina 72 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. #============================ Share Definitions ============================= [homes] comment = Home Directories browseable = no writable = yes valid users = %S create mode = 0664 directory mode = 0775 # Un-comment the following and create the netlogon directory for Domain Logons [netlogon] comment = Network Logon Service path = /home/samba/netlogon writable = no share modes = no # Un-comment the following to provide a specific roving profile share # the default is to use the user's home directory [Profiles] path = /home/samba/profiles browseable = no14 Linux in een netwerkomgeving Pagina 73 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Bijlage 5: Meervoudige toegangscontrole en regels 1. Laat alleen bepaalde machines het Internet op: acl allowed_clients src 172.16.1.10 172.16.1.20 172.16.1.30 http_access allow allowed_clients http_access deny !allowed_clients Dit laat alleen machines met de volgende IP adressen op Internet: 172.16.1.10, 172.16.1.20 en 172.16.1.30. De andere IP adressen (niet aangegeven) kunnen Internet niet op. 2. Beperk de toegang tot bepaalde uren en voor bepaalde tijd: acl allowed_clients src 172.16.1.1/255.255.0.0 acl regular_days time MTWHF 10:00-16:00 http_access allow allowed_clients regular_days http_access deny allowed_clients Hiermee mogen de cliënts in netwerk 172.16.1.1 van maandag tot vrijdag van 10:00 uur tot 16:00 uur het Internet op. 3. Meervoudige toegang voor verschillende cliënts: acl hosts1 src 172.16.1.10 acl hosts2 src 172.16.1.20 acl hosts3 src 172.16.1.30 acl morning time 10:00-13:00 acl lunch time 13:30-14:30 acl evening time 15:00-18:00 http_access allow host1 morning http_access allow host1 evening http_access allow host2 lunch http_access allow host3 evening http_access deny all De bovenstaande regel laat host1 zowel gedurende de ochtend als de avonduren toe; terwijl host2 en host3 alleen tijdens de lunch en 's avonds toegang hebben. Opmerking: Alle elementen van een toegangsregel worden met "AND" gekoppeld en op de volgende manier uitgevoerd: http_access Action statement1 AND statement2 AND statement OR. Linux in een netwerkomgeving Pagina 74 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Meervoudige http_access statements worden met "OR" gekoppeld, terwijl elementen van een toegangsregel met "AND" worden gekoppeld; hierdoor kan http_access allow host1 morning evening nooit werken als ochtend en avond statement (morning AND evening), aangezien dat nooit waar zou zijn en er daardoor geen actie zou worden ondernomen. 4. Sites Blokkeren Squid kan de toegang tot een bepaalde site of meerdere sites die een bepaald woord bevatten, verbieden. Dit kan op de volgende manier worden gedaan: acl allowed_clients src 192.168.0.1/255.255.255.0 acl banned_sites url_regex abc.com *()(*.com http_access deny banned_sites http_access allow allowed_clients Ditzelfde mechanisme kan ook worden gebruikt om toegang tot sites die een bepaald woord bevatten, bijvoorbeeld "dummy" of "fake". acl allowed_clients src 192.168.0.1/255.255.255.0 acl banned_sites url_regex dummy fake http_access deny banned_sites http_access allow allowed_machines Het is niet handig om alle woorden en site namen op te geven in het configuratie bestand. Dit kan ook in een ander bestand worden ondergebracht (bijvoorbeeld banned.list in de /etc directory) en ACL kan de gegevens uit dit bestand halen en hiermee de toegang tot sites ontzeggen. acl allowed_clients src 192.168.0.1/255.255.255.0 acl banned_sites url_regex "/etc/banned.list" http_access deny banned_sites http_access allow allowed_clients 5. De gegevens Cachen Antwoord op de aanvragen wordt meteen gecached, dit is handig voor de statistische gegevens. Het is niet nodig om cgi-bin of Servlet te cachen en dit kan worden voorkomen door gebruik te maken van het "no_cache" ACL element. acl cache_prevent1 url_regex cgi-bin /? acl cache_prevent2 url_regex Servlet no_cache deny cache_prevent1 no_cache deny cache_prevent2 Linux in een netwerkomgeving Pagina 75 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Bijlage 6: MS Project schema In deze bijlage wordt het schema weergegeven dat wordt besproken in hoofdstuk 1. Duidelijk te zien zijn de in de tabel vermelde mijlpalen. Linux in een netwerkomgeving Pagina 76 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Bijlage 7: Projectverloop Al tijdens mijn stageperiode (dus ook voordat het PMD ingeleverd moest worden) ben ik op zoek gegaan naar een onderwerp voor mijn afstudeerverslag. Na overleg met mijn bedrijfsbegeleider bestond er wederzijds interesse voor Linux. Na enkele dagen de tijd te hebben genomen bleek het een goede beslissing, gezien het feit dat bijna alle documentatie van Linux via Internet gepubliceerd wordt. Dit leverde mij voldoende zekerheid, dat het project niet zal vastlopen doordat geen documentatie gevonden kon worden. Dit was ook de reden dat uiteindelijk gekozen is om het project aan Linux te wijden. Nadat het PMD geschreven was ben ik direct begonnen met het lezen van het bestelde boek. Dit is een algemeen Linux boek voor beginners (voor titel en auteur zie bronvermelding). Door dit boek werd de basis gelegd voor mijn kennis van Linux die ik in het begin niet had. In deze periode heb ik vernomen dat er binnen het bedrijf ICTivity een cursus Linux zou worden gegeven voor de engineers. Natuurlijk kon ik niet anders dan te kennen geven dat ik hier ook interesse in had, dus werd deze cursus ook gevolgd. Vervolgens werd een begin gemaakt met informatie te zoeken op Internet voor de verschillende services zoals DHCP, Samba enz… Alleen voor de Squid proxy server is lange tijd moeten zoeken voordat de juiste documentatie was gevonden. Toen is besloten dit onderdeel in de planning naar achteren te schuiven en de andere onderdelen voorrang te geven. Later is Squid alsnog uitgewerkt. Grote problemen waren er om een alternatief voor ZENworks te vinden. Dit is een Novell applicatie die wanneer op een werkstation is ingelogd een venster met uit te voeren applicaties toont. Na ongeveer 3 weken zoeken naar documentatie vragen aan engineers is deze service opgegeven. Het is gewoonweg nog niet mogelijk om op deze wijze applicaties aan te bieden onder Linux. Ondertussen is wel de handleiding van Red Carpet doorgelezen wat het product dan wel kan. Tijd moet tenslotte worden verantwoord. In het begin is ook veel tijd verspild aan het opnieuw installeren van de Linux server. Door problemen met de harde schijf ging af en toe data verloren waardoor de server niet meer opstartte. Mede door deze problemen is ervoor gekozen om alle services één voor één te testen in plaats van alle services tegelijkertijd op de server te laten draaien. Hierdoor ging veel minder werk verloren door de harde schijf. Later is deze schijf wel vervangen maar de werkwijze hetzelfde gebleven. Op deze manier is stap voor stap dit verslag tot een naslagwerk uitgewerkt. Afgezien van de bovenstaande tegenslagen zijn er niet veel problemen opgetreden. Er is nauwelijks van de planning afgeweken en uiteindelijk is het gewenste resultaat bereikt. Linux in een netwerkomgeving Pagina 77 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Register Commando: Functie Blz /etc/rc.d/init.d <service> start ACL chown desktop environment Start een service op Access Control list Verander de eigenaar van een bestand Uitbreiding van window manager, universele grafische interface Database van cliënts die IP-adres hebben gehad, /var/lib/dhcpd/dhcp.leases Levert IP-adressen aan werkstations binnen het netwerk Configuratiebestand van DHCP server, /etc/dhcpd.conf Opvragen DNS resource record Domain Name System Desktop environment Omgeschreven UNIX tools gratis voor Linux General Public Licence Maak nieuwe groep aan Internet Message Access Protocol Reverse van zone Standaard Linux firewall Desktop environment Hart van Linux besturingssysteem, bevat modulaire stuurprogramma's Zoeken naar bestanden Maak directory aan Mount een volume Configuratiebestand van DNS, /etc/named.conf Network Address Translation Verander of maak nieuw wachtwoord voor gebruiker Primairy Domain Controller Post Office Protocol Installeren, verwijderen van Red Hat package files 33 34 31 13 Start een service op 20 DHCP lease database DHCP server dhcpd.conf dig DNS Gnome GNU GPL groupadd IMAP in-addr.arpa iptables KDE kernel locate <bestandsnaam> mkdir mount named.conf NAT passwd PDC POP rpm service <naam> start/stop/restart shell smb.conf Squid touch UNIX useradd vi Webmin Window Manager X-cliënt Xfree86 X-server yast Linux in een netwerkomgeving Commando's van gebruikers juist interpreteren en doorgeven aan kernel Configuratiebestand van Samba, /etc/samba/smb.conf Proxy server van Linux Maak nieuw leeg bestand aan Voorloper van Linux Maak nieuwe gebruiker aan Editor voor configuratiebestanden Handige webbased tool om Linux te configureren Uitbreiding van X, laat vensters vergroten en verkleinen Programma waarmee gewerkt kan worden, wordt doorgegeven aan X-server Afgeleide van de UNIX X Aansturen van grafische kaart Beheerprogramma van SuSE Linux 19 16 17 24 21 13 14 13 31 51 23 42 13 10 26 31 33 21 45 32 25 51 26 11 26 34 20 8 31 27 40 12 12 12 12 59 Pagina 78 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden. Linux in een netwerkomgeving Pagina 79 © ICTivity 2004. Het copyright op dit document berust bij ICTivity BV. Niets uit dit document mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, microfilm, geluidsband, electronisch of op elke ander wijze dan ook zonder voorafgaande schriftelijke toestemming van ICTivity BV. Typefouten voorbehouden.