Departement Industri¨ele Wetenschappen (INWE) Vakgroep...

96
Departement Industri¨ ele Wetenschappen (INWE) Vakgroep Informatica Academiejaar 2003–2004 Uitbouw van een netwerk infrastructuur Wim Daelemans Promotor: Joris Moreau Scriptie voorgedragen tot het behalen van de graad van Industri¨ eel Ingenieur Informatica

Transcript of Departement Industri¨ele Wetenschappen (INWE) Vakgroep...

Page 1: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Departement Industriele Wetenschappen (INWE)Vakgroep Informatica

Academiejaar 2003–2004

Uitbouw van een netwerk infrastructuur

Wim Daelemans

Promotor: Joris Moreau

Scriptie voorgedragen tot het behalen van de graad van

Industrieel Ingenieur Informatica

Page 2: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van
Page 3: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Departement Industriele Wetenschappen (INWE)Vakgroep Informatica

Academiejaar 2003–2004

Uitbouw van een netwerk infrastructuur

Wim Daelemans

Promotor: Joris Moreau

Scriptie voorgedragen tot het behalen van de graad van

Industrieel Ingenieur Informatica

Page 4: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Woord vooraf

Mijn dank gaat uit naar mijn interne begeleider, dhr. Joris Moreau. Hij verschafte mij de nodige

richtlijnen voor het tot stand brengen van dit werk, en las het grootste stuk ervan na.

Daarnaast wil ik ook dhr. Peter Willems, en andere werknemers van vzw Capelderij, bedanken voor

hun medewerking en vertrouwen.

Tenslotte een woord van dank aan mijn ouders, voor hun morele steun.

Wim Daelemans

Gent, mei 2004

Page 5: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Inhoudsopgave

Woord vooraf 2

Inleiding 7

1 Situering 81.1 Vroegere situatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.1.1 Primitief netwerkje voor administratie . . . . . . . . . . . . . . . . . . 91.1.2 Andere pc’s voor hulpverleners . . . . . . . . . . . . . . . . . . . . . . 9

1.2 Behoeftes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.3 Vernieuwingen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.3.1 Windows versus Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.3.2 Netwerk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.3.3 Gateway en modem . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.3.4 Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.3.5 Internet verbinding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.3.6 Website . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.3.7 Printserver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2 Aanleg netwerk 132.1 Beschrijving situatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.2 Keuze netwerkmateriaal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.2.1 Glasvezel rootswitch . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.2.2 Gemengde rootswitch . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.2.3 Geen rootswitch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.2.4 Softwarematig switchen via pc . . . . . . . . . . . . . . . . . . . . . . 152.2.5 Uiteindelijke oplossing: gebruik maken van converters . . . . . . . . . 15

2.3 Opbouw netwerk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.3.1 Logische opbouw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.3.2 Fysische opbouw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.4 Beveiliging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.4.1 MAC-Address Spoofing . . . . . . . . . . . . . . . . . . . . . . . . . . 182.4.2 ARP Spoofing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.4.3 IP Spoofing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3

Page 6: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Inhoudsopgave 4

2.5 Configuratie van netwerkmateriaal . . . . . . . . . . . . . . . . . . . . . . . . 202.5.1 Firmware upgrade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.5.2 Poort configuratie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.5.3 VLAN’s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3 Gateway installatie en configuratie 253.1 Keuze hardware en software . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.1.1 Keuze hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253.1.2 Keuze software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.2 Beveiliging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273.2.1 Probleem met Open Source software . . . . . . . . . . . . . . . . . . . 273.2.2 Lokale aanvallen versus netwerk aanvallen . . . . . . . . . . . . . . . . 273.2.3 Draaiende hoeveelheid code beperken . . . . . . . . . . . . . . . . . . 283.2.4 Inbraak zo snel mogelijk ontdekken en melden . . . . . . . . . . . . . . 28

3.3 Installatie van het OS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.3.1 Installatie CD-ROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.3.2 Installatieprocedure voor het basis Debian systeem . . . . . . . . . . . 293.3.3 Upgrade naar Adamantix . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.4 Configuratie en beveiliging van het OS . . . . . . . . . . . . . . . . . . . . . . 313.4.1 Installatie van extra pakketten . . . . . . . . . . . . . . . . . . . . . . 313.4.2 Keuze van de Linux-kernel . . . . . . . . . . . . . . . . . . . . . . . . . 323.4.3 Kernel configuratie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343.4.4 Kernel compilatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373.4.5 Opstartbaar maken van de kernel . . . . . . . . . . . . . . . . . . . . . 383.4.6 Verdere beveiliging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

3.5 Netwerk configuratie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383.6 Firewall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393.7 DHCP Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

4 Raamplanbeheer 414.1 Vroegere situatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414.2 Mogelijke oplossingen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4.2.1 Ideale oplossing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424.2.2 Commerciele oplossing . . . . . . . . . . . . . . . . . . . . . . . . . . . 434.2.3 Workflow via email . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434.2.4 File sharing van Word-documenten via netwerk . . . . . . . . . . . . . 444.2.5 Database systeem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444.2.6 Zuiver CVS systeem . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444.2.7 Combinatie CVS, LATEX en scripting . . . . . . . . . . . . . . . . . . . 45

4.3 Keuze van implementatie software . . . . . . . . . . . . . . . . . . . . . . . . 454.3.1 Programmeertaal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454.3.2 Database server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464.3.3 Opmaken en produceren van het document . . . . . . . . . . . . . . . 46

Page 7: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Inhoudsopgave 5

4.4 Gebruikershandleiding ter beschrijving van structuur en mogelijkheden . . . . 464.4.1 Gebruikers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464.4.2 De gebruikersinterface . . . . . . . . . . . . . . . . . . . . . . . . . . . 464.4.3 Foutmelding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484.4.4 Word template bestand creeren . . . . . . . . . . . . . . . . . . . . . . 484.4.5 Nieuwe paragraaftypes . . . . . . . . . . . . . . . . . . . . . . . . . . . 504.4.6 De raamplanversie aanmaken . . . . . . . . . . . . . . . . . . . . . . . 504.4.7 Nieuw raamplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514.4.8 Werkverdeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514.4.9 Inhoud raamplan bekijken/bewerken . . . . . . . . . . . . . . . . . . . 514.4.10 Geproduceerd Word-document verkrijgen . . . . . . . . . . . . . . . . 51

4.5 Implementatie details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524.5.1 Visual Studio .NET project . . . . . . . . . . . . . . . . . . . . . . . . 524.5.2 Bestanden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524.5.3 Het MVC ontwerpmodel . . . . . . . . . . . . . . . . . . . . . . . . . . 554.5.4 Het template systeem en de klasse TemplatePage . . . . . . . . . . . . 564.5.5 Eigen controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584.5.6 Menubalk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594.5.7 Selectiebalk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594.5.8 Cascading style sheets . . . . . . . . . . . . . . . . . . . . . . . . . . . 594.5.9 Database klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604.5.10 Aanmelden en Active Directory . . . . . . . . . . . . . . . . . . . . . . 604.5.11 Word DCOM object . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634.5.12 Internationalisatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644.5.13 Foutafhandeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 654.5.14 Volgorde van opladen . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

4.6 Het installeren van de toepassing op een productieserver . . . . . . . . . . . . 684.6.1 Microsoft Word-Document DCOM object . . . . . . . . . . . . . . . . 684.6.2 Microsoft SQL Server 2000 . . . . . . . . . . . . . . . . . . . . . . . . 694.6.3 Microsoft IIS 5.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

5 Internet verbinding 715.1 Keuze van de lijn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715.2 Router . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715.3 Configuratie ADSL-modem . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

5.3.1 Gegevens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725.3.2 Connectie met modem . . . . . . . . . . . . . . . . . . . . . . . . . . . 725.3.3 Opzetten ADSL verbinding . . . . . . . . . . . . . . . . . . . . . . . . 735.3.4 Aanmaken van de gepaste routes . . . . . . . . . . . . . . . . . . . . . 755.3.5 Forwarding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 755.3.6 Pingen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 755.3.7 Linux Gateway . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

5.4 Configuratie zonder Linux Gateway . . . . . . . . . . . . . . . . . . . . . . . . 76

Page 8: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Inhoudsopgave 6

6 Mailserver 776.1 Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776.2 Installatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

6.2.1 Pre-installatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776.2.2 Hoofdinstallatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

6.3 Configuratie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796.3.1 MMC Exchangetools . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796.3.2 Verplaatsen van de Mailbox Store naar andere partitie . . . . . . . . . 806.3.3 Limiet mailboxen instellen . . . . . . . . . . . . . . . . . . . . . . . . . 816.3.4 Wijzigen van het e-mail domein . . . . . . . . . . . . . . . . . . . . . . 816.3.5 Internet mail ontvangen . . . . . . . . . . . . . . . . . . . . . . . . . . 816.3.6 Basis beveiliging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 826.3.7 Mailboxen aanmaken . . . . . . . . . . . . . . . . . . . . . . . . . . . . 846.3.8 Mailbox instellingen aanpassen . . . . . . . . . . . . . . . . . . . . . . 846.3.9 De clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

7 Printserver 877.1 Configuratie van de printserver . . . . . . . . . . . . . . . . . . . . . . . . . . 877.2 Configuratie van de clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

7.2.1 Configuratie van de Windows 98/Me clients . . . . . . . . . . . . . . . 887.2.2 Configuratie van Windows XP clients . . . . . . . . . . . . . . . . . . 88

Referentielijst 89

Index 90

Page 9: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Inleiding

Als onderwerp voor dit eindwerk werd gekozen voor het uitbreiden van een netwerk infrastruc-tuur. Deze titel is nogal vaag omdat er vrij uiteenlopende taken moesten worden volbracht.

Eerst en vooral moest het bestaande netwerk worden uitgebreid naar een groter netwerkdat zich over meerdere gebouwen uitstrekt. Hiervoor werd professionele netwerkapparatuuraangekocht, geınstalleerd en geconfigureerd.

Vervolgens moesten er verschillende diensten worden aangeboden op het netwerk. Zo moestenalle clients op het netwerk gebruik kunnen maken van een enkele gedeelde Internet verbinding.Er moest ook kunnen gebruik gemaakt worden van gezamenlijke printers, en er moestenbestanden kunnen worden gedeeld op het netwerk.

Een andere belangrijke vereiste was een e-mail infrastructuur. Elke medewerker moest een ei-gen mailbox krijgen. Het e-mailen moest zowel lokaal werken (tussen medewerkers onderling),als extern (tussen een medewerker en een willekeurige Internet gebruiker).

Tenslotte was er ook nood aan een netwerktoepassing waarmee op een efficiente manier be-paalde verslagen konden worden opgesteld en beheerd.

Voor het verwezenlijken van dit alles werden verschillende systemen en technologieen gebruikt.Zo bestond een deel van het werk uit het installeren en configureren van netwerkapparatuur,het configureren van een Windows server, het opzetten van een Linux gateway, en het pro-grammeren van een netwerktoepassing.

Er werd dus niet fanatiek gekozen voor ofwel een zuivere Windows omgeving, ofwel een zuivereLinux omgeving. Het beste uit beide werelden werd gecombineerd.

De rode draad door dit alles was de beveiliging. Persoonlijk vind ik een informatica systeemweinig waard als er geen zorg werd besteed aan de beveiliging ervan. Wegens tijdsgebrek werdniet alles steeds paranoıde beveiligd, maar er werd wel altijd aangegeven hoe dit zou moetengebeuren.

Hopelijk beleeft u veel plezier aan het lezen van dit eindwerk, en steekt u er iets van op.

7

Page 10: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 1

Situering

Het MPI1 Capelderij is een instelling voor jeugdhulpverlening in Opdorp2 (deelgemeente vanBuggenhout). Op het terrein zijn verschillende gebouwen aanwezig, omringd door vijversen prachtige natuur. In de televisiereeks ”Stille Waters” werd er dan ook dankbaar gebruikgemaakt van deze omgeving.

Tot de belangrijkste gebouwen behoort onder andere het kasteel . Hierin bevindt zich hetbureau van de directeur, evenals de administratie. Momenteel zitten er ook een paar hulp-verleners.

Een ander gebouw op het terrein is de villa. In dit gebouw is het merendeel van de hulpver-leners gevestigd. In dit gebouw is ook de woonplaats gevestigd van een enkele jongere.

Als derde belangrijke gebouw kunnen we de school vernoemen. Het gaat hier om de vrije be-roepsschool B.O.3, eveneens behorende tot de vzw Capelderij. Deze school zal in de toekomstook van Internet toegang moeten voorzien worden.

Verder zijn er op het terrein nog verschillende appartementsgebouwen, waarin de jongerenzelf gevestigd zijn.

1.1 Vroegere situatie

Dit is allemaal mooi en wel, het lijkt zelfs bijna op een sprookje. Wat is nu eigenlijk hetprobleem? Wel, zoals je waarschijnlijk al kon raden: de informatica infrastructuur.

1Medisch Pedagogisch Instituut2Het middelpunt van Vlaanderen3Bijzonder Onderwijs

8

Page 11: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 1. Situering 9

1.1.1 Primitief netwerkje voor administratie

Voor de administratie was er reeds een primitief netwerkje aanwezig. Hiervoor werd een kleineswitch/router gebruikt die ook verbonden was met een Telenet ethernet modem, en zo hetnetwerk van een gedeelde Internet verbinding voorzag. Via deze switch werden een paar pc’s,met clientsoftware voor administratie, verbonden met de server , waarop de database draaidevoor deze software. Deze server (van het merk Compaq) draait Windows 2000 Server (versie5.00.2195) met service pack 3 . Hij is voorzien van een Intel Pentium III 1133Mhz processoren 512MB RAM geheugen, en biedt de mogelijkheid om een tweede processor bij te plaatsen.Voor opslag was hij oorspronkelijk uitgerust met twee hardeschijven van 40GB in RAID 1(dus 40GB effectieve opslagruimte). Momenteel zijn dat er twee van 80GB geworden. Voorhet administratieve programma draait op deze server het DBMS MS SQL Server . De serverwerd geleverd door het bedrijf NC Computing . De software werd voordelig aangekocht viade AVW 4 organisatie van Sumika.

1.1.2 Andere pc’s voor hulpverleners

De hulpverleners werken ook op pc’s, maar deze waren oorspronkelijk niet met het primitiefnetwerkje verbonden. Ze gebruikten deze pc’s vooral voor het opmaken van jongerenver-slagen, die men raamplannen noemt. Het probleem is, dat verschillende hulpverleners aandezelfde verslagen moeten kunnen werken. Een verslag handelt over een bepaalde jonge-re, en elke hulpverlener (bijvoorbeeld de gezinsbegeleider of de logopedist) voegt daar zijnbijdrage aan toe. De toenmalige werkwijze ging als volgt. Iedere hulpverlener opende eensjabloonbestand in Word . Dit werd dan aangevuld, opgeslagen en op een diskette geplaatst.Wanneer iedereen zijn deel afgewerkt had, wat maximaal kon duren tot zes maanden na hetvorige raamplan, werden alle diskettes afgeleverd aan de coach, de verantwoordelijke voordat speciefieke raamplan. Die knipte en plakte alle afzonderlijke teksten in een globaal Worddocument, en maakte dan de opmaak uniform. Vervolgens werd het document afgedrukt endoorgegeven zodat iedereen het kon inkijken.

1.2 Behoeftes

• Internet : Er zijn computers waarop steeds betrouwbare mensen werken, en er zijn erwaarop mogelijk onbetrouwbare mensen werken. Deze werkposten zijn verspreid over3 gebouwen (de villa, het kasteel en de school), die onderling op 150m afstand vanelkaar liggen. Beide soorten werkposten moeten Internet toegang krijgen. Er zou duseen betrouwbaar netwerk moeten komen, waarop de medewerkers werken, en een onbe-trouwbaar netwerk, waarop de clients enkel worden gebruikt om te surfen. Toch moeten

4Automatisatie Vlaamse Welzijnszorg

Page 12: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 1. Situering 10

beide netwerken via dezelfde fysieke netwerkinfrastructuur naar het kasteel worden ge-leid, want daar bevindt zich de Internet gateway.

• Firewall : Tussen het Internet en het lokaal netwerk, alsook tussen het betrouwbaar deelvan het lokaal netwerk en het onbetrouwbaar deel, moet een firewall geplaatst worden.

• Eigen domeinnaam: De vzw Capelderij wenst de domeinnaam capelderij.be.

• E-mail boxen: Elke werknemer moet een eigen mailbox krijgen, en een bijhorend e-mailadres van de vorm [email protected].

• Website: De vzw Capelderij wenst ook een eigen website, onder het adreswww.capelderij.be. Deze zal onderhouden worden door mensen met een zeer beperkteinformatica kennis.

• Printserver : In het printlokaal van het kasteel komt een printer, waarop via het be-trouwbare netwerk moet kunnen worden geprint.

• Geoptimaliseerd raamplanbeheer : De hulpverleners moeten via het netwerk op een ef-ficiente manier aan de raamplannen kunnen werken. Verschillende personen moetengelijktijdig aan hetzelfde raamplan kunnen werken, en de reeds ingevulde delen vanandere medewerkers kunnen inkijken.

1.3 Vernieuwingen

1.3.1 Windows versus Linux

Oorspronkelijk was het de bedoeling van zoveel mogelijk diensten aan te bieden op een Linuxserver. Zo zou ik bijvoorbeeld bij voorkeur een Sendmail mailserver geınstalleerd hebben, enMySQL in combinatie met Java Server Pages of iets dergelijks voor het raamplanbeheer . Eenvan de nadelen is dan dat er op dezelfde machine als waarop de firewall geınstalleerd is nog eenpak andere services uitgevoerd worden. Dit is niet ideaal qua beveiliging. Het grote voordeelvan het uitvoeren van al deze diensten op een Linux machine is de stabiliteit, performantie, dehoge beschikbaarheid van documentatie en hulp, en natuurlijk ook de onafhankelijkheid vancommerciele belangen. De gehele Linux oplossing zou namelijk volledig gratis zijn geweest.

De zaken zijn echter iets anders uitgedraaid. Toen het bedrijf NC Computing , dat de serveren support leverde aan de instelling, hoorde van de veranderingen werd onmiddellijk eenvergadering belegd waarop ik eveneens aanwezig was. Uit die vergadering, waarin vrij agressiefuitgehaald werd naar mij, mijn eindwerk en Linux, werd vooral de ondersteuning van deconfiguratie op lange termijn aangehaald. Wanneer er problemen zouden optreden na afloopvan mijn eindwerk, wie zou dan de support leveren? NC Computing levert geen support voor

Page 13: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 1. Situering 11

Linux, enkel voor Windows systemen. Aangezien de vzw in de toekomst verder wou met NCComputing, moest er dus een compromis gesloten worden.

Als mailserver is uiteindelijk gekozen voor Microsoft Exchange Server 2003. Een bijkomendvoordeel is dat er, wanneer we bovendien met Outlook clients werken, kan gewerkt wordenmet het MAPI protocol van Microsoft . Hierdoor werken server en clients optimaal samen.Alle e-mails, contacts, agenda’s, ... worden centraal op de server bewaard. Bovendien ishet mogelijk om agenda’s te delen zodat de medewerkers, indien toegestaan, de agenda vanandere medewerkers kunnen raadplegen en/of aanpassen.

Voor de ontwikkeling van het raamplanbeheer werd gekozen voor de programmeertaal ASP.NET.Hiervoor is het .NET Framework vereist, maar dit is gratis te downloaden. IIS (webservervan Microsoft) is ook aangewezen, en maakt standaard deel uit van het Windows 2000 Serverbesturingssysteem. Als databank systeem tenslotte werd gebruik gemaakt van Microsoft SQLServer, omdat deze reeds aanwezig was voor de administratieve toepassing.

In de Windows en Exchange wereld is ook Active Directory niet uit te sluiten. Hiervan werddan ook zoveel mogelijk gebruik gemaakt. Ook de file- en printersharing werd op de WindowsServer geımplementeerd. Tenslotte werd ook een DNS (voor het domein ‘capelderij.local’) enDHCP server voor het betrouwbare netwerk geconfigureerd.

1.3.2 Netwerk

Voor alle eerder vernoemde behoeften is het fysieke netwerk van essentieel belang. Daaromwerd het ook grondig en professioneel uitgebreid. Voor de verbindingen tussen de gebouwenwerd er bijvoorbeeld glasvezel kabel gebruikt. In de gebouwen zelf werd nieuwe CAT6 be-kabeling aangelegd, en werden racks met patchpanelen geplaatst. Verder werden er SNMPmanageable switchen aangekocht en geconfigureerd. Om betrouwbare werkposten van onbe-trouwbare te scheiden werd gebruik gemaakt van VLAN’s. Voor meer informatie over ditalles verwijs ik u door naar hoofdstuk 2.

1.3.3 Gateway en modem

We zullen een extra pc bijplaatsen die als tweede server dienst doet, en die we voortaan degateway noemen. Zijn hoofdtaak is, in combinatie met de modem, het aanbieden van Internetaan het gehele netwerk. Er is maar een publiek IP-adres beschikbaar, zodat er aan NAT5 zalmoeten gedaan worden. Hij zal ook het enige apparaat zijn dat zowel op het onbetrouwbaredeel van het netwerk als op het betrouwbare deel bereikbaar is (omdat beide delen Internettoegang nodig hebben). Tenslotte zal de gateway ook dienst doen als firewall tussen hetInternet en het lokale netwerk, en tussen het betrouwbare deel van het lokale netwerk en

5Network Address Translation

Page 14: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 1. Situering 12

het onbetrouwbare. Het spreekt vanzelf dat deze server goed moet beveiligd worden. Deinstallatie en configuratie van de gateway wordt behandeld in hoofdstuk 3, die van de modemin 5.

1.3.4 Server

Op de reeds bestaande Compaq server, we noemen hem voortaan de server , zal naast hetbestaande administratieprogramma nu ook het raamplanbeheer uitgevoerd worden, evenalsMS Exchange server, Active Directory en de DHCP server voor het betrouwbare netwerk. Hetraamplanbeheer kan ook gebruik maken van de databank met administratieve gegevens die opde server aanwezig is. De server is ook voorzien van een tapedrive om alles te backuppen. Hetraamplanbeheer wordt behandeld in hoofdstuk 4, en voor de configuratie van de mailserverkan je in hoofdstuk 6 terecht.

1.3.5 Internet verbinding

Het MPI huurt een eigen domein, namelijk capelderij.be. We gaan voor dit domein ook eeneigen mailserver configureren. Een vast IP adres is bijgevolg een vereiste. Ook een degelijkeupload snelheid, en onbeperkt transfer volume waren belangrijke factoren bij het kiezen vaneen specifieke Internet verbinding. Zie hoofdstuk 5.

1.3.6 Website

Aangezien mensen met een beperkte informaticakennis moeten instaan voor het onderhoudvan de website, en vanwege tal van andere voordelen, werd oorspronkelijk gekozen voor eenCMS (Content Management System): Typo3 . Wegens het aanwerven van een informaticusdoor het MPI is deze behoefte echter vervallen.

1.3.7 Printserver

De printer bevindt zich in een apart lokaal waar geen werkpost of server aanwezig is. Omdateen USB kabel maar kan gebruikt worden voor een zeer beperkte lengte (5m zonder tussen-liggende hubs), werd er een ethernet printserver aangekocht. Voor de configuratie ervan ziehoofdstuk 7.

Page 15: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 2

Aanleg netwerk

2.1 Beschrijving situatie

Het netwerk verbindt verschillende componenten, verspreid over drie gebouwen. In het hoofd-gebouw, het kasteel , zijn volgende zaken aanwezig: een kopieerapparaat, een gewone printer,twee servers (de server en de gateway), een ethernet modem voor de Internet verbinding,en ongeveer 6 werkposten. Het tweede gebouw, de villa, telt momenteel 6 werkposten (inde toekomst maximaal 12). Tenslotte zal na een verbouwing ook nog de school aangeslotenworden met maximum 10 werkposten. In de verre toekomst kunnen ook extra gebouwen (vande leefgroepen) netwerktoegang vereisen. Tussen het kasteel en de villa ligt er reeds een SXmultimode glasvezelkabel (50/125 µm). De bedoeling is dat alle werkposten (zowel betrouw-bare als onbetrouwbare) Internet toegang krijgen, en dat men op de betrouwbare pc’s ooknog administratieve taken en het raamplanbeheer kan uitvoeren.

2.2 Keuze netwerkmateriaal

Voor de netwerkapparatuur kwamen verschillende merken in aanmerking: SMC , Cisco, 3Com,Allied Telesyn, D-Link , ... Oorspronkelijk koos ik voor 3Com switchen in combinatie metAllied Telesyn converters. De verkoper bij firma De Volder (waar de netwerkapparatuuraangekocht werd) raadde mij echter ten zeerste aan alle apparatuur van hetzelfde merk tenemen. Aangezien 3Com geen aparte glasvezel-ethernet converter heeft, en aangezien AlliedTelesyn een zeer gerespecteerd merk is, koos ik uiteindelijk voor het laatste.

Een belangrijk probleem dat zich stelde was de grote afstand tussen de 3 gebouwen onder-ling, namelijk ongeveer 150m. Gewone twisted pair kabel mag echter maar gebruikt wordenvoor afstanden kleiner dan 100m. Bij hogere afstanden kan o.a. het correct detecteren vancollisions niet meer verzekerd worden. Daar komt nog bij dat er tussen 2 gebouwen reeds eenglasvezelkabel gelegd was, en deze dus maar beter kon gebruikt worden. Het probleem metglasvezel technologie is echter de kost van de netwerkapparatuur. In de volgende paragrafen

13

Page 16: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 2. Aanleg netwerk 14

overloop ik de mogelijke alternatieven. Een algemene opmerking hierbij is dat ik omwillevan de betere toekomstperspectieven geopteerd heb voor een gigabit backbone. Bij al dezeoplossingen speelde het specifieke productengamma van enkele belangrijke merken een groterol, evenals de beschikbaarheid, levertermijn en prijs.

2.2.1 Glasvezel rootswitch

Voortaan gebruiken we de term rootswitch voor een switch die centraal staat in het netwerk.Het is als het ware de ‘wortel’ van de boomstructuur van ons netwerk. Hier gebruiken we eenrootswitch voor glasvezel, bestaande uit 6 glasvezel poorten. De switchen op het volgendeniveau worden dan via een glasvezel uplink met deze rootswitch verbonden, alsook de servers.

Nadelen:

• Zeer dure rootswitch

• Servers vereisen glasvezelverbindingen (glasvezel-netwerkkaart + korte glasvezelkabel)naar rootswitch

2.2.2 Gemengde rootswitch

We zouden als rootswitch een gewone twisted pair ethernet switch kunnen nemen, die voorzienis van 2 uitbreidingssloten voor GBIC 1 modules. We zouden dan 2 SX GBIC modules kunnenplaatsen in deze rootswitch voor de verbinding met de villa en de school . De servers krijgendan een gewone twisted pair gigabit verbinding naar deze rootswitch.

Nadelen:

• Er zijn maar 2 uitbreidingssloten beschikbaar zodat maar maximaal 2 verafgelegengebouwen aan te sluiten zijn

2.2.3 Geen rootswitch

We zouden in elk gebouw een 10/100Mbit switch kunnen plaatsen met 2 SX GBIC modulesper switch. Zo kunnen we een soort gigabit ringstructuur creeren door in de cirkel elke switchmet zijn 2 buren te verbinden. We kunnen de ring eventueel openlaten om routing loopste vermijden (wat eigenlijk op een lineaire structuur neerkomt), of we kunnen de switchenconfigureren zodat ze gebruik maken van het Spanning Tree Protocol (STP). Het STP ver-mijdt routing loops en houdt een eventuele redundante verbinding ter beschikking voor als deprimaire verbinding zou uitvallen.

Nadelen:1Gigabit Integrated Circuit

Page 17: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 2. Aanleg netwerk 15

• Op deze manier wordt er 1 gigabit verbinding gedeeld door meerdere communicerendegebouwenparen

• De servers zelf kunnen niet via een gigabit verbinding aangesloten worden op het netwerk(tenzij ze, aangezien we maar 2 servers hebben, verplaatst zouden worden naar de cirkelonderbreking)

• Onderbrekingen in de ring zijn nefaster voor het netwerk

2.2.4 Softwarematig switchen via pc

Deze oplossing voorziet een pc van een paar gigabit glasvezel netwerkkaarten. Op deze manierverkrijgen we een zelfgebouwde gigabit glasvezelswitch.

Nadelen:

• Glasvezel netwerkkaarten vereisen een PCI-X bus (64 bit/133 MHz) die enkel op moe-derborden uit een duurdere klasse te vinden is

• Deze PCI bus heeft een maximale doorvoersnelheid van 1017MB/s (±8 Gbps2). Ditbetekent dat de som van alle datastromen die via onze server passeren niet groterkan zijn dan 8Gbps. Bij een hardwareswitch wordt deze interne doorvoersnelheid debackplane genoemd. Bij een gigabit switch is deze backplane veel hoger dan 8Gbps,bijvoorbeeld 24Gbps bij de AT-9410GB.

2.2.5 Uiteindelijke oplossing: gebruik maken van converters

De beste oplossing qua prijs/kwaliteitsverhouding bleek bekomen te worden via het gebruikvan Gigabit Ethernet media converters. Deze maken het mogelijk over te gaan van een twistedpair gigabit ethernet kabel naar een gigabit glasvezel kabel. Zo kunnen we de laagst gelegenswitchen voorzien van een SX GBIC module voor het aansluiten van een gigabit glasvezeluplink. Aan de andere zijde van elke glasvezelkabel plaatsen we zo’n media converter . Dezeconverters kunnen dan via UTP bekabeling met een gewone gigabit ethernet switch verbondenworden.

2.3 Opbouw netwerk

Een overzicht van merk/type van alle netwerkapparatuur kan je vinden in tabel 2.1.

2.3.1 Logische opbouw

Een schema van deze opbouw is te zien in figuur 2.1. Ik heb gekozen voor de oplossing met2Gigabit per seconde

Page 18: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 2. Aanleg netwerk 16

Naam Locatie Type

rootswitch Kasteel AT-9410GBkindswitch 1 Villa AT-8326GBkindswitch 2 School AT-8326GBmediaconvertor 1 Kasteel AT-MC1004mediaconvertor 2 Kasteel AT-MC1004GBIC 1 Villa AT-G8SXGBIC 2 School AT-G8SXgateway Kasteel Desktop pc op Linuxserver Kasteel Server op Win2000 Serverprintserver Kasteel D-Link DP-301Ukopieerapparaat KasteelADSL-modem Kasteel Thomson Speedtouch 510

Tabel 2.1: Overzicht netwerkapparatuur

de converters 3 zoals vermeld in 2.2.5. Alle switchen en converters zijn van het merk AlliedTelesyn. Er werd gekozen voor manageable switchen, o.a. omwille van hun extra beveiligings-mogelijkheden. Als rootswitch koos ik voor de AT-9410GB4 switch, met 10 10/100/1000Tpoorten, 2 GBIC slots en een 24Gbps backplane. Hierop wordt de gateway , de server , deprintserver , het kopieerapparaat , mediaconvertor 1 en mediaconvertor 2 aangesloten. media-convertor 1 leidt naar kindswitch 1 en mediaconvertor 2 naar kindswitch 2 . kindswitch 1 enkindswitch 2 , beiden van het type AT8326GB5, zijn elk voorzien van 24 10/100Mbit poorten,een 12.8Gbps backplane en 2 GBIC slots 6. kindswitch 1 wordt uitgebreid met GBIC 1 enkindswitch 2 met GBIC 2 zodat op beiden een glasvezelkabel kan aangesloten worden. Declients in de villa worden op de kindswitch 1 gestoken, de clients in het kasteel voorlopigrechtstreeks op de rootswitch. De reden waarom er voor 2 glasvezelverbindingen geen GBICmodules in de rootswitch werden geplaatst, maar gigabit media converters werden gebruikt,is omdat de rootswitch op deze manier vrij te plaatsen is in het gebouw (twisted pair kabelis zeer eenvoudig te leggen). De clients in de school zijn untrusted , dit wil zeggen dat zeeventueel zouden kunnen gebruikt worden om de informatica infrastructuur te hacken. Declients in de villa kunnen zowel trusted als untrusted zijn. Die van het kasteel zijn trusted .Om te voorkomen dat de untrusted clients de trusted clients in de war brengen, worden ze ineen aparte VLAN geplaatst (voor meer info zie 2.4).

3http://www.alliedtelesyn.nl/product/MC10044http://www.alliedtelesyn.nl/product/9410GB5http://www.alliedtelesyn.nl/product/8326gb6http://www.alliedtelesyn.nl/product/G8

Page 19: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 2. Aanleg netwerk 17

Figuur 2.1: Logische opbouw

2.3.2 Fysische opbouw

In de netwerkkamer in het kasteel bevinden zich de rootswitch, een gigabit media convertervoor elk verbonden gebouw, een ADSL verbinding , een ethernet ADSL modem, de reedsaanwezige database server (voor administratie) en de nieuwe Linux server. Normaal zoudenwe hier een extra switch plaatsen waarop de clients worden aangesloten, maar omdat er noggenoeg aansluitmogelijkheden zijn op de rootswitch, en deze auto-sense poorten heeft, kunnenwe de clients rechtstreeks op de gigabit switch aansluiten. In de 2 gewone bureau’s, het bureauvan de directeur en het secretariaat bevinden zich client pc’s. In het printlokaal bevinden zichde printserver en het kopieerapparaat , die beiden voorzien zijn van een netwerkverbinding.Een grondplannetje is te zien in figuur 2.2. In de villa worden alle werkposten via UTP kabelverbonden met kindswitch 1 , die zich in het bureau bevindt waar de glasvezelkabel aankomt.De school zal eerst verbouwd worden, en wordt voorlopig nog niet aangesloten.Een overzicht van de IP-adressering zie je in tabel 2.2.

Page 20: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 2. Aanleg netwerk 18

Figuur 2.2: Grondplan kasteel

2.4 Beveiliging

We gaan ons indekken tegen 3 manieren die kunnen aangewend worden om de veiligheid vanhet netwerk in het gedrang te brengen.

2.4.1 MAC-Address Spoofing

De eerste methode die kwaadwillige personen kunnen gebruiken is het ingebakken MAC-adresvan de netwerkkaart negeren, en een vals adres gebruiken in de verzonden frames. Op dezemanier gaat de switch het zelf ingestelde MAC-adres in zijn dynamische MAC-adres tabelaan deze poort koppelen. Toekomstige frames vanuit het netwerk, met dit MAC-adres alsdoel, zouden dan zo bij de hacker kunnen terechtkomen. Dit kan misbruikt worden door alsvals MAC-adres het adres van een server te nemen, en te doen alsof hij de server zelf is doorbijvoorbeeld dezelfde services aan te bieden. Zo kunnen dan vertrouwelijke gegevens zoalswachtwoorden bemachtigd worden. We kunnen dit voorkomen door op elke poort van deswitch maar een paar, expliciet ingestelde MAC adressen toe te laten. Dit doen we via destatische MAC-adres tabel, en door de poort op Secure in te stellen (zie 2.5.2).

Page 21: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 2. Aanleg netwerk 19

Object IP-adres

server 192.168.123.1printserver 192.168.123.2kopieerapparaat 192.168.123.81gateway 192.168.123.254rootswitch 192.168.123.200kindswitch 1 192.168.123.201Trusted clients 192.168.123.100 - 192.168.123.199Untrusted clients 192.168.2.100 - 192.168.2.199gateway 192.168.2.254

Tabel 2.2: IP-adresseringsschema

2.4.2 ARP Spoofing

Men kan ook valse ARP broadcasts op het netwerk sturen, waarin staat dat de hacker zijnecht MAC-adres nu associeert aan een ander IP-adres dan zijn voorzien adres, bijvoorbeeldaan het IP-adres van de server. Zo sturen clients dan informatie bedoeld voor de server, naarhet verkeerde MAC-adres. We zouden dit kunnen voorkomen door op elke client een statischeARP tabel in te stellen, waarin het IP van de server gelinkt wordt met zijn echte MAC-adres.Dit vraagt natuurlijk heel wat extra werk aan configuratie. Ik heb gekozen om de betrouwbarehosts volledig te scheiden van de onbetrouwbare door middel van VLAN’s. Op deze manierkunnen de onbetrouwbare hosts onderling elkaar wel het leven zuur maken, maar krijgenze in geen geval vertrouwelijke gegevens afkomstig van betrouwbare hosts toegestuurd. Eenprobleem dat we wel moeten oplossen is, dat Internet toegang voor zowel onbetrouwbare alsbetrouwbare hosts beschikbaar moet zijn. Ofwel plaatsen we 2 netwerkkaartjes in de server,voor elke VLAN een. Ofwel maken we gebruik van een ‘tagged port’ die tot meerdere VLAN’stegelijkertijd kan horen (zie 2.5.3).

2.4.3 IP Spoofing

Een laatste methode, die in feite meestal in combinatie met ARP Spoofing wordt gebruikt7,is het vervalsen van het bron IP-adres in de IP header , zodat pakketjes ogenschijnlijk van eenandere host afkomstig zijn. Zo kan bepaalde informatie worden geaccepteerd, die normaalenkel toegelaten wordt van bepaalde vertrouwelijke IP-adressen. We kunnen dit oplossendoor, bijvoorbeeld in firewall rules), eerder het MAC-adres te gebruiken dan het IP-adres, ofdoor pakketten van adressen die niet kunnen komen uit een bepaalde VLAN te verwerpen.

7misbruikt

Page 22: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 2. Aanleg netwerk 20

2.5 Configuratie van netwerkmateriaal

2.5.1 Firmware upgrade

Eerst en vooral upgraden we de firmware van de switchen. Daarbij moeten we eerst debootloader downloaden in de switch, en daarna de image file. De bootloader kunnen we enkeldownloaden door zelf een TFTP server op te zetten. Hiervoor kunnen we bijvoorbeeld gebruikmaken van de AT-TFTP server die we gratis kunnen downloaden8. Deze server voeren wevervolgens uit op een willekeurige pc, met een gewone UTP-kabel verbonden met een vande poorten van de switch. We zorgen ervoor dat deze server de meest recente bootloader(bijvoorbeeld boot.rom) ter beschikking stelt.

Vervolgens geven we de switch een ip-adres in dezelfde range als dat van onze server. Weverbinden hiervoor een pc via de seriele COM-poort met de switch. Daarna connecterenwe op de switch via Terminal Emulation software, zoals bijvoorbeeld de HyperTerminal vanMicrosoft, die standaard in Windows XP te vinden is. We hebben nu een zogenaamde localmanagement session gestart. Na inloggen kunnen we dan via de menustructuur (figuur 2.3)een gepast IP-adres geven.

Figuur 2.3: Local Management Session

Via datzelfde menu kunnen we de switch ook de opdracht geven om zijn nieuwe bootloader tedownloaden. Hiervoor geven we het ip-adres op van de TFTP server, plus de naam van het

8http://www.alliedtelesyn.co.nz/support/rapier/download.html

Page 23: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 2. Aanleg netwerk 21

bestand (‘boot.rom’ in ons voorbeeld).

Op een gelijkaardige manier kunnen we ook de image file op de switch downloaden. Wekunnen dit echter evengoed doen via Xmodem.

Op deze manier werd de software van de AT-8326GB naar versie 1.1.4 geupgraded, en die vande AT-9410GB naar versie 1.0.5 [2, 3].

2.5.2 Poort configuratie

In tabel 2.3 vind je een overzicht van de instellingen voor de rootswitch, in tabel 2.4 voorkindswitch 1 . We zorgen ervoor dat op elke poort enkel het MAC-adres van het verbonden

Poort Verbinding naar Tagged op VID Untagged op VID Secure Level

1 server - 123 S2 gateway 123, 2 1 S3 printserver - 123 S4 kopieerapparaat - 123 S5 Client 1 - 123 S6 Client 2 - 123 S7 Client 3 - 123 S8 Client 4 - 123 S9 Client 5 - 123 S

10 kindswitch 1 123, 2 1 N

Tabel 2.3: Poortconfiguraties rootswitch

Poort Verbinding naar Tagged op VID Untagged op VID Secure Level

1 Client 1 - 123 S2 Client 2 - 123 S3 Client 3 - 123 S4 Client 4 - 123 S5 Client 5 - 123 S6 Client 6 - 123 S

23 Bjorn - 2 S25 rootswitch 123, 2 1 N

Tabel 2.4: Poortconfiguraties kindswitch 1

apparaat toegelaten wordt. Hiervoor zetten we het Secure Level van alle poorten op beideswitchen op Secure. Daardoor zal de switch geen nieuwe dynamische MAC-adressen bijleren,

Page 24: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 2. Aanleg netwerk 22

en enkel de huidige gebruiken (met een oneindige levensduur indien de switch nooit wordtherstart). We doen dit vooraleer de apparaten verbonden worden met de switch, zodat deeventuele verzameling dynamische adressen leeg is. Nu kunnen we in de statische MAC-tabelvan elke poort het juiste MAC-adres toevoegen. Let op: bij toevoegen van een entry in destatische MAC-tabel moeten we naast de poort en het MAC-adres ook een VID opgeven(zie hiervoor 2.5.3)! Wanneer een bepaalde poort deel uitmaakt van meerdere VLAN’s (zoalsdie van gateway) moeten we per poort een entry toevoegen voor elke VLAN waarop we depoort willen gebruiken. De enige poorten die niet op Secure worden gezet zijn de poortendie verbonden zijn met een andere switch, omdat we die andere switch vertrouwen, en eranders voor die poort een hele lijst MAC-adressen zouden moeten worden opgegeven. Alleniet gebruikte poorten worden expliciet uitgeschakeld.

2.5.3 VLAN’s

Een VLAN is een groep van poorten die zich op verschillende switchen kunnen bevinden.Verschillende VLAN’s kunnen naast elkaar bestaan op dezelfde switch. Ze vormen apartesegmenten, en hosts van het ene VLAN kunnen geen rechtstreekse informatie sturen naarhosts van een ander VLAN. Enkele voordelen:

• Het broadcast domein is beperkt tot een enkele VLAN, wat de netwerkbelasting in grotenetwerken enorm kan verlagen

• Wanneer bepaalde hosts van segment veranderen, kan men rekening houden met dezewijziging door enkel de switch (eventueel vanop afstand) te herconfigureren. Er zijn geenmanuele interventies (zoals het versteken van kabels) meer nodig in de netwerkruimte.

• Door het feit dat VLAN ’s onderling geen informatie kunnen uitwisselen, kunnen we opdeze manier onbetrouwbare hosts scheiden van betrouwbare.

Het is vooral omwille van dit laatste voordeel dat we VLAN ’s gaan implementeren. Wemaken gebruik van de 802.1Q VLAN mode, omdat deze ons, ook bij gebruik van meerdereswitchen, kan verzekeren dat op geen enkel moment pakketten bedoeld voor het ene VLANop een ander VLAN terecht kunnen komen.

We maken 2 VLAN’s genaamd trusted en untrusted met als VLAN identifier (VID) respec-tievelijk 123 en 2. Wanneer bijvoorbeeld een frame bedoeld is voor VLAN trusted , dan zalhet frame gedurende zijn hele reis doorheen opeenvolgende switchen een VID gelijk aan 123dragen.

De switchconfiguratie voor VLAN’s wordt in de handleiding van Allied Telesyn ([8]) nogalonduidelijk uit de doeken gedaan. De configuratie is op zich dan ook een beetje verwarrend.Dankzij uitgebreid testen van verschillende situaties werd alles echter duidelijker.

Page 25: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 2. Aanleg netwerk 23

Elke poort kan zich voor elke VLAN waarvan hij deel uitmaakt op 2 manieren gedragen. Ofwelgedraagt hij zich op een bepaald VLAN als een Tagged Port , ofwel als een Untagged Port .Elke poort gedraagt zich voor exact 1 VLAN als Untagged Port , en voor een willekeurig aantalandere VLAN’s als Tagged Port . De VLAN waarop een poort zich gedraagt als Untagged Portkunnen we instellen door zijn VID in te stellen als Port VID (PVID) voor die poort. Eenpoort als Tagged Port laten deel uitmaken van een VLAN doen we door deze poort toe tevoegen aan de VLAN in kwestie.

Wat de termen Tagged Port en Untagged Port juist inhouden wordt uitgelegd aan de handvan twee voorbeelden.

Een frame komt de switch binnen

Is de binnenkomende frame niet voorzien van een VLAN-tag, dan vult de switchdeze VLAN-tag automatisch op met de PVID van de poort. Is de binnenkomendeframe WEL voorzien van een VLAN-tag, en de tag bevat een VID van een vande VLAN ’s waarvan de poort deel uitmaakt, dan wordt de frame ongewijzigdbinnengelaten. Op deze manier is ELK frame dat zich binnen een switch bevindtsteeds voorzien van een VLAN-tag.

Een frame wil de switch uit

De MAC-tabel wordt doorzocht om de juiste uitgaande poort te vinden. Indienhet hardware adres nog niet te vinden is in deze MAC-tabel, dan wordt de framenaar alle poorten gebroadcast . Een frame zal enkel een poort uittreden indien heteen VLAN-tag bevat van een van de VLAN’s waarvan de poort deel uitmaakt. Isde poort een Untagged Port op dit VLAN, dan wordt de tag eerst verwijderd uithet frame. Is de poort een Tagged Port op dit VLAN dan wordt het frame nietgewijzigd.

De poorten waarop zich onbetrouwbare clients bevinden, stellen we in als Untagged Port vanVLAN 2. De poorten waarop zich betrouwbare clients bevinden, evenals die van de server , deprintserver en het kopieerapparaat , stellen we in als Untagged Port van VLAN 123. Bepaaldepoorten maken deel uit van beide VLAN’s, en worden ingesteld als Tagged Ports van VLAN123 en VLAN 2. Voorbeelden van zulke poorten zijn de poort die naar een andere switch leidten de poort waarop de gateway is geplaatst. Willen de devices op zulke poort ook effectiefkunnen communiceren met beide VLAN’s, dan moeten ze de 802.1Q standaard volgen, envan beide VLAN’s op de hoogte zijn. Omdat elke poort op exact 1 VLAN moet ingesteld zijnals Untagged Port (dit VLAN doet dan dienst als een soort default VLAN) stellen we dezepoorten in als een Untagged Ports van VLAN 1.

Page 26: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 2. Aanleg netwerk 24

Onbetrouwbare clients kunnen op deze manier enkel het netwerk op als lid van VLAN 2.Onze gateway kan op deze manier, door zijn VLAN-tag in te stellen, een van beide VLAN’skiezen [8].

Page 27: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 3

Gateway installatie en configuratie

3.1 Keuze hardware en software

In principe zouden we een DMZ 1 moeten opzetten, waarin zich de mailserver en webserverbevinden. Tussen deze DMZ en het Internet, evenals tussen deze DMZ en het lokale netwerk,zou dan een firewall moeten worden geplaatst. Bij voorkeur is dit dan een hardware-firewallomwille van de snelheid en veiligheid. Een hardware-firewall is ook zeer eenvoudig vanop af-stand te updaten, zodat eventuele veiligheidslekken in de firewall-software2 eenvoudig kunnenworden gedicht.

Wegens het beperkte budget echter, kon geen echte DMZ worden opgezet, en kon ook geengebruik worden gemaakt van hardware-firewalls en extra servers. Ik heb gekozen om de mail-en webserver op het lokale netwerk te plaatsen (de Windows server die daar reeds aanwezigwas), en om tussen dit lokale netwerk en het Internet een gateway te plaatsen. Deze gatewaykan dan voorzien worden van een software-firewall.

3.1.1 Keuze hardware

De gateway is verbonden met het Internet, met het trusted netwerkgedeelte, en met hetuntrusted netwerkgedeelte. Hij verzorgt de routing tussen deze netwerken, alsook firewallfuncties. Aangezien dit geen rekenintensieve bewerkingen zijn volstaat een oudere pc, namelijkeen Pentium III 450MHz , die reeds ter beschikking was. Hij werd voorzien van een extragigabit netwerkkaart, zodat hij de gigabit poort op de rootswitch ten volle kan benutten.

3.1.2 Keuze software

Er is nood aan een besturingssysteem dat goed te beveiligen valt, zeer stabiel is, vlot draaitop een oudere pc, en voor een zo laag mogelijke kostprijs zeer professionele functies uitvoert.

1Demilitarized Zone2Ook een hardware-firewall bevat software

25

Page 28: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 3. Gateway installatie en configuratie 26

Hiervoor is Linux zeer geschikt. Het voldoet aan al deze vereisten en is bovendien vollediggratis.

Nu komt het er op aan om de juiste distributie uit te kiezen. Uit ervaring weet ik datDebian GNU/Linux 3 een zeer goede distributie is voor de vereiste functionaliteit. Volgendeeigenschappen spelen daar een grote rol in:

• Debian is volledig gebaseerd op niet-commerciele software, tenzij er tijdens de installatiegekozen wordt om ook commerciele pakketten beschikbaar te maken

• De meeste van de standaard tools komen van het GNU project 4, met als voornaamstesponsor de Free Software Foundation (FSF ). Hierdoor is deze distributie zeer geliefd inde Open Source gemeenschap. Daardoor werken er veel vrijwilligers aan mee, staat alleslos van commerciele belangen, en is er veel en gratis documentatie voor te vinden. Erwerken bijvoorbeeld meer dan 900 vrijwilligers mee aan het onderhoud van de pakkettenvoor dit OS.

• De standaard versie, Woody genaamd, is bedoeld voor productieomgevingen. Hierbijstaat stabiliteit en veiligheid centraal. Een gevolg hiervan is dat er dikwijls met ietsoudere pakketten wordt gewerkt, omdat die hun degelijkheid reeds bewezen hebben inhet verleden. Er wordt ook moeite gedaan om fouten te halen uit deze oudere versies, inplaats van steeds beroep te doen op de nieuwste officiele releases van softwarepakketten(die naast bug-fixes ook nieuwe functionaliteit leveren, en bijgevolg ook nieuwe foutenintroduceren).

• De standaard installatie is zeer minimaal: er wordt enkel het hoogst nodige geınstal-leerd5. Zo heeft men een goed overzicht van welke services er standaard draaien, name-lijk bijna geen enkele. Dit is zeer interessant voor de beveiliging van het systeem, waareen grondige kennis van het gehele systeem een vereiste is. Hoe minder functionaliteiter standaard aanwezig is, hoe eenvoudiger het is om deze grondige kennis te verkrijgen.

• Het OS is voorzien van een zeer goed pakketbeheersysteem (Package management sys-tem). Dit systeem maakt het mogelijk om zowel binaire pakketten als broncode pakket-ten eenvoudig te installeren, en om deze pakketten in de toekomst eenvoudig te kunnenupdaten, en dit zonder verlies van configuratiebestanden.

Uiteindelijk koos ik voor de distributie Adamantix 6, die is gebaseerd op Debian GNU/Li-nux . Deze distributie spitst zich nog eens extra toe op beveiliging. Ze probeert een hoogbeveiligingsniveau te behalen (het Common Criteria LSPP AEL 5 niveau of hoger), maar dit

3http://www.debian.org/4http://www.gnu.org/5De minimale installatie neemt slechts ongeveer 40MB schijfruimte in beslag!6http://www.adamantix.org

Page 29: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 3. Gateway installatie en configuratie 27

op een gebruiksvriendelijke manier. Zo werden bijvoorbeeld alle pakketten gecompileerd meteen aangepaste compiler waardoor de software beter beveiligd wordt tegen buffer overflowaanvallen.

3.2 Beveiliging

Geen enkel systeem is 100% waterdicht. Hiervan zijn verschillende oorzaken. Enerzijds ont-staan er beveiligingslekken door programmeerfouten in de software. Ongeveer 50% van dezelekken zijn te wijten aan wat men noemt buffer overflows. Aangezien hedendaagse softwarezo complex en uitgebreid is, en uit duizenden regels code bestaat, is het bijna onmogelijk omdeze foutvrij te maken. De tijd nodig om een fout te ontdekken is omgekeerd evenredig methet percentage resterende fouten.

Anderzijds is er de configuratie van software en hardware. We moeten, onder andere viahet toekennen van toegangsrechten, exact definieren wie welke permissies heeft. Eveneensmoeten we ervoor zorgen dat niemand zich ongeoorloofd toegang kan verschaffen tot bepaaldegegevens, bijvoorbeeld door netwerkconnecties af te luisteren.

Terwijl programmeerfouten te wijten zijn aan de programmeurs van de betreffende softwa-re, zijn fouten in de configuratie het gevolg van onvoldoende kennis, of nalatigheid van desysteembeheerder. Toch kunnen we ons, als niet-programmeur, zo goed mogelijk beschermentegen die mogelijke programmeerfouten.

3.2.1 Probleem met Open Source software

Bij Open Source software is de broncode vrij te downloaden, te bekijken, aan te passen ente verspreiden. Dit heeft zowel voordelen als nadelen. Enerzijds is het voor hackers veeleenvoudiger om veiligheidsgaten op te sporen, aangezien ze rechtstreeks kunnen zoeken inde originele code. Veiligheidsgaten worden dus veel sneller gevonden. Dit heeft natuurlijkook een positieve kant: de gaten kunnen zo veel sneller worden gedicht. Uiteindelijk zalOpen Source software vaak dus minder fouten bevatten dan andere software. Er is ook eengrotere openheid rond veiligheidsgaten, een commerciele firma zal eerder geneigd zijn deze teverzwijgen, zodat er sneller patches worden beschikbaar gesteld.

3.2.2 Lokale aanvallen versus netwerk aanvallen

Er zijn twee categorieen van aanvallen: lokale aanvallen en netwerk aanvallen. Lokale aan-vallen kunnen plaatsvinden wanneer de hacker een lokale gebruikersaccount heeft. Met dezeaccount kan hij met andere woorden aanmelden op de Linux machine, en een gebruikers-shellverkrijgen. Zo kan hij bestanden lezen, processen manipuleren en programma’s uitvoeren, in-dien hij beschikt over de gepaste rechten. Heeft hij deze lokale account echter niet, dan moet

Page 30: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 3. Gateway installatie en configuratie 28

de hacker zich in eerste instantie beperken tot toepassingen die netwerkverbindingen accep-teren. Dit verlaagt het aantal inbraakmogelijkheden drastisch. Het gevaar bestaat er echterwel in dat, via het uitbuiten van een beveiligingslek in een netwerktoepassing, toch een lokaleshell kan opgestart worden. Deze shell wordt dan uitgevoerd met hetzelfde gebruikersaccountals datgene waarmee de betreffende netwerktoepassing werd uitgevoerd.

Een van de problemen met Linux is dat het gebruikersaccount waarmee een toepassing wordtopgestart dikwijls het root account is. Dit komt omdat bepaalde taken, zoals bijvoorbeeldhet binden van een netwerktoepassing op een lagere tcp-poort, de rechten van het root-account vereisen. De oplossing voor dit probleem is gebruik maken van een systeem alsRSBAC . Dit systeem maakt het mogelijk om voor elk programma precies te definieren welkerechten er nodig zijn, en dit zijn er niet meer dan nodig. Zelfs het root-account heeft zeerweinig rechten. Aanpassingen in de configuratie kunnen enkel worden verwezenlijkt door hetsysteem te herstarten, en via een speciale RSBAC-soft kernel te booten. Wegens tijdsgebrekwerd RSBAC niet geımplementeerd.

3.2.3 Draaiende hoeveelheid code beperken

Een eerste maatregel die we kunnen treffen is de hoeveelheid draaiende code beperken. Hoegroter de hoeveelheid code, hoe groter de kans op programmeerfouten. Het verlagen van dehoeveelheid draaiende code kan enerzijds worden verwezenlijkt door het beperkten van hetaantal opgestarte services tot de hoogst nodige. Anderzijds kunnen we ook de Linux kernelzo klein mogelijk houden. Dit kan door de kernel te hercompileren, en dit met zo weinigmogelijk functionaliteit. Voor meer informatie zie paragraaf 3.4.2.

3.2.4 Inbraak zo snel mogelijk ontdekken en melden

Een laatste onderdeel in de beveiliging is intrusion detection. Hierbij gaat het over de detectievan een inbraak, niet over het voorkomen ervan. Dit is een niet te verwaarlozen onderdeel vande beveiliging. Aangezien geen enkel systeem 100% waterdicht is, moeten we er op zijn minstvoor zorgen dat, wanneer er dan toch wordt ingebroken, we er tenminste van op de hoogteworden gebracht zodat we meteen kunnen ingrijpen. Men kan bijvoorbeeld na installatievan het systeem, waarop op dat moment nog niet is ingebroken, hashwaardes berekenenvan alle belangrijke programmabestanden. We slaan deze hashwaardes op een veilige plaatsop. Wanneer we nu achteraf op geregelde tijdstippen deze hashwaardes herberekenen, envergelijken met de originele, kunnen we de integriteit ervan verifieren. Een andere taak is hetcontroleren van de logbestanden. Er bestaan programma’s om deze logbestanden periodiekte onderzoeken op verdachte meldingen. Eens er problemen zijn vastgesteld ondernemen dezetools een gepaste actie, zoals het verzenden van een e-mail naar de beheerder.

Page 31: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 3. Gateway installatie en configuratie 29

3.3 Installatie van het OS

Zoals reeds eerder vermeld installeren we de Linux-distributie Adamantix . Deze is echtervolledig gebaseerd op Debian. De installatieprocedure bestaat uit het installeren van eenminimale Debian-distributie, en het vervolgens upgraden van dat systeem naar de Adamantix-distributie.

3.3.1 Installatie CD-ROM

Eerst en vooral moet de image van de eerste installatie CD-ROM worden gedownload. Ditkan bijvoorbeeld van de ftp-server van Belnet 7. Het bestand dat daar moet gedownloadworden heet debian-30r2-i386-binary-1_NONUS.iso. Dit image bestand moet vervolgensop een CD-ROM worden gebrand. Tenslotte moet de opstartvolgorde op de te installeren pczo worden ingesteld, dat de pc eerst zal proberen op te starten via de CD-ROM drive. Ditgebeurt via het BIOS . Na installatie moeten we deze opstartvolgorde opnieuw wijzigen zodater enkel van de hardeschijf wordt opgestart. We kiezen ook een BIOS-wachtwoord, zodatniemand deze opstartvolgorde terug zou kunnen wijzigen om bijvoorbeeld van een diskette ofCD-ROM op te starten. Indien dat zou gebeuren wordt het aanwezige Linux systeem namelijkvolledig genegeerd, en heeft die persoon alle rechten.

3.3.2 Installatieprocedure voor het basis Debian systeem

De installatieprocedure wijst zichzelf uit. Daarom wordt er enkel gewezen op zaken die afwij-ken van de standaard instellingen.

Wanneer ons gevraagd wordt naar de partitionering van de schijf (dit is er een van 80GB),dan doen we dit volgens tabel 3.1.We kiezen voor elke partitie, met uitzondering van een paar kleine, voor het bestandssysteemEXT3 . Dit bestandsysteem is gebaseerd op EXT2 , uitgebreid met journaling . Journalingmaakt het veel eenvoudiger om een bestandsysteem te herstellen na een crash.

Voor de keuze van het partitioneringsschema werd rekening gehouden met volgende factoren:

• Elke directorystructuur waarop een gebruiker schrijfrechten heeft, zoals /home of /tmp,wordt best op een aparte partitie geplaatst. Dit verlaagt de kans op een DoS 8 aanvalwaarbij het ‘/’-koppelpunt volledig wordt opgevuld, wat kan resulteren in een onbruik-baar systeem.

• Elke directorystructuur waarin de benodigde plaats varieert, bijvoorbeeld /var, moetook op een aparte partitie. Bij Debian is deze best wat groter omdat gedownloadepakketten (de apt cache) in /var/cache/apt/archives worden bewaard.

7ftp://ftp.belnet.be/mirror/ftp.debian.org/debian-cd/images/3.0_r2/i386/8Denial of Service

Page 32: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 3. Gateway installatie en configuratie 30

Partitie Koppelpunt Grootte (MB) Bestandssysteem

hda1 /boot 20 EXT2hda2 (swap) 512 (swap)hda5 / 2000 EXT3hda6 /usr 4000 EXT3hda7 /home 3000 EXT3hda8 /tmp 256 EXT2hda9 /var 2500 EXT3hda10 /var/mail 1000 EXT3hda11 /usr/local 1000 EXT3hda12 /data 62000 EXT3

Tabel 3.1: Overzicht partities

• Elke directorystructuur waarop we distributie onafhankelijke software wensen te instal-leren, wordt ook best op een aparte partitie geplaatst, bijvoorbeeld /usr/local. Dezeaparte partities zullen namelijk niet worden verwijderd als Debian opnieuw zou moetengeınstalleerd worden.

• Het heeft ook zin om alle statische data op een eigen partitie te zetten, en deze alsread-only te koppelen. Nog beter zou zijn om ze op een medium te plaatsen waarvanhet technisch uitsluitend mogelijk is te lezen (zoals een CD-R schijfje).

Tijdens het vervolg van de installatieprocedure kiezen we voor MD5 passwords en Shadowpasswords. We gebruiken geen tasksel of dselect , maar installeren pakketten achteraf hand-matig via apt-get install pakketnaam. Anders zouden er te veel ongewenste pakkettenworden geınstalleerd.

Er wordt ons ook om de mail instelling van Exim gevraagd, de standaard MTA 9 van Debian.Daarbij geven we volgende zaken op:

• Satellite system (er wordt geen post lokaal bezorgd, maar alles wordt doorgestuurdnaar een andere mailserver)

• Computer system’s name: gateway.capelderij.local

• domainname: capelderij.be

• smarthost: mail.capelderij.local (de mailserver waarnaar alle post wordt doorge-stuurd)

9Mail Transport Agent

Page 33: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 3. Gateway installatie en configuratie 31

• administrator mail: davy (alle mail bedoeld voor de beheerder wordt naar gebruikerdavy gestuurd)

Achteraf kunnen we deze configuratie procedure eventueel opnieuw doorlopen via eximconfig.

Tenslotte kiezen we een goed wachtwoord voor de root-account.

3.3.3 Upgrade naar Adamantix

Voordat we ook maar een extra pakket hebben geınstalleerd passen we het bestand /etc/apt-

/sources.list aan. Hierin worden de bronnen vermeld waarvan het package managementsystem zijn pakketten download. De inhoud van dit bestand moeten we vervangen door:

deb ftp://ftp.szczepanek.de/adamantix/ stable main contrib

deb http://security.adamantix.org/ stable-security main contrib

Daarna voeren we de volgende commando’s uit:

apt-get update

apt-get install libncurses5

apt-get dist-upgrade

3.4 Configuratie en beveiliging van het OS

3.4.1 Installatie van extra pakketten

We installeren volgende extra pakketten:

• emacs21 (onze favoriete editor)

• ssh (om vanop afstand een shell te verkrijgen over een SSL verbinding)

• make, gcc (gcc-2.95), cpp (cpp-2.95), libc6-dev en libncurses5-dev (voor het hercompi-leren van de kernel)

• iproute (en atm-tools)

• vlan (om de vlan devices aan te maken)

• libpam-cracklib (en cracklib-runtime, cracklib2, file)

• sudo

• logcheck (logbestand analyse), en bijgevolg ook logcheck-database, perl, perl-modules,logtail

• debsums (md5 file system integrety check), en bijgevolg ook libdigest-md5-perl

Dit kan via de opdracht apt-get install pakketnaam.

Page 34: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 3. Gateway installatie en configuratie 32

3.4.2 Keuze van de Linux-kernel

De Linux-kernel

De Linux-kernel is de kern van het besturingssysteem. Het is het gemeenschappelijke onder-deel van alle Linux distributies. Alle andere gebruikte programma’s, userland tools, kunnenvrij gekozen worden, maar de Linux-kernel is hetgene waar het besturingssysteem zijn naamaan te danken heeft.

De standaard Linux kernel (in zijn zuivere vorm) is verkrijgbaar in broncode 10. Zulke zuiverekernel wordt de mainstream kernel genoemd. Sommige distributies noemen hem soms ook devanilla kernel . Deze wordt verder ontwikkeld door een team van kernel developers, waaronderLinus Torvalds. De meestgebruikte versie is momenteel 2.4.x, maar de eerste versies in de2.6.x reeks zijn ondertussen ook al klaar.

Patches

Dikwijls zijn er voorzieningen en stuurprogramma’s nodig die in de kernel thuishoren (omdatze bijvoorbeeld rechtstreeks toegang tot de hardware vereisen), maar er niet standaard zijnin opgenomen. Daarom kan je her en der kernel patches terugvinden. Een patch brengt denodige wijzigingen/uitbreidingen aan aan de mainstream kernel sources. Om conflicten tevermijden is het best van uitsluitend patches toe te passen voor de juiste kernel-versie.

Configuratie

Na het patchen van de kernel kunnen we overgaan tot de configuratie ervan. Hierbij duidenwe aan welke onderdelen er statisch in de kernel moeten worden gecompileerd, welke delenals module, en welke onderdelen helemaal niet. Een statisch gecompileerd onderdeel is altijdgeladen wanneer de kernel draait. Een module kunnen we echter at runtime in of uit dedraaiende kernel halen op het gewenste moment (zonder dat herstarten van het OS nodig is).We kunnen hierbij nog opmerken dat we de configuratie uiteindelijk kunnen opslaan in eenbestand, dat we later bij andere kernel sources eventueel kunnen importeren. Het onderlingexporteren en importeren van zulke bestanden is enkel mogelijk voor kernels uit dezelfde reeks(bijvoorbeeld alle kernels in de 2.4.x reeks).

Compilatie

Uiteindelijk kunnen we overgaan tot het compileren van de kernel. Na compilatie krijgen weeen zogenaamde kernel image die alle statisch gecompileerde code bevat. Dit bestand kunnenwe dan verplaatsen naar de /boot partitie en hem vervolgens opgeven aan de boot managerzodat hij kan geboot worden. We kunnen ook de modules compileren. Bij het draaien van

10http://www.kernel.org

Page 35: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 3. Gateway installatie en configuratie 33

de nieuwe kernel image kunnen dan de gewenste modules geladen worden. Soms kan men opbepaalde sites voorgecompileerde modules vinden voor een bepaalde kernel versie (een soortbeschikbaar gestelde driver).

Pakketten

De meeste Linux distributies bieden voorgecompileerde kernels aan (zowel de kernel image alsde modules). Deze kunnen dan eenvoudig geınstalleerd worden via het package managementsystem van de desbetreffende distributie. Welke opties er statisch zijn gecompileerd, welkeals module, en welke helemaal niet, is natuurlijk op voorhand bepaald en kan niet gewijzigdworden. Daarom worden er standaard meestal voldoende onderdelen als modules meegeleverd,zodat de kans groot is dat de benodigde module beschikbaar is. Een bepaald kernel pakketis ook maar geldig voor een bepaalde architectuur (aangezien de kernel voorgecompileerd is).Zo kan het zijn dat er bijvoorbeeld enkel een i386 versie aangeboden wordt (voor Intel 386processoren en recenter) zodat er geen nieuwe instructies of optimalisaties gebruikt wordenvan de recentste processoren. Als voorbeeld is in tabel 3.2 een opsomming gegeven vansommige kernel image pakketten in de distributie Adamantix. In dit overzicht zien we dater pakketten bestaan voor verschillende Intel processoren. Per processor zijn er dan nog eensverschillen in de meegecompileerde opties.

Daarnaast biedt Adamantix ook een pakket aan met de kernel-sources. Deze bronbestandenzijn reeds voorzien van een hele reeks interessante patches. Na het installeren van zo eenpakket moeten we dus de kernel nog configureren, compileren en uiteindelijk installeren (zodathij geboot wordt). Een voorbeeld van zo een pakket in Adamantix:

kernel-source-2.4.22 - us: Linux kernel source for version 2.4.22 with Debian

patches

Op de website van Adamantix staat duidelijk vermeld welke configuratie opties er moetengewijzigd worden om de ‘normal’ kernel, de ‘sec’ kernel, of de ‘soft’ kernel te bekomen.

Onze keuze

We hebben verschillende patches nodig ten opzichte van de mainstream kernel , bijvoorbeeldvoor VLAN ondersteuning, RSBAC, PaX,... Deze patches zijn allemaal aanwezig in de Ada-mantix kernelpakketten, maar bijvoorbeeld niet allemaal in de originele Debian pakketten.Vervolgens willen we een aantal onderdelen in de kernel hebben. In de standaard image pak-ketten van Adamantix zit bijvoorbeeld geen VLAN ondersteuning. Bovendien willen we, methet oog op veiligheid, zo weinig mogelijk code in de draaiende kernel. Want hoe meer pro-grammacode er draait, hoe groter de kans op veiligheidslekken waarvan misbruik kan gemaaktworden. Ideaal is dus het eerder vermelde kernel-source pakket te installeren, vervolgens onzezelf gekozen configuratie te laden, en te compileren (met buffer overflow protectie, zie verder).

Page 36: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 3. Gateway installatie en configuratie 34

kernel-image-2.4.22-1-386 - us Linux kernel image for version 2.4.22 on 386.kernel-image-2.4.22-1-386-sec - us Linux kernel image for version 2.4.22 on 386.kernel-image-2.4.22-1-386-soft - us Linux kernel image for version 2.4.22 on 386.kernel-image-2.4.22-1-386-switch - us Linux kernel image for version 2.4.22 on 386.kernel-image-2.4.22-1-586tsc - us Linux kernel image for version 2.4.22 on

Pentium-Classic.kernel-image-2.4.22-1-586tsc-sec - us Linux kernel image for version 2.4.22 on

Pentium-Classic.kernel-image-2.4.22-1-586tsc-soft - us Linux kernel image for version 2.4.22 on

Pentium-Classic.kernel-image-2.4.22-1-586tsc-switch - us Linux kernel image for version 2.4.22 on

Pentium-Classic.kernel-image-2.4.22-1-686 - us Linux kernel image for version 2.4.22 on

PPro/Celeron/PII/PIII/PIV.kernel-image-2.4.22-1-686-sec - us Linux kernel image for version 2.4.22 on

PPro/Celeron/PII/PIII/PIV.kernel-image-2.4.22-1-686-smp - us Linux kernel image for version 2.4.22 on

PPro/Celeron/PII/PIII/PIV SMP.kernel-image-2.4.22-1-686-smp-sec - us Linux kernel image for version 2.4.22 on

PPro/Celeron/PII/PIII/PIV SMP.kernel-image-2.4.22-1-686-smp-soft - us Linux kernel image for version 2.4.22 on

PPro/Celeron/PII/PIII/PIV SMP.

Tabel 3.2: Kernel image pakketten

Dit kan eventueel in een automatisch script worden geplaatst. Stel dat er een nieuwe kernelversie beschikbaar is, moeten we enkel het juiste source-pakket downloaden, onze configuratieopties laden en compileren. We moeten dus niet alle benodigde patches voor de nieuwe kernelversie gaan zoeken en downloaden, want dat valt niet te automatiseren en brengt dus veelextra werk mee. Werk dat nu wordt gedaan door de Adamantix ontwikkelaars.

3.4.3 Kernel configuratie

Na het installeren van het pakket kernel-source-2.4.22 - us pakken we de bronbestandenuit, verplaatsen we ons naar de nieuwe directory, en voeren het commando make menuconfig

uit. We krijgen dan een menustructuur te zien waar we volgende wijzigingen dienen aan tebrengen:

Processor type and features

(Pentium-III/Celeron(Coppermine)) Processor family

Page 37: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 3. Gateway installatie en configuratie 35

--> compilatie optimalisaties voor onze Pentium III processor

Symmetric multi-processing support UIT

--> ons toestel heeft maar 1 processor

PCMCIA/CardBus support

PCMCIA/CardBus support UIT

--> we hebben geen PCMCIA/CardBus

General setup

ACPI Support

ACPI Support IN

Processor IN

--> Wanneer onze processor niets te doen heeft mag er stroom bespaard

worden

Networking options

Packet Socket IN

--> voor dhcpd

Network packet filtering (replaces ipchains) IN

--> we gebruiken ook packet filtering in onze firewall (via iptables)

Socket Filtering IN

--> voor dhcpd

IP: Netfilter Configuration

Connection tracking (required for masq/NAT) IN

--> we willen aan NAT doen

FTP protocol support IN

IRC protocol support IN

IP tables support (required for filtering/masq/NAT) IN

--> we willen aan packet filtering en NAT doen

netfilter MARK match support (NEW) IN

--> voor onze bandwidth control

Multiple port match support (NEW) IN

--> handig om in 1 regel meerdere poorten te especifiren

Connection state match support (NEW) IN

--> nodig i.v.m. onze NAT

Packet filtering (NEW) IN

--> om de standaard table "‘filter"’ te gebruiken

Full NAT (NEW) IN

--> we willen ook de table "‘nat"’ gebruiken voor onze NAT

MASQUERADE target support (NEW)

--> we gebruiken een device met een wisselend IP adres (PPPoE

verbinding)

REDIRECT target support (NEW) IN

Page 38: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 3. Gateway installatie en configuratie 36

--> handig om aanvragen op bepaalde poorten te forwarden naar lokale

machines, of om een transparante proxy in te stellen

Transparent proxying (NEW) <M>

--> voor onze ZORP firewall

TPROXY target support (NEW) <M>

--> ZORP (eventueel)

tproxy match support (NEW) <M>

--> ZORP (eventueel)

LOG target support IN

--> om vreemde zaken door iptables te laten loggen (TODO)

802.1Q VLAN Support IN

--> om onze VLAN instellingen te kunnen doen

QoS and/or fair queueing

QoS and/or fair queueing IN

--> voor onze bandwidth control

HTB packet scheduler (NEW) IN

SFQ queue (NEW) IN

SCSI support

SCSI support UIT

--> we hebben geen scsi devices, en ook geen iomega parallelepoort zipdrive

Network device support

Allow Net Devices to contribute to /dev/random UIT

--> zie Adamantix kernel info

Ethernet (10 or 100Mbit)

Ethernet (10 or 100Mbit) IN

3COM cards IN

3c590/3c900 series (592/595/597) "Vortex/Boomerang" support (NEW)

IN

--> voor onze ingebouwde 3®Com PCI 3C905B-TX

EISA, VLB, PCI and on board controllers UIT

--> niet nodig

Ethernet (1000 Mbit)

Intel(R) PRO/1000 Gigabit Ethernet support IN

--> voor onze Intel(R) PRO/1000 MT Desktop Adaptor)

PPP (point-to-point protocol) support IN

--> onze PPPoE adsl verbinding heeft dit nodig

PPP support for async serial ports (NEW) IN

--> adsl verbinding

PPP MPPE encryption (NEW) IN

--> zie adamantix kernel

Character devices

Page 39: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 3. Gateway installatie en configuratie 37

/dev/agpgart (AGP Support) UIT

--> we gaan geen grafische toepassingen draaien

Direct Rendering Manager (XFree86 DRI support) UIT

--> zelfde reden

File systems

Quota support IN

--> zodat we eventueel voor bepaalde gebruikers beperkingen i.v.m.

opslagruimte kunnen opleggen

Ext3 journalling file system support IN

--> grootste deel van onze partities zijn in EXT3

DOS FAT fs support UIT

--> laten we uit zodat onze backup hardeschijf in geen geval kan gemount

worden vanuit een draaiend os (veiligheid)

Virtual memory file system support (former shm fs) UIT

--> niet nodig

ISO 9660 CDROM file system support IN

Microsoft Joliet CDROM extensions IN

--> voor als we is een microsoft cdtje plaatsen met lange bestandsnamen

Network File Systems

NFS file system support UIT

--> niet nodig

NFS server support UIT

--> niet nodig

SMB file system support (to mount Windows shares etc.) IN

--> voor backups op netwerkshared van \server

Sound

Sound card support UIT

--> we gaan onze sound chipset niet gebruiken

PaX options

We zetten alle opties op behalve "‘Randomize ET\_EXEC base (NEW)"’

--> zie Adamantix kernel information

3.4.4 Kernel compilatie

We compileren de kernel door het volgende commando uit te voeren:

make ADAMANTIX=y dep clean bzImage modules modules\_install

Zonder de optie ADAMANTIX=y stopt het compileren met de foutmelding:

/root/src/kernel-source-2.4.22/include/asm/unistd.h:379: Invalid ‘asm’ statement:

Page 40: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 3. Gateway installatie en configuratie 38

/root/src/kernel-source-2.4.22/include/asm/unistd.h:379: fixed or forbidden

register 3 (bx) was spilled for class BREG.

3.4.5 Opstartbaar maken van de kernel

Na het compileren van de kernel voeren we volgende commando’s uit:

cp /root/src/kernel-source-2.4.22/arch/i386/boot/bzImage /boot/vmlinuz-2.4.22

ln -s /boot/vmlinuz-2.4.22 /norsbac

Vervolgens passen we het configuratiebestand /etc/lilo.conf aan van onze bootmanager,en voegen volgende gegevens toe:

default=norsbac

image=/norsbac

label=norsbac

read-only

restricted

Tenslotte herschrijven we onze bootsector via het commando lilo -v.

3.4.6 Verdere beveiliging

Voor verdere beveiliging van het OS verwijs ik u door naar de Securing Debian Manual 11

waarin stap voor stap alle aanpassingen worden beschreven. Van deze handelingen werd hetgrootste deel effectief toegepast.

3.5 Netwerk configuratie

De gateway is via een enkele netwerkkaart met een tagged poort van de switch verbonden.We maken nu 2 fictieve netwerk devices aan, zodat het lijkt alsof we een netwerkkaart hebbenop VLAN 123 , en een andere op VLAN 2 . Dit doen we via de tool vconfig :

vconfig add eth0 123

vconfig add eth0 2

Vervolgens geven we het configuratiebestand /etc/network/interfaces de volgende inhoud:

# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)

# The loopback interface

11http://www.debian.org/doc/manuals/securing-debian-howto

Page 41: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 3. Gateway installatie en configuratie 39

auto lo

iface lo inet loopback

# The first network card - this entry was created during the Debian installation

# (network, broadcast and gateway are optional)

auto eth1

iface eth1 inet static

address 10.0.0.254

netmask 255.0.0.0

network 10.0.0.0

broadcast 10.255.255.255

gateway 10.0.0.138

auto eth0

iface eth0 inet static

address 192.168.1.254

netmask 255.255.255.0

network 192.168.1.0

broadcast 192.168.1.255

auto eth0.123

iface eth0.123 inet static

vlan-raw-device eth0

address 192.168.123.254

netmask 255.255.255.0

network 192.168.123.0

broadcast 192.168.123.255

auto eth0.2

iface eth0.2 inet static

vlan-raw-device eth0

address 192.168.2.254

netmask 255.255.255.0

network 192.168.2.0

broadcast 192.168.2.255

We laten ook forwarding toe door in het bestand /etc/network/options de optie ip for-

ward=yes toe te voegen. Via firewall regels moeten we dan wel verboden trafiek blokkeren.

3.6 Firewall

Om de firewall configuratie in te stellen, te testen en door te voeren maken we gebruik vanhet pakket iptables-utils. De configuratie gebeurt in twee bestanden, namelijk /etc/ip-

tables.conf.in voor de regels, en /etc/iptables.conf.var voor de constanten.

Page 42: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 3. Gateway installatie en configuratie 40

Daarna voeren we volgende commando’s uit voor het activeren van de configuratie:

iptables-gen

iptables-commit

Het is ook aan te raden om i.p.v. bepaalde trafiek door te sturen naar het interne netwerk,gebruik te maken van proxy servers. Dit kan bijvoorbeeld door de proxyserver Zorp, diestandaard in de Adamantix-distributie beschikbaar is.

3.7 DHCP Server

Na het installeren van het pakket dhcp passen we het configuratiebestand /etc/dhcpd.conf

als volgt aan:

subnet 10.0.0.0 netmask 255.255.255.0 {

}

subnet 192.168.1.0 netmask 255.255.255.0 {

}

subnet 192.168.123.0 netmask 255.255.255.0 {

}

subnet 192.168.2.0 netmask 255.255.255.0 {

option routers 192.168.2.254;

option subnet-mask 255.255.255.0;

option domain-name-servers 195.238.2.21;

range 192.168.2.100 192.168.2.199;

default-lease-time 21600;

max-lease-time 43200;

}

Merk op dat voor elk bestaand subnet een verwijzing moet geplaatst worden.

Page 43: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 4

Raamplanbeheer

Voor elke jongere in de instelling wordt er om de 6 maanden een raamplan opgesteld. Ditis een soort verslag over het gedrag en de vorderingen van de jongere in de afgelopen 6maanden. Verschillende mensen werken samen aan zo’n verslag, maar meestal werkt iedereenaan zijn eigen vaste paragrafen. Zo zal de pedagogisch coordinator instaan voor de paragrafen‘Medisch verslag’ en ‘Hypothesen en strategie’, en de schoolorthopedagoge voor de paragraaf‘School’.

4.1 Vroegere situatie

Voor de herstructurering was elke medewerker in het bezit van een Word-sjabloon voor deraamplanstructuur. Dit wordt hier nu wel sjabloon genoemd, maar het was werkelijk demeest primitieve vorm van een sjabloon. Elke medewerker vulde dan op de gepaste plaatsen(de paragrafen waarvoor hij verantwoordelijk was) inhoud toe. De andere delen liet hij leeg.Vervolgens werd het half afgewerkte document op een diskette geplaatst, en deze werd danuiteindelijk bezorgd aan de coach van dat raamplan. Deze coach opende dan alle documentenvan alle medewerkers voor dat raamplan, en knipte en plakte de inhoud van die documentensamen tot een afgewerkt document. Vervolgens moest de coach de opmaak uniform ma-ken (elke medewerker had zo zijn eigen regeltjes i.v.m. opmaak en structuur), de titeltjesnummeren, manueel een inhoudstafel aanmaken, de medewerkerstabel op het einde van hetraamplan opstellen, en de administratieve gegevens invullen (die eerst op het secretariaatmoesten bekomen worden).Nadelen:

• Men kon geen tijdelijk resultaat van het raamplan inkijken. Er moest gewacht wordentot het raamplan volledig afgewerkt was door de coach, en aan iedereen werd doorge-geven (een afgedrukt exemplaar passeerde via persoonlijke postvakjes langs elke mede-werker).

41

Page 44: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 4. Raamplanbeheer 42

• Veel werk voor de coach: het aanvragen van administratieve gegevens, het samenstellenvan alle documenten, de opmaak in orde brengen, de titels nummeren en de inhoudstabelen medewerkerstabel opstellen.

• Er was geen centrale opslagplaats voor de raamplannen. Een afgedrukt exemplaar wasachteraf (eens het afgewerkt was) enkel beschikbaar op het bureau van de coach, voorzover het op dat moment niet uitgeleend was aan iemand anders.

• Door het gebruik van een diskette moest men zich van de ene werkplaats naar de andereverplaatsen (soms in verschillende gebouwen).

• Geen duidelijke informatie over wie welke aanpassingen heeft gedaan.

• Een wildgroei van verschillende opmaak stijlen was mogelijk.

• Iedere coach kan zonder problemen het werk van andere personen lezen en aanpassen,en dit zonder ook maar een spoor achter te laten.

4.2 Mogelijke oplossingen

Er bestaan verschillende mogelijke oplossingen voor dit probleem. Het moeilijkste is vermij-den dat wanneer meerdere personen gelijktijdig aan dezelfde paragraaf werken, er conflictenoptreden. Als er 2 personen een paragraaf elk op hun eigen manier aangepast hebben, enbeide versies van de paragrafen worden ongeveer gelijktijdig teruggestuurd naar de server,welke versie is dan de juiste? En hoe zorgen we ervoor dat de wijzigingen van beide personenin rekening worden gebracht. We zullen deze situatie voor de eenvoud onmogelijk makenin ons ontwerp, in plaats van er echt voorzieningen voor te treffen. In wat nu volgt zal ikkort enkele alternatieven bespreken. De uiteindelijk gekozen en uitgewerkte oplossing wordtdaarna in detail besproken.

4.2.1 Ideale oplossing

Wanneer je erover nadenkt, zou de meest ideale oplossing er misschien best als volgt kunnenuitzien. Wanneer verschillende personen A, B en C aan hetzelfde document werken, zoudende wijzigingen van persoon A (bijvoorbeeld het typen van een teken) rechtstreeks (in realtime)zichtbaar moeten zijn op het scherm van persoon B en C, met eventueel de vermelding vande naam van persoon A. Het gedeelte (liefst zo klein mogelijk, bijvoorbeeld de zin) waaraanpersoon A aan het werken is kan dan misschien best vergrendeld worden. Ook achteraf moetduidelijk kunnen opgevraagd worden wie welk deel heeft opgesteld, en wanneer. Om deopmaak uniform te maken kan een systeem als LATEX worden gebruikt, waarbij via extra tagstussen de reguliere tekst de logische opbouw wordt opgegeven in plaats van de fysische. Om

Page 45: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 4. Raamplanbeheer 43

de toegang van bepaalde delen te ontzeggen aan andere gebruikers zou men eventueel ookextra tags voor en na de tekst in kwestie kunnen plaatsen.

Zulke oplossing vraagt een speciaal geschreven netwerkapplicatie die in realtime verbondenis met alle andere applicaties. De vraag is of het schrijven van zo een complex programmawel echt de moeite loont. Misschien is het toch beter bestaande, eventueel gratis, middelente gebruiken om deze ideale oplossing te benaderen.

4.2.2 Commerciele oplossing

Er bestaat momenteel een zeer geschikte oplossing die veel van deze problemen oplost, name-lijk Microsoft Office 2003 . Dit product biedt de mogelijkheid om in team te werken. Men kande naam en online status van alle andere teamleden op elk moment bekijken. Men kan dangezamenlijk aan documenten werken die gebaseerd zijn op sjablonen. Deze gedeelde documen-ten bevinden zich in zogenaamde Document Workspaces. Wanneer een bevoegd persoon eensjabloon aanpast, dan zal de opmaak van alle hierop gebaseerde documenten mee veranderen.Word, Excel en PowerPoint vergelijken een lokale kopie van het document regelmatig met deoriginele versie op de server, en zetten alle veranderingen in de afzonderlijke kopieen bij elkaar.In de Professional Edition van Office 2003 zit ook een geavanceerde toegangsbeveiliging. Demaker van een document kan dan via het rechtenbeheer (Information Rights Management)voor het document, of zelfs voor afzonderlijke stukken van het document, instellen welkeandere gebruikers het mogen lezen, bewerken of alleen maar becommentarieren.

Het nadeel, zoals steeds bij zulke commerciele oplossingen, is de kostprijs. Microsoft Office2003 vereist minimaal Windows 2000 met Service Pack 3 op alle werkstations, Windows XPwordt aangeraden. Voor een groot deel van de nieuwe functies, die gezamenlijk werken aandocumenten mogelijk maken, zijn ook Windows Server 2003 en de SharePoint Portal Serververeist op de server. Wanneer we op 10 bestaande pc’s met Windows 98 willen upgradennaar Windows XP Professional kost dat het MPI ongeveer 2000d. Office Pro 2003 upgradeskosten voor 10 pc’s 3290d. De Windows 2003 Enterprise Server kost 2400d, en de SharePointServer 7050d. Tezamen komen we aan een som van 14740d(alleen nog maar voor software),wat onbetaalbaar is voor een kleine vzw zoals Capelderij. Gelukkig kunnen een aantal vandeze pakketten via Sumika aan een goedkopere prijs worden aangekocht, maar het blijft eengrote investering. [10]

4.2.3 Workflow via email

Een eenvoudige oplossing bestaat erin een soort workflow te creeren. Men vertrekt van eenleeg sjabloon. Iedere werknemer plaatst zijn deel erin en mailt het vervolgens door naar devolgende persoon, tot het document langs alle medewerkers is gepasseerd en uiteindelijk bij decoach terecht komt. Het voornaamste voordeel t.o.v. de huidige situatie is dat men niet meer

Page 46: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 4. Raamplanbeheer 44

van werkplaats naar werkplaats moet wandelen om de huidige versie door te geven. Wanneermen bovendien de andere medewerkers steeds een kopietje bezorgd van de e-mail, zijn dezesteeds op de hoogte van de reeds afgewerkte paragrafen. Een groot deel van de nadelen blijftechter aanwezig.

4.2.4 File sharing van Word-documenten via netwerk

Een andere oplossing is het delen van een Word-document op een netwerkshare. Wanneereen persoon dit document opent, vergrendelt MS Office dit volledige document. Men kan dusniet met meerdere mensen gelijktijdig aan hetzelfde document werken.

Om dit gedeeltelijk op te lossen kan men de verschillende paragrafen (die meestal elk afzonder-lijk bij een bepaalde persoon horen) in aparte documenten plaatsen. Deze aparte documentenkunnen dan later handmatig samengevoegd worden tot een groot. Deze laatste stap zoudenwe eventueel kunnen automatiseren via scripts die het Office Object model aanspreken (cfr.4.3.3).Voordelen:

• Geen tijdverlies door verplaatsen van werkplaats naar werkplaats

• Alle personen kunnen tegelijkertijd aan hun eigen deel werken

• Alle delen staan centraal op een server

• Rechten kunnen per deeldocument worden ingesteld

4.2.5 Database systeem

Vorig systeem van file sharing kan gesimuleerd worden in een database toepassing. De aparteparagrafen worden dan aparte velden in de GUI. In de database gaat het dan om verschillendeentry ’s. Deze velden kunnen in de GUI vergrendeld worden op het moment dat iemand andersdeze bewerkt. Het wordt ook eleganter om verslagen van jongeren te beheren.Voordelen:

• Alle voordelen aangehaald in 4.2.4.

• Het overzicht van de verslagen en het beheer ervan worden eleganter uitgevoerd.

4.2.6 Zuiver CVS systeem

CVS1 is een systeem dat eigenlijk is bedoeld om met een heel team van programmeurs aandezelfde broncode van programma’s te werken. Voor je begint te werken haal je de nieuw-ste versie van alle documenten binnen via CVS. Vervolgens wijzig je de nodige delen. Na

1Concurrent Version System

Page 47: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 4. Raamplanbeheer 45

je werk plaats je de documenten via CVS terug op de server. Wanneer iemand anders indie periode ook wijzigingen heeft aangebracht aan je gewijzigd document, worden deze ver-anderingen samengevoegd (dit samenvoegen heet mergen in het Engels). Gebeurden dezewijzigingen op verschillende plaatsen in het document, dan is de kans groot dat dit mergenzonder problemen verloopt. Gebeurden de wijzigingen bij beide personen aan dezelfde regels,dan kunnen er conflicten ontstaan. Deze worden echter duidelijk weergegeven door het sys-teem, en kunnen eenvoudig handmatig worden gecorrigeerd. De bestanden moeten wel bestgewone tekstbestanden zijn. We kunnen bijvoorbeeld geen Word-document gebruiken metopmaak erin.Voordelen:

• Geen tijdverlies door verplaatsen van werkplaats naar werkplaats.

• Men kan met meerdere personen tegelijkertijd aan dezelfde tekst werken (niet alleen elkaan hun eigen deel).

• Alle wijzigingen worden in detail bijgehouden (wie welk deel wanneer toegevoegd heeft).

• Mogelijkheid om op elk moment een rollback te doen naar gelijk welke vroegere situatie.

4.2.7 Combinatie CVS, LATEX en scripting

Wanneer we enkele van de voorgaande technieken combineren met scripting kunnen we mis-schien wel komen tot een snel implementeerbare oplossing die dicht tegen ons ideale oplossingkomt. De paragrafen kunnen bijvoorbeeld worden opgesteld en aangepast via CVS. Achterafkunnen de paragrafen worden samengevoegd, en kunnen LaTeX tags worden bijgeplaatst, viascripts. Na het compileren met een LaTeX compiler (eveneens geautomatiseerd) verkrijgenwe het uiteindelijke opgemaakte document.

4.3 Keuze van implementatie software

Na het bespreken van de mogelijke oplossingen met het personeel, werd er uiteindelijk ge-kozen voor het programmeren van een webgebaseerde toepassing, met een ondersteunendegegevensbank. Zo kan men werken op gelijk welk werkstation dat is voorzien van een internetbrowser. Dit werkstation moet natuurlijk verbonden zijn met de server. Dit kan via het lokalenetwerk, of zelfs via het Internet.

4.3.1 Programmeertaal

Als programmeertaal werd gekozen voor C# in ASP.NET . De toepassing werd ontwikkeldin Visual Studio .NET . Op de productieserver hoeft deze ontwikkelingsomgeving echter nietaanwezig te zijn. Op de productieserver moet enkel zowel het .NET framework aanwezig zijn

Page 48: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 4. Raamplanbeheer 46

(gratis verkrijgbaar en eveneens noodzakelijk voor Exchange server) als de MS IIS webserver(standaard aanwezig in Windows server versies, en eveneens vereist voor Exchange server).

4.3.2 Database server

Als database server koos ik voor Microsoft SQL Server 2000 omdat dit reeds aanwezig was opde Windows server. Het werd trouwens ook gebruikt door de reeds aanwezige administratiesoftware. Hiervan kon eveneens handig gebruik gemaakt worden om bepaalde administratievegegevens voor de raamplannen uit deze reeds bestaande database op te halen.

4.3.3 Opmaken en produceren van het document

Om de velden in onze database programmatisch samen te smelten tot een opgemaakt docu-ment werd gebruik gemaakt van DCOM objecten. Deze maken het mogelijk om vanuit eenprogramma (zoals onze ASP.NET toepassing) een Word template bestand te openen, allerleihandelingen te doen zoals locaties opzoeken, tekst invoegen, tabellen aanmaken, inhoudstafelproduceren,... en uiteindelijk het resultaat op te slaan in een ander Word bestand. Voordit alles werd MS Word 2003 gebruikt. Bij installatie van dit product worden de nodige dllbestanden automatisch toegevoegd.

4.4 Gebruikershandleiding ter beschrijving van structuur en

mogelijkheden

4.4.1 Gebruikers

Wanneer je als medewerker wilt deel uitmaken van het raamplanbeheer systeem, of indien je erwilt gebruik van maken, dan moeten volgende zaken gebeuren. Jouw gebruikersaccount moetbestaan in Active Directory, of erin aangemaakt worden (bijvoorbeeld via Active DirectoryUsers and Computers). Vervolgens moet de gebruiker toegevoegd worden aan de groep metde naam raamplanbeheer. Tenslotte moet er een keer aangemeld worden via deze gebruikerop het raamplanbeheer systeem, zodat de medewerker opgenomen wordt in de gegevensbank.Vanaf dan is de medewerker gekend en kan hij, bijvoorbeeld via werkverdeling , ingeschakeldworden voor een bepaald raamplan.

4.4.2 De gebruikersinterface

Wanneer we de gewenste URL in onze internet browser opgeven, bijvoorbeeld

http://capelderijsrv/Raamplanbeheer/raamplanViewer/RaamplanViewer.aspx

dan moeten we ons eerst aanmelden. Na het ingeven van een correct gebruikersnaam enwachtwoord paar zien we de gevraagde pagina. Alle pagina’s hebben een uniforme layout (zie

Page 49: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 4. Raamplanbeheer 47

Figuur 4.1: Het raamplanbeheer systeem

figuur 4.1). Dit komt de gebruiksvriendelijkheid ten goede. In de titelbalk zien we als welkegebruiker we zijn aangemeld.

Bovenaan de webpagina bevindt zich de menubalk (figuur 4.2). De knop die geselecteerd is

Figuur 4.2: De menubalk

wordt in een paars kleurtje weergeven, de andere actieve opties in het donker blauw, en deniet actieve opties (niet aan te klikken op dat moment) in het lichtblauw.

Net onder de menubalk bevindt zich de selectiebalk (figuur 4.3). Hier kunnen we in de viewermodus een paar extra opties kiezen.

Page 50: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 4. Raamplanbeheer 48

Figuur 4.3: De selectiebalk

In het midden van de pagina zien we de effectieve inhoud, en onderaan bevindt zich destatusbalk (4.4). In deze balk wordt meer informatie gegeven over de verwachte handeling in

Figuur 4.4: De statusbalk

een bepaalde situatie.

4.4.3 Foutmelding

Wanneer er een fout optreedt, wordt deze weergegeven in een zelfgemaakte foutpagina zoalste zien is in figuur 4.5. Deze foutpagina past natuurlijk binnen de uniforme layout en wordt in

Figuur 4.5: De foutpagina

het midden gedeelte weergegeven (tussen selectiebalk en statusbalk). Er wordt zoveel mogelijkinformatie getoond om de gebruiker een idee te geven over de oorzaak.

4.4.4 Word template bestand creeren

Eerst en vooral moeten we specifieren hoe het uiteindelijk geproduceerd bestand er moetuitzien. Daartoe maken we in Word de volledige vormgeving, en slaan we dit bestand op als

Page 51: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 4. Raamplanbeheer 49

een Word template bestand (.dot). Zo maken we het titelblad, de (lege) tabel voor admini-stratieve gegevens, alle titels en ondertitels,... Het is belangrijk dat we voor de titels gebruikmaken van opmaakprofielen (bijvoorbeeld 1. Kop1, 1.1. Kop2, 1.1.1. Kop3,...) zodat weachteraf automatisch een inhoudstafel kunnen laten opmaken. Elk paragraafje tekst in hetuiteindelijk geproduceerd document noemen we heel toepasselijk een paragraaf , en elke para-graaf heeft een paragraaftype. Elk raamplan bestaat uit steeds dezelfde paragraaftypes. Perparagraaftype krijgen we voor elk raamplan natuurlijk een andere paragraaf inhoud. Het isde bedoeling dat er overal waar er in ons Word document inhoud moet ingevoegd wordenbladwijzers geplaatst worden. Een bladwijzer is een verwijzing die je op een bepaalde plaatsin het document kan aanbrengen, en een bepaalde naam kan geven. Bij het produceren vanhet uiteindelijk Word document voor een bepaald raamplan, wordt er op de plaats van elkebladwijzer de juiste inhoud geplaatst door ons programma.

We kunnen gebruik maken van 3 soorten bladwijzers in ons sjabloonbestand.

1. Eerst en vooral hebben we een paar vaste bladwijzers. Dat zijn de bladwijzers metde namen inhoudsopgave (hier zal de inhoudstafel geplaatst worden), medewerkerstabel(hier komt de medewerkerstabel), datum (hier komt de datum van het huidige raamplan)en datumvorig (hier komt de datum van het vorige raamplan van dezelfde jongere).

2. Verder hebben we bladwijzers die dezelfde naam dragen als de overeenkomstige kolom-namen uit bepaalde tabellen in de administratieve toepassing, horende bij de jongerewaarover het raamplan handelt. Zo hebben we bijvoorbeeld VGEMCOD voor het post-nummer van de gemeente waar de jongere woont, VBEWNAT voor de nationaliteit vande jongere, VBEWMOEDER voor de naam van de jongere zijn moeder, en VBEWOMSvoor de naam van de jongere zelf. Sommige velden komen echter 2 keer voor in hetdocument. Zo wordt de naam en geboortedatum van de jongere zowel in de admini-stratieve tabel geplaatst, als op het titelblad. Het probleem is dat elke bladwijzernaamuniek moet zijn. We kunnen dus bijvoorbeeld niet twee maal een bladwijzer met denaam VBEWOMS plaatsen. Daarom werd er voor het veld VBEWOMS een anderebladwijzer naam in het leven geroepen, en voor het veld VBEWGEB een bladwijzergeboortedatum. Deze bevatten gewoon een kopie van de overeenkomstige velden.

3. Tenslotte voegen we voor elk paragraaftype op de gewenste plaatsen een bladwijzernaamnaar keuze in. Deze bladwijzernamen moeten wel overeenkomen met de opgegeven naamin de aangemaakte (of aan te maken) paragraaftypes in ons raamplanbeheer systeem(zie hoofdstuk 4.4.5).

Hier volgen een paar tips voor het werken met bladwijzers. Ten eerste is het handig als je debladwijzers effectief ziet staan in het document. Daarom openen we in Word het menu Extra

en kiezen Opties. In het tabblad Weergave vinken we bij Weergeven de optie Bladwijzers

Page 52: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 4. Raamplanbeheer 50

aan. Vanaf nu zien we alle bladwijzers in het document door middel van een soort grijzecursor. Een tweede handigheid is het creeren van een sneltoets voor het invoegen/editerenvan bladwijzers. Daarvoor klikken we in het menu Extra op Aanpassen.... In het tabbladOpdrachten klikken we onderaan op de knop Toetsenbord.... In het nu volgende schermkiezen we uit de lijst Categorieen het item Alle opdrachten, en vervolgens uit de lijstOpdrachten het item BladwBewerken. Nu gaan we in het vakje Druk op nieuwe sneltoets

staan, en drukken we onze sneltoets, bijvoorbeeld Ctrl+B. We kunnen dan ook zien of desneltoets al aan een andere functie is toegewezen. Zijn we zeker van onze sneltoetskeuzedan klikken we op de knop Toewijzen. Als we vanaf nu in ons Word document op eenwillekeurige plaats gaan staan, en we drukken op onze sneltoets, dan kunnen we op die plaatseen bladwijzer invoegen. Stond er daar al een, dan kunnen we hem op deze manier aanpassen.Wens je via de menuutjes te werken, dan kan je een bladwijzer toevoegen/wijzigen via hetmenu Invoegen, Bladwijzer....

4.4.5 Nieuwe paragraaftypes

Wanneer we in ons nieuw Word sjabloonbestand bladwijzernamen toevoegen, waar nog geenovereenkomstig paragraaftypes voor zouden bestaan in ons raamplanbeheer systeem, danmoeten we deze eerst aanmaken. Daarvoor klikken we op Paragraaftypes in de menubalk.Vervolgens kiezen we de discipline die bevoegd is om het nieuwe paragraaftype te editeren(bijvoorbeeld gezinsbegeleider of logopedist), een willekeurige titel (die wordt getoond in onzeraamplanviewer, net boven een paragraaf van dit type, maar die verder geen betekenis heeft)en de naam van de bladwijzer die we hebben gebruikt om aan te geven waar dit paragraaf-type moet worden geplaatst in ons document. Na het klikken op de knop Toevoegen wordthet paragraaftype toegevoegd in de lijst. Alle toevoegingen kunnen worden geannuleerd viade knop Annuleren, of worden bevestigd door de knop Bevestigen. Aangemaakte para-graaftypes kunnen achteraf niet meer worden verwijderd, enkel gedeactiveerd in de nieuwsteraamplanversie (zie 4.4.6).

4.4.6 De raamplanversie aanmaken

Eens we onze nieuwe structuur via een nieuw Word template bestand hebben opgemaakt, eneventueel nieuwe paragraaftypes hebben aangemaakt, kunnen we hieruit een nieuwe raam-planversie creeren. Vanaf dat moment zullen alle nieuw aangemaakte raamplannen op dezeversie gebaseerd worden.

We klikken op Nieuwe versie in de menubalk. Daar kunnen we links alle niet-actieve para-graaftypes zien (nieuw aangemaakte types zijn standaard niet-actief), en rechts alle actieve.Met de knoppen >> en << kunnen paragraaftypes tussen deze 2 categorieen worden verplaatst.Onderaan kunnen we het pad naar ons nieuw Word template bestand opgeven (we kunnen ookBrowse... klikken). Wanneer we tenslotte op de knop Aanmaken klikken, wordt de nieuwe

Page 53: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 4. Raamplanbeheer 51

versie toegevoegd aan onze gegevensbank en, zoals vermeld, worden alle vanaf nu aangemaakteraamplannen hierop gebaseerd.

4.4.7 Nieuw raamplan

Een nieuw raamplan aanmaken is zeer eenvoudig. We klikken gewoon op de knop Nieuw RP

in de menubalk. Vervolgens selecteren we de jongere waarvoor we het nieuwe raamplan willenstarten uit de lijst (deze lijst van jongeren wordt opgehaald uit de administratie database).We kiezen ook de datum. Deze datum kan bijvoorbeeld in de toekomst liggen. Wanneer weop de knop Aanmaken klikken, wordt een nieuw raamplan voor de geselecteerde jongere en deingevulde datum aangemaakt. Dit houdt in dat er een lege paragraaf wordt aangemaakt voorelk actief paragraaftype (elk paragraaftype in de nieuwste versie), horende bij dit raamplan.Het raamplan wordt ook gekoppeld aan deze nieuwste versie, en dus ook aan het bijbehorendeWord template bestand. Diegene die een raamplan aanmaakt, wordt automatisch de coachvan dit raamplan.

4.4.8 Werkverdeling

Indien we de coach zijn van een raamplan, kunnen we ten alle tijde de werkverdeling ervanaanpassen. Men kan op 2 manieren op het scherm terecht komen om de werkverdeling aante passen. Ofwel na het aanmaken van een nieuw raamplan, ofwel na het klikken op de knopWerkverdeling in de menubalk, nadat we in de Viewer een raamplan hadden geselecteerd.Men kan hier voor elke gewenste discipline een gepaste medewerker opgeven. Eens de lijst vandisciplines en overeenkomstige medewerkers voor het huidige raamplan is opgegeven, klikkenwe op de knop Bevestigen.

4.4.9 Inhoud raamplan bekijken/bewerken

De inhoud van een raamplan bekijken/bewerken doen we via de raamplan viewer. Die openenwe door op de knop Viewer te klikken in de menubalk. Vervolgens kiezen we een jongere uit dejongerenlijst. Daarna een raamplan van die jongere uit de raamplanlijst (vanaf nu is het ookmogelijk om op werkverdeling te klikken, of op .doc zie 4.4.10), en tenslotte kiezen we degewenste discipline uit de disciplinelijst. We zien nu alle paragrafen voor de gekozen disciplinevan het geselecteerde raamplan. Wanneer we zelf opgegeven zijn voor deze discipline in dewerkverdeling voor het geselecteerde raamplan, dan kunnen we elk van de getoonde paragrafenook editeren via de knop Editeren die dan onder elke paragraaf verschijnt.

4.4.10 Geproduceerd Word-document verkrijgen

Na het selecteren van een raamplan via de viewer (zie 4.4.9) kunnen we op de knop .doc

klikken in de menubalk, om een raamplan document te produceren. Er wordt ons dan au-

Page 54: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 4. Raamplanbeheer 52

tomatisch een downloadaanvraag voorgesteld van het geproduceerde Word document. Ditdocument is niets meer dan het template bestand van de gepaste versie, waarbij alle bladwij-zers zijn vervangen door de gepaste inhoud voor het geselecteerde raamplan. Dit documentkan ten alle tijde opnieuw geproduceerd worden via deze knop, en dit natuurlijk voor allebestaande raamplannen in het systeem, ongeacht hun versie.

4.5 Implementatie details

In dit gedeelte wordt beschreven hoe het programma uitgewerkt werd.

4.5.1 Visual Studio .NET project

Na het opstarten van Microsoft Visual Studio .NET kiezen we in het menu File voorNew en vervolgens Project.... We kiezen onder de rubriek Visual C# Projects voorASP.NET Web Application. We geven ook een locatie op, namelijk

http://localhost/Raamplanbeheer

4.5.2 Bestanden

We maken de volgende bestanden aan in ons project (wanneer er een aspx pagina wordtvermeld bedoelen we impliciet eigenlijk ook het bijbehorende code behind bestand met extensie.aspx.cs):

Constanten.cs

In de klasse Constanten plaatsen we onze constanten d.m.v. statische strings, bijvoorbeeld:public static string PAD_ERROR = "/Raamplanbeheer/Error.aspx";. In onze string-namen gebruik ik het voorvoegsel PAD_ voor constanten die naar een bepaalde pagina verwij-zen (absoluut pad), het voorvoegsel MENU_ voor constanten die de afzonderlijke menuknoppenaanduiden in een Menu object (verzameling van MenuKnoppen), en het voorvoegsel SESSIE_voor parameternamen van objecten die op de sessie worden geplaatst.

Error.aspx

Dit is de foutpagina naar waar verwezen wordt bij het optreden van een fout (zie 4.5.13)

Login.aspx en Logout.aspx

Login.aspx is de pagina die automatisch wordt opgeroepen wanneer de gebruiker nog niet isingelogd. Hij hoeft dus niet zelf naar deze pagina te surfen om in te loggen: dit gebeurt auto-matisch wanneer een willekeurige pagina wordt opgeroepen en de gebruiker niet is ingelogd.

Page 55: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 4. Raamplanbeheer 53

Na het inloggen wordt automatisch teruggekeerd naar deze willekeurige pagina. Logout isbedoeld om te gebruiker uit te loggen, ofwel zodat er vervolgens met een andere gebruikerkan worden ingelogd, ofwel wanneer de pc een onbetrouwbare pc is waarop andere mensenanders de sessie zouden kunnen voortzetten.

Web.config

Hier bevinden zich een aantal variabelen waarvan we verwachten dat de informatica verant-woordelijke ze achteraf eenvoudig moet kunnen aanpassen. Ook de authenticatie instellingenworden hier gedeeltelijk gedaan (zie 4.5.10). Hier volgen de variabelen en hun standaardwaardes:

<!-- Word verslag -->

<add key="WordTem" value="I:\\Inetpub\\wwwroot\\Raamplanbeheer\\maakDocument\\

templates\\" />

<add key="WordDoc" value="I:\Inetpub\wwwroot\Raamplanbeheer\maakDocument\

documents\" />

<add key="WordDocURL" value="/Raamplanbeheer/maakDocument/documents/" />

<!-- Active directory -->

<add key="adPath" value="LDAP://1punt7.capelderij.be/DC=capelderij,DC=be" />

<add key="defaultDomain" value="capelderij.be" />

<!-- Database -->

<add key="connString" value="Provider=sqloledb;Data Source=(local);Initial

Catalog=raamplanbeheer;Trusted_Connection=yes;" />

<add key="bewonersDB" value="Bewon.dbo.BBWBEWON" />

<add key="externeView" value="Bewon.dbo.BBWBEWON bew

INNER JOIN Bewon.dbo.BBWHADRS kop ON bew.VBEWCOD=kop.VBEWCOD

INNER JOIN Bewon.dbo.BVADRES adr ON kop.VADRESCOD=adr.VADRESCOD

INNER JOIN Bewon.dbo.BVGEMEEN gem ON adr.VGEMCOD=gem.VGEMCOD AND adr.VGEMNR=

gem.VGEMNR" />

Global.asax

Hierin wordt de methode Application_AuthenticateRequest gedefinieerd voor het authen-ticatie systeem (zie 4.5.10) en de methode Application_BeginRequest voor het internatio-nalisatiessysteem (zie 4.5.12).

LdapAuthentication.cs

Bevat de LdapAuthentication klasse die instaat voor de communicatie met de Active Direc-tory.

Page 56: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 4. Raamplanbeheer 54

De directory eigenItems

Deze directory bevat volgende bestanden:

• DDLMetLabel.cs (een DropDownList met een label ervoor, bedoeld voor de selectie-balk),

• Menu.cs (een collectie van MenuKnoppen)

• MenuKnop.cs (een menuknop inclusief status)

• PaginaTitel.cs (de titel bovenaan in de titelbalk van de internet browser)

• SLButton.cs (een gewone Button die we in de selectiebalk kunnen plaatsen)

• TBMetLabel (een TextBox met een label ervoor, bedoeld voor in de selectiebalk teplaatsen)

De directory maakDocument met het bestand MaakWord.aspx

Deze pagina creeert het Word document van een geselecteerd raamplan.

De directory models

Deze bevat het bestand Model.cs (de interface klasse Model, waarvan alle model klassenmoeten worden afgeleid) en het bestand DatabankModel.cs (de model klasse voor onze MSSQL Server database connectie).

De directory raamplanDefinitie

Met de bestanden NieuwRaamplan.aspx (om een nieuw raamplan te creeren) en Werkverde-

lingEditor.aspx (om de werkverdeling ervan aan te passen).

De directory raamplanViewer

Met de bestanden ParagraafEditor.aspx (om een paragraaf te editeren nadat op de knopEditeren werd geklikt naast een paragraaf in de viewer) en RaamplanViewer.aspx (de viewerzelf).

De directory resources

Bevat de resource files voor het ondersteunen van verschillende talen: MyResources.resx

dient voor de standaardtaal (niet gebruikt), en MyResources.nl.resx voor het Nederlands.

Page 57: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 4. Raamplanbeheer 55

De directory structuur

Met de bestanden NieuweParagraaftypes.aspx (voor het aanmaken van nieuwe paragraaf-types) en NieuweVersie.aspx (voor het creeren van een nieuwe raamplanversie).

De directory templatePage

Hierin bevindt zich het bestand TemplatePage.cs (al onze pagina’s zijn van de klasse Tem-platePage afgeleid, zie 4.5.4. Ook ons CSS bestand template1.css bevindt zich hier, evenalseen paar JPG bestanden zoals error_boobs.jpg en kasteel.JPG.

4.5.3 Het MVC ontwerpmodel

We bouwen onze applicatie volgens het MVC model . Dat staat voor Model, View, Controller .Het model is de representatie van datgene waar de gebruiker probeert mee te communiceren.In onze toepassing gaat het om het MS SQL Server DBMS. Er moeten gegevens uit opgehaaldworden, en vervolgens aan de gebruiker worden voorgesteld. Deze voorstelling is de taak vande view . Dit zijn onze aspx pagina’s, en soms ook een gedeelte van de achterliggende codebehind files wanneer er via code zaken worden toegevoegd aan de pagina. Tenslotte is er eensysteem dat acties van de gebruiker (gewoonlijk muis en toetsenbord acties) verwerkt. Dit isde taak van de Controller . In onze applicatie wordt dit verwezenlijkt door een gedeelte vande code behind files, en door onze TemplatePage die zich tussen al onze pagina’s en de klassePage bevindt.

In figuur 4.6 wordt het een en ander geschetst. Zo zien we dat de ASP(X) pagina instaatvoor de view, en omgezet wordt naar een nieuwe webpagina die naar de gebruiker wordtgestuurd. De aspx pagina kan voor het produceren van de view gegevens opvragen uit hetmodel (bijvoorbeeld een aantal paragrafen). Vervolgens vult de gebruiker een Web Form opdeze pagina in, en onderneemt hij een actie (zoals het klikken op een knop). Deze actiewordt verwerkt door het code behind bestand (aspx.cs) en door de ViewController . Om deaanpassingen door te voeren, raadpleegt het code behind bestand het model . Ons code bestandis dus ook afgeleid van de ViewController (onze TemplatePage). Deze ViewController regelto.a. de authenticatie van de gebruiker, en welke pagina’s hij mag bekijken en welke niet.Wanneer we ergens in onze toepassing verwijzen naar een andere pagina, dan zou dit moetengebeuren via de ViewController . Dit is effectief zo voor de fout pagina. Voor verwijzingennaar andere pagina’s echter wordt gebruik gemaakt van een klasse Constanten, zodat wehetzelfde resultaat bereiken: wanneer er pagina’s van naam veranderen moet ons programmamaar op een plaats worden gewijzigd, namelijk in de Constanten klasse [7].

Page 58: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 4. Raamplanbeheer 56

Figuur 4.6: Het MVC model in ASP.NET

4.5.4 Het template systeem en de klasse TemplatePage

Om alle pagina’s een uniforme structuur en opmaak te geven, en ook om het mogelijk te makenachteraf alternatieve structuren en opmaak te ontwikkelen, en die eventueel naast de huidigete gebruiken, werd er goed nagedacht over een template systeem. Vroeger (bijvoorbeeld inASP) werden zulke template systemen verwezenlijkt door bovenaan en onderaan elke paginaeen include te doen van steeds dezelfde bestanden, en natuurlijk ook door gebruik te makenvan Cascading Style Sheets (CSS). Nu met de introductie van ASP.NET, en de verregaandeobject georienteerdheid ervan, zijn er betere technieken mogelijk.

Alle pagina’s in ASP.NET zijn eigenlijk klassen, afgeleid van de bovenklasse Page. Wat wegaan doen is al deze pagina klassen niet meer afleiden van Page, maar van een nieuwe tus-senklasse TemplatePage die op haar beurt van de klasse Page is afgeleid. In deze nieuweklasse kunnen we dan bepaalde methodes overschrijven, en nieuwe methodes, eigenschap-pen,velden,... bijmaken.

Om te weten wat en hoe we moeten overschrijven, is het belangrijk om de volgorde te wetenwaarin de methodes worden aangeroepen, en wat er wanneer gebeurt. Daarover meer involgende deelparagrafen. Ik bespreek eerst wat ik aangepast heb.

Page 59: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 4. Raamplanbeheer 57

Eigenschap PageTitle

Wanneer we de waarde van deze eigenschap (string) instellen, dan wordt de Text eigenschapvan het achterliggende PaginaTitel-object ingesteld.

Eigenschap StatusMessage

Wanneer we de waarde van deze eigenschap (string) instellen, wordt de eigenschap Text vanhet achterliggende Label-object ingesteld.

Eigenschap MenuItems

Deze eigenschap stelt het achterliggende Menu-object in. Dit object bevat de menuknoppenvoor in de menubalk.

Eigenschap SelectieItems

Deze eigenschap stelt het achterliggende ArrayList-object in. Dit object bevat alle WebCon-trols die in de selectiebalk worden geplaatst.

Veld resources

Dit is een object van het type ResourceManager. Dit object gaan we gebruiken om onzetaal-specifieke gegevens op te halen, zoals teksten en opschriften.

Eigenschappen ErrorCode en ErrorString

Stellen een foutnummer en foutstring in wanneer er een fout optreedt.

Eigenschap ModelObject

Deze eigenschap stelt het achterliggende Model-object in. Via dit object kunnen we methodesaanroepen om gegevens op te halen uit ons model, of dit nu ons DatabankModel is (om degegevens uit onze MS SQL Server databank te halen) of een andere deelklasse van Model.

Eigenschap UserId

Deze eigenschap bevat de id van de gebruiker die momenteel is aangemeld.

De constructor

In de constructor van de TemplatePage klasse worden een groot deel van de vorige itemsgeınitialiseerd, en wordt het menu opgebouwd.

Page 60: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 4. Raamplanbeheer 58

De methode OnInit en volgelingen

Als het niet om de login- of om de foutpagina gaat, wordt de logout-menuknop geactiveerden krijgt het userid veld het id van de aangemelde gebruiker. De methode BuildPage wordthier ook aangeroepen, met als argument een HtmlForm-object teruggegeven door de methodeGenerateHtmlForm. Dit wil zeggen dat eerst de methode GenerateHtmlForm wordt aan-geroepen. Hierin wordt een nieuw HtmlForm-object gemaakt waarin we bijna de volledigepagina gaan opbouwen. De nodige HTML-code wordt erin geplaatst, de menubalk wordtopgebouwd (m.b.v. de methode AddMenuItems), de selectiebalk wordt opgebouwd (m.b.v.de methode AddSelectionItems), alles wat op dat moment in de Controls collectie zit van depagina (met andere woorden alles wat in de bijbehordende aspx pagina aanwezig is, aange-vuld met wat in onze code behind file via code werd toegevoegd) wordt eruit gehaald en aande form toegevoegd (m.b.v. de methode AddControlsFromDerivedPage), en tenslotte wordtde statusbalk toegevoegd. Dit volledig nieuwe form object wordt dan meegegeven aan demethode BuildPage. Deze laatste methode plaatst al het nodige in de Controls collectie vande pagina, die ondertussen is leeggemaakt, en waarvan de inhoud zich nu ergens in het Formobject bevindt. Dit houdt in: de HTML-code voor en na de form (zoals ook de verwijzingnaar ons CSS-bestand), en het Form object zelf. Tenslotte wordt de methode OnInit() vande bovenklasse opgeroepen.

De methode GetResource

Deze methode heeft een string als parameter. Aan de hand van deze parameter wordt debijbehorende string opgehaald uit het juiste resource bestand (voor de juiste taal).

De methode SetErrorCode

Met deze methode wordt het veld errorCode ingesteld, en eventueel ook het veld errorString.Met enkel een numerieke errorcode wordt er ook een passende string opgehaald uit het resour-ce bestand. De extra parameter dient vooral voor situatie afhankelijke extra info. Vervolgensgebeurt er automatisch een transfer naar de error.aspx pagina (die de ingestelde velden ge-bruikt voor het weergeven van de fout informatie) [1] [4].

4.5.5 Eigen controls

Deze paragraaf vermeldt een paar opmerkingen i.v.m. eigen controls waarover in volgendeparagrafen wordt gesproken. De meesten ervan zijn afgeleid van bestaande controls, en over-schrijven de methode Render(HtmlTextWriter output). Dit heeft als voordeel dat ze recht-streeks aan de Controls collectie van de pagina kunnen worden toegevoegd, en dat ze geparstworden net zoals de andere controls. De eenvoudigste manier om een nieuwe control aan temaken is via het menu File, Add New Item.... Daar kiezen we in Web Project Items -->

Page 61: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 4. Raamplanbeheer 59

UI --> Web Custom Control. Wanneer we deze control ook in een aspx-pagina willen ge-bruiken, moeten we verdere acties ondernemen, en de control compileren naar een dll file.Maar dit is allemaal niet nodig: we voegen ze enkel toe vanuit code.

4.5.6 Menubalk

Het menu zit vervat in een object van de zelfgemaakte klasse Menu. Dit is een gegevensstruc-tuur die objecten van de klasse MenuKnop bevat. Het speciale aan deze gegevensstructuuris dat de volgorde van de menuknoppen moet vastliggen, maar dat er toch ook efficient eenbepaalde menuknop via een string-indexer moet kunnen opgehaald worden. Dit is handigwanneer bijvoorbeeld de status van een reeds aanwezige menuknop moet aangepast wordenin een of ander code behind bestand. Daarom werd er intern gebruik gemaakt van een objectvan de klasse ArrayList , om de objecten in volgorde op te slaan, en ook van een hashtabel omde plaats van een object in de ArrayList via een string-indexer ogenblikkelijk terug te vinden.Een MenuKnop zelf heeft een eigenschap Text (voor het opschrift), een eigenschap Link (die dehyperlink achter de menuknop instelt), en een eigenschap Toestand die de volgende waardenkan aannemen:

• Actief: Er kan op de knop geklikt worden

• Inactief: Er kan niet op de knop geklikt worden

• Geladen: De pagina achter de link is momenteel geladen

Zoals reeds eerder vermeld wordt de menubalk aangemaakt in de constructor van de klas-se TemplatePage. De eigenschappen van een knop naar keuze kunnen natuurlijk achterafaangepast worden (bijvoorbeeld de eigenschap Toestand).

4.5.7 Selectiebalk

De selectiebalk wordt gevormd uit het selectieItems veld in onze TemplatePage. Dit is eeneenvoudige ArrayList, waarbij alle elementen moeten afgeleid zijn van de klasse Control, zodatze rechtstreeks, na casten naar Control, aan de Controls collectie van de pagina, of van eenform, kunnen worden toegevoegd.

4.5.8 Cascading style sheets

Her en der in de geproduceerde html code worden er class properties bij html tags toege-voegd. Zo kunnen we vanuit een CSS de opmaak afhandelen. Door een andere TemplatePagete schrijven kunnen we de volledige structuur van alle pagina’s wijzigen: bijvoorbeeld het me-nu links, en statusbalk bovenaan. Door te verwijzen naar een ander CSS bestand, eveneensin de TemplatePage, kunnen we de volledige opmaak wijzigen: bijvoorbeeld alle kadertjes enboordjes groter, kleuren anders,...

Page 62: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 4. Raamplanbeheer 60

Binnenin het CSS bestand zijn wel subtiele verschillen i.v.m. het bereik van de instellingen. Zoslaat TABLE.basistabel bijvoorbeeld enkel op tabellen die de klasse basistabel dragen, nietop geneste tabellen. Bijvoorbeeld bij de TABLE.basistabel TH echter zullen de instellingenslaan op alle TH elementen onder de tabel met klasse basistabel: niet enkel op de THelementen van de tabel zelf, maar ook van al de geneste tabellen, tenzij er verder in deboomstructuur van elementen een meer specifieke instelling opduikt.

4.5.9 Database klasse

Bepaalde dingen verschillen van gegevensbron tot gegevensbron, en zelfs van DBMS totDBMS, ook al maken we voor allen gebruik van klassen die op interfaces uit System.Data zijngebaseerd. Zo verschilt bijvoorbeeld het gebruik van parameters, of het gebruik van datumnotaties. Daarom schuiven we de scheidingslijn op, zodat er meer (specifieke) code in demodel klasse wordt gestopt, en minder in de aanroepende codestukken. We maken een in-terface model, waarin we alle methodes definieren. We kunnen dan het ModelObject in onzegehele applicatie beschouwen als een object van het type Model, ongeacht welke deelklassewe gebruiken (en dus ongeacht welke gegevensbron). Hier volgen twee voorbeelden van zulkemethodes:

1. DataSet geefWerkverdeling(int raamplanId);We geven een raamplan id mee, en we krijgen een DataSet terug met de werkverde-ling voor dat raamplan. Veel code (zoals het definieren van een connectiestring, hetaanroepen van een adapter,...) verdwijnt dus in de implementatie van deze interface.

2. void updateWerkverdeling(int raamplanId, DataSet ds);We geven de gewijzigde dataset terug mee, tezamen met het raamplan id. De wijzigingenworden doorgevoerd in ons model.

Voor onze toepassing hebben we de implementatieklasse DatabankModel gemaakt (afgeleidvan Model) voor de connectie met het MS SQL Server DBMS.

4.5.10 Aanmelden en Active Directory

We gebruiken active directory voor 2 zaken:

1. Om de combinatie login en wachtwoord te controleren

2. Om via de login de volledige naam van de medewerker te achterhalen

Om van de directory services klassen te kunnen gebruik maken moeten we eerst een referentiein ons project toevoegen. Dit gebeurt als volgt: We klikken met de rechtermuisknop opReferences (in onze Solution Explorer) en kiezen Add reference. In het .NET tabbladselecteren we System.DirectoryServices.dll, we klikken op de knop Select en tenslotte

Page 63: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 4. Raamplanbeheer 61

op Ok. In de bestanden waarin we gebruik wensen te maken van de directory services, plaatsenwe bovenaan using System.DirectoryServices;.

Via onze klasse LdapAuthentication kunnen we gebruik maken van volgende methodes:

1. bool IsAuthenticated(string domain, string username, string pwd)Deze methode controleert of de meegegeven gebruikersnaam en wachtwoord kloppenvoor het opgegeven domein.

2. void vervangNamen(DataSet medewerkersDS, string path)Deze methode vervangt de waarde in de kolom naam (oorspronkelijk de loginnaam) doorde volledige naam, voor alle rijen van de meegegeven DataSet.

3. string GetGroups()Geeft een string terug met alle groepen waartoe de eerder geauthenticeerde gebruikerbehoort. De groepen zijn gescheiden door middel van pipeline-tekens.

We maken gebruik van de Forms authentication mode. Daarom plaatsen we het volgendein het bestand Web.config, onder <configuration><system.web>:

<authentication mode="Forms">

<forms loginUrl="login.aspx" name="adAuthCookie" timeout="60" path="/">

</forms>

</authentication>

<authorization>

<allow roles="raamplanbeheer" />

<deny users="*" />

</authorization>

<identity impersonate="true" />

Het eerste blok stelt de authenticatie mode in, evenals de loginpagina (login.aspx), de coo-kienaam van het cookie dat we gaan gebruiken voor onze loginsessie, en het aantal minutenwaarna de loginsessie verloopt. Let op, deze loginsessie timeout is volledig onafhankelijk vande sessie timeout! De sessie timeout stellen we in door aan <configuration> <system.web>

<sessionState> het attribuut timeout="60" toe te voegen. De loginsessie timeout en desessie timeout zetten we best op dezelfde waarde. Merk op dat de timeouts gelden na hetingestelde aantal minuten inactiviteit. Dus bij elke actie worden ze terug gereset.

Het tweede blok laat enkel gebruikers toe die zich in de groep raamplanbeheer bevinden,de rest wordt geweigerd. Het laatste blok tenslotte zorgt ervoor dat de windows identiteitwaaronder de webpagina voor de ingelogde gebruiker uitgevoerd wordt gelijk is aan die van

Page 64: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 4. Raamplanbeheer 62

IIS. Dit is IUSR CAPELDERIJSRV voor onze productieserver (IIS 5.0), enNT AUTHORITY\NETWORK SERVICE voor onze ontwikkelingsserver (IIS 6.0).

Volgende (pseudo)code wordt uitgevoerd wanneer er op de loginknop wordt geklikt na hetinvullen van de gebruikersnaam en wachtwoord:

Als ActiveDirectoryLogin(gebruikersnaam, wachtwoord) succesvol

{

groepen = haalGroepenOpUitActiveDirectory(gebruikersnaam)

ticket = Maakauthenticatieticket(login, huidige datum, hudige datum + 60min,

groepen)

encrypteer(ticket)

cookie = maakCookie(ticket)

Keer terug naar oorspronkelijk aangevraagde pagina

}

Het volgende plaatsen we in het Global.asax.cs bestand (voorbeeld in pseudo code):

protected void Application_AuthenticateRequest(Object sender, EventArgs e)

{

cookie = vraagCookieOp

Als cookie niet leeg

{

ticket = decrypteer(geefCookieinhoud(cookie))

Als decrypteren gelukt

{

groepen = haalGroepenUitCookie(cookie)

principal = creeerNieuwePrincipal(haalNaamUitCookie(cookie), groepen)

Context.User = principal

}

}

}

Als er dus geen geldige geencrypteerde cookie wordt meegegeven, zal er geen geldige principalop de pagina context worden geplaatst door de methode Application AuthenticateRequest.Hierdoor zal de login pagina opnieuw getoond worden. Deze maakt een correct geencrypteerdecookie aan wanneer de login gegevens via Active Directory zijn goedgekeurd.

Merk op dat zowel de login van de ingelogde gebruiker, als zijn groeplidmaatschap wordendoorgestuurd via een cookie, en dus lokaal bij de client zelf worden bewaard. De gebruikerkan deze gegevens echter niet zelf wijzigen, aangezien de cookie versleuteld is, en de sleutelop de server bewaard wordt. Bovenstaande werkwijze wordt overigens door Microsoft zelfvoorgesteld[5].

Page 65: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 4. Raamplanbeheer 63

4.5.11 Word DCOM object

Wanneer de gebruiker op de menuknop klikt om een Word document te genereren wordt ervia een DCOM object een Word instantie geopend op de server (al dan niet zichtbaar). Hier-in worden alle bladwijzers overlopen, en door de gepaste inhoud vervangen. Zo worden alleparagrafen op de juiste plaats ingevoegd, wordt de medewerkers tabel opgebouwd, en wordttenslotte een inhoudstafel gegenereerd. Om te achterhalen hoe dit er in programmacode uit-ziet, kunnen we handig gebruik maken van een functie in Word: Nieuwe macro opnemen...

in het menu Extra, macro. Tijdens het opnemen doen we alle net beschreven handelingen.Wanneer we de opname stoppen gaan we via het menu Extra, macro naar Macro’s..., se-lecteren onze macro en kiezen Bewerken. We zien nu de achterliggende code in Visual Basic.Het is niet noodzakelijk de meest optimale code om de gewenste handelingen uit te voeren,en het is ook geen C# code, maar het helpt ons wel een heel stuk vooruit.

Om gebruik te kunnen maken van een COM object moeten we eerst de gapaste referentiein ons project toevoegen. Dit gebeurt als volgt: We klikken met de rechter muisknop opReferences (in onze Solution Explorer) en kiezen Add reference. In het COM tabbladselecteren we Microsoft Word 11.0 Object Library, we klikken op de knop Select entenslotte op Ok. In de bestanden waarin we gebruik wensen te maken van een Word DCOMobject, plaatsen we bovenaan using Word;.

Wanneer we onze toepassing willen uitvoeren, moeten we zien dat de juiste beveiligingsgroepde juiste uitvoerrechten heeft om een Microsoft Word-Document DCOM object op te starten.Meer informatie hierover kan u vinden in 4.6.

Het programmeren van COM objecten is redelijk onhandig. Bij de meeste procedure aanroe-pen worden er als parameters namelijk referenties verwacht. Dit wil zeggen dat we voor elkeparameter een object moeten aanmaken, en dit als referentie moeten doorgeven. Wanneer wede waarde voor een bepaalde parameter niet wensen te specifieren, geven we een referentienaar een object van het type System.Reflection.Missing.Value mee.

Hieronder volgt een voorbeeld ter illustratie. Wat we doen is de bladwijzer opzoeken met denaam inhoudsopgave, en op die plaats een inhoudstabel toevoegen. oWordApp bevat eenobject van de klasse Word.ApplicationClass, waarin reeds een document is geopend.

object missing = System.Reflection.Missing.Value;

object waar = true;

object onwaar = false;

object tableId = "inhoudstafelken";

object legeString = "";

object upperHeadingLevel = 1;

object lowerHeadingLevel = 3;

Page 66: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 4. Raamplanbeheer 64

naamvanbookmark = "inhoudsopgave";

oWordApp.Selection.GoTo(ref gotobookmark, ref missing, ref missing, ref

naamvanbookmark);

oWordApp.ActiveDocument.TablesOfContents.Add(oWordApp.Selection.Range, ref waar,

ref upperHeadingLevel, ref lowerHeadingLevel, ref onwaar, ref tableId, ref

waar, ref waar, ref legeString, ref waar, ref waar, ref waar);

oWordApp.ActiveDocument.TablesOfContents[1].TabLeader = WdTabLeader.

wdTabLeaderSpaces;

oWordApp.ActiveDocument.TablesOfContents.Format = WdTocFormat.wdTOCClassic;

Een ander probleem was dat er na het opslaan en sluiten van het Word document via een COMobject, een instantie van Word achterbleef in het geheugen. Wanneer er met andere woordenin de loop der tijd 1000 keer een Word document zou worden geproduceerd, zouden er 1000Word instanties (van meer dan 10MB/stuk) in het geheugen achterblijven wat onvermijdelijkvoor problemen zou zorgen. De volgende code was nodig om alle restanten uit het geheugente verwijderen:

// het sluiten en vrijgeven van de openstaande documenten

oWordApp.Documents.Close(ref saveChanges, ref missing, ref missing);

System.Runtime.InteropServices.Marshal.ReleaseComObject(oWordDoc);

oWordDoc = null;

// sluiten en vrijgeven van de Word applicatie

oWordApp.Application.Quit(ref missing, ref missing, ref missing);

System.Runtime.InteropServices.Marshal.ReleaseComObject(oWordApp);

oWordApp = null;

GC.Collect();

4.5.12 Internationalisatie

De applicatie werd ook voorzien voorzien op uitbreidingen in andere talen. Dit omdat hetNederlands natuurlijk geen wereldtaal is, maar vooral omdat het een goede gewoonte is omop deze manier te programmeren.

We maken eerst de nodige resource files aan. Dit doen we door met de rechtermuisknop ophet mapje resources te klikken in de Solution Explorer, en vervolgens op Add New Item.Daar kiezen we Web Project Items, Resources, Assembly Resource File. Op deze maniermaken we een MyResources.resx aan, en een MyResources.nl.resx. De eerste is voor destandaard taal (maar gaan we niet opvullen), de tweede voor het Nederlands. Het gaat hierom een xml-bestand dat een gegevenstabel bevat. Deze tabel kunnen we via Visual Studioeenvoudig aanvullen na het dubbelklikken op het bestand. We gebruiken de kolommen name

Page 67: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 4. Raamplanbeheer 65

en value om een aantal naam-waarde paren op te geven. Zo voegen we bijvoorbeeld denaam nieuweparagraaftypesm toe met de waarde ‘Kies de gepaste gegevens voor het nieuweparagraaftype’. In alle andere resource files (voor de andere talen) voegen we dezelfde naamtoe, met als waarde de vertaling ervan in de gepaste taal. Een ander voorbeeld: 4 als naam,‘Fout bij het aanmaken van het nieuwe raamplan’ als waarde. Dit is de foutboodschap voorde fout met id gelijk aan 4.

De volgende stap is het aanvullen van het Global.asax.cs bestand:

protected void Application_BeginRequest(Object sender, EventArgs e)

{

Thread.CurrentThread.CurrentCulture = new CultureInfo("nl-NL");

Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;

}

Tenslotte passen we ozne TemplatePage.cs aan:

private ResourceManager _resources;

protected override void OnInit(System.EventArgs e)

{

...

ResourceManager temp = (ResourceManager)Application["resources"];

if (temp == null)

{

Application["resources"] = new ResourceManager(

"Raamplanbeheer.resources.MyResources",

Assembly.GetExecutingAssembly());

}

_resources = (ResourceManager)Application["resources"];

}

Deze code controleert of de resources zijn geladen in de applicatie, en indien niet wordt ereen instantie van gemaakt en in de applicatie geladen.

Achteraf kunnen we via _resources.GetString("nieuweparagraaftypesm") bijvoorbeeldde waarde ophalen in de gepaste taal. [6]

4.5.13 Foutafhandeling

Overal waar we een fout verwachten, vangen we ze op via een try/catch blok. Vervolgenskunnen we een zelf gedefinieerde foutmelding oproepen via bijvoorbeeldSetErrorCode(7,fout.ToString()). De functie SetErrorCode is een zelf geschreven metho-de in de TemplatePage klasse. Deze stelt de errorCode en errorString variabelen in, en doet

Page 68: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 4. Raamplanbeheer 66

vervolgens een transfer naar de Error.aspx pagina. In Error.aspx zelf kunnen we aan dezevariabelen via

((TemplatePage)Context.Handler).ErrorCode

en

((TemplatePage)Context.Handler).ErrorString

ErrorCode en ErrorString zijn eigenschappen voor de lokale variabelen errorCode respectie-velijk errorString van PageTemplate.

4.5.14 Volgorde van opladen

Het werken met de tussenliggende pagina TemplatePage en ons template systeem bracht ookeen hoop moeilijkheden en nadelen met zich mee. Om een nieuwe pagina op te bouwenmoet men met meer zaken rekening houden dan alleen maar de pagina af te leiden vanPageTemplate i.p.v. Page. Hieronder zie je de volgorde waarin alles opgestart en aangeroepenwordt, en waarmee je moet rekening houden:

Initialisatie van de pagina

1. Eerst wordt de constructor van de afgeleide klasse opgeroepen. We kunnen hier even-tueel een paar eigen controls initialiseren. Daarmee bedoel ik bijvoorbeeld webcontrolsdie handmatig zijn aangemaakt in het code behind bestand, en niet diegene die in deaspx pagina voorkomen.

2. Vervolgens wordt de constructor van TemplatePage opgeroepen. Hierin worden lokalevariabelen geınitialiseerd, en het menu opgebouwd. De werkverdeling knop, de .doc

knop en de logout knop worden standaard op inactief gezet.

3. Dan wordt OnInit van de afgeleide klasse opgeroepen. Hier kunnen we onze eigencontrols toevoegen aan this.Controls.

4. Dit is de laatste kans (en aangewezen plaats) om nog eigen controls toe te voegen viathis.Controls, om zelf menu-items toe te voegen aan MenuItems, of om selectie-itemstoe te voegen aan SelectieItems.

5. Helemaal op het einde van de OnInit methode van de afgeleide klasse, wordt de OnInitmethode van TemplagePage opgeroepen. Hierin wordt de userid variabele opgevulddie via de eigenschap UserId kan worden opgevraagd. De ResourceManager wordt hierook geınitialiseerd. En tenslotte wordt de volledige pagina opgebouwd via ons templa-tesysteem. Dit wil zeggen dat alle controls reeds in this.Controls moeten aanwezig zijn,want ze worden er nu uitgehaald en in onze volledig zelf opgebouwde paginastructuurgestopt.

Page 69: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 4. Raamplanbeheer 67

6. Pas vanaf nu kunnen we de UserId opvragen en de taalstrings bekomen (via GetResour-ce).

7. Dan wordt de OnLoad van de basisklasse opgeroepen.

8. Nu gaat het systeem de viewstate herstellen (dus ook of er al dan niet een event op-geroepen werd!!) via de Page Init methode. Belangrijk is dus dat alle controls op ditmoment in this.Controls aanwezig zijn (wat onrechtstreeks gebeurde via ons templatesysteem in vorige stappen)! Ook belangrijk is dat ze in de zelfde volgorde en plaats zit-ten in this.Controls, als voorheen!! Stel dat we bijvoorbeeld enkel bij een postback eenmenuitem toevoegen in de OnInit, dan zal de index in this.Controls van alle volgendecontrols wijzigen en de viewstate niet correct meer kunnen worden hersteld.

Laden van de pagina

De pagina wordt geladen, met de bijbehorende event. Deze event roept Page Load op indienwe dit zo ingesteld hebben in onze Code Behind file. Het laden van de pagina gebeurt altijd,ook wanneer de pagina geladen wordt na het drukken op een knop bijvoorbeeld. We moetenwel in gedachten houden dat de viewstate op dit moment reeds hersteld is, en dat we dus geendrastische wijzigingen meer moeten doen aan de inhoud van een control (willen we gebruikmaken van het automatische viewstate herstel).

Validaties of controles

Ik heb mijn eigen validators moeten schrijven, want om de een of andere reden werkten destandaard validators van .NET niet via ons templatesysteem.

Gebeurtenissen afhandelen

De gebeurtenissen van de gepaste controls treden eventueel op, en worden afgehandeld.

Genereren pagina en afsluiten

De pagina wordt gerenderd, extra verborgen velden worden toegevoegd, de gebeurtenis Pa-ge Unload wordt opgeroepen en de informatie van de pagina wordt uit het geheugen ver-wijderd. Wanneer we eigen controls hadden gemaakt, zoals menuknoppen, dan mogen dezeaangepast worden (de status of de link bijvoorbeeld) tot op dit moment. Hier wordt namelijkde methode Render opgeroepen van de control, zodat die definitief vertaald wordt in htmlcode.

Ons Model kan ten alle tijde opgevraagd worden via de eigenschap ModelObject. Was dezenog niet geınitialiseerd, dan gebeurt dat op dat moment.

Page 70: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 4. Raamplanbeheer 68

Een algemene opmerking: wanneer we willen dat .NET zelf een aantal zaken voor ons regelt,zoals het herstellen van de inhoud van de controls + hun viewstate, dan moeten deze controlsop de juiste momenten in this.Controls aanwezig zijn!! Wanneer we ze bijvoorbeeld toevoegenaan onze SelectionItems, dan zullen ze pas aanwezig zijn in this.Controls NA het afhandelenvan de OnInit methode!

Wanneer we enkel de eerste keer een webcomponent zoals een dropdownlist opvullen (aandataset koppelen en binden), en dit NA de OnInit (na het toevoegen van de component aanthis.controls indien die er nog niet in aanwezig was), dus bijvoorbeeld in de Page Load, envolgende keren niet (ook niet koppelen aan dataset!!) dan zal OOK de inhoud worden hersteldvan de component, en vervolgens de viewstate.

4.6 Het installeren van de toepassing op een productieserver

Volgende zaken moeten aanwezig zijn op de productieserver2:

• Windows2000 of hoger

• Active Directory

• Microsoft SQL Server 2000

• .NET Framework (te downloaden)

• Internet Information Services (IIS) 5.0 of hoger

• Microsoft Word 2003

Op onze productieserver draait IIS 5.0, dus de webtoepassing draait onder de windows ge-bruiker IUSR CAPELDERIJSRV . Moest dit IIS 6.0 zijn, dan was het de groepNT AUTHORITY\NETWORK SERVICE .

4.6.1 Microsoft Word-Document DCOM object

Eerst en vooral moet deze gebruiker (of groep) het recht hebben om een Microsoft Word-Document DCOM object op te starten. Dit kunnen we instellen via de Component Servi-ces tool: DCOMCNFG.EXE. Daar kiezen we bij Console Root --> Component services -->

Computers --> My Computer --> DCOM Config met de rechter muisknop op Microsoft Word-document. Vervolgens kiezen we properties. In het Security tabblad kiezen we Launch

Permissions --> Customize --> Edit. Daar voegen we onze gebruiker/groep toe.

De user/groep moet ook kunnen schrijven in de map waar het output bestand moet geplaatstworden. Daarom geven we de gebruiker/groep NTFS schrijfrechten op de directoryI:\Inetpub\wwwroot\Raamplanbeheer\maakDocument\documents.

2http://www.microsoft.com/netherlands/msdn/aspnet/menu.asp

Page 71: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 4. Raamplanbeheer 69

4.6.2 Microsoft SQL Server 2000

We veronderstellen dat MS SQL Server 2000 reeds is geınstalleerd.

Databank aanmaken

1. We klikken met rechter muisknop op icoontje rechtsonder in de taakbalk en kiezen voorMS SQL Server - Start. Of we kunnen via Services in het Control Panel de serviceMSSQLSERVER starten.

2. We starten de Enterprise manager via Startmenu --> All programs --> Microsoft

SQL Server --> Enterprise manager.

3. Bij Console Root --> Microsoft SQL Servers --> SQL Server Group --> (local)

(Windows NT) --> Databases kunnen we via onze rechter muisknop voor New Database... kiezen (of via menu Action --> New Database ...). We kunnen hier een naamopgeven (raamplanbeheer), en eventueel ook de namen van de files waarin de databasezal worden opgeslagen.

4. Nu zien we onder Databases de nieuwe database raamplanbeheer die we hebben aan-gemaakt. Wanneer we die openen kiezen we voor Tables. Daar kunnen we op dezelfdemanier (bijvoorbeeld rechter muisknop) kiezen voor New Table.... We maken via dezegui al onze kolommen aan met bijpassende types.

Handmatig inhoud toevoegen

Na het aanmaken van een tabel kunnen we met onze rechter muisknop op deze tabel klikkenen vervolgens open table --> return all rows kiezen. Onderaan het overzicht van de rijenkunnen we nieuwe rijen toevoegen. We voegen zo al onze statische gegevens toe.

Automatisch script genereren

Nadat onze tabellen en onze statische gegevens aangemaakt zijn, klikken we met de rechtermuisknop op onze database, en vervolgens op All tasks - Generate SQL Script....

Script laden

Wanneer we achteraf ons script willen laden, of uitbreiden, kunnen we dit doen via de tool‘SQL Query Analyzer’. We kiezen trouwens steeds voor ‘Windows Authentication’, zodat alonze Windows gebruikers automatisch ook database gebruikers zijn.

Uit de dropdownlist bovenaan selecteren we onze database raamplanbeheer. Met de opdracht‘Parse Query’ kunnen we ons script controleren. Met ‘Execute Query’ voeren we het effectiefuit.

Page 72: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 4. Raamplanbeheer 70

Toegang vanuit ASP.NET

Aangezien onze SQL Server ingesteld staat op Windows only authenticatie (SQL server en IISwebserver op zelfde machine) moeten we ervoor zorgen dat de gebruiker waaronder IIS ASPpagina’s draait toegang heeft tot onze database. Dit is dus IUSR CAPELDERIJSRV voorIIS 5.0. Om dit account toegang te geven klikken we in SQL Server Enterprise Manager

met de rechtermuisknop op Console Root --> Microsoft SQL Servers --> SQL Server

Group --> (local) (Windows NT) --> Security --> logins, en vervolgens new login. Alsnaam geven we de IUSR_CAPELDERIJSRV op. Bij Defaults stellen we eventueel onze databaseraamplanbeheer in. Vervolgens vinken we op het Tabblad Database Access onze databaseraamplanbeheer aan, en de gepaste rollen: public en db_owner. Hetzelfde doen we nu voorde administratieve database.

4.6.3 Microsoft IIS 5.0

Nu rest ons nog enkel het installeren van de webapplicatie zelf. Daartoe kiezen we in Vi-sual Studio .NET nog een laatste maal voor Rebuild all. Vervolgens kopieren we devolledige directory Raamplanbeheer (met ons gehele project erin) vanop onze ontwikke-lingsserver naar onze productieserver in de map C:\Inetpub\wwwroot. Daarna openen weInternet-servicebeheer via Start - Programma’s - Systeembeheer. Daar klikken we met derechter muisknop op Internet Information Services --> *capelderijsrv --> standaard-

website --> Raamplanbeheer en kiezen eigenschappen. In het tabblad Map kiezen we bijInstellingen voor toepassing op de knop Maken. Dit maakt van onze map Raamplan-beheer een toepassing. De optie ‘Machtigingen uitvoeren’ mag op ‘Alleen scripts’ blijvenstaan.

Page 73: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 5

Internet verbinding

5.1 Keuze van de lijn

Als Internet verbinding werd gekozen voor een Skynet ADSL I-Line Fixed IP voor scholen.Dit is een verbinding gelijkaardig aan de Skynet ADSL Office Line Fixed IP. Eigenschappen-/voordelen van deze lijn zijn:

• Permanente en volledige toegang: alle poorten zijn beschikbaar (in tegenstelling totconcurrentie!)

• Download: maximum 1Mbps

• Upload: maximum 256Kbps

• Transfervolume: onbeperkt (in tegenstelling tot concurrentie!)

• Vast IP adres: 80.201.243.39

• 25 e-mail accounts

• Hosting: 10MB Unix-webruimte (PHP en MySQL)

Dit alles voor een 37d per maand (voor scholen, bibliotheken en ziekenhuizen).

5.2 Router

Volgens Skynet was de enige mogelijkheid om deze lijn te benutten gebruik maken van eenspeciale CISCO Router 826. Voor deze router zou een maandelijkse huur moeten wordenbetaald van 22,49d. Ik was er echter van overtuigd dat de router totaal overbodig was, endat een gewone Alcatel (Thomson) Speedtouch 510 Ethernet ADSL modem zou volstaan.Bij Skynet konden ze mij hieromtrent echter geen enkele informatie verschaffen. Op Internet

71

Page 74: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 5. Internet verbinding 72

waren er nog mensen met de vraag of het echt niet zonder CISCO router kon, maar nergensstond een bruikbaar antwoord.

Uiteindelijk heb ik een werkende configuratie gevonden, zonder de CISCO router. In volgendehoofdstukken volgt de werkwijze voor het configureren van de Alcatel Speedtouch 510 ADSLmodem voor een Skynet ADSL Office Line of I-line Fixed IP.

5.3 Configuratie ADSL-modem

5.3.1 Gegevens

De volgende zaken waren gegeven:

• IP WAN (ons publiek IP-adres): 80.201.243.39

• MASK WAN: 255.255.255.128

• GATEWAY: 80.201.243.1

Deze gegevens werden gekozen i.v.m. de verbinding tussen modem en netwerk (gateway):

• IP LAN: 10.0.0.138 (standaard adres van modem)

• MASK LAN: 255.0.0.0

• IP Linux Gateway: 10.0.0.254

5.3.2 Connectie met modem

Een basisconfiguratie kan gedaan worden via de webinterface van de modem. Maar om degeavanceerdere instellingen te doen die nodig zijn in ons geval, moeten we werken via de CLI(Command Line Interface). Dit doen we simpelweg via een telnet connectie:

telnet 10.0.0.138

De pc waarop we de telnet client draaien moet natuurlijk in dezelfde IP-range zitten. Vervol-gens kunnen we op twee manieren gebruik maken van de menuopties. Ofwel kiezen we eenopdracht door stap voor stap in de boomstructuur af te dalen, het commando in te typenzonder parameters, en vervolgens via vraag en antwoord de nodige parameters op te geven.Bijvoorbeeld:

=>ip

[ip]=>rtadd

dst = 192.168.50.0

[dstmsk] = 255.255.255.0

[label] =

Page 75: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 5. Internet verbinding 73

[gateway] = 10.0.0.254

[intf] =

[metric] =

Het overeenkomstige volledige commando wordt hierna getoond (en uitgevoerd). We kunnendit trouwens steeds terugroepen uit de history via de cursor toetsen. Het volledige commandoziet er zo uit:

:ip rtadd dst=192.168.50.0/24 gateway=10.0.0.254

Deze testroute terug verwijderen doen we trouwens via

:ip rtdelete dst=192.168.50.0/24 gateway=10.0.0.254

Heel eenvoudig dus door het terugroepen van ons oorspronkelijk commando uit de history,en door vervanging van rtadd door rtdelete. In het vervolg van dit hoofdstuk werken we metvolledige commando’s.

5.3.3 Opzetten ADSL verbinding

We kennen eerst het benodige virtuele ATM kanaal toe.

:phonebook add name="IPOAtoCISCO2" addr=8*35 type=any

De naam ‘IPAtoCISCO2’ komt uit een handleiding voor configuratie van de SpeedTouch meteen Cisco IPsec Gateway maar mag in principe vrij gekozen worden. 8*35 slaat op adresVP/VC 8/35, het benodigde virtuele ATM kanaal. Bij een Office Line bij Belgacom/Sky-net is dit gewoonlijk 8/35 voor PSTN, en 0/35 voor ISDN. In geval van twijfel kan dit ookdoor het commando :phonebook autolist worden opgevraagd. Met :phonebook detach

en :phonebook delete kunnen eventuele reeds bestaande VP/VC combinaties worden los-gekoppeld respectievelijk verwijderd. De bestaande kan je opvragen met :phonebook list.

Vervolgens maken we de WAN interface aan.

:ipoa ifadd intf="IPOAtoCISCO2" dest=IPOAtoCISCO2

:ipoa ifattach intf=IPOAtoCISCO2

‘Ipoa’ staat voor IP Over ATM. De eerste ‘IPOAtoCISCO2’ is de naam van de nieuwe inter-face, de tweede ‘IPOAtoCISCO2’ is de naam van onze phonebook entry. Standaard wordende IP-paketten geencapsuleerd in LLC/SNAP frames op AAL5 frames (AAL5SNAP).

Nu gaan we de IP configuratie van de interface afhandelen.

:ip apadd addr=80.201.243.39 intf=IPOAtoCISCO2 pointopoint=80.201.243.1

Page 76: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 5. Internet verbinding 74

Let op de enkele ‘t’ in ‘pointopoint’. Dit is om neerwaartse compatibiliteit te behouden meteen historische typefout. Het eerste adres is ons publieke Internet adres, het tweede hetopgegeven adres voor de externe gateway bij Skynet.

Daarna maken we de standaard route aan, naar het Internet.

:ip rtadd dst=0.0.0.0/0 gateway 80.201.243.1 metric=1

Een overzicht van de interfaces en hun IP-adressen ziet er als volgt uit:

:ip aplist

1 eth0 Type:Ethernet

HWaddr 00:90:d0:bb:be:ea BRHWaddr ff:ff:ff:ff:ff:ff

ip-addr:10.0.0.138 mask:255.0.0.0

UP RUNNING MTU:1500 Group:2

IPRX bytes:254279154 unicastpkts:2214696 brcastpkts:90851

IPTX bytes:852465389 unicastpkts:2472229 brcastpkts:3 droppkts:0

2 IPOAtoCISCO2 Type:SERIAL

ip-addr:80.201.243.39 point-to-point:80.201.243.1

UP RUNNING pat MTU:1500 Group:0

IPRX bytes:851986051 unicastpkts:2496800 brcastpkts:0

IPTX bytes:232410847 unicastpkts:2238717 brcastpkts:0 droppkts:0

0 loop Type:0

ip-addr:127.0.0.1 mask:255.0.0.0

UP RUNNING MTU:1500 Group:1

IPRX bytes:0 unicastpkts:0 brcastpkts:0

IPTX bytes:0 unicastpkts:0 brcastpkts:0 droppkts:0

Tenslotte moeten we ervoor zorgen dat alle interne adressen vertaald worden naar ons publiekIP-adres (we hebben er zo maar een). Daarom configureren we NAT1 voor het IP-adres80.201.243.39.

:nat enable 80.201.243.39 type=pat

saveall

Het laatste commando bewaart alle instellingen definitief op de modem.1Network Address Translation

Page 77: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 5. Internet verbinding 75

5.3.4 Aanmaken van de gepaste routes

Naast de default route (naar het Internet) moeten we nog een paar extra routes voor eigennetwerken opgeven.

:ip rtadd dst=192.168.123.0/24 gateway=10.0.0.254

:ip rtadd dst=192.168.2.0/24 gateway=10.0.0.254

De totale route tabel ziet er nu als volgt uit:

:ip rtlist

Destination Label Gateway Intf Mtrc Status

10.0.0.138/32 10.0.0.138 eth0 0 [UP]

80.201.243.1/32 80.201.243.39 IPOAtoCISCO2 0 [UP]

80.201.243.39/32 80.201.243.39 IPOAtoCISCO2 0 [UP]

127.0.0.1/32 127.0.0.1 loop 0 [UP]

192.168.2.0/24 10.0.0.254 eth0 0 [UP]

192.168.123.0/24 10.0.0.254 eth0 0 [UP]

10.0.0.0/8 10.0.0.138 eth0 0 [UP]

224.0.0.0/4 10.0.0.138* eth0 0 [UP]

0.0.0.0/0 80.201.243.1 IPOAtoCISCO2 1 [UP]

5.3.5 Forwarding

Omdat bepaalde diensten op servers draaien op het intern netwerk, maar er maar een enkelpubliek IP adres beschikbaar is, moeten we aanvragen op bepaalde poorten doorsturen naarde gepaste interne server. Dit heet forwarding, en wordt als volgt ingesteld:

:nat create protocol=tcp inside_addr=192.168.123.1:www-http outside_addr

=80.201.243.39:www-http

:nat create protocol=tcp inside_addr=192.168.123.1:smtp outside_addr

=80.201.243.39:smtp

5.3.6 Pingen

Wanneer we bepaalde configuraties willen testen, is het altijd handig om vanop de modem tepingen naar een Internet adres, of een lokaal adres. Dit kan via het volgende commando:

:ip ping addr=192.168.123.1 count=10 size=1000 interval=5100

Page 78: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 5. Internet verbinding 76

5.3.7 Linux Gateway

De Linux Gateway moet nu als default gateway 10.0.0.138 instellen (onze modem). Verdermoet de gepaste routing gebeuren zodat de netwerken 10/8, 192.168.123/24 en 192.168.2/24correct worden verbonden met elkaar. Meer over de Linux Gateway configuratie vindt u inhoofdstuk 3.

5.4 Configuratie zonder Linux Gateway

Tenslotte beschrijf ik welke handelingen ondernomen moeten worden om de modem zodanigte configureren dat hij zonder de Linux gateway Internet kan aanbieden aan het betrouwbarenetwerk. We verbinden de modem dan rechtstreeks met de switch via een untagged port opVLAN 123. Voordat we dit doen herconfigureren we de modem eerst:

:ip rtdelete dst=192.168.123.0/24 gateway=10.0.0.254

:ip apadd addr=192.168.123.254/24

saveall

Nu maken we opnieuw een telnet verbinding naar het nieuwe adres (nadat we het ip adresvan onze configuratie-pc gewijzigd hebben). In de nieuwe telnet-sessie voeren we volgendecommando’s uit:

:ip apdelete 10.0.0.138

saveall

Page 79: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 6

Mailserver

6.1 Inleiding

Zoals reeds eerder vermeld in hoofdstuk 1, werd er gekozen voor MS Exchange Server 2003 .De voornaamste redenen zijn:

• Windows software, dus ondersteuning door NC Computing.

• Perfecte samenwerking tussen Outlook 2003 clients en de server software.

• Mails, contacts en agenda’s worden centraal op server bewaard. Gebruikers kunnen aanhun gegevens, onafhankelijk van op welke werkpost ze zich aanmelden en of er nu gebruikwordt gemaakt van roaming profiles of niet. Ook het backuppen wordt eenvoudiger opdeze manier.

• De mogelijkheid om agenda’s te delen.

Een van de nadelen is natuurlijk het prijskaartje: ongeveer 200d voor de serverlicentie, en2.5d per client licentie (gereduceerde prijzen voor de Vlaamse Welzijnszorg).

6.2 Installatie

Een paar kleine opmerkingen vooraf. We veronderstellen dat Active Directory reeds isgeınstalleerd en geconfigureerd voor het domein ‘capelderij.local’. Dat was ook het gevalop de stageplaats. Voor wat nu volgt is het ook handig om weten dat de Windows 2000Server software Nederlandstalig is, maar de Exchange server Engelstalig (UK versie).

6.2.1 Pre-installatie

Exchange 2003 integreert zeer nauw met enkele onderdelen van Windows. Daarom moetenwe zien dat op voorhand volgende zaken geınstalleerd zijn:

77

Page 80: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 6. Mailserver 78

• Microsoft .NET Framework,

• Network News Transfer Protocol (NNTP) service,

• SMTP service,

• World Wide Web (WWW) service.

Voor Windows 2003 moeten we deze via ‘Add/Remove Windows Components’ stuk voor stukinstalleren. Voor Windows 2000 moeten we enkel de NNTP service manueel installeren. Het.NET Framework of ASP.NET zitten standaard niet in Windows 2000, en daarom zal de Ex-change 2003 installatie dit voor zijn rekening moeten nemen, mocht het nog niet geınstalleerdzijn. De SMTP en WWW services werden automatisch geınstalleerd bij de installatie van hetbesturingssysteem. Om de NNTP service te installeren voeren we volgende handelingen uit:

• Vanuit het configuratiescherm openen we Software.

• We kiezen vervolgens Windowsonderdelen toevoegen of verwijderen.

• We selecteren Internet-services (IIS), en dan Details....

• We schakelen de optie NNTP-service aan. De opties SMTP-service en World Wide

Web-server zouden normaal al moeten geselecteerd zijn, indien niet kunnen we dit nudoen.

• We klikken Ok en Volgende om de installatie te voltooien.

6.2.2 Hoofdinstallatie

In het openingsscherm Welcome to Exchange Server 2003 Setup (na het invoegen van deinstallatie cd-rom) kiezen we rechts voor Exchange Deployment Tools. We klikken bovenaanop Deploy the first Exchange 2003 server en in het daarop volgende scherm onderaanop New Exchange 2003 Installation. We kunnen nu stap voor stap afwerken:

• SP3 van Windows 2000 Server moet geınstalleerd zijn (dit was in onze configuratie reedshet geval).

• NNTP, SMTP en WWW services moeten geınstalleerd zijn.

• Om zeker te zijn dat alles in orde is op de server, installeren we eerst de Windows2000 SP3 Windows Support Tools1. Belangrijk is dat we deze versie downloaden eninstalleren, en niet diegene die op de installatie cd-rom van Windows 2000 Server tevinden is, aangezien die nog niet compatibel met SP3 was.

1http://www.microsoft.com/windows2000/downloads/servicepacks/sp3/supporttools.asp

Page 81: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 6. Mailserver 79

• We kunnen nu de diagnose-tools DCDiag (voor de domein controller configuratie) enNetDiag (voor de netwerk instellingen) gebruiken.

• De volgende stap is het uitvoeren van ForestPrep (via de link, of via setup /forestprep).Je moet hiervoor wel de juiste rechten hebben. Via deze stap wordt het Active Direc-tory Schema uitgebreid tot bijna het dubbele aantal van het oorspronkelijke aantalattributen.

• Daarna starten we DomainPrep op dezelfde wijze (via de link of via setup /domainprep).Hierdoor wordt het Windows 2000 domein voorbereid. Zo worden er extra groepen aan-gemaakt en rechten toegekend.

• We zijn nu eindelijk klaar voor de uiteindelijke interactieve Exchange Server 2003 in-stallatie.

Hierbij klikken we een paar keer Next, we kiezen Create New Exchange Organisation, nogeen paar keer Next. We letten hierbij niet op de waarschuwing i.v.m. reeds bestaandegroepen in een Mixed Mode domein, aangezien dit voor ons niet van toepassing is, en klikkenuiteindelijk op Finish. We klikken tenslotte Ok om te herstarten.

6.3 Configuratie

6.3.1 MMC Exchangetools

Voor de eenvoud van de verdere configuratie maken we een eigen MMC2. Dit doen we door mmcop te starten via Start, uitvoeren. In het menu Console kiezen we voor Module toevoegen /

verwijderen. In het tabblad Zelfstandige module kiezen we onderaan Toevoegen.... Wevoegen nu volgende zelfstandige modules toe:

• DNS

• Exchange System (First Organization (Exchange))

• Active Directory: gebruikers en computers voor capelderijsrv.capelderij.local

(onze huidige server)

• Services (lokaal)

We kiezen in het menu Console voor Opslaan als... en slaan onze wijzigingen op inexchangetools.msc.

2Microsoft Management Console

Page 82: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 6. Mailserver 80

Figuur 6.1: Onze Exchangetools MMC

6.3.2 Verplaatsen van de Mailbox Store naar andere partitie

Op de server zijn twee partities C: en D: aanwezig. Standaard wordt de mailbox store op C:

geplaatst. Dit is eigenlijk onze systeempartitie, en alle data moet in principe op D: terechtkomen. Na het aanmaken van een gepaste map (bijvoorbeeld D:\exchange_store1 openenwe ofwel onze MMC en kiezen we de Exchange module (First Organization (Exchange)),

Page 83: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 6. Mailserver 81

ofwel openen we via het startmenu de Exchange System Manager. Daar kiezen we in deboomstructuur voor Administrative Groups, First Administrative Group, Servers, CAPEL-DERIJSRV, First Storage Group. Hierop klikken we met onze rechtermuisknop, kiezen vooreigenschappen, en passen de Transaction log location en de System path location aannaar onze nieuwe map. Vervolgens doen we hetzelfde voor Mailbox Store (CAPELDER-IJSRV) onder First Storage Group. In het Properties venster ervan veranderen we in hettabblad Database het Exchange database en het Exchange streaming database pad naarD:\exchange_store1\priv1.edb respectievelijk D:\exchange_store1\priv1.stm.

6.3.3 Limiet mailboxen instellen

Om het hardeschijf verbruik op de server wat in te perken, stellen we per mailbox een limietin van 1GB. Dit doen we via Exchange tools, First Organization (Exchange), AdministrativeGroups, First Administrative Group, Servers, CAPELDERIJSRV, First Storage Group. Daarklikken we met onze rechtermuisknop op Mailbox Store (CAPELDERIJSRV) en kiezen eigen-schappen. Op het tabblad Limits vullen we voor Issue warning at (KB) 700.000 in (bijeen verbruik van ongeveer 700MB wordt er een waarschuwing naar de gebruiker verstuurd),voor Prohibit send at (KB) 800.000 (mailbox voor meer dan 800MB gevuld zal een ver-bod op verzenden tot gevolg hebben), en tenslotte Prohibit send and receive at (KB)

op 1.000.000: wanneer er 1GB in de mailbox zit zal de gebruiker geen e-mails meer kunnenversturen of ontvangen. Deze instellingen zijn van toepassing op alle mailboxen, tenzij dezeinstelling per mailbox zelf wordt gewijzigd.

6.3.4 Wijzigen van het e-mail domein

Standaard gebruikt Exchange de domeinnaam van Active Directory, capelderij.local inons geval, als e-mail domein. We wensen echter het domein capelderij.be te gebrui-ken. Om dit te wijzigen klikken we in onze MMC op First Organization (Exchange), Re-cipients, Recipient Policies. In het rechter venster klikken we met onze rechtermuisknopop Default Policy en kiezen vervolgens eigenschappen. In het tabblad E-Mail Addresses

(Policy) voegen we het adres @capelderij.be toe van type SMTP. Het adres @capelde-

rij.local kunnen we dan eventueel verwijderen. Vanaf nu zal de Exchange server ook bin-nenkomende berichten voor het domein capelderij.be accepteren en bezorgen in de mailboxvan de gepaste gebruiker.

6.3.5 Internet mail ontvangen

Eerst en vooral moeten we ervoor zorgen dat onze server als mailserver gebruikt wordt voorhet domein capelderij.be. Voor lokale clients die via het protocol MAPI rechtstreeks metonze mailserver verbinden, moet er niets speciaals gedaan worden. Voor externe afzendersop het Internet liggen de zaken natuurlijk wel anders. Het domein capelderij.be werd

Page 84: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 6. Mailserver 82

aangekocht via het hostingbedrijf Hostbasket 3. Daar kunnen we via hun webinterface in-stellen dat we HUN nameservers wensen te gebruiken. We stellen bijvoorbeeld het A recordmail.capelderij.be. A 80.201.243.39 in. Mail.capelderij.be verwijst nu naar ons pu-bliek IP adres. Als MX record voor ons domein geven we nu mail.capelderij.be. op,met prioriteit 9. Als er mailforwarding zou worden ingesteld bij hostbasket, dan staat dieforwarding-server op prioriteit 10 en wordt deze bijgevolg dus niet gebruikt: het laagste cijferkrijgt de hoogste prioriteit.

Wanneer nu een willekeurige persoon een e-mail verstuurt naar [email protected], dan zal de gebruikte mailserver via het DNS systeem ontdekken dat hijnaar ons publieke IP-adres moet worden gestuurd. De e-mails komen dan aan op onze ADSLmodem op poort 25 (smtp). Hierop moeten we instellen dat alle tcp berichten met bestemming80.201.243.39:25 doorgestuurd worden naar ons intern adres van de Exchangeserver, namelijk192.168.123.1:25. Op de Linux gateway moeten dan de gepaste routing en firewall regelsworden ingesteld.

6.3.6 Basis beveiliging

Een heel eenvoudig beveiligingslek zou eruit kunnen bestaan, dat personen op Internet onzemailserver als uitgaande mailserver zouden kunnen instellen, en dat die dan mails zou accep-teren en proberen afleveren voor om het even welk domein. Zo zou onze mailserver kunnengebruikt worden om bijvoorbeeld SPAM te versturen. Een gevolg hiervan zou dan kunnenzijn dat andere Internet providers onze mailserver gaan blokkeren, waardoor we helemaal geenmails meer kunnen ontvangen. Het is dus belangrijk dat we controleren dat onze mailserverenkel mails voor het domein capelderij.be accepteert van externe clients, maar wel allesvan interne clients, die onze mailserver wel als uitgaande SMTP mailserver mogen instellen.

Waarschijnlijk staan de meeste van deze instellingen standaard wel goed, maar omdat het zobelangrijk is, overloop ik ze nog eens. We openen in onze MMC First Organization (Exchan-ge), Administrative Groups, First Administrative Group, Servers, CAPELDERIJSRV, Pro-tocols, SMTP. Daar klikken we met de rechtermuisknop op Default SMTP Virtual Server

en vervolgens op eigenschappen. We verplaatsen ons naar het tabblad Access. Daar zijnvolgende knoppen belangrijk:

• Authentication...: Anonymous access mag hier aangevinkt blijven, evenals Resolveanonymous e-mail. We laten immers e-mail berichten, bestemd voor eigen mailboxen,toe die afkomstig zijn van willekeurige mailservers op het Internet, en deze authenticatiegebeurt altijd anoniem. Integrated Windows Authentication laten we ook toe, voorde Outlook clients die lokaal via het MAPI protocol connecteren. Clients die op deze

3http://www.hostbasket.com

Page 85: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 6. Mailserver 83

manier geauthenticeerd zijn hebben meer rechten: ze mogelijk namelijk ook naar an-dere domeinen mail versturen via deze mailserver. Maar daarover meer in de volgendepuntjes.

• Connection: Dit laten we staan op All except the list below. Iedereen die op eenvan bovenstaande manieren geauthenticeerd is (dus ook anoniem) mag connecteren.

• Relay restrictions, de belangrijkste pagina: Hier wordt ingesteld voor welke clientsde mailserver e-mails mag bezorgen die niet voor lokale mailaccounts zijn bestemd (re-laying). We moeten zien dat het vakje Only the list below is aangevinkt. Vervolgenskunnen we (via Add...) in de lijst eventueel het IP Address 192.168.123.254 toe-voegen, zodat onze gateway (die deze mailserver als relay mailserver heeft ingesteld)ook eventueel externe mail kan versturen. Onderaan vinken we de optie Allow all

computers which successfully authenticate to relay, regardless of the list

above. aan. Dit geeft alle clients die geauthenticeerd zijn via de Integrated Windows

Authentication het recht om externe e-mail via deze mailserver te versturen.

In het volgende tabblad Messages vullen we eventueel de textbox Send copy of Non-Delivery

Report to: in met [email protected]. Dit adres kennen we later toe aan eenbeheerder naar keuze, bijvoorbeeld aan gebruiker Davy. Zo kunnen problemen vroegtijdigopgemerkt worden.

We zijn nu gekomen aan het laatste tabblad Delivery met volgende belangrijke knoppen:

• Outbound Security...: Hier laten we de optie Anonymous access opstaan. Dit wilzeggen dat onze mailserver voor het afleveren van e-mail gebruik maakt van anoniemeauthenticatie bij andere mailservers. Dit is de standaard op het Internet.

• Advanced...: De Fully - qualified domain name: box vullen we op metmail.capelderij.be. Deze DNS naam moet bestaan en naar ons publiek IP adresleiden. Andere mailservers kunnen dit gebruiken ter controle. Smart host kunnenwe eventueel instellen op relay.skynet.be, de mailserver van onze Internet provider.Onze mailserver zal externe mail dan niet zelf proberen te bezorgen aan de gepaste doel-mailserver, maar in plaats hiervan alles doorgeven aan de mailserver van Skynet. Ditbiedt onder andere het voordeel dat grote mails die naar verschillende bestemmelingentegelijk worden verstuurd, maar een keer door onze ADSL verbinding naar buiten gaan.

Tenslotte een opmerking die los staat van dit alles. Het is een goede gewoonte om servi-ces die niet gebruikt worden uit te schakelen. Stel dat er toevallig beveiligingsgaten in dezeservices zitten, dan kunnen deze niet misbruikt worden. Daarom openen we de servicessnapin in onze MMC. De volgende services moeten we wel automatisch laten opstarten: de

Page 86: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 6. Mailserver 84

Information Store, Management, MTA Stacks, Routing Engine en System Attendant, al-len met voorvoegsel Microsoft Exchange. De services Microsoft Exchange POP3 of MicrosoftExchange IMAP4 kunnen naar keuze automatisch opgestart worden of niet, afhankelijk vanhet feit of we willen dat er ook respectievelijk via POP3 of via IMAP mail kan opgehaaldworden. Op de stageplaats was daar geen nood aan, aangezien de clients op andere manierenconnecteren (zie 6.3.8). Door via de rechtermuisknop op een service te klikken, dan eigen-schappen te kiezen, en vervolgens bij Algemeen het Opstarttype te wijzigen kunnen we deservice al dan niet automatisch laten opstarten.

6.3.7 Mailboxen aanmaken

Nu is het tijd om mailboxen en aliassen aan te maken. Dit is zeer eenvoudig en kan op 2manieren: ofwel tijdens het aanmaken van een nieuwe gebruiker van Active Directory, ofwelbij een reeds bestaande gebruiker.

Eerst en vooral openen we in onze MMC de container:

Active Directory: gebruikers en computers [capelderijsrv.capelderij.local]

en vervolgens capelderij.local, Users (of bijvoorbeeld een zelfaangemaakte OU Capelderijwaarin de gebruikers zitten).

Om een reeds bestaande gebruiker een mailbox te geven klikken we erop met de rechter-muisknop, en kiezen vervolgens Exchange tasks. In de Wizard die daarop volgt kiezenwe Create Mailbox. Vervolgens vullen we een gepaste alias in (hetgeen voor de [email protected] wordt geplaatst). De server en mailbox store staan standaard goed in-gesteld: we hebben van elke item maar een exemplaar. Na het klikken op voltooien is demailbox aangemaakt en kan de persoon e-mailen.

Om bij het aanmaken van een nieuwe gebruiker onmiddellijk ook een mailbox te creeren,laten we in de wizard Nieuw object: Gebruiker simpelweg de optie Create an Exchange

mailbox ingeschakeld. We kunnen in datzelfde venster dezelfde opties opgeven als in de vorigeparagraaf beschreven.

6.3.8 Mailbox instellingen aanpassen

Er zijn 2 locaties waar we instellingen kunnen wijzigen. De eerste locatie bereiken we door metde rechtermuisknop op een gebruiker te klikken, en vervolgens op Exchange tasks.... In dedaarop volgende wizard Exchange Task Wizard kunnen we de mailbox verplaatsen naar eenandere store, de mailbox verwijderen, kiezen welke services en protocollen voor deze mailboxbeschikbaar moeten zijn,...

Page 87: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 6. Mailserver 85

De andere locatie is de belangrijkste. Hiervoor klikken we opnieuw met de rechter muisknopop de betreffende gebruiker, en kiezen eigenschappen. We zien dat in het eigenschappenvenster van een gebruiker een hele hoop extra tabbladen zijn toegevoegd. Hier kunnen webijvoorbeeld extra e-mail adressen toevoegen voor deze mailbox, door in het tabblad E-mail

Addresses op New te klikken, en vervolgens SMTP Address te kiezen. Na opgeven van hetadres zal Exchange server vanaf dan ook de e-mails voor dit adres in deze mailbox plaatsen.

6.3.9 De clients

Nu de server correct ingesteld is, kunnen we een mailclient kiezen en met onze persoonlijkemailbox connecteren. Om enkel en alleen e-mails te versturen en te ontvangen hebben we eenruime keuze aan connectiemogelijkheden. Zo is er bijvoorbeeld de mogelijkheid om via POP3te connecteren, via IMAP4, via het MAPI protocol, of via de Outlook Web Access interfacete communiceren. Wel moeten hiervoor de corresponderende services gestart zijn. Wensenwe ook gebruik te maken van alle andere functionaliteit die Outlook ons biedt, zoals contacts,agenda,... centraal op server, dan moeten we kiezen tussen hetzij MAPI , hetzij Outlook Web

Access. Om echt het onderste uit de kan te halen, zoals het delen van agenda’s, wordt onzekeuze beperkt tot de Outlook client, bij voorkeur Outlook 2003, en connecteren we via hetMAPI protocol.

Outlook Web Access is een web based client, die de meeste outlook functionaliteit via eenwebinterface aanbiedt. Een groot voordeel is dat op deze manier bijna alle functionaliteitdie outlook ons biedt, ook kan benut worden op werkstations waar de Outlook 2003 clientzelf niet kan geınstalleerd worden. Ook kunnen medewerkers van gelijk waar op het Internetconnecteren. Het is dan wel aanbevolen om dit enkel toe te laten over een SSL verbinding.Connecteren met Outlook Web Access kan via de URL http://capelderijsrv/exchange

voor lokale connecties, en via http://mail.capelderij.be/exchange voor externe connec-ties. Wanneer er reeds is aangemeld op het domein, dient er geen login en wachtwoord teworden opgegeven. In alle andere gevallen wel.

Een Outlook 2003 client configureren voor samenwerking met de Exchange server is zeereenvoudig. Een voorwaarde is wel dat de client zich op hetzelfde lokale netwerk bevindt alsde server. Het is echter ook mogelijk om dit via een internet mogelijk te maken, maar dit valtbuiten het bestek van dit eindwerk. Na installatie van de Outlook 2003 client wordt de wizardE-mailaccounts gestart. Deze kan achteraf ook gestart worden via Configuratiescherm,

E-mail, E-mailaccounts.... Hier kiezen we voor Een nieuwe e-mailaccount toevoegen,en in het volgende scherm voor Microsoft Exchange - server. In het veld Microsoft

Exchange - server geven we capelderijsrv op, en in het vakje Gebruikersnaam de gepastegebruiker (normaal diegene waar we momenteel mee aangemeld zijn).

Om in Outlook eventuele reeds bestaande persoonlijke mappen te verwijderen kiezen we in

Page 88: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 6. Mailserver 86

het menu Bestand op Gegevensbestandsbeheer...: in het volgende scherm kunnen we deaanwezige archiefmappen indien gewenst verwijderen.

Vanaf nu worden onze contacts, agenda’s, postvakken,... centraal op de server bewaard (engebackupt), en kunnen we er van overal aan. We kunnen ook zonder problemen onze agendadelen met andere collega’s, en gedeelde agenda’s van anderen bekijken of aanvullen.

Page 89: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 7

Printserver

In het printlokaal staat een printer zonder netwerk interface. Op deze printer moet viahet netwerk kunnen afgedrukt worden. In dit lokaal is echter geen pc aanwezig. De USBstandaard laat een maximum kabellengte van 30m toe, indien er bovendien om de 5m eenUSB-hub wordt geplaatst. Aangezien er in het lokaal reeds een netwerkkabel aankomt was hetveel eenvoudiger om een aparte print server te plaatsen en die enerzijds via de netwerkkabelop het netwerk aan te sluiten, en anderzijds via een USB kabel op de printer. Als printserverwerd de D-Link DP-301U aangekocht.

Figuur 7.1: DP-301U

7.1 Configuratie van de printserver

In eerste instantie staat de printer af en is het apparaat nog niet van stroom voorzien. Weverbinden het apparaat nu met ons netwerk. Vervolgens verbinden we het apparaat via eenUSB kabel met de printer. We schakelen de printer aan. We voorzien nu het apparaat vanstroom.

Standaard heeft het apparaat het IP-adres 192.168.0.10. We zorgen er dus bijgevolg voor dat

87

Page 90: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Hoofdstuk 7. Printserver 88

een pc die via het netwerk met het apparaat is verbonden in dezelfde IP-bereik ligt, doorhem bijvoorbeeld het adres 192.168.0.1 te geven. Vervolgens kunnen we het apparaat ophet adres http://192.168.0.10 via een webbrowser configureren.

Het eerste wat we doen is het apparaat het adres 192.168.123.2 geven. Nadat het toestel isherstart moeten we natuurlijk de pc waarop we de configuratie doen ook terug in het juisteIP-bereik brengen. Vervolgens noteren we de USB poortnaam die het apparaat toegekendheeft, in dit geval PS-54CFD8-U1.

We wijzigen ook het wachtwoord van het toestel, zodat niet iedereen de instellingen kanwijzigen. Let op: het wachtwoord mag niet langer zijn dan 8 karakters. Indien langer zalhet wachtwoord niet ingesteld worden, zonder foutmelding1! Om dezelfde reden zetten we detoegangsrechten voor de SNMP Community public op Read Only.

We kunnen de printserver bijvoorbeeld installeren op de Windows server, die wordt dan eenclient voor de printserver, en kunnen de printer vervolgens publiceren in Active Directory.Indien we dat zouden doen, moet de printserver zo geconfigureerd worden dat uitsluitendprinttaken afkomstig van het IP-adres van de Windows server worden geaccepteerd.

7.2 Configuratie van de clients

7.2.1 Configuratie van de Windows 98/Me clients

Bij ‘start, instellingen, configuratiescherm, netwerk’ kiezen we ‘toevoegen’, vervolgens ‘client’.We geven de lpr driver op die meegeleverd is op de CD-ROM. De netwerkcomponent ‘LPR forTCP/IP Printing’ is nu toegevoegd. Bij ‘eigenschappen’ kunnen we vervolgens het IP adresvan het apparaat opgeven, alsook de poortnaam ‘PS-54CFD8-U1’. Na het herstarten van depc voegen we een nieuwe printer toe. We kiezen ‘netwerkprinter’, en vervolgens ‘bladeren’ omde printer te selecteren (onder Print Servers - TCP/IP LPR, 192.168.123.2, PS-54CFD8-U1).Vervolgens installeren we de juiste printerdriver.

7.2.2 Configuratie van Windows XP clients

Op de clients voegen we een nieuwe printer toe. We kiezen hiervoor ‘lokale printer’, enschakelen de optie ‘automatisch detecteren’ uit. Vervolgens geven we het IP adres van hetapparaat op. De poortnaam wordt hierbij door Windows zelf gekozen. Vervolgens kiezen weaangepaste instellingen, wijzigen het protocol naar LPR, en vullen we als LPR Wachtrijnaamhet eerder genoteerde poortnummer ‘PS-54CFD8-U1’ in. Nu selecteren we de juiste drivervoor onze printer [9].

1wel een foutmelding via telnet sessie

Page 91: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Referentielijst

[1] ASP.NET Page Templates - Using Inheritance.URL: http://www.codeproject.com/aspnet/page templates.asp [11 mei 2004].

[2] AT-S41 Version 1.1.2 Management Software Release Notes.

[3] AT-S45 Version 1.0.5 Management Software Release Notes.

[4] Do more with your ASP.NET Page Template.URL: http://www.codeproject.com/aspnet/pagetemplates.asp [11 mei 2004].

[5] How To: Use Forms Authentication with Active Directory.URL: http://msdn.microsoft.com/library/en-us/dnnetsec/html/secnetht02.asp [10 mei2004].

[6] Internationalize Your ASP.NET Applications (Part 1 of 3).URL: http://www.devx.com/DevX/Article/6997/0/page/6 [10 mei 2004].

[7] MVC for ASP.net.URL: http://www.dmbcllc.com/asp mvc.aspx [10 mei 2004].

[8] User’s Guide for the AT-9410GB Gigabit Ethernet switch. Version 1.0.

[9] (2003). D-Link DP-301U Manual.

[10] D. Brors (2003). Groepsdynamica: Microsofts strategie achter office 2003. c’t: magazinevoor computer techniek, 12:110–112.

89

Page 92: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Index

.NET framework, 45/boot, 323Com, 13

Active Directory Schema, 79Active Directory Users and Computers, 46Adamantix, 26, 29AddControlsFromDerivedPage, 58AddMenuItems, 58AddSelectionItems, 58ADSL verbinding, 17Allied Telesyn, 13, 16apt cache, 29ARP Spoofing, 19ArrayList, 59ASP.NET, 45at runtime, 32auto-sense, 17AVW, 9

backplane, 15, 16backuppen, 12Belnet, 29betrouwbaar, 9betrouwbare, 9BIOS, 29bladwijzers, 49bootloader, 20buffer overflow, 27buffer overflows, 27bug-fixes, 26BuildPage, 58

C#, 45Capelderij, 8Cisco, 13CMS, 12coach, 9, 41, 51code behind, 52, 55, 59code behind bestand, 55code behind file, 58code behind files, 55collisions, 13Common Criteria LSPP AEL 5, 26Compaq, 12Component Services, 68Constanten, 52, 55constructor van de afgeleide klasse, 66constructor van TemplatePage, 66Content Management System, 12Controller, 55converter, 13converters, 13, 15, 16

D-Link, 13database, 44datum, 49datumvorig, 49DCDiag, 79De Volder, 13Debian, 29, 30Debian GNU/Linux, 26dhcp, 40DMZ, 25

90

Page 93: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Index 91

Document Workspaces, 43DoS, 29dselect, 30

E-mail boxen, 10Eigen domeinnaam, 10entry, 22, 44error.aspx, 58ethernet, 12ethernet ADSL modem, 17Exim, 30EXT2, 29EXT3, 29

file sharing, 44Firewall, 10firewall, 10, 11firewall rules, 19Form, 58Free Software Foundation, 26FSF, 26fysische, 42

GBIC, 14GBIC slots, 16geboortedatum, 49GenerateHtmlForm, 58Geoptimaliseerd raamplanbeheer, 10Gigabit Ethernet media converters, 15GNU project, 26

hashtabel, 59HtmlForm, 58HyperTerminal, 20

image, 29image file, 20Information Rights Management, 43inhoudsopgave, 49Intel 386, 33Intel Pentium III 1133Mhz, 9

Internet, 9intrusion detection, 28IP Spoofing, 19IUSR CAPELDERIJSRV, 62, 68, 70

Java Server Pages, 10Journaling, 29journaling, 29

kasteel, 8–10, 13, 17kernel developers, 32kernel image, 32kernel patches, 32kernel-sources, 33

Link, 59Linux, 26Linux-kernel, 32local management session, 20logische, 42Logout, 53

MAC-Address Spoofing, 18mailbox store, 84mailserver, 12mainstream kernel, 32, 33manageable, 11, 16MAPI, 11, 81, 85MD5 passwords, 30medewerkerstabel, 49media converter, 15, 17media converters, 16Microsoft, 11Microsoft Office 2003, 43Microsoft SQL Server 2000, 46Mixed Mode, 79model, 55Model, View, Controller, 55mogelijk onbetrouwbare, 9MS Exchange, 12MS Exchange Server 2003, 77

Page 94: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Index 92

MS IIS, 46MS SQL Server, 9MTA, 30MVC model, 55MySQL, 10

naam, 49NC Computing, 9, 10NetDiag, 79NT AUTHORITYΓE30FNETWORK SER-

VICE, 62, 68

Office Pro 2003, 43onbetrouwbaar, 9OnInit methode van TemplagePage, 66OnInit van de afgeleide klasse, 66OnLoad van de basisklasse, 67Open Source, 26, 27Outlook, 85

Package management system, 26package management system, 31, 33Page Load, 67paragraaf, 49paragraaftype, 49patches, 27patchpanelen, 11Pentium III 450MHz, 25Port VID, 23Printserver, 10printserver, 12PVID, 23

raamplan, 9, 41raamplanbeheer, 10–13raamplannen, 9racks, 11read-only, 30Render, 67routing loops, 14RSBAC, 28

school, 8, 9, 13, 14Secure, 18Secure Level, 21Securing Debian Manual, 38Sendmail, 10server, 9, 84Service Pack 3, 43service pack 3, 9Shadow passwords, 30SharePoint Portal Server, 43SMC, 13SNMP, 11SNMP Community, 88Spanning Tree Protocol, 14STP, 14string-indexer, 59Sumika, 9SX multimode, 13

tagged, 38Tagged Port, 23tags, 42tapedrive, 12tasksel, 30template systeem, 56TemplatePage, 55Terminal Emulation, 20Text, 59TFTP, 20Toestand, 59trusted, 16, 22, 25twisted pair, 13–15Typo3, 12

Untagged Port, 23untrusted, 16, 22, 25uplink, 14userland tools, 32

vanilla kernel, 32

Page 95: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van

Index 93

VBEWGEB, 49VBEWMOEDER, 49VBEWNAT, 49VBEWOMS, 49vconfig, 38VGEMCOD, 49VID, 22, 23view, 55ViewController, 55viewer modus, 47villa, 8, 9, 13, 14, 16Visual Studio .NET, 45VLAN, 16, 22, 23VLAN 123, 38VLAN 2, 38VLAN identifier, 22

Website, 10werkverdeling, 46Windows 2000, 43Windows 2000 Server, 9Windows 2003 Enterprise Server, 43Windows Server 2003, 43Windows XP, 43Woody, 26Word, 9workflow, 43

Xmodem, 21

Zorp, 40

Page 96: Departement Industri¨ele Wetenschappen (INWE) Vakgroep ...users.skynet.be/w-soft/thesis/eindwerk_main.pdfZo bestond een deel van het werk uit het installeren en configureren van