Martijn Bellaard

HTTPS inspection configuratie

Geplaatst op 17-7-2010 14:55 door Martijn Bellaard

In vorige blog  heb ik al behandelt wat HTTPS inspection nu precies is. In deze blog wil ik de configuratie behandelen en de eventuele uitdagingen die je daarbij tegen gaat komen.

Config HTTPS Inspection

HTTPS Inspection is een onderdeel van de Web Access Policy. Je configureert het dan ook vanuit hier.

  • Selecteer als eerste Web Access Policy,
  • Onder Task kies je voor Configure HTTPS Inspection,
  • Onder General selecteer Enbale HTTPS inspection.

Je heb nu twee opties:

  • ð Inspect traffic and validate site certificate, alle HTTPS verkeer en het certificaat worden gecontroleerd
  • ð Do not inspect traffic, but validate site certificates. Blocks HTTPS traffic if certificate is not valid. Nu wordt alleen het certificaat gecontroleerd. Is deze niet geldig of incorrect wordt het SSL verkeer geblokkeerd. De TMG doet geen inspectie van de inhoud.

Aangezien HTTPS inspection al het SSL verkeer controleert door voor elke website een nieuw certificaat aan te maken zal de TMG moeten beschikken over een eigen root certificaat. Je kunt er voor kiezen om zelf een certificaat te maken (UsE Forefront TMG to generate a certificate) of een bestaande root certificaat te importeren (Import a certificate).

Onderaan staat dan nog een knop . Als je hierop drukt krijg je het scherm Certificate Deyployment Options. In dit scherm is het vooral van belang dat je moet bedenken hoe je het root certificaat bij je clients krijgt. Doe je dit niet, zul je je client standaard certificaten, gemaakt door de TMG, niet kunnen vertrouwen. Dit heeft dan tot gevolg dat ze geen enkele SSL website meer zullen vertrouwen. Je kunt kiezen uit twee opties:

Automatically through Active Directory, hierbij maakt de TMG gebruik van de Active Directory om het certificaat te distribueren:

  • Druk op
  • Geef een gebruikersnaam en wachtwoord van een account dat in de AD een certificaat mag publiceren.

Manually on each client computer, om met de hand het certificaat te distribueren

  • Druk op
  • Geef een bestands naam aan het certificaat en druk op

HTTPS inspection is nu geconfigureerd. Als een gebruiker nu naar een SSL website gaat zal de TMG dit verkeer onderscheppen, controleren en stuurt het versleuteld door naar de client.

Tuning HTTPS Inspection

Nu is HTTPS inspection niet een wonder middel dat je aanzet en al je SSL sites blijven dan goed werken. Je zult merken dat een aantal websites niet meer werken. Dit kun je eenvoudig oplossen door uitsluiten van een aantal website of hosts van HTTPS inspection.

We gaan eerst een Destination uitsluiten van HTTP inspection

  • Kies voor tabblad Destination Exceptions.
  • Selecteer Site Exempt from HTTPS Inspection
  • Vul de URL in van de destination die niet geïnspecteerd mag worden.

We kunnen er ook voor kiezen een client (PC) uit te sluiten van HTTPS Inspection. Let hierbij op dat geen enkel SSL website meer gecontroleerd wordt. Het is beter om een destination uit te sluiten

  • Kies voor tabblad Source Exceptions.
  • Selecteer de juiste computer of computer set.

Nu kunnen we gaan aangeven wat er gecontroleerd moet worden van een certificaat.

  • Kies voor tabblad Certificate Validation.
  • Je kunt nu aangeven hoe oud een verlopen certificaat mag zijn, wat te doen met certificaten die nog niet actief zijn en of de CRL lijst gecontroleerd moet worden.

Het laatste tabblad is de Client Notification. Hier kun je aangeven of de gebruiker op de hoogte gesteld wordt dat zijn SSL website gecontroleerd word. Alleen als de gebruiker beschikt over de Proxy client zal hij deze melding zien.

Afsluiting

In deze blog heb ik behandeld hoe je HTTPS inspection moet configureren. Als je deze optie gaat gebruiken, en ik adviseer dat ook, maak dan eerst een lijst van de top 10 SSL websites. Deze kun je dan in de Exceptions lijst zetten.

Configureren IPv6 on Linux

Geplaatst op 8-7-2010 20:07 door Martijn Bellaard


In deze blog wil ik stil staan hoe je Ipv6 op Linux configureert. Bij Linux is de uitdaging dat er verschillende distributies zijn en niet elke distributie heeft standaard IPv6 aan staan. Dit zul je dus eerst moeten controleren.

Controleren op IPv6

Voordat we dus overgaan tot de configuratie, controleren we eerste of we IPv6 hebben. Als eerste moet er worden gekeken of de kernel IPv6 ondersteunt. Dit doe je op de volgende manier:
Commando: LS /proc/net/if_*
Als antwoord moet je if_inet6 zien. Is dit niet het geval dan is er geen IPv6-support aanwezig in de kernel en zal je een nieuwe kernel moeten maken met IPv6-support of de IPv6-module laden. Het laden van de module kun je doen met:
Commando: modprobe ipv6.

Er zijn een aantal utilities die noodzakelijk zijn voor de configuratie van IPv6:

·        ifconfig, voor het configuren van de interface.

·        route of ip, voor het opzetten van een router-entry.

·        ping6 en traceroute6, standaard IP-utilities.

Met de volgende commando’s kun je controleren of de belangrijkste utilities IPv6 ondersteunen. Is dit niet het geval dan zul je eerst IPv6-ondersteuning van deze utilities moeten regelen.

Commandos:

-          /sbin/ifconfig -? 2>& 1|grep -qw 'inet6' && echo "utility 'ifconfig' is IPv6-ready"
Utility ‘ifconfig’ is IPv6 ready

-           /sbin/route -? 2>& 1|grep -qw 'inet6' && echo "utility 'route' is IPv6-ready"
Utility 'route' is IPv6-ready

-          /sbin/ip 2>&1 |grep -qw 'inet6' && echo "utility 'ip' is IPv6-ready" (Optioneel)
utility 'ip' is IPv6-ready

-          Ping6
Als Ping6 aanwezig is krijg je de help van Ping6

-          Traceroute6
AlsTraceroute6 aanwezig is krijg je de help van traceroute6
Krijg je ergens een foutmelding of niets terug, dan is de ondersteuning voor IPv6 niet aanwezig en zul je dit eerst moeten regelen.

Configureren van het IP-nummer

Het configureren van een IP-nummer kun je doen met Ifconfig. Het commando hiervoor is:  Ifconfig interface inet6 add IPv6-nummer/Prefix

Voorbeeld: Ifconfig eth0 inet6 add 2001:1:1:1::1/64

Na het configureren van het IP-nummer moet je nog opgeven wat de default gateway is. Het commando hiervoor is: route –A inet6 add ::/0 gw IPv6-adres van de default gateway metric 1 interface.


Voorbeeld: route –A inet6 add ::/0 gw 2001:1:1:1::11 metric 1 eth1

IPv6 Test Script


/sbin/ifconfig -? 2>& 1|grep -qw 'inet6' && echo "utility 'ifconfig' is IPv6-ready"
 /sbin/route -? 2>& 1|grep -qw 'inet6' && echo "utility 'route' is IPv6-ready"
/sbin/ip 2>&1 |grep -qw 'inet6' && echo "utility 'ip' is IPv6-ready" (Optioneel)
 

Cloud computing: to be or not to be?

Geplaatst op 28-6-2010 11:32 door Martijn Bellaard

Afgelopen week was dan het eerste Experts Live event.  Ik mocht tijdens dit event weer optreden als een van de sprekers en na afloop was er voor de sprekers een klein etentje. Tijdens dit eten zat ik met een aantal medesprekers aan één tafel. Het gesprek ging dan ook al snel over de moderne technieken, waaaronder natuurlijk cloud computing. Één van mijn tafelgenoten was er helemaal van overtuigd dat over 5 jaar iedereen werkt vanuit de cloud, net zoals we stroom afnemen bij een stroom leverancier.

Nu is het vrij normaal dat we in computerland proberen vergelijking te trekken met voorwerpen uit ons dagelijkse leven. Zo hoor je regelmatig de vergelijk tussen een Operating System en een auto, internet en de snelweg en dus nu tussen cloud computing en andere diensten, zoals geld zaken en nuts bedrijven. In de blog wil ik eens dieper in gaan op deze vergelijkingen. Hoe houden ze stand en waarop lopen ze stuk. Vandaar uit wil ik kijken wat we er van kunnen leren en wat Cloud computing ons gaat brengen.

ICT vandaag de dag

Voordat je kunt gaan kijken hoe goed een vergelijking is zul je eerst een basis moeten bepalen. Aangezien we het over ICT hebben wil ik dus eerst helder krijgen hoe een ICT omgeving er vandaag de dag uit ziet. Nu wil ik geen groot onderzoek doen, dus ik zal uitgaan van mijn eigen observaties.

Ik maak een onderscheid tussen 4 type ICT omgevingen:        

-          klein, dit zijn organisaties met minder dan 50 werknemers. In dit soort ICT organisaties zie je vaak een SB server. Als ICT belangrijk is wil deze SB server nog wel eens vervangen worden door  drie of vier servers. Het beheer van deze server wordt vaak door een externe partij gedaan.

Deze organisaties maken vaak gebruik van een aantal standaard applicaties, waaronder een Office pakket en een CRM-achtig pakket. Daarnaast kom je hier ook de benodigde “tooltjes” tegen en branche specifieke appalicaties.

-          middelgroot , dit zijn organisaties met 50 tot 205 werknemers. Deze organisaties beschikken vaak over een eigen ICT afdeling die verantwoordelijk is voor de gehele ICT omgeving. Deze ICT omgeving bestaat uit meerdere servers. De trent in deze omgeving is om steeds meer zaken te standariseren, te automatiseren, en te professionaliseren.

Deze organisaties maken naast de standaard applicaties ook gebruik van een aantal afdeling- of branche specifieke applicaties. Daarnaast hebben ze een op maat gemaakte CRM, ERP, HRM enz, pakketten.

-          groot, dit zijn organisaties met 205 tot een paar duizend werknemers. Deze organisaties beschikken vaak over een eigen “hosting” centrum, die in sommige gevallen intern aanwezig is, maar steeds vaker bij een hosting partij geplaatst wordt. Ook in deze omgevingen is de trend om steeds meer zaken te standariseren, te automatiseren, en te professionaliseren.

Ook bij deze organisatie zie je veel “maatwerk” op het gebied van ERP,CRM enz.

-          Multinationals, dit zijn organisaties met 100.000 of meer werknemers. In dit soort organisaties is de ICT een bedrijf in een bedrijf geworden, waar vaak strakken afspraken en regels zijn om iets te kunnen doen of aan te passen binnen de ICT omgeving.

Hoe groter de omgeving hoe meer “maatwerk” we vinden. Veel organisaties maken gebruik van maat software voor hun dagelijkse werkzaamheden en het is daardoor één van de core applicaties geworden.  Om het nog erger te maken zien we vaak dat dit maatwerk ook door een dhz-er gemaakt (dhz=doe het zelver)  is.  Dit is software die niet volgens de juiste standaards gemaakt is en veel problemen kent. Gelukkig zien we dan ook dat steeds meer organisaties bezig zijn deze software uit te faseren.

Daarnaast bevat veel software bedrijfsgevoelige gegevens. Gegevens dit niet buiten de organisatie bekend mogen worden. Gebeurd dat wel dan kan dit een bedrijf ernstige schade toebrengen. Dit is dan ook de grootste angst die de meeste organisaties hebben als er wordt gesproken over cloud computing.

De vergelijkingen

Nu we een uitgangspunt hebben bepaald kunnen we eens gaan kijken naar de verschillende vergelijkingen en hoe ze overeind blijven als we ze verder door spitten.

Cloud en Electriciteit

Electriciteit gebruiken we allemaal. Ergens komt het ons huis binnen (meestal de meterkast). We vragen ons eigenlijks nauwelijks af waar het vandaan komt en of het de juiste kwaliteit is. Daarnaast kunnen we kiezen tussen de smaken 220, 220 of 220. De vergelijking  klopt als we er vanuit gaan dat we niet geinteresseerd zijn hoe we bij onze applicatie en data komen, zolang het er maar is. Maar het grootste manco met deze vergelijking zit hem in de keuze. Stroom kent maar één smaak, dit geldt niet voor een applicatie. Ten eerste hebben we een heleboel verschillende type applicaties en kent elke type soms ook nog meerdere merken. De enige overeenkomst tussen ICT en stroom is dat ICT stroom nodig heeft.

Cloud en Bank

De bank beheert ons geld. Met geld betalen we alles wat we gebruiken en nodig hebben. Als we ons geld kwijt raken komen we in ernstige problemen. Daarnaast zijn er veel vormen van sparen, beleggen en lenen. Hier zijn inderdaad een aantal overeenkomsten te vinden. Gevoelige data mag niet kwijt raken, net als ons geld. Een bank vertrouwen we al jaren met ons geld, waarom zouden we dan niet een ander organisatie vertrouwen met onze data!? Net als de vele vormen van sparen, beleggen en lenen  hebben we veel verschillende applicaties. Dus een cloud zal al in de toekomst dus veel verschillende applicaties moeten aanbieden. Maar een bank kent ook maatwerk, maar dan moet je met veel geld komen. Kom je met een klein beetje geld, zeg een 10.000, dan zullen ze niet snel maatwerk voor je willen leveren. We hebben meer kans dat ze iets willen doen als we met een 100.000 of een paar nulletjes meer komen. Dit zullen we ook zien bij cloud computing.

Cloud en verzekeringen

De derde vergelijking is dit van verzekeringen en cloud. We betalen een verzekeraar regelmatig geld om er voor te zorgen dat we in geval van nood beschikken over wat extra geld. Net als bij een bank kennen we verschillende types en smaken. Maar een verzekering is in de eerste plaats voor nood en als we gebruik maken van cloud computing is dit niet voor nood. De enige twee overeenkomsten zit hem in vertrouwen en over data beschikken in geval van nood.

Conclusie

De beste overeenkomst zit hem tussen bank/verzekeringen en cloud. We zullen de cloud net zo moeten gaan vertrouwen als onze bank. We geven al onze gegevens aan een cloud. Deze slaat onze gegevens veilig op en zorgt er voor dat we er overal bij kunnen. Daarnaast zijn we er van verzekerd, net als bij verkeringen, dat we altijd bij onze gegevens kunnen. Ook in geval van nood.

Wat gaat het dus worden.

De geschiedenis van het bank/verzekerings wezen vertelt ons ook wat we kunnen gaan verwachten van cloud computing. In het begin waren mensen ook sceptisch tegenover een bank. Alleen rijke mensen brachten hun geld naar de bank. Langzaam veranderde dit. Ik weet nog in mijn jeugd hoe mijn moeder 1x per maand naar de bank ging. Vaak een paar dagen nadat het salaris van mijn vader gestort was. Ze haalde dan enkele honderden guldens op. Dit geld werd thuis verdeeld over de verschillende potjes in een geld kistje. Alle lopende rekeningen werden daaruit betaalt.

Ook ik heb nog steeds die potjes, maar die staan nu in een excel sheet. Geld halen, doen we eigenlijk niet meer. Als ik ergens naar toe moet waar ik met “echt” geld moet betalen moet ik van tevoren er om denken om geld uit de muur te trekken. Ik heb eigenlijk nooit geld op zak. Ik betaal alles met mijn pas.

Dit is wat we ook zullen gaan zien met de cloud. Grote organisaties hebben vaak al hun eigen cloud. Bij midden en kleine organisaties draaien nog veel servers lokaal. In het begin zullen vooral standaard applicaties verhuizen naar de cloud. De belangrijkste data zal nog steeds in huis beschikbaar zijn op een lokale server (geld kistje). In de toekomst zal ook deze data beschikbaar worden in de cloud. We zullen dan met een device (pasje) onze data ophalen als we het nodig hebben.

IPv4 Exhaustion Counters

Geplaatst op 25-5-2010 20:56 door Martijn Bellaard

Dat IPv4 opraakt is weten we al, maar waarneer dan. Dit veschilt van dag tot dag en er is dus niet een vaste dag aan te wijzen. Hoe kom je er dan achter .....................  door elke dag te kijken ;-).

Maar wie wil nu elke dag (laat staan elke uur) kijken hoeveel Ipv4 nummers er nog zijn, buiten mij om dan ;-). Gelukkig heeft Hurricane Electric hier iets op gevonden. Ze hebben een aantal counters/gadgets gemaakt waaronder eentje voor Windows 7.


 

Installatie gadget.

Stap 1) Download de gadget (http://ipv6.he.net/statistics/)
Stap 2) Pak de zipfile uit naar directory “v4Exhaustion.Gadget”
Stap 3) Kopieer deze directory naar “C:\Program Files\Windows Sidebar\Gadgets”
Stap 4) Zorg dat je nu je desktop ziet, rechtermuisknop è Gadgets
Stap 5) Kies nu de gadget “Bye Bye v4” en plaatst deze ergens op de desktop.
Vanaf nu kun je precies zien hoeveel dagen je nog hebt voor je Ipv6 implementatie.



Martijn Bellaard

IPv6, hoe overtuig ik mijn collega’s?

Geplaatst op 14-5-2010 15:58 door Martijn Bellaard

Ik merk dat steeds meer en meer systeem beheerders overtuigt raken van de noodzaak van IPv6. Dat is een goede zaak, maar dan zijn we er nog niet. Een systeem beheerder is vaak technisch verantwoordelijk voor de ICT infrastructuur, financieël is dit vaak iemand anders. Daarnaast heeft een systeem beheerder in een wat grotere organisatie ook nog te maken met collegas van verschillende afdelingen. In een doorsnee ICT afdeling kun je dus een onderscheid maken tussen de volgende drie type “beheerders”:

  1. Een systeembeheerder
  2. Een applicatie beheerder
  3.   Een manager


Nummer 1 heeft dus nu de schone taak om nummer 2 en 3 te overtuigen van het nut van IPv6. Hoe kun je dat nu het beste doen?

Wensen, eisen en focus gebied

Voordat we kijken hoe we nummer 2 en 3 kunnen overtuigen is het goed om eerst stil te staan bij hun wensen, eisen en het focus gebied. Deze zijn namelijk anders dan die van nummer 1.

De applicatie beheerder


 

Een applicatie beheerder heeft zijn primaire focus liggen op zijn applicatie. Deze moet goed functioneren en door gebruikers benaderbaar zijn. Het netwerk valt buiten zijn kennisgebied. Hij ziet dit als een soort wolk die er voor zorgt dat een gebruiker de gegevens kan benaderen. Deze wolk wordt door de systeem beheerder beheerd en in de ogen van de applicatie beheerder ligt dus daar de verantwoording. Als er problemen zijn met het netwerk dan went hij zicht tot de systeem beheerder en verwacht dat hij het probleem oplost.

Als je dus begint over IPv6 zal hij als eerste zeggen; “snap het niet, maar mijn beheerder moet het oplossen. Het is zijn probleem”. Deze houding is begrijpbaar, maar niet helemaal correct. Als je dus met hem in discussie gaat zul je dit eerste moeten takkelen. Vraag hem of de gebruiker over het netwerk praat met zijn applicatie. Meestal zal het antwoord ja zijn. Leg hem uit dat dit verkeer invloed heeft op de performance van het netwerk en dat hij dus zeker wel invloed heeft op het goed functioneren van het netwerk.

Als je hem dus nu aan jou kant hebt, hij vindt het netwerk nu ook iets wat zijn aandacht verdiend, kunnen we aan de slag met IPv6. Leg hem uit dat elke server en Workstation een IP nummer/telefoon- nummer heeft en dat die nummers gebruikt worden voor communicatie. Daarna ga je in op het feit dat de nummers opraken en dat het ook snel gaat. Leg hem vervolgens uit dat als de nummers op zijn, niemand meer naar zijn applicatie kan gaan. De oplossing voor dit probleem is …………………… IPv6.

Als hij overtuigt is dat er aandacht moet worden besteed aan IPv6 kun je hem nu overhalen dat ook HIJ aan de slag moet. Je kunt hem nu gaan vertellen dat IPv4 32 bits nummers heeft. Zijn applicatie is geschreven voor IPv4 en kan dus overweg met 32 bits nummers. IPv6 is een 128 bits nummer. Zijn applicatie kan waarschijnlijk hiermee niet overweg. Dit zal dus getest moeten worden.

Nu zijn we aangekomen op het punt om samen met de applicatie beheerder een test plan te gaan maken voor de IPv6 implementatie. L et op, waarschijnlijk zal de applicatie de eerste keer niet of slecht werken. Je ziet dat men dan snel IPv6 de schuld geeft. Leg hem uit dat niet IPv6 fout is, maar er iets mis is met de applicatie. Ik gebruik hiervoor vaak de volgende vergelijking:

Omdat we veel files in Nederland hebben heeft Den Haag besloten de A2 grondig te verbouwen. Als ik nu over de A2 rijd raakt mijn navigatie system van slag. Wie is er nu “fout”? A2 (IPv6) of mijn navigatie (de applicatie)?

De manager

De focus van de manager is weer anders dan die van de applicatie beheerder. Afhankelijk van de organisatie en functie zal de manager dichterbij de techniek of juist verder weg staan van de techniek. Gaat het om een manager die dicht bij de techniek staat kun je een heel eind aan de slag met de standaard IPv6 redenen, maar als de manager verder weg van de techniek staat, hebben technische redenen geen enkele zin.
De focus van deze manager zal op de volgende gebieden liggen:

  • Afspraken/SLA’s met de organisatie moeten worden nageleefd. Dit raakt zowel functionaliteit als stabiliteit
  •  De kosten voor het beheer moet binnen het budget blijven
    Een “verstandige” manager zal zeggen dat hij liever werkt met “proven technology”. Voor mij persoonlijk staat deze uitdrukking gelijk aan, “ik blijf liever dom en stom en ga me vooral niet ontwikkelen. Stel je eens voor dat ik moet werken of nog erger studeren”.  Maar hiermee zul je waarschijnlijk niet ver komen bij je manager. Meestal werken ze namelijk al erg hard. De reden dat veel managers niet direct met nieuwe technieken willen werken is dat ze bang zijn dat hierdoor verstoringen optreden in de dienstverlening en ze dus hun afspraken niet kunnen nakomen. Een geheel terechte zorg. Daarnaast kosten nieuwe technieken ook altijd iets en lopen ze het risico dat ze een budget overschrijding krijgen. Als je ze dus wilt overtuigen van IPv6 zul je hiermee aan de slag moeten.

De SLA

IPv6 is dan wel een nieuwe techniek, maar we kunnen juist met deze motivatie goed aan de slag. Als eerste leggen we het telefoon verhaal voor en de bijbehorende oplossing, IPv6. Daarna wijzen we hem op de SLA’s. Maak hem hierbij duidelijk dat ook jij deze wil naleven en dat je in de toekomst problemen ziet. Als straks de nummers op zijn en wij dus niet op tijd er bij waren, we dus niet onze SLA’s kunnen nakomen. Door op tijd te beginnen met IPv6 kunnen wij in de toekomst onze dienstverlening blijven garanderen. 
 

De kosten

Dat een implementatie van IPv6 geld kost, is natuurlijk een feit. Maar door langer te wachten met IPv6 zullen de kosten alleen maar toenemen. Het begint al met het bestellen van alle nieuwe apparatuur. Als deze niet IPv6 ready zijn zul je dus later nieuwe apparatuur moeten kopen of iets aanschaffen om er tussen te zetten. Hoe je dit ook bekijkt, het kost geld. Daarnaast loop je het risico een spoed implementatie te moeten doen. In dat geval zul je dus externe consultants en techneuten moeten inhuren om het werk te doen. Door NU te beginnen kun je hierop besparen.

Conclusie

Het overtuigen van nummer 1 en 2 zul je niet kunnen doen met technische argumenten. Door goed te onderzoeken waar hun focus ligt en van daaruit de discussie te starten kun je ze aan jou kant krijgen. Ik hoop dat deze blog elke IPv6 liefhebber helpt om zijn collega’s te gaan overtuigen.

Threat Management Gateway 2010: Network Inspection System

Geplaatst op 18-4-2010 19:15 door Martijn Bellaard

Internet is een steeds gevaarlijkere plaats aan het worden. Moest je vroeger vooral opletten dat je niet iets “fouts” downloadde is dat vandaag de dag anders. Het klikken op een verkeerde link, of spontaan op springende popup’s kunnen er al voor zorgen dat er iets mis gaat. Om gebruikers tegen dit soort bedreigingen te beschermen beschikt de TMG over een Network Inspection System, afgekort NIS. Maar wat is NIS nu precies en hoe werkt het.

Hoe werkt NIS

NIS is een onderdeel van de IPS van de TMG en de werking is vrij simpel. Op het moment dat er een netwerkpakketje binnenkomt op de netwerklaag wordt deze onderschept door NIS. Nadat het onderschept is door NIS wordt er gekeken wat voor application layer protocol het is. Daarna wordt er dieper gekeken in de betreffende protocol , bijvoorbeeld welke extensie er in zit. Op die manier wordt het protocol helemaal uitgepakt. NIS kan de volgende protocollen controleren:

·      http

·      DNS

·      SMB

·      SMB2

·      NetBIOS

·      MSRPC

·      SMTP

·      POP3

·      IMAP

·      MIME

GAPA Inspection Engine

Generic Application-level Protocol Analyzer (GAPA) is verantwoordelijk voor het analyseren van de protocol stream. De GAPA maakt gebruik van GAPAL (GAPA Lanquage). Deze taal is ontwikkeld door de Microsoft Research (MSR) om protocollen te kunnen analyseren. De uitkomst van deze analyse wordt vervolgens vergeleken met een database.

De database

De database bestaat uit een aantal signaturen. Deze signature wordt vergeleken met de protocol stream om te bepalen wat voor protocol stream het is. Komt de stream overeen met een signature dan wordt het netwerk verkeer geblokt.

In de database staan drie type signaturen:

  1. Vulnerabiltiy-based: dit type signature zal de verschillende varianten van een exploits voor een specifieke Vulnerabiltiy ontdekken.
  2. Exploid-based: dit type signature geldt voor een speciale exploit.
  3. Policy-based: Als er niet een exploid of Vulnerability-based siganture gemaakt kan worden.

Als beheerder kun je kiezen welke actie je wilt laten uitvoeren voor elke signature.  Hierbij kun je kiezen dat als iets voldoet aan de signature om dan te blokkeren of te negeren, het verkeer door te laten dus.

Conclusie

Al het netwerkverkeer dat door de TMG gaat wordt door NIS gecontroleerd. Hierbij wordt er dan gekeken naar netwerk patronen en of deze voldoen aan een speciale signature. Is dit het geval dan zal al het netwerkverkeer geblokt worden.

Natuurlijk kun je er ook voor kiezen NIS uit te zetten, maar daarmee zet je dan ook meteen een mooi stukje beveiliging uit.

Martijn Bellaard

Threat Manager Gateway 2010 Workgroup Array

Geplaatst op 5-4-2010 21:08 door Martijn Bellaard

Het hoger beschikbaar zijn van een ICT omgeving is vandaag de dag steeds belangrijker. Veel IT processen binnen een organisatie zijn bedrijfskritisch geworden en bij uitval van een IT proces liggen belangrijke bedrijfsprocessen snel stil. Veel van deze IT processen maken gebruik van internet en/of zijn bereikbaar vanaf het internet. Hierdoor is de internettoegang ook een IT kritisch onderdeel geworden. De Threat Management Gateway 2010 is verantwoordelijk voor internet toegang en zal dus hoger beschikbaar moeten zijn. Hiervoor moet je als beheerder twee zaken regelen:

-       Met Load Balancing zorg je er voor dat al het verkeer over twee of meer TMG’s verdeeld worden en bij uitval van één TMG zullen de overige TMG’s het overnemen

-       Met een Array zorg je er voor dat de configuratie over alle TMG’s hetzelfde is.

Met de Threat Management Gateway 2010 (TMG) kun je een workgroup array maken. Deze setup is vooral interessant als de TMG in een DMZ staat en niet lid is van een Active Directory. In deze blog zal ik ingaan op de stappen die je moet zetten om een TMG workgroup Array te maken.

Stap 1) Configuratie ontwerp

Voordat je begint met de setup van de array zul je eerste moeten nadenken over je array storage server. Je hebt hierbij de volgende twee keuzes:

1.     Een Dedicated array storage server, in dit geval zal een TMG server als Dedicated array Storage server dienst doen.

2.     Een member storage array server, in dit geval zal één van de TMGs ook storage server zijn

In mijn blog ga ik uit van nummer 2. Wil je aan de slag met nummer 1 dan kun je dezelfde setup uitvoeren, maar de Dedicated server mag dan geen onderdeel zijn van de Load Balancing.

Stap 2) Importeer SSL Certificaat

De Threat Management Gateway 2010 slaat zijn informatie op in een instance van de Active Directory Ligthweight Directory Service. Deze vind je terug als de service ISASTGCTRL. In een Array zal alle configuratie informatie opgeslagen worden in de storage array server ISASTGCTRL services. Elk array member zal op basis van SSL een connectie maken met de storage server. Voordat we kunnen beginnen zullen we eerst een SSL certificaat moeten aanmaken voor TMG02.Array.local, TMG01.Array.local. Ik ga, bij de start ervan uit dat we beschikken over de prived key van het certificaat. Deze prived key moet vervolgens worden geïmporteerd en worden gekoppeld aan de ISASTGCTRL service.

De volgende actie moet op beide servers worden uitgevoerd.

-       Start è Run è MMC

-       File è Add or Remove Snap-ins

-       Certificates

-       Add

-       Service Account

-       Next

-       Next

-       Selecteer ISASTGCTRL

-       Finish

Je hebt nu de certificaten store geopend van de service ISASTGCTRL.

-       OK

-       Open Certificates\ADAM_ISASTGCTRL\Personal

-       Importeer de prived key.

-       Sluit het MMC console

-       Restart de service ISASTGCTRL : net stop ISASTGCTRL && net start ISASTGCTRL

 

!!LET OP!! Er mag maar één certificaat staan in de store. De service kiest automatisch een certificaat om te gebruiken voor SSL.

Stap 3) Aanmaken ARRAY op de TMG02

Nu de service ISASTGCTRL klaar is kunnen we de array gaan definiëren.  Dit doen we op de TMG die we gaan gebruiken als storage server. In deze blog is dat TMG02.

Als eerste moet je er voor zorgen dat alle TMGs in de Managed Server Computers-  en Remote Management Computers  set terecht komen. In de system policy’s staan een aantal policy’s die er dan voor zorgen dat deze computer toegang krijgt tot de ISASTGCTRL services.

-       Log aan op de TMG02

-       Start de TMG Management console

-       Selecteer: Firewall Policy

-       Aan de rechterkant selecteer je: Toolbox

-       Selecteer :Computer Sets è Managed Server Computers

-       Rechtermuisknop è Properties

-       Voeg de TMG01.array.local toe

!! LET OP, de FQD moet wel geresolved kunnen worden naar een IP nummer !!!

-       OK.

-       Apply

-       Voeg de TMG02.array.local toe

-       OK.

-       Apply

-       OK

-       Apply

-       Apply

-       Herhaal deze stappen ook voor de groep Remote Management Computers

We gaan nu het Array definiëren

-       Selecteer aan de linkerkant Forefront TMG (TMG02)

-       Onder task Configure Array Properties

-       Geef als DNS naam TMG02.array.local

-       OK

Stap 4) TMG01 toevoegen aan de ARRAY

Nu het array gedefinieerd is kunnen we de andere TMGs gaan toevoegen. Als eerste controleren we of we een connectie kunnen maken met de ISASTGCTRL service over secure LDAP poort 2172

-       Log aan op de TMG01

-       Start een CMD

-       Run LDP.EXE

-       Connection

-       Connect

o    Connect nu naar  TMG02.array.local over poort 2172 en selecteer SSL

-       OK

-       Je moet een lap tekst krijgen die begint met Dn: (RootDSE).

-       Connection è Bind è OK

-       Je moet de volgende output krijgen:

--------

53 = ldap_set_option(ld, LDAP_OPT_EBCRYPT, 1)

Res= ldap_bind_s(ld, NULL, &NtAuthIdentiy, NEGOTIATE(1158)); // v .3

{NtAuthIdentity: User=’Null’; Pwd=; domain =’NULL’}

Authenticated as: ‘TMG02\Administrator’.

--------

 

Als je geen foutmeldingen krijgt kan de TMG01 een connectie maken met TMG02\ISASTGCTRL service.

-       Start de TMG Management console

-       Selecteer aan de linkerkant Forefront TMG (TMG01)

-       Onder task Join Array

-       Next

-       Selecteer Join a standalone array managed by a designated array member (array manager)

-       Next

-       Array manager IP address of FQDN: TMG02.Array.local

-       Next

-       Selecteer: The root CA certificate is already installed on this server

-       Next

-       Finish

Dit duurt een tijd. Heb je een RDP connectie naar de TMG, dan zal deze worden verbroken

-       OK

Stap 5) Aanmaken Array Account

Als laatste moet je nu een array account definiëren.  Dit account wordt door de array members gebruikt om aan te loggen op het array.

-       Maak op beide servers het account : User: TMGArry, Pass: *****************

-       Open het TMG console

-       Selecteer in de TMG console Forefront TMG (TMG)

-       Selecteer rechts Configure Array Properties

-       Selecteer Intra-Array Credentials

-       Set Account

-       Vul nu de gegevens van het TMGArray account in

-       OK

-       OK

-       Herhaal dit ook op elke TMG array member

De array is nu klaar en elke array member zal vanaf nu dezelfde configuratie store gebruiken. 

 

Deel III. Direct Access server setup

Geplaatst op 8-3-2010 09:15 door Martijn Bellaard

De Direct Access server is een server met twee netwerkkaarten. Eentje gekoppeld aan je LAN, de ander gekoppeld aan het internet. De internetkaart moet minimaal 2 Global IPv4 nummers hebben. Deze twee nummers heeft hij nodig voor Teredo. Installeer op de Direct Access server Windows 2008 R2. Na de installatie maak je hem lid van je Active Directory.

NGN Evenement
"Windows 7; uitdagingen en kansen
 van de nieuwe werkplek." op 15 april
Je kan je hier inschrijven

Martijn Bellaard presenteert daar
ook en behandelt oa Direct Access,
bitlocker en IPv6
Leden slechts €50,-
Niet-leden €99,-
Lid worden kan hier

Direct Access feature toevoegen.

Nu de server lid is van het AD kun je de Direct Access feature installeren en RRAS voor NAT funcinaliteit. Dit kun je doen via powershell:

  • Add-WindowsFeature –IncludeAllSubFeature -Name NPAS-Routing,DAMC

IPv6 config.

DirectAccess werkt op basis van IPv6 en je zult dus IPv6 moeten gaan configureren. Hiervoor kun je gebruik maken van de range FC00:1234:ABCD::/48

Intern NIC DirectAccess server

  • IPv6 Nummer: FC00:1234:ABCD:0001::2/64
  • DNS: FC00:1234:ABCD:0001::1

NIC DC

  • IPv6 Nummer: FC00:1234:ABCD:0001::1/64
  • Gateway: FC00:1234:ABCD:0001::2/64
  • DNS: FC00:1234:ABCD:0001::1

Configuratie NAT

De DA server gaat een dubbele rol vervullen. In de eerste plaats is het aan de NAT server om het interne netwerk te scheiden van het externe netwerk. Daarnaast zal hij dienst doen als DirectAccess server.

Optioneel zou je er voor kunnen kiezen om de DA server ook te gebruiken om de CRL lijst te publiceren.

Er komen dus twee netwerkkaarten in. De kaart voor het interne netwerk heeft een intern IP nummer nodig en de kaart voor het externe netwerk heeft twee externe IP nummers nodig.

Enable NAT

  • Open het RRAS console. Deze staat onder de administration tools
  • Selecteer Routing and Remote Access
  • Rechtermuis => Configure and Enable Routing and Remote Access
  • Next
  • Selecteer Network address translation (NAT)
  • Next
  • Selecteer je extern netwerkkaart
  • Next
  • Finish

Configure DirectAccess

De laatste stap is het configureren van DirectAccess. Hiervoor open je de DirectAccess console:

  • Start
  • Administrative Tools
  • DirectAccess Manager

Je hebt nu de DirectAccess Manager console voor je. Hier zie je twee opties Setup en Monitoring, selecteer Setup

Step 1, Remote Clients

  • Op de DirectAccess Client Setup druk op Add, DA_Client (deze groep hebben we in een eerder blog aangemaakt.)
  • Finish

Step 2, DirectAccess Server

Op de DirectAccess Server Setup controleer je of de juiste internet interface en internal network interface zijn gekozen.

  • Next

Nu wordt er een voorstel gedaan voor de IPv6 Prefix. Controleer deze

  • Next
  • Klik op de bovenste browse knop en selecteer het certificaat van je eigen CA
  • Klik op de onderste browse knop en selecteer het certificaat die je in de vorig blog hebt aangevraagd. Dit is een IP-HTTPS SSL certificaat.
  • Finish

Step 3, Infrastructuur Servers

De Network Location server is een server die de client, op basis van een HTTPS verbinding probeert te benaderen. Lukt dit dan is hij op het interne netwerk zal geen DirectAccess gaan gebruiken. Lukt dit niet dan is hij buiten en zal DirectAccess gaan gebruiken. Kies dus voor een URL die alleen intern te benaderen is.

  • Vul in: Https://www.interneserver.local
  • Validate
  • Los eventuele foute meldingen op. Next
  • Default waardes zijn voor nu goed genoeg, next
  • Vul als prefix de IPv6 prefix FC00:1234:ABCD::/48, Finish

Step 4, Application Servers

Deze stap heeft alleen zin als je gebruik maakt van IPSec op je interne netwerk. Tot nu toe in deze blog serie heb ik dat niet gedaan, dus sla ik deze stap over. Wil je wel end-to-end IPSec connectie zul je IPSec moeten configureren op je interne LAN.

  • Druk nu op Save
  • Finish
  • Apply

Nadat je op Apply hebt gedrukt worden de benodigde GPO aangemaakt binnen je Active Directory. Nu kun je een Windows 7 Client lid maken van je domain en de DA_Client groep. Nadat hij de GPO heeft ontvangen zal hij een DirectAccess Connectie opzetten naar de DirectAccess server.

Voor zover de setup van Direct Access. In een volgende blog zal ik wat troubleshooting tips gegeven voor DirectAccess.

Martijn Bellaard

Deel II PKI voor Direct Access, Config ADCS

Geplaatst op 24-2-2010 20:06 door Martijn Bellaard

Direct Access maakt gebruik van IPSec op basis van certificaten om de Direct Access IPv6 verkeer te beveiligen. Hiervoor heb je, in deel I, de ADCS geïnstalleerd, maar deze moet wel worden aangepast aan de eisen van Direct Access

IP-HTTPS custom certificate template (Optioneel)

Als eerste maken we een custom template aan voor de IP-HTTPS. Dit is alleen noodzakelijk als je een eigen SSL certificaat wil gebruiken voor IP-HTTPS

Aanmaken Custom certificaat:

NGN Evenement
"Windows 7; uitdagingen en kansen
 van de nieuwe werkplek." op 15 april
Je kan je hier inschrijven

Martijn Bellaard presenteert daar
ook en behandelt oa Direct Access,
bitlocker en IPv6
Leden slechts €50,-
Niet-leden €99,-
Lid worden kan hier
  • Start de ADCS mmc
  • Ga naar certificate templates
  • Action => Manage
  • Selecteer de Web Server template
  • Action => Dubplicate Template
  • Windows Server 2008 Enterprise
  • Template display name: Web Server 2008
  • Ga naar de Security Tab
  • Voeg toe: Domain computer, Allow Enroll
  • Ga naar de Request Handling tab
  • Selecteer: Allow private key to be exported
  • OK en sluit de MMC

Je bent nu weer terug in de ADCS MMC

  • Ga naar certificate Templates
  • Action => new => Certificate Template To Issue
  • Selecteer de nieuw aangemaakte template Web Server 2008

Laat het console maar openstaan, we hebben hem direct weer nodig.

Aanpassen CRL locatie

Onze werkplekken zullen straks via Direct Access een connectie maken met het netwerk. Voordat ze dat kunnen zullen ze een 6over4 tunnel willen opzetten en het IPv6 verkeer beveiligen met IPSec op basis van een certificaat.

De Direct Access kent drie verschillende 6over4 tunnels:

  • ISATAP
  • 6to4
  • Teredo
  • IP-HTTPS

De laatste tunnel techniek maakt gebruik van een SSL tunnel om IPv6 verkeer te routeren over het IPv4 internet. Windows 7 zal hiervoor eerst de CRL willen controleren. We moeten er dus voor zorgen dat onze CRL distributie locatie van buitenaf bereikbaar is. Hiervoor zul je dus een website moeten hebben op het internet waarnaar je de CRL zult publiceren. Je kunt dit automatisch laten verlopen. In dat geval moet je CA schrijfrechten hebben op de webserver. Je kunt het met de hand doen, dan zul je dus zelf de CRL lijsten moeten kopiëren.

  • Selecteer de server
  • Action => Properties
  • Ga naar de Extensions tab
  • Add
  • Location = http://externe.url/CRT/.crl
  • OK
  • Vink de volgende onderdelen aan:
    • Include in CRLs. Clients use this ti find delta CRL locations
    • Include in the CDP externsion issued Certificates
  • Apply

Nu hebben we de plek aangegeven waar de CRL lijst is te downloaden. Nu moeten we de CA vertellen hoe hij bij deze plek kan komen. Daarnaast zul je de CA toegang moeten geven tot deze plek. Dit doe je door de groep Cert Publishers schrijf- en leesrechten te geven.

  • Add
  • Location = file:\\server\CRT$\.crl
  • Ok
  • Vink de volgende onderdelen aan:
    • Publish CRLs to this location
    • Publish Delta CRLS to this location
  • OK

Restart de ADCS service om de nieuwe aanpassing door te voeren.

Direct Access PKI policy

Als laatste moet je een policy maken die een computer certificaat automatisch uitdeelt. Deze is nodig voor IPSec.

  • Maak of edit een GPO
  • Ga naar Computer\Configuration\Policies\Windows Settings\Public Key Policies\Automatic Certificate Request Settings
  • Action => New
  • Next
  • Select Computer
  • Next
  • Finish

IIS configuren voor CRL distributie

We hebben aan de CA vertelt om zijn CRLs te distribueren via http://externe.url/CRT/.crl. De Direct Access server is een internet facing server dus kan goed gebruikt worden om de CRL lijst te distribueren. Heb je dus niet voor een andere server gekozen dan kun je hem dus daarvoor gaan gebruiken.

Aanmaken CRL share

Als eerste gaan we een plek maken waar de CRL lijsten kunnen worden opgeslagen. Maak hiervoor de directory C:\Inetpub\wwwroot\crl Een ander locatie mag ook, maar dan zul je hem moeten toevoegen aan de website.

  • Select de folder die je net hebt aangemaakt, (C:\Inetpub\wwwroot\crl)
  • Rechtermuis knop => Properties
  • Sharing
  • Advanced Sharing
  • Selecteer: Share this folder
  • Share naam: CRL$
  • Permissions
  • Add
  • Cert Publisher
  • OK
  • Geef Cert Publisher Full Control
  • OK
  • OK
  • Ga naar de Security tab
  • Edit
  • Add
  • Cert Publisher
  • OK
  • Geef Cert Publisher Full Control
  • OK
  • OK

Aanpassen CRL website

Het opvragen van de certificaten vanaf een website kan alleen maar als de website Double Escaping toestaat. Default staat IIS 7.0 dat niet toe.

Open IIS Manager

  • Open de default website
  • Open CRL
  • In de contents pane zie je de Configuration Editor staan. Dubbel klik deze
  • Bovenin zie je section staan. Vul het volgende in: system.webServer/security/requestFiltering.
  • Zorg dat allowDoubleEscaping op True komt te staan
  • Action => Apply

Voordat je de IIS manager sluit controleer je een aantal zaken:

  1. De website moet “anonymous access” toestaan
  2. Zit de website achter een reverse proxy moet deze ook anonymous access toestaan.
  3. Op NTFS niveau moet “everyone” toegang hebben tot de CRL lijsten.

Publiceer de CRL lijst

Nu de CRL locatie klaar is kun je de CRL lijst distribueren naar deze nieuwe locatie. Log hiervoor aan op de ADCS server.

  • Open de ADCS mmc
  • Selecteer Revoked Certificates
  • Action => All tasks => Publish
  • New CRL
  • OK

Als alles goed gegaan is zie je nu twee CRLs staan in de CRL directory. Direct Access gaat niet werken als de client de CRL lijsten niet kan downloaden. Controleer dit met PKIView. Hierin mogen geen foutmeldingen of waarschuwing voor komen. Heb je wel meldingen of waarschuwing los deze dan eerst op.

Aanvragen SSL certificaat voor de IP-HTTPS server

Als laatste gaan we een SSL certificaat aanvragen voor IP-HTTPS. Dit kun je doen bij je eigen CA of bij een online CA. In deze blog doe ik het bij mijn eigen CA. De template hebben we eerder in deze blog aangemaakt.

  • Start, type MMC
  • Enter
  • File => Add/Remove Snap-in
  • Selecteer Certificaten
  • Add
  • Computer Account
  • Next
  • Local Computer
  • Finish
  • Ga naar de Certificates (Local Computer)\Personal
  • Action => All Task => New Certificate
  • Select Web Server 2008
  • Druk op More Information is required to enroll for this certificate
  • Op de subject tab van de Certificate Properties zie je het veld Subject Name staan. Hier kun je verschillende typen kiezen. Selecteer Common Name
  • Vul zowel je interne als je externe URL in.
  • Onder Alternative name selecteer DNS
  • Vul opnieuw je interne en externe URL in.
  • OK
  • Enroll
  • Finish

Je hebt nu een certificaat aangevraagd voor IP-HTTPS.

In mijn volgende blog gaan we direct access configureren.

Installatie Direct Access Deel 1: De voorbereiding

Geplaatst op 2-2-2010 19:37 door Martijn Bellaard

Ik ga in een aantal aankomende blogs aandacht besteden aan hoe je DirectAccess moet configureren. Voor meer informatie over wat DirectAccess is kijk op:

NGN Evenement
"Windows 7; uitdagingen en kansen
 van de nieuwe werkplek." op 15 april
Je kan je hier inschrijven

Martijn Bellaard presenteert daar
ook en behandelt oa Direct Access,
bitlocker en IPv6
Leden slechts €50,-
Niet-leden €99,-
Lid worden kan hier

http://www.microsoft.com/windowsserver2008/en/us/directaccess.aspx

In mijn eerste blog behandel ik de stappen die je moet ondernemen om jou omgeving voor te bereiden op DirectAccess. In de twee blog sta ik dan stil bij PKI voor DirectAccess en in mijn laatste blog doorlopen we de DirectAccess Wizard.

Voordat je aan deze blog begint is het verstandig om je in een aantal IPv6 technieken te verdiepen. Ik behandel ze namelijk niet in deze blog. De volgende IPv6 technieken komen in de blogs voor:

  • IPv6 routing
  • IPv6 nummers
  • IPv6 Teredo
  • IPv6 6to4
  • IPv6 ISATAP

Software

Direct Access is een nieuwe functionaliteit van Windows 2008 R2 en combinatie met Windows 7. Deze twee operating systems heb je dan ook nodig voor DirectAccess. DirectAccess werkt niet samen met een andere OS (versie).

Basis Setup

In de basis setup ga ik uit van minimaal 3 servers en een werkstation. De eerste server is een Windows 2008 R2 Domain Controller (DC) en Certificate Authoritie (CA/PKI). De tweede server is een Windows 2008 R2 Direct Access Server, de derde server is een Windows 2008 R2 IIS server die zowel intern als extern te benaderen is. De client is minimaal Windows 7 Enterprise Domain member.

DC/CA setup

De basis setup van de DC/CA is een Windows 2008 R2 Enterprise editie. Om een volledige ondersteuning te krijgen voor de CA is een Enterprise editie noodzakelijk.

http://technet.microsoft.com/en-us/library/cc772393(WS.10).aspx

Voordat we kunnen beginnen moet je eerst een Windows 2008 R2 met de volgende rollen installeren:

  • -Active Directory Domain Service (ADDS)
    • Zorg voor een werkende domain, inclusief DNS.
  • DHCP Server
    • Zorg dat deze een scope heeft om uit te delen.
  • Active Directory Certification Services (ADCS)

Config IPv6

IPv6 is een voorwaarde om van DirectAccess gebruik te kunnen maken. In deze guide maak ik gebruik van de Unique Local Address range FC00:1310:1969:0001/64. Geef DC de volgende IPv6 config:

IPv6 Nummer: FC00:1310:1969:0001::1/64
Gateway FC00:1310:1969:0001:1::1
DNS: FC00:1310:1969:0001::1

Dit is voorlopig alle configuratie die we doen voor IPv6 op de Domain Controller

Configuratie van Active Directory Domain Service (ADDS)

Nu we IPv6 hebben geconfigureerd op de DC kunnen we de ADDS gaan voorbereiden op DirectAccess. Hierbij ga ik er vanuit dat je al een draaiende Domain hebt.

DirectAccess is een nieuwe “dienst” voor je gebruikers. Nu zul je standaard niet willen dat elke gebruiker/computer toegang krijgt via DirectAccess. Via een Global Security Group geef je de computers toegang met DirectAccess tot het netwerk. Daarnaast zal ik straks ook een aantal policy’s moeten maken voor Direct Access. Hiervoor maak ik een aparte OU aan. Als laatste plaats ik DirectAccess Global Security Group in de OU.

  • Log in op de Domain Controller
  • Open Active Directory Users and Computer
  • Selecteer het domain
    • ActionNew - Organizational Unit
    • Name: DirectAccessOU
  • Selecteer DirectAccessOU
  • Action – New - Group
    • Group name: DAComp
    • Group Scope: Global

DNS config

Direct Access maakt gebruik van verschillend IPv6 in IPv4 tunnel technieken om IPv6 verkeer over een IPv4 netwerk te transporteren. Eén van die technieken is ISATAP. We moeten er voor zorgen dat ISATAP wordt ondersteund door de DNS server.

  • Log in op de Domain controller
  • Open een command prompt als Administrator
  • Voer het volgende commando in: Dnscmd /config /globalqueryblocklist wpad

Windows Firewall

Als laatste moeten we de Windows firewall aanpassen zodat Teredo ICMPv4 en ICMPv6 verkeer doorgelaten wordt. Dit moeten we doen via een GPO, zodat niet alleen de server, maar ook werkstations worden aangepast.

  • Open de Group Policy Management Console
  • Selecteer het domain
  • Action è Create a GPO in this domain, and link it here
    • Name: DirectAccess
  • Selecteer DirectAccess
  • Action - Edit
  • Ga naar Computer\Configuration\Policies\Windows Settings\Windows Firewall with Advanced Security\ Windows Firewall with Advanced Security

ICMPv4 Inbound

  • Inbound Rule
  • Action - New
  • Custom
  • Next, Next
  • Protocol type ICMPv4
  • Customize
  • Selecteer Specify ICMP type, Echo Request
  • OK
  • 4x Next
  • Name: ICMPv4 inbound 
  • Finish

ICMPv6 Inbound

  • Inbound Rule
  • Action - New
  • Custom
  • Next, Next
  • Protocol type ICMPv6
  • Customize
  • Selecteer Specify ICMP type, Echo Request
  • OK
  • 4x Next
  • ICMPv6 inbound
  • Finish

ICMPv4 Outbound

  • Outbound Rule
  • Action è New
  • Custom
  • Next, Next
  • Protocol type ICMPv4
  • Customize
  • Selecteer Specify ICMP type, Echo Request
  • OK
  • 4x Next
  • ICMPv4 Outbound
  • Finish

ICMPv6 Outbound

  • Outbound Rule
  • Action - New
  • Custom
  • Next, Next
  • Protocol type ICMPv6
  • Customize
  • Selecteer Specify ICMP type, Echo Request
  • OK
  • 4x Next
  • ICMPv6 Outbound 
  • Finish

De eerste stap naar DirectAccess is gezet. In mijn volgende blog behandel ik de PKI infrastructuur voor DirectAccess

Martijn Bellaard

Certificaat request maken zonder IIS

Geplaatst op 6-1-2010 12:27 door Martijn Bellaard

Als ik een TMG implementatie doe en ik moet een SSL website publiceren, dan moet ik beschikken over een prived key van de SSL website. Het komt dan soms voor dat een certificaat opnieuw moet worden aangevraagd. Het aanvragen van een certificaat kan leiden tot wat uitdaging. Vaak wordt zo een certificaat gemaakt op een IIS server. Maar als je geen IIS server tot je beschikking hebt dan is dat lastig. Nu kun je er voor kiezen om IIS op TMG te installeren, maar dit is geen optie.

Het wordt nog lastiger als je een certificaat wilt hebben voor bijvoorbeeld IPSec of code signing. Hiervoor kun je dan gebruik maken van speciale tools, maar deze moet je dan wel net tot je beschikking hebben.

Maar gelukkig is er een andere mogelijkheid. In deze blog behandel ik deze optie voor SSL. Het is ook mogelijk om voor ander zaken een certificaat aan te vragen.

  • Als eerste log je aan op een Windows 7 werkstation of Windows 2008 (R2) server.
  • Start een nieuwe MMC op.
  • Laadt de certificaten snap-in
    • File è Add/Remove Snap-in
    • Selecteer Certificates è ADD
    • OK en Finish
  • Je kunt deze aanvraag vanuit de gebruiker doen.
    • Selecteer Personal
    • Action, All Tasks, Advanced Operations, Create Custom Request
    • Op het eerste scherm: Next
    • Selecteer: Proceed without enrollment policy
  • Nu kun je kiezen uit twee “templates”
    • (No template) CNG Key
    • (No template) Key

CNG key is een “nieuwe” manier voor het opslaan van de sleutels (certificaten). Deze methode heb je alleen op Windows Vista of hoger (http://msdn.microsoft.com/en-us/library/bb931355(VS.85).aspx).
De TMG ondersteunt dit type certificaat niet. We kiezen  dus voor Legacy en gaan het opslaan als een PKCS #10 formaat. Hierbij geldt wel dat de CA waar je het certificaat gaat aanvragen dit formaat moet ondersteunen.

  • Next

Nu komt het “lastige” gedeelte. We moeten nu zelf gaan aangeven waar de key voor dient.

  • Klik op “Details”
  • Properties

We gaan nu de properties van het certificaat invullen.

  • Tabblad General
    • Friendly name: Een naam voor het certificaat. Maakt niet uit wat.
  • Tabblad Subject
    • Subject name
      • Type: Common Name
      • Value: De URL van de website
  • Tabblad Extensions
    • Key Usage: Digital signature
    • Extended Key Usage (Application policies): Server Authentication
    • Basic Constraints: Enable this extension, de rest laten we default
  • Tabblad Private key
    • Key Options: Make private key Exportable, we willen hem later kunnen exporteren en importeren op andere server. Je kunt hier ook kiezen voor een grote Key size. Default is 102.
  • We zijn nu klaar met alles invullen, druk op OK
  • Next
  • Sla het nu op als Base 64 bestand.

Nu heb je een request file zoals deze door bijvoorbeeld IIS wordt gemaakt. Hiermee kun je naar je eigen SSL provider gaan en een certificaat request doen. Het bestand dat je terug krijgt importeer je weer op dezelfde computer als waar je het request hebt gemaakt. Nu kun je de private key exporteren en ergens anders importeren.

Martijn Bellaard

Waarom zou ik vandaag aan IPv6 beginnen?

Geplaatst op 21-12-2009 21:51 door Martijn Bellaard

Als ik met een ICT manager of een beheerder praat over IPv6 krijg ik vaak de bovenstaande opmerking terug. Tenslotte duurt het nog bijna twee jaar voordat IPv4 nummers op zijn. Tenminste, dan is de IANA door zijn nummers heen. Daarna heeft de RIPE zeker nog een voorraad voor een ½ jaar. Als die dan op zijn heeft een ISP nog wel wat nummers over. Je moet daar dan wel flink voor gaan betalen, maar je krijgt dan wel 1 IPv4 nummer te huur per maand. Samenvattend heb je waarschijnlijk  nog krap 3 jaar. Er van uitgaande dat de crisis nog even door gaat. Waarom dan vandaag aan IPv6 beginnen? Hier zijn twee redenen voor.

Reden 1: Applicaties

In theorie heeft de invoering van IPv6 geen effect op de applicatie. Tenslotte is IPv6 een netwerk laag protocol en bevindt een applicatie zich op de “application layer”. Helaas is dit niet altijd zo in de praktijk. Applicaties maken op verschillende manieren gebruik van de netwerk laag. Vooral bedrijf kritische applicaties maken vaak gebruik van het netwerk. Dit komt omdat het hier dan gaat om client server applicaties. Applicaties waarbij op de gebruikers desktop een client draait die over het netwerk contact zoekt met een backend server. Je kunt hierbij denken aan een SBC of een CRM omgeving. In dit soort omgevingen is er een serverapplicatie die luistert naar verkeer op zijn eigen socked. Een socked bestaat uit een IP nummer en een Port nummer. De applicatie moet dus de mogelijkheid hebben om een socked aan te leggen op basis van IPv6.

Daarnaast zijn er ook monitoring applicaties. Deze applicaties monitoren de ICT infrastructuur en leggen  verschillende gegevens vast. Vaak bevatten deze gegevens ook IP nummers. De database van monitoring systemen moeten dus worden aangepast om naast IPv4 informatie ook IPv6 informatie op te slaan.

Reden 2: hardware

Hardware is een ander verhaal. Het type hardware waar ik het nu over heb is het type hardware die hun eigen OS hebben. Het type hardware dat over het netwerk te benaderen is en gegevens verzameld. Dit kan dus een bewakingscamera zijn, maar ook een computer die bij een fabrieksinstallatie staat. De ontwikkelaar van dit type hardware zal vaak kiezen voor minimale hardware eisen met de maximale performance. Om dit te bereiken zal hij gebruik maken van minimale opslag. Soms worden ze zelfs zover geknepen dat alles er net op past. Nu moet er opeens extra ruimte komen om naast IPv4 ook IPv6 te praten. Daarnaast zal de ontwikkelaar zich ook moeten gaan verdiepen in IPv6 en zijn eventuele eigen OS aanpassen zodat deze IPv6 snapt.

Conclusie

Er zijn dus twee redenen om te beginnen aan IPv6, hardware en applicaties. Het is dus vandaag van belang dat je twee dingen doet. Ten eerste zul je al je hardware en applicaties moeten gaan testen op IPv6 ready. Maak dan een lijst wat niet IPv6 ready is en ga hiermee aan de slag. Daarnaast zal je bij de aanschaf van nieuwe applicaties en hardware moet onderzoeken in hoeverre het klaar is voor IPv6. Vraag hierbij aan je leverancier of er ondersteuning is voor IPv6 en zo niet, wanneer het dan wel komt. Komt hierop een negatief antwoord dan moet je nadenken wat het meest verstandig is.

VPN Generaties

Geplaatst op 15-12-2009 21:21 door Martijn Bellaard

VPN is een techniek die al een hele tijd mee gaat. De VPN techniek is bedacht om thuiswerkers toegang te geven tot het bedrijfsnetwerk of om twee locaties over een openbaar netwerk aan elkaar te koppelen. De voorloper van de VPN was de modem. Hiermee bel je in op je bedrijfsnetwerk over een “openbaar” telefoonnetwerk. Hiervoor heb je een modem, een telefoonaansluiting en inbelsoftware nodig. Met de komst van internet en een vaste aansluiting deed de VPN technologie zijn intrede. Hiermee is het mogelijk om over het internet een veilige verbinding te maken met het bedrijfsnetwerk. In deze blog wil ik eens stil staan bij de verschillende VPN generaties.

De eerste generatie (internet) VPN

De eerste generatie VPN zijn VPN’s zoals PPTP (MS), L2F (Cisco), IPSec en L2TP. Om gebruik te kunnen maken van deze VPN technologie moet er op de gebruikerswerkplek een client geïnstalleerd en/of geconfigureerd worden. Dit is een handeling die voor de meeste eindgebruikers een te complexe handeling is. Daarnaast moet je ook vaak admin rechten hebben. Beheerders stellen daarom vaak deze VPN in voor de gebruiker en vertellen dan deze gebruiker wat hij moet doen.

Als een gebruiker dan thuis is kan hij of zij  over internet de VPN opzetten en het bedrijfsnetwerk benaderen. Als ze ditzelfde vanaf een ander bedrijfsnetwerk proberen lukt dit niet altijd. De reden hiervan is dat de firewall vaak alleen HTTP en HTTPS verkeer doorlaten. De eerste generatie VPN gebruikt juist andere poorten en kunnen dus niet door deze firewalls heen.

Bij de eerste generatie VPN is het vaak alles of niets. Als organisatie kun je niet bepalen welk verkeer er wanneer over de VPN mag gaan. Als de gebruiker een VPN heeft opgezet kan al het verkeer door de VPN heen. Vaak kwamen VPN’s dan ook uit in een VPN wolk. Tussen de VPN wolk en het interne netwerk zit dan een firewall. Ook wordt split-tunneling toegepast en kan een gebruiker niet meer het internet op als de VPN openstaat. Hierdoor is het niet mogelijk om vanaf het internet, via de gebruikers PC een connectie te maken met het bedrijfsnetwerk.
De eerste generatie VPN kent dus drie nadelen:

  1. Ze moeten door een beheerder worden geconfigureerd
  2. Ze gaan niet door elke firewall heen
  3. Het gefaseerd toegang verlenen op basis van een aantal controles en regels, al zijn er in een later stadium wel oplossingen geweest die dit konden. 

De tweede generatie (internet) VPN

De tweede generatie VPN is de SSL-VPN. Een SSL-VPN maakt gebruik van het SSL protocol om de client aan het bedrijfsnetwerk te koppelen. Door gebruik te maken van SSL gaat het netwerkverkeer over  HTTPS (443) en deze staat wel open op de meeste firewalls. Hierdoor was het wel mogelijk om (bijna) overal de VPN op te bouwen.
Bij een SSL-VPN kwam ook de portal website. Een gebruiker logt in op een portal website. Deze portal website start dan met een client controle. Dit gebeurt met een ActiveX of Java plugin. Deze verzamelt dan gegevens over de status van de client. Is deze lid van het Domain? Welk operating system wordt er gebruikt? Is er een anti-virus software aanwezig? Aan de hand van deze gegevens en de gebruiker gegevens wordt er vervolgens bepaalt tot welke bedrijfsgegevens een gebruiker toegang krijgt. Hierdoor is het mogelijk dat een gebruiker in een internetcafé zijn mail kan lezen. Later in het hotel op zijn eigen laptop krijgt hij ook toegang tot de CRM website.

Naast het feit dat dit soort portals het mogelijk maken om gebruikers gefaseerd toegang te verlenen vragen ze ook om een minimale configuratie. De SSL-VPN wordt opgebouwd op basis van een Java of ActiveX plug-in client. In theorie hoeft een gebruiker alleen in te loggen op de portal om de VPN te starten. Maar omdat internet een onveilige plek is worden browsers steeds veiliger gemaakt. Hierdoor is het steeds lastiger of soms onmogelijk om de Java en ActiveX plug-in client te installeren. Gebruikers moeten dan lastige handelingen verrichten om de VPN aan de praat te krijgen. Handelingen die ze vaak niet mogen doen in een internetcafé.
De tweede generatie VPN loste dus twee van de drie nadelen op, maar het installeren is nog vaak lastig en soms zelfs onmogelijk als een gebruiker geen admin rechten heeft. Ook is dit een VPN technologie met veel overhead, omdat het IP pakketje helemaal ingepakt wordt in een SSL pakketje.

De derde generatie VPN

Met de komst van IPv6 en Windows 2008 R2/Windows 7 zien we een nieuwe VPN technologie ontstaan.  Een VPN technologie waarbij de gebruiker altijd een VPN connectie heeft als hij een internet connectie heeft. Op het moment dat de client aangezet wordt zal deze een VPN connectie opbouwen met het bedrijfsnetwerk. Hiervoor zijn er geen handelingen meer nodig van de eindgebruiker. De VPN komt zelfs op, voor het aanloggen. De derde generatie VPN technologie zorgt er voor dat het interne netwerk uitgebreid wordt over het internet en dat elke client altijd een connectie heeft met het interne netwerk.
De grote voordelen van deze techniek is dan ook dat er geen gebruikers acties nodig zijn om de VPN op te bouwen. De gebruiker zal dan ook geen verschil merken tussen op kantoor werken en remote werken. Als beheerder kun je ook nu eenvoudiger remote support geven aan de gebruiker. Alle tools die je normaal gebruikt om gebruikers binnen je interne netwerk te ondersteunen kun je nu ook gebruiken voor mobiele gebruikers. Ook zaken als updates en policy’s kun je naar de client PC pushen zonder dat de gebruiker hoeft in te loggen.

Mobile IPv6 (MIPv6)

MIPv6 is een techniek dit speciaal bedoeld is voor mobile gebruikers. Gebruikers die geen vaste werkplek hebben en dus regelmatig op verschillende locaties zijn. MIPv6 zorgt er voor dat netwerk verkeer netjes over een tunnel verstuurt worden naar het bedrijfsnetwerk. Als beveiliging wordt er dan gebruik gemaakt van IPSec. (Er is ook een MIP). Voor een MIPv6 implementatie zul je op de client MIPv6 moeten configureren.

Direct Access.

De tweede techniek is Direct Access. Deze techniek heeft Microsoft gelanceerd met de komst van Windows 2008 R2 en Windows 7. Net als MIPv6 maakt Direct Access gebruik van IPv6 en IPSec om de VPN tunnel op te bouwen. Hij heeft geen IPv6 tegenhanger, maar met verschillende IPv6 tunneltechnieken is het wel mogelijk om met Direct Access over een IPv4 only netwerk te werken.

De derde generatie is het dus?

De derde generatie VPN klinkt als de ideale VPN technologie. Een VPN technologie die niet vraagt om enige gebruikers interactie. De gebruiker kan op een veilige manier bij al zijn bedrijfsgegevens en het enige wat hij hoeft te doen is zijn PC aanzetten. Toch zijn er twee addertjes onder het gras. Direct Access werkt alleen op Windows 7 en Windows 2008 R2 en er zijn nog weinig MIPv6 implementaties. Ook geldt er voor beide technieken dat je als beheerder eerst de client zal moeten configureren. Als een gebruiker dus in een internetcafé zit is het voor hem niet mogelijk om van deze technieken gebruik te maken. Daarnaast is de toegang weer op de eerste generatie VPN niveau. Gefaseerde toegang is weer een stuk lastiger. Al zien we wel dat deze technieken steeds beter worden en dus ook toegankelijker.

Conclusie

Als we door de generatie VPN technieken heen gaan zien we dat ze steeds gebruiksvriendelijk worden voor de eindgebruiker.  De eerste VPN clients moesten nog worden geconfigureerd op de desktop. Bij de laatste VPN clients wordt de  VPN in zijn geheel op machine niveau geconfigureerd. Welke is dan de beste. Die vraag is niet eenduidig te beantwoorden.

De eerste generatie VPN technieken is ideaal voor Site to Site VPN. In dit soort situaties heb je als beheerder de behoefte aan een stabiele en “eenvoudige” VPN techniek. Deze moet altijd aan staan en heeft niet te maken met gefaseerde toegang of “roaming users” die inloggen in een internetcafé. In dit soort situaties gaat het juist om verschillende locaties die je aan elkaar wilt koppelen door middel van een VPN. Device en software, zoals de Threat Management Gateway zullen gebruikt worden voor deze VPN technologie.

De tweede generatie VPN technieken zal gebruikt worden door gebruikers die niet de beschikking hebben over een “eigen” client. Als een gebruiker vanaf een openbare plek, zoals een internetcafé, toegang wil krijgen tot zijn bedrijfsgegevens dan is een SSL-VPN op basis van een portal, zoals de Unified Access Gateway, een mooie oplossing. De beheerder kan heel nauwkeurig bepalen tot in hoeverre een gebruiker toegang krijgt. Welke gegevens mag hij wel benaderen en welke niet en de gebruiker kan vanaf elke browser en elk OS toegang krijgen.

De derde generatie VPN is de oplossing voor je laptop. Als gebruiker heb je altijd connectie, als je een internet verbinding heb. Als beheerder kun je laptops goed beheren en onderhouden zonder dat een gebruiker regelmatig aanwezig moet zijn. Ook hier kun je de Threat Management Gateway of de Unified Access Gateway inzetten. Vooral de laatste biedt veel voordelen als Direct Access gateway.


Martijn Bellaard
 

Het boek "IPv6 voor beheerders" is uit

Geplaatst op 19-11-2009 20:32 door Martijn Bellaard

Veel van mijn blogs bij de NGN gaan over IPv6. Dat komt omdat ik er van overtuigd ben dat IPv6 eraan komt en we er ons (lees wij beheerders en IT Consultants) in moeten verdiepen. Dat ik niet de enige ben die deze mening is toegedaan is ook wel duidelijk. Binnen de NGN zijn er steeds meer mensen die vinden dat we moeten kijken naar IPv6. Eind 2008 heeft Ernst mij dan ook gevraagd of ik een IPv6 boek voor NGN Press wilde schrijven. Ik heb hier toen "ja" op gezegd en ben het afgelopen jaar druk bezig geweest met het schrijven van mijn boek. Het goede nieuws is dat hij klaar is en nu bij de drukker ligt!

Wat kan je verwachten?

Toen Ernst mij vroeg of ik een IPv6 boek wilde schrijven was het al snel duidelijk op welk niveau ik het boek wilde schrijven. Ik wilde niet het zoveelste IPv6 protocolanalyse boek schrijven, maar juist een boek voor systeembeheerders. Een boek dat aan de ene kant helder IPv6 uitlegt zonder helemaal in te duiken op de bits en bytes en aan de andere kant een boek dat een beheerder een handreiking doet hoe om te gaan met IPv6 en natuurlijk waarom IPv6 nodig is. Je moet straks aan je manager kunnen uitleggen waarom hij moet investeren in IPv6, terwijl hij er nu niet direct geld er mee verdient. Ook ga ik in op hoe je moet migreren naar IPv6. Welke stappen je moet ondernemen en waar je op moet letten.

Ik heb het boek in 3 delen verdeeld. Deel I gaat over de geschiedenis van IPv4 en waarom we nu IPv6 nodig hebben. In Deel II behandel ik de basis van IPv6: Wat is een IPv6-nummer en hoe kom je er aan? In Deel III ga ik dieper in op IPv6. Hierin behandel ik zaken zoals routing van IPv6, DHCPv6, applicaties en hoe te migreren naar IPv6.

Hoe kom ik aan het boek?

Zoals ik al vertelde heb ik dit boek geschreven voor de beheerders en hoop ik dat deze blog je nieuwsgierig maakt naar het boek. Het boek komt dit jaar nog in de winkels te liggen voor €39,90. Maarrrr, ik ga voor ze in de winkels liggen op 3-12 een boekpresentatie geven, een zogenaamde 'launch-party'. Je kan gratis naar deze launchparty komen en dan kan je daar het boek voor €27,50 als allereerste kopen. Sterker nog, als je twee boeken wilt dan kost het nog maar €50,- :-) Ik zou het leuk vinden om je daar te zien, je mijn boek te geven en te spreken over IPv6.

Kan je niet komen, het boek is ook online te bestellen, tot 3 december voor de introductieprijs die hierboven staat.

Natuurlijk mag je mij ook mailen als je nog vragen hebt over het boek. Ik hoor ze graag. Martijn

Is mijn applicatie IPv6 Ready?

Geplaatst op 24-10-2009 21:22 door Martijn Bellaard

Moderne operating systems, zoals windows 7, zijn IPv6 ready.  Moderne routers, hardware, firewalls en switches zijn IPv6 ready. Maar dan zijn we er nog niet. We hebben namelijk ook nog applicaties die gebruik maken van het netwerk. Hoe zit het daar mee?
In deze blog wil ik dit onderwerp behandelen. Hiervoor maak ik onderscheid tussen twee type applicaties voor dit onderwerp:

  • Client applicaties. Dit zijn applicaties die bij de gebruiker op de desktop aanwezig zijn. Deze applicaties maken gebruik van een backend system.  Hieronder vallen applicaties, zoals een tekstverwerker, CRM clients, een browser, maar ook remote beheer applicaties
  • Server applicaties of backend systemen. Dit zijn applicaties die centraal op een server worden aangeboden.  De gebruiker  maakt met een client applicatie een connectie over het netwerk met de server applicatie. Denk hierbij aan een Webserver, SQL server of file server.

Client applicaties.

Als een client applicaties gebruikt van het netwerk zal hij dit doen op basis van een IP nummer of naam (bijvoorbeeld database.domain.local of \\mijnserver\bestanden). We weten dat een naam omgezet wordt door de DNS of WINS server in een IP nummer. De client applicatie moet dus een IPv6 nummer snappen en  begrijpen dat het dan gaat om een IPv6 nummer. Nu is het zo dat voor de meeste applicaties gebruik wordt gemaakt van de netwerk stack van het operating system. Is het operating system IPv6 ready dan zullen deze applicaties ook IPv6 ready zijn. Denk hierbij aan Word of Excel. Wil je een bestand openen die ergens op een share staat dan zal Word aan Windows vragen het bestand op te halen. De netwerk stack van Windows zal de daadwerkelijke netwerk connenctie opbouwen.

Daarnaast zijn er applicaties die direct een eigen TCP/IP socket maken. Dit soort applicaties maken direct gebruik van de TCP/IP stack en zullen dus IPv6 ondersteuning nodig hebben. Een mooi voorbeeld is een proxy client. Veel proxy clients maken een connectie op basis van een IP nummer en poort 8080. Dit soort applicaties zullen dus getest moeten worden.

Server applicaties

Een server applicatie luistert op het netwerk of er een client applicatie is die met hem een connectie wil opzetten. Dit doet hij vaak op basis van een IP nummer en poort nummer ofwel een TCP/IP socket. Bijvoorbeeld FTP, per IP nummer kun je één FTP server hebben. Deze luistert vervolgens of er een client is die over poort 21 een connectie op wil zetten. Ga je dus gebruik maken van IPv6, dan moet hij dus niet alleen luisteren op zijn IPv4 nummer maar ook op zijn IPv6 nummer.

Conclusie

Zowel client als server applicaties maken gebruik van het netwerk en je zult dus goed moeten controleren of ze IPv6 snappen en kunnen communiceren over IPv6. Hierbij moet je letten op de volgende zaken:

  1. Kan ik een IPv6 nummer toewijzen aan de applicatie
  2. Luistert de applicatie over IPv6, is er een socket aanwezig. Dit kun je snel zien met netstat

De Forefront TMG als SMTP Gateway

Geplaatst op 30-9-2009 21:45 door Martijn Bellaard


Exchange 2007 kent een aantal verschillende rollen. Eén van die rollen is de Edge server. Het idee achter de Edge server was dat je deze in de DMZ zet en dat  alle mail, dat binnenkomt, op de Edge server afgeleverd wordt. Hij kijkt of de mail spam is. Als er vervolgens ook FSE op geïnstalleerd wordt kan hij ook nog alle inkomende mail op virussen controleren. Op die manier heb je een mooie oplossing om al je SPAM en virussen, in de inkomende mail, buiten de deur te houden.

Naast het tegenhouden van de “verkeerde” mail voor de gebruiker,  willen gebruikers ook overal toegang tot hun mail. Om dit mogelijk te maken wordt er OWA, ActiveSync en Outlook Anywhere gebruikt. Om dit mogelijk te maken wordt dan ISA 2006 ingezet. ISA 2006 publiceert dan deze functionaliteiten.

In een beetje exchange omgeving heb je al snel twee servers in de DMZ staan. Eén voor de Edge en één voor ISA 2006. Twee servers die waarschijnlijk weinig doen. Een doorsnee Edge server kan duizenden mailtjes per dag aan en een ISA server kan makkelijk enkele honderden concurrende users. Als we dan gaan kijken naar een organisatie van tussen de 100 t/m 500 gebruikers is het best zonde dat je twee verschillende servers in je DMZ moet neerzetten voor mail functionaliteit. Wil je het ook nog hoger beschikbaar maken dan kom je al snel uit op 4 servers. 4 servers om mail te kunnen ontvangen en te bekijken. Dan reken ik voor het gemak de Hubtransport server, Client Access Server en Mailbox Database Server niet mee.

TMG en Exchange


 

De TMG kan ook dienst doen als SMTP gateway. Hierbij kun je gebruik maken van de Edge server van exchange. Dit houdt in dat je nu het beste van beide werelden gaat krijgen. Aan de ene kant gebruik je de TMG als firewall met alle voordelen van de TMG. Daarnaast gebruik je de Edge server als SMTP gateway met alle voordelen van de Edge server.


 

Hoe werkt het

 

De manier waarop dit werkt is redelijk eenvoudig. Je installeert eerst de TMG server. Daarna installeer je de exchange 2007 edge (2010 mag ook) server. Als laatste installeer je FSE. Hierbij moet je opletten dat je dan wel de FSE installeert die meegeleverd is met de TMG.

Installatie

De installatie vraagt om wat extra aandacht. De aangeraden manier is eerst exchange en FSE en daarna TMG.


Stap 1) Installeer powershell en ADLDS

Stap 2) Installeer exchange edge role.

Stap 3) Installeer FSE die met TMG wordt meegeleverd.  Om dit te doen moet je FSE eerst uitpakken en dan installeren met een answer file 

 Commando 1) cdrom:\ FPC\PreRequisiteInstallerFiles\FSE\SetupFSS.exe /x. è Uitpakken in c:\temp\fse

 

Commando 2) c:\temp\fse\setup.exe /p /a cdrom:\FPC\PreRequisiteInstallerFiles\FSEanswerfile.xml


Stap 4) Installeer de TMG

Na de installatie kun je een Edge Subscription doen en zal de Edge server gesynchroniseerd worden met de je interne exchange organisatie en Active Directory.

Conclusie


 

Met de TMG kun je als organisatie nu één (of twee met NLB)  server neerzetten als “front-end” server voor je Exchange omgeving. Dit maakt het beheer eenvoudiger voor kleinere organisaties en zijn er minder servers nodig. Voor grote organisaties zul je waarschijnlijk nog steeds kiezen voor een aparte  OWA en SMTP gateway. In dat geval biedt de TMG een extra stuk beveiliging voor de Exchange Edge Server.
 
 
 

 

Hoe kom ik aan mijn IPv6 nummer

Geplaatst op 18-9-2009 22:18 door Martijn Bellaard

Ik heb al aardig wat blogs geschreven over de wat’s en hoe’s van IPv6, maar voordat je aan de slag kan  met IPv6 zul je eerst een IPv6 nummer moeten hebben. Nu zijn er gratis IPv6 tunnel services op internet. Kijk maar eens op http://go6.net/4105/freenet.asp , maar wat als je nu niet een tunnel wilt. Een goede reden hiervoor is dat een tunnel nooit de performance haalt van een directe verbinding. Dan zul je bij je ISP moeten aankloppen en dat dit ook niet direct goed gaat heb ik pas zelf ondervonden. In deze blog wil ik daar eens bij stil staan.

Waarvoor

 Mijn werkgever heeft  een demo-omgeving (www.virtuall.nl). Deze demo-omgeving draait in een datacenter. In deze omgeving wilde ik graag het functioneren van IPv6 kunnen demonstreren. Daarnaast was er besloten de huidige netwerk apparatuur te vervangen. Deze is volledig IPv6-ready dus kunnen we ook IPv6 implementeren.

De eerste aanvraag

Na een kort overleg met de beheerder van onze demo-omgeving, ging de aanvraag richting onze provider. We waren de eerste (niet helemaal onverwacht), maar ze waren bezig met een  IPv6 project. Dit is positief, sommige ISPs komen niet verder dan “we denken er aan”. Dus ik was hoopvol. Ze beloofden ons op de hoogte te houden.  Het heeft toch nog een tijdje geduurd, maar uiteindelijk kwam het verlossende mailtje. We kregen onze IPv6 range. De beheerder van de demo-omgeving was blij, want het was een /64 range. O nee dacht ik, dat is niet goed.

Hoezo O nee?

Wat is er nu mis met die /64? Dat was wat de beheerder graag wilde weten. “Je kunt met 64 bits toch alle kanten op? Op dit moment hebben we 4 bits!”. Dat is dus niet helemaal correct. Er is namelijk besloten om de laatste 64 bits voor de host de reserveren. Een host ID is dus minimaal 64 bits groot. Als we dus een /64 krijgen betekent dit dat de eerste 64 bits vast staan en de laatste 64 bits niet meer in stukjes gehakt mogen worden. Aangezien we met verschillende VLANs willen gaan werken levert dit dus een probleem op.

De tweede aanvraag

Terug naar de tekentafel en de aanvraag opnieuw ingediend. We willen namelijk een /48 zo dat we ook een aantal subnets kunnen maken. Het mag ook iets minder zijn (/56 bijvoorbeeld), maar liever niet.

/48 zozo!!

Waarom een /48 en niet liever niet een /56 of een /62. Met die laatste kun je nog steeds 4 subnets maken (2^2). Is de DEMO omgeving zo GROOT dat je een /48 moet hebben? Nee, maar er is namelijk besloten dat een SLA (Site-Level Aggregation) er /48 krijgt. Dit idee vind je terug in verschillende RFC’s. De IANA (Top-Level Aggregation of TLA) deelt /16 tot en met /32 uit aan een RIPE die deze dan weer geeft aan een ISP (Next-Level Aggregation of NLA). De ISP kan dan vervolgens aan zijn klanten een /48 geven. Hierbij wordt er niet direct onderscheid gemaakt tussen een bedrijf of particulier. Pas als het bekent is dat het om 1 subnet gaat mag de ISP een /64 uitdelen. In ons geval willen we een aantal subnets aanleggen dus zouden we een /48 moeten krijgen.

Wat kregen we?

Als reactie op onze tweede verzoek kregen we het volgende toebedeeld:
Prefix: 2a02:0bc0:0281::/48
Subnet: 2a02:bc0:0281::0
Default gateway: 2a02:0bc0:0281::1
Dit is bijna goed. We hebben nu een nette /48 gekregen en kunnen gaan subnetten. Toch ben ik nog niet helemaal tevreden.

Wat is er nu nog niet goed?

Op zichzelf is er hier helemaal niks mis mee. Ik kan nu mooi mij subnets maken, maar hoe gaan we (ik en mijn ISP) er voor zorgen dat al die subnets ook vanaf het internet bereikbaar zijn. De enige oplossing is dat mijn ISP 65536 router entry’s in zijn router moet maken (64-48=16 en 2^16=65536). Dit is natuurlijk niet wat mijn ISP wil doen (en begrijpelijk, ik word er zelf ook niet echt blij van).

De derde aanvraag

Opnieuw gingen we terug naar het tekenbord. Op dit moment had ik intensief contact gekregen met onze ISP. Het was voor hun de eerste keer dat ze met IPv6 te maken hadden en ik had aangeboden hen, als het nodig was, van advies te voorzien. Ik gaf ze daarom de volgende twee mogelijke optie’s:

Optie 1) Maak een apart /64 netwerk waarop de routers van de klanten aangesloten worden en routeer daarover de /48 netwerken van de verschillende klanten.

Optie 2) Maak per klant een /64 netwerk met aan de ene kant je eigen router en aan de andere kant de router van de klant. Als ISP bepaal je beide nummers en routeert dan het /48 netwerk naar de router van de klant.


Optie 2 wordt gezien als de beste oplossing en mijn ISP koos hier dan ook voor. Ik kreeg uiteindelijk dan ook de volgende IP nummers toegedeeld:
Virtuall reeks:     2a02:0bc0:281::/48
Virtuall router:    2a02:0bc0:1:281::2
ISP  router:    2a02:0bc0:1:281::1

Ik ben helemaal blij en heb meteen een WS08 R2 ingericht om het te testen. Het werkte meteen en dat heb ik ook laten weten aan mijn ISP.

Conslusie

Nog niet elke ISP heeft zijn IPv6 netwerk klaar. Je zult dus goed moet controleren wat je krijgt. Je moet namelijk minimaal het volgende krijgen:
Eigen Reeks: IPv6 Prefix::/48
Eigen router: IPv6 nummer/64
ISP router: IPv6 nummer/64
De laatste twee moeten in hetzelfde subnet liggen. Anders kan jou router niet hun router bereiken. Veel plezier met je IPv6 aanvraag.


Martijn Bellaard

Wat heeft IPv6 met Windows 2008 en Windows 7 te maken?

Geplaatst op 14-7-2009 08:51 door Martijn Bellaard

De launch van Windows 7 en Windows 2008 R2 laat niet meer lang op zich wachten. Persoonlijk kijk ik al een tijd uit naar deze twee Operating Systems van Microsoft. Als IPv6 geek wil ik ook graag weten hoe het zit met de IPv6 support in deze twee nieuwe Operating Systems. In deze blog wil ik daar eens bij stil staan.

DirectAccess

Over DirectAccess heeft mijn collega Alex al een paar blogs geschreven.
http://blogs.microsoft.nl/blogs/itprocommunity/archive/2009/07/02/directaccess-zelf-bouwen-is-ook-best-cool.aspx

http://blogs.microsoft.nl/blogs/itprocommunity/archive/2009/03/25/directaccess-is-ook-best-cool.aspx

DirectAccess geeft de gebruikers de mogelijkheid om automatisch een IPSec tunnel op te zetten naar hun intranet. Hierdoor hebben gebruikers, zo snel ze internet connectie hebben, altijd een connectie met hun intranet.

Om gebruik te maken van deze nieuwe functionaliteit moet je Windows 2008 R2 als server hebben en Windows 7 als client. Daarnaast werkt DirectAccess alleen over IPv6. Hoe zit het dan als je geen IPv6 connectie hebt? In dat geval zal de client een IPv6 over IPv4 tunnel maken om zo een IPv6 connectie te krijgen. Door deze connectie maakt hij vervolgens weer een IPv6 tunnel.

Teredo

Bij de ontwikkeling van IPv6 is er ook nagedacht over hoe IPv6 over IPv4 getransporteerd zou kunnen worden. Hiervoor zijn er een aantal automatische tunnel mechanismes bedacht. 6to4, een tunnel mechanisme die over public IPv4 nummers werkt. ISATAP, die over privated IPv4 nummers werkt. Beide mechanismes gaan niet door NAT heen. Daarom is er een derde tunnel mechanisme bedacht; Teredo.
Teredo maakt gebruik van een externe server, op het internet, waarmee de client een IPv4 tunnel opzet.  Deze tunnel kan door NAT heen gaan en de client kan op die manier IPv6 verkeer via een IPv4 tunnel door NAT heen transporteren.
In Windows 2008 R2 is er naast de teredo client ook een teredo server aanwezig. Hierdoor heeft een organisatie en ISP de mogelijkheid om aan zijn gebruikers een eigen teredo server aan te bieden. Als je gebruik maakt van DirectAccess wordt er automatisch een Teredo server geconfigureerd.

IP-HTTPS

Naast de drie hier boven benoemde tunnel mechanismes is er een vierde methode bijgekomen, IP-HTTPS.  In dit geval wordt er een SSL tunnel opgezet waardoor het IPv6 verkeer gerouteerd wordt. Ook dit is standaard aanwezig bij DirectAccess en wordt ondersteunt op Windows 2008 R2 en Windows 7.

IPv6 en GPO's

Met de komst van IPv6 en zijn tunnels op de Microsoft platform maken een hoop beheerders zich druk om de automatische tunnels, en terecht. Het kan zomaar gebeuren dat, door een misconfiguratie, een werkstation een tunnel naar buiten opzet. Hierdoor kan IPv6 verkeer ongestraft door de firewall heen. Dit is dan ook vaak de reden om IPv6 uit te zetten. Dit laatste vind ik natuurlijk niet zo slim. Gelukkig zijn er dan ook een aantal GPO settings bij gekomen, speciaal voor IPv6.

GPO setting

Omschrijving

6to4 Relay Name

Welke 6to4 Relay moet een client gebruiken als IPv6 default gateway

6to4 Relay Name Resolution Interval

Hoe moet de 6to4 relay gevonden worden

6to4 State

Hiermee kun je 6t04 aan- en uitzetten

IP-HTTPS State

Hiermee kun je IP-HTTPS aan- en uitzetten.

ISATAP Router Name

Wat is naam van de ISATAP router

ISATAP State

Hiermee kun je ISATAP aan- en uitzetten.

Teredo Client Port

Welke UDP poort gebruikt de client voor teredo

Teredo Default Qualified

Kun je Teredo in Domant State (slapende stand) zetten.  Dan is teredo klaar, maar hij doet dan niets.

Teredo Refresh Rate

Hoe vaak moet de client de NAT table laten refreshen

Teredo Server Name

Wat is de naam van de teredo server

Teredo State

Hiermee kun je Teredo aan- en uitzetten.

 

HomeGroup

Windows 7 gaat op een nieuwe manier om met het begrip “Home Network”. Iedereen die met vista werkt kent misschien wel het Network Location Awareness. Hiermee kon vista zien op welk netwerk hij zat en welke tag, die jij als gebruiker, het netwerk heeft. Hier werd er een onderscheid gemaakt tussen Home, Work en Public. Afhankelijk van wat je koos werden er verschillende servers en firewall policy’s gestart.


In Windows 7 is het mogelijk om je eigen “Home Network” te creëren op basis van een shared-key. Iedereen die dan toegang moet hebben tot je “Home Network” moet dan deze shared-key krijgen. Deze techniek heet HomeGroup en werkt op basis van IPv6.

Met de komst van Windows 2008 R2 en Windows 7 word IPv6 steeds belangrijker voor zowel de thuis gebruiker als de organisatie. Veel nieuwe technieken werken alleen op basis van IPv6.


Martijn Bellaard

Microsoft Forefront Threat Management Gateway Malware Inspection

Geplaatst op 1-7-2009 21:53 door Martijn Bellaard

Malware is een verzamelnaam voor virussen, spyware, Rootkit enz. Allemaal software die we liever niet op ons netwerk binnen krijgen. Nu is het zo dat veel van dit “type” software op internet te vinden is. Hierdoor is het risico groot dat gebruikers er mee in aanraking komen. Vaak zonder dat ze het weten halen ze dan een stukje malware binnen. De meeste anti-virus clients zullen malware opvangen en verwijderen, maar het is dan nog steeds je netwerk binnengekomen. De Malware Inspection Functionaliteit van de TMG zorgt er voor dat malware je organisatie niet binnenkomt.

Web Antimalware

Web Antimalware is malware dat via een link gedownload wordt door de gebruiker. Voordat de TMG de download doorsluist naar de gebruiker controleert hij het eerst op de aanwezigheid van een virus. Om dit mogelijk te maken moet hij eerst de hele download binnenhalen om deze te kunnen inspecteren. Hierdoor kan een download mislukken, omdat onze browser pakketjes verwacht. Deze pakketje komen alleen niet. Om dit probleem op te vangen maakt de TMG gebruik van trickling. Trickling houdt in dat de TMG steeds een klein beetje data voert aan de browser op de client PC. Zo denkt deze dat de download nog steeds goed loopt en vindt er geen time-out plaats. Pas als de hele download goedgekeurd is door de TMG zal deze de overige bits doorsturen naar de browser op de client PC.

HTTPS Inspection

 Het controleren van http traffic is eenvoudig te doen, want iedereen kan het inlezen. Dit is niet het geval met https verkeer. Het voordeel van https verkeer is juist dat niemand het kan inlezen. Hackers en virus verspreiders bieden software daarom aan over een https verbinding.
De TMG heeft de optie om https verkeer bij de TMG te stoppen, te controleren en dan als https verkeer door te sturen. Als een browser connectie zoek met een https site, zal de TMG de https connectie beëindigen. Hij creëert een SSL certificaat voor de betreffende website en geeft deze aan de browser als zijnde het SSL certificaat van de website. De browser maakt dus een https verbinding met de TMG en niet met de website. De TMG op zijn beurt maakt weer een https verbinding met de webserver. Hij kan nu dus al het verkeer decrypten, controleren en encrypten zonder dat de client in principe hier iets van merkt.

Network Inspection System

De laatste optie die ik wil bespreken is Network Inspection System (NIS). De meeste Operating Systems zijn vandaag de dag zo veilig dat het voor een hacker steeds moeilijker wordt een succesvolle aanval te openen op het Operating System. Daarom is hun aandacht van het Operating System verschoven naar de applicaties. Een favoriete applicatie is natuurlijk de browser. Door het maken van handig geformuleerd URL’s en deze achter een link te verstoppen, hopen ze een browser Hijack uit te voeren.  De NIS inspecteert elke URL en stopt een verzoek naar een verkeerde URL.

Ik hoop dat je een idee hebt gekregen van de Malware Inspection features van de TMG. Als je precies wilt weten hoe ze werken adviseer ik je de TMG te downloaden en er mee te gaan testen.


Martijn Bellaard

http://technet.microsoft.com/en-us/library/dd182018.aspx


 

Ontwerpen van een IPv6 plan

Geplaatst op 24-6-2009 21:58 door Martijn Bellaard

In deze blog wil ik eens stilstaan bij de mogelijkheden die het IPv6 nummer biedt voor het maken van een IPv6 plan. IPv6 is een 128 bits nummer die bestaat uit 8 groepen van 4 hexadecimale getallen. Dit geeft je de mogelijkheid meer informatie in een IPv6 nummer te stoppen dan dat mogelijk was bij IPv4.


 

Wat zijn je grenzen?

Op het moment dat je een IPv6 range gaat aanvragen zul je waarschijnlijk een /48 of /64 range krijgen. Dit betekent dat de ISP de eerste drie groepen bepaalt, daarna ben je vrij om alles in te vullen wat je wil. Bijvoorbeeld: Je ISP geeft je 2001:1310:1969::/48, dan beginnen al je nummers dus met 2001:1310:1969::. Dit is je eigen prefix. Na de prefix ben je vrij om alles in te vullen wat je maar wilt. De laatste 80 bits zijn, in dit voorbeeld,  vrij.

Subnetten

Als je de hele range (/48) als één subnet behandelt dan kun je 1.208.925.819.614.629.174.706.176 hosts kwijt op één subnet. Dat is in de meeste gevallen niet handig. Je kunt nu gaan subnetten. Hierbij moet je rekening houden dat een host ID minimaal 64 bits is. Dit betekent dat je, als je een /48 gekregen hebt, 16 bits kan gebruiken om subnets te maken.  Dat zijn in totaal 65.536 subnets. Nu zou je er voor kunnen kiezen het eerste subnet 0001 te noemen, het tweede 0002 enz. Maar je kan ook kijken of je er slimmer mee om kan gaan, bijvoorbeeld door op deze positie het VLAN ID neer te zetten. Zo krijgt VLAN 10 het nummer 0010 en VLAN 34 het nummer 0034.

Ander voorbeeld: Stel je hebt een organisatie met in verschillende landen een vestiging binnen Europa. Elk land heeft zijn landcode (Nederland = 31, Belgium=32, enz).Zo zou je er dus voor kunnen kiezen om de landcode op de betreffende plek neer te zetten.

HostID

Voor de host ID blijven er 64 bits over. Met deze 64 bits kun je natuurlijk de server opeenvolgend gaan nummer. Server 1 krijgt ::0:0:0:1 en server twee ::0:0:0:2 enz.

Maar ook nu kun je kijken of je er iets slimmer mee om kan gaan.

OS versie

Je zou het OS versie nummer en type  er in kunnen verwerken. De eerste 16 bits zou je voor het type OS kunnen gebruiken. Bijvoorbeeld; 0001=Windows, 0002=Linux, 0003=MacOS, 0004=Cisco. De tweede 16 bits zou je kunnen gebruiken voor de OS versie.

Bijvoorbeeld; 0001:7100 is Windows 7 of 0002:2226 is Linux kernel 2.2.26.

Functie

Een andere mogelijkheid is dat je de functie van een server in het adres verwerkt. Bijvoorbeeld; 0001=Mail, 0002=File server, 0003=Domain controller. Of dat het een core server is, A=core, B=non-Core, C=Acceptatie Core, D=Acceptatie Non-Core enz.

Dus als ik een exchange 2010 server heb die in Monaco staat  krijgt hij dus het nummer: 2001:1310:1969:377:1:6002:A001:0001. Je kunt nu dus ook zien op welk OS mijn Exchange 2010 server draait.

Conclusie

IPv6 opent nieuwe deuren om een IP plan in te richten. Met deze blog heb ik je wat ideeën aan de hand willen doen, maar ik hoor graag andere ideeën.

Cross Forest Move Mailbox in 10 easy steps

Geplaatst op 12-6-2009 09:29 door Martijn Bellaard

Op dit moment ben ik bij een klant een Cross Forest Exchange migratie aan het uitvoeren. Vanaf twee exchange 2003 omgevingen gaan we naar 1 exchange 2007 omgeving, compleet met een nieuwe AD. We hebben besloten om de mail in één weekend, per exchange 2003 omgeving, over  te zetten naar de nieuwe omgeving. In deze blog wil ik in 10 easy steps de stappen bespreken die ik heb genomen om de migratie succesvol te laten verlopen.

Stap 1)
Vooronderzoek oude omgeving. Als eerste heb ik de twee oude omgevingen onderzocht. De nieuwe omgeving moet minimaal hetzelfde zijn als de oude omgeving, zowel wat betreft functionaliteit als performance. Om hier inzicht in te krijgen heb ik gebruik gemaakt van de Exchange BPA http://www.microsoft.com/downloads/details.aspx?familyid=dbab201f-4bee-4943-ac22-e2ddbd258df3&displaylang=en Deze tool gaf mijn de benodigde inzicht in de huidige omgeving. Daarnaast heb ik gesproken met de beheerder en hem gevraagd welke Exchange functionaliteit de huidige exchange omgeving biedt en op welke manier die functionaliteit geboden wordt. Ook het onderzoek van de huidige mailflow maakte deel uit van dit vooronderzoek

Stap 2)
Ontwerp de exchange omgeving. Als tweede heb ik een ontwerp gemaakt voor de nieuwe exchange omgeving. In dit geval ging het om een mail omgeving voor 5000 gebruikers. Hierbij is het van belang dat je tijdens het ontwerpen beslissingen neemt over de volgende onderdelen:

-          Welke functie van Exchange 2007 ga je inzetten

-          Hoeveel servers ga je inzetten in de nieuwe omgeving.

-          Hoe ga je de server sizen

-          Hoe komt de mail binnen en gaat deze naar buiten

Stap 3)
Bouw de nieuwe omgeving in een test omgeving. Als derde stap heb ik de nieuwe omgeving, volgens mijn ontwerp, opgebouwd in een test omgeving. We hadden besloten de nieuwe omgeving op Windows 2008 te installeren. Hierdoor is het eenvoudig om alle handelingen vanaf de command prompt uit te voeren en dus in een script te verwerken. Dit laatste geeft mij dus de mogelijkheid om de gehele installatie in de productie omgeving te replayen aan de hand van verschillende scripts. http://technet.microsoft.com/en-us/library/bb691354.aspx

Stap 4)
Live omgeving nabouwen in de test. Nadat ik de nieuwe omgeving volledig had opgebouwd in een test omgeving wilde ik graag een proef migratie doen. De reden voor een proef migratie is dat we in één weekend over willen en ik dus zo min mogelijk verrassingen wilde hebben. Om een test migratie uit te voeren moet ik een kopie van de live omgeving in de test omgeving hebben, want testen op een live omgeving komt niet voor in mijn woordenboek De huidige omgeving draait op een aantal fysieke servers die niet offline mochten gaan. Hierdoor hadden we een extra uitdaging. Dit hebben we op de volgende manier opgelost:

1)      Als eerste installeerden we een extra DC (TestDC-Live)

2)      Als tweede verwijderden we deze DC uit het productie netwerk en koppelden we hem aan het test netwerk.

3)      Daarna met NTDS util de FSMO rollen geseized en de andere DC verwijderd op de TestDC-Live AD (http://support.microsoft.com/kb/255504 en http://support.microsoft.com/kb/216498  )

4)      Daarna een restore gedaan van de oude Exchange 2003 omgeving in de test omgeving. Nu hebben we een kopie van de live omgeving in de test omgeving. Stap 1, 2 en 3 kun je natuurlijk ook doen door een restore te doen van een bestaande DC.

Stap 5)
Setup trust. Nu we zowel een nieuwe als een oude omgeving in de test omgeving hebben kunnen we tussen de twee omgeving, in de test, een trust opzetten. Het belangrijkste waarbij je hier moet opletten is dat je niet per ongelukt een trust opzet met de live omgeving. Dit hebben we verkomen door ook een test Vlan te gebruiken (wat per definitie wel een Best Praktische is).

Stap 6)
Migratie script maken. Om de mailboxen te gaan migreren van de oude omgeving naar de nieuwe omgeving heb ik gebruik gemaakt van de move-mailbox powershell commando. Voordat ik de script laat zien vertel ik eerst wat over het Move-Mailbox commando. In de deze situatie blijven de gebruikers in de oude omgeving, want deze gaan in een later stadium over. De mailboxen zitten dus straks in de nieuwe omgeving, maar de gebruikers account in de oude omgeving. De gebruikers loggen dus aan in de oude omgeving, maar moeten vervolgens toegang krijgen tot de mail in de nieuwe omgeving. Het move-mailbox commando doet dat op de volgende manier:

-          Als eerste maakt hij een MIG-id account aan met daaraan een mailbox gekoppeld.

-          Vervolgens geeft hij de gebruikers account uit het oude domain Full-Control rechten op de mailbox

-          Daarna verplaatst hij alle mail. Doordat de gebruiker uit het oude domain toegang krijgt tot zijn nieuwe mailbox kan hij met dezelfde credentials blijven werken. Om niet steeds het hele move-mailbox commando in te tikken heb ik een script  geschreven . Script start

1)      # Variable Definities

2)      $DCOLD = "DC-oude.domain.local"

3)      $SourceMailboxDatabase = "Exchange2003-Mailserver\Mailbox Store Oud"

4)      $TargetMailboxDatabase="Exchange2007-Mailserver\Nieuwe-MailboxDatabase"

5)      # Administrator oude domain

6)      $CrSource= Get-Credential

7)      Write-Output "Start migratie"

8)      Get-date

9)      Get-Mailbox -DomainController $DCOLD -Credential $CrSource -Database $SourceMailboxDatabase | Move-Mailbox -NTAccount "OU=Move Mailbox Accounts,DC=NieuweDomain,DC=local" -TargetDataBase $TargetMailboxDatabase -SourceForestCredential $CrSource -SourceForestGlobalCatalog $DCOLD -MaxThreads 15 -SourceMailboxCleanupOptions none

10)   Get-Date Script einde In regel 2,3,4 definieer ik 3 variabelen.:

-          $DCOLD  is een oude DC die move-mailbox gebruikt tijdens de migratie

-          $SourceMailboxDatabase  is een database op de oude exchange server

-          $TargetMailboxDatabase is een database op de nieuwe exchange server  

Regel 6 zorgt er voor dat je een popup scherm krijgt die je vraagt om administrator aanlog gegevens van het oude domain. Regel 9 is dan DE migratie regel. Het commando Get-Mailbox -DomainController $DCOLD  -Credential $CrSource -Database $SourceMailboxDatabase leest alle account die een mailbiox hebben op $SourceMailboxDatabase  vanuit het oude domain in ($DCOLD ) in. De uitkomst wordt vervolgens door gegeven aan move-mailbox.  Met het move mailbox zijn een aantal opties mee gegeven:

-          NTAccount zorgt er voor dat er in ou "OU=Move Mailbox Accounts,OU=Import,DC=NieuweDomain,DC=local" en MIG account aangemaakt worden

-          TargetDatabase vertelt naar welke database de mailboxen verplaatst moeten worden.

-          SourceForestCredential vertelt met welke credentials er aangelogd moet worden op de oude omgeving

-          SourceForestGlobalCatalog vertelt met welke GC er gewerkt moet worden.

-          MaxThreads vertelt wat de maximale aantal  mailboxen zijn die tegelijkertijd verhuist worden

-          SourceMailboxCleanupOptions vertelt wat er moet gebeuren met de oude mail.

In mijn geval staat er none, dus de mail blijft ook aanwezig in de oude omgeving. In dit geval kopieer ik de mail. Mocht het dus mis gaan dan kan ik zo terug naar de oude omgeving. Dat is dus mijn fall-back optie. De Get-date gebruik ik om te weten hoe laat hij begonnen is en hoe laat hij klaar is, is geen noodzakelijke log. Dit script run ik op een exchange server in het nieuwe domain.

Stap 7)
Migratie test. Met dit script heb ik eerst een test migratie gedaan. Aangezien het om 820 GB aan mail ging wilde ik graag weten of ik het in 1 weekend ging halen. Tijdens de eerst test kwam ik er achter dat ik  10 GB per uur haalde. Ik deed toen 1 database van 35 GB in 3 ½ uur De 820 GB is verdeeld over twee server en per server 4 stores. We gaan alle store simultaan migreren. In een tweede test deed ik 430 GB in 36 uur. Dat geeft bijna 12 GB per uur. Na de migratie hebben we met aantal users in de test omgeving geprobeerd aan te loggen op de “nieuwe” mailbox. Dit werkte zonder problemen. Daarnaast maakt move-mail een aantal XML log bestanden. Deze kun je het beste openen met Excel. In deze log bestanden stonden het aantal mislukte mailboxen. In totaal waren er 20 (van de 1800) mailboxen mislukt. Meer dan de ½ van de 20 mailboxen waren nooit gebruikt. Dat wat niet lukt, doen we later met de hand wel. Het gaat tenslotte maar om enkele tientallen http://technet.microsoft.com/en-us/library/aa997599.aspx

Stap 8)
Bouwen productie. We kunnen nu stap 3,5,6 herhalen in de productie omgeving en exchange 2007 live brengen.

Stap 9)
Eindgebruiker op de hoogte brengen. Aangezien het om een grote migratie gaat die de mail omgeving voor minimaal 48 plat legt is het verstandig je gebruiker hiervan op de hoogte te brengen. Natuurlijk hebben we alles goed getest in stap 7, maar ….. http://en.wikipedia.org/wiki/Murphy's_law

Stap 10)
De migratie. Voordat we starten met de migratie stoppen we eerste de mailflow. Al de mail moet ergens in een SMTP queue opgevangen worden. Dan kan bij een provider of op een anti-spam appliance. Dit moet je wel van te voren uitzoeken. Daarna zorgen we dat er geen gebruikers meer bij hun mail kunnen komen om op die manier de oude omgeving te bevriezen. Je kunt dit niet doen door de oude mail omgeving uit te zetten of de database te dismounten. Move-mailbox gebruikt namelijk mapi calls om de mail in te lezen. Je zal dus op een andere manier je gebruiker de toegang tot de mail omgeving moeten ontzeggen. Bijvoorbeeld met een firewall of extra een VLAN. Daarna start je de script en ga je wachten en wachten Ondertussen kun je de client herconfiguratie script klaarzetten. Nog niet uitvoeren, dit doe je pas als je zeker weet dat de mail succesvol over is. Ook alle servers en printers moeten naar de nieuwe mail server wijzen. Hier kun je ook vast wat zaken klaar voor zetten, maar niet uitvoeren totdat…… Lekker koffie drinken, ga wat slapen. Exchange doet het nu allemaal voor je en is waarschijnlijk wel 36 uur bezig (in ons geval).

Stap 11)
Feest (oeps een stap te veel). Als het gelukt is, is het tijd voor een klein feest. Er is tenslotte wel iets te vieren.


Waarom IPv6 niet eerder dan vandaag kon worden ingevoerd.

Geplaatst op 23-5-2009 19:01 door Martijn Bellaard

Waarom IPv6 niet eerder dan vandaag kon worden ingevoerd.

Één van de vele argumenten tegen IPv6 is dat er al jaren geroepen wordt dat we over moeten gaan op IPv6, maar dat we nog steeds draaien op IPv4. Als je deze uitspraak op de letter nauwkeurig neemt dan klopt hij, maar zo eenvoudig is het niet.

1991

Het jaar dat er voor het eerst geroepen werd dat we over moesten gaan op IPv6 was in 1991, dat is dus 18 jaar geleden. Dat we toen niet direct allemaal over gesprongen zijn op IPv6 is niet meer dan logische, want IPv6 bestond nog niet. Ook was op dat moment de ontwikkeling van IPv4 nog in volle gang. Zaken als SSL bestonden toen nog niet. Ook was er op dat moment nog een grote voorraad IPv4 nummers aanwezig. De reden dat ze aan de bel trokken was dat in 1990 internet openbaar werd en er dus ineens een heleboel aanvragen voor IPv4 nummers binnenkwamen. Na 1991 stortte het aantal aanvragen per jaar na een diept punt in 1997.

1995

De eerste RFCs over IPv6 verschijnen in 1995. In deze RFCs wordt beschreven hoe een IPv6 header er uit ziet en hoe IPv6 nummers er uit komen te zien. Pas vanaf dat moment is het mogelijk voor netwerk leveranciers om een IPv6 stack te maken in hun routers en hadden op die manier de mogelijkheid om inderdaad IPv6 te routeren.

6Bone

6Bone was in het leven geroepen om te kunnen experimenteren met IPv6 op het internet.  Na de eerste RFCs over IPv6 is 6Bone in het leven geroepen en tot aan 6-juni-2006 hebben ze geëxperimenteerd met IPv6 op 6Bone.

De routers

Toen er RFCs voor IPv6 klaar waren moesten veel router boeren de stack in hun router gaan programmeren. Aangezien dit een hoop extra werk kost, zonder dat ze direct de kosten er voor terug kregen deden ze dit niet direct. De eerste IPv6 router stacks waren dan ook softwarematig. Dit betekende dat je een lagere performance hebt voor IPv6 ten opzichte van IPv4. Pas de laatste jaren zien we dat de grote routers IPv6 native ondersteunen, denk hierbij aan de Cisco’s, Junipers enz. Wat betreft de kleinere ADSL routers, zien we dat er vaak nog geen IPv6 ondersteuning aanwezig is op dit moment.

Operating Systems

Ook op het gebied van operating system zien we dat pas in de laatste jaren verschillende OS hun IPv6 ready logo hebben verdient. Linux kreeg zijn logo in 2006, Windows Vista kreeg zijn IPv6 ready logo in 2007 en Windows 2008 in 2008. Apple heeft nog niet zijn IPv6 logo gekregen, maar heeft wel een werkende IPv6 stack Bron:

http://www.ipv6ready.org/phase-2_approved_list

IPv6 Ready

 Als je het dus goed beschouwt zijn we pas sinds 2006/2007 klaar voor IPv6. Op dat moment zijn de belangrijkste operating systems volledig klaar voor IPv6. Stel je eens voor dat we in 2003 al over hadden moeten gaan naar IPv6, dan hadden we heel wat extra problemen en uitdagingen gehad. Gelukkig hebben we het nog kunnen uitstellen tot nu toe. We zijn pas 3 jaar IPv6 READY. Daarvoor was we dat niet. Het is dus maar goed dat IPv6 nog niet verplicht is, maar dat gaat niet lang meer duren.

Outlook Anywhere en Windows 7

Geplaatst op 7-5-2009 19:44 door Martijn Bellaard

Ik heb al enige tijd (met veel plezier) de beta van windows 7 op mijn laptop draaien. Als ik eerlijk ben wil ook niet meer anders. Nu had ik in het begin wel een probleem. Outlook Anywhere deed het niet.  Tijd voor wat nader onderzoek. Al snel bleek dat de registery RPC miste onder HKCU\Software\Microsoft\Office\12.0\Outlook\. Onder deze key staan alle connectie settings voor Outlook Anywhere.  Aangezien die er dus niet is doet hij het daarom ook niet.Toen ik mezelf admin maakte kwam de key wel te voorschijn, maar het werkte nog niet.

Timeout

Nu is het zo dat ik thuis via een wireless naar mijn ISA server ga. Dan over mijn router weer naar buiten. Aan de ander kant kom ik dan weer binnen op een ISA server die me door zet naar de exchange server. Dit zijn nogal wat hops en kan dus er voor zorgen dat een aantal zaken langer duren dan noodzakelijk. Nu zijn 3 keys onder de RPC key waarmee je de timeout settings kunt bepalen:

  • ConnectTimeout: De timeout waarde voor connectie die sneller is dan 128kb
  • ConnectTimeoutLow: De timeout waarde voor connectie die trager is dan 128kb
  • RFRTimeout: De timeout waarde als outlook een andere mailbox, kalender of de GAL raadplecht.


Het zijn alle drie DWORD waardes en volgende KB831060 (http://support.microsoft.com/kb/831060)  moet je ze op 00493e0 zetten.

Default Gateway

Voordat outlook de tunnel opzet controleert hij eerst op de aanwezigheid van een default gateway. In sommige gevallen kan dit mis gaan, bijvoorbeeld als er gebruik gemaakt word van een proxy server of dat de default gateway niet reageerd op de outlook client. In dat geval kun je dit gedracht uit te zetten door het toevoegen van de key DefConnectOpts. Ook dit is een Dword die op 0 moet staan. In dat geval vind er geen Default Gateway Controller plaats.

Last but not least


Als laatste moet je nog de key dword key EnableRPCTunnel maken en deze de waarde 1 meegeven. Als je dit allemaal heb gedaan kun je de computer een reboot geven. Als je daaran outlook opstart kun je outlook opstarten. Deze zal vervolgens vragen om je account gegevens. Deze MOET je in de vorm domain\username invullen. Daarna kun je lekker gaan mailen.

 

Martijn Bellaard

Nieuwe High Availability Functionality in Exchange 2010

Geplaatst op 22-4-2009 14:12 door Martijn Bellaard

Heb je Exchange 2010 al gedownload en bekeken. Het leuke van de nieuwe Exchange 2010 versie is dat ze de High Availability methode hebben veranderd. In deze blog wil ik een kort overzicht geven van de nieuwe High Availability van Exchange 2010

Wat is weg

Met de komst van Exchange 2010 verdwijnen twee High Availability opties:

  • LCR
  • SCC
  • Local continuous replication (LCR) was een methode waarbij je op een andere disk een kopie maakte van de mailbox database. In het geval van een corrupte disk kon je dan de database op de tweede disk gebruiken.
    Single Copy Cluster (SCC) is  een oude cluster methode waarbij je 2 Exchange had en een shared disk. Op de shared disk staat dan de mailbox database

    Database Availability Groups

    Wat nieuw is in exchange 2010 is de Database Availability Group (DAG). Een DAG kan maximaal 16 exchange servers bevatten die automatisch een copie van een andere server is. Als je als beheerder een DAG maakt is deze in de eerste plaats leeg. Er zitten geen servers in. De DAG is dan een object in de AD. Nadat je de server hebt  toegevoegd worden automatisch alle cluster zaken geregeld op de betreffende server. Op het moment dat je een tweede server (of derde of vierde of ….) toevoegt dan wordt deze automatisch een deel van het cluster.

    Storage Groups are NoMore

    Storage Groups zijn in Exchange 2010 verdwenen.  Er zijn alleen nog maar mailbox databases. Hierdoor heeft de mailbox database de volgende (nieuwe) functie gekregen:

    • Het Continuos replication process gebeurd nu op database niveau. Ook worden de logfiles nu naar 1 of meerdere servers gekopieerd. Dit laatste is afhankelijk van het aantal servers in de DAG
    • Er kunnen nu maximaal 16 kopieën van een mailbox database over 16 servers verdeelt worden.
    • Er kunnen maximaal  50 mailbox databases per server aangemaakt worden.
    • Een failover kan nu op server of database niveau plaatsvinden. Op dit moment is alleen failover op database niveau mogelijk.
    • De database naam moet uniek zijn in de gehele exchange organisatie.
    • De path van een database moet op alle servers gelijk zijn.
    • Alle databases kunnen gebackuped worden met VSS

    Continues Replicatie

    Ook de manier van replicatie is aangepast ten opzicht van 2007. De volgende aanpassingen zijn er gemaakt in exchange 2010:

    • Replicatie vindt plaats op database niveau
    • Replicatie vindt niet meer plaats over SMB, maar over een eigen TCP poort. Daarnaast kun je er voor kiezen om de replicatie data te versleutelen en te comprimeren
    • Continues Replication werkt alleen voor mailbox databases en niet voor Public Folders

    Conclusie

    Naast de features die al aanwezig waren in Exchange 2007 is het failover schema van 2010 nog interessanter geworden. Dankzij DAG is het mogelijk meerdere exchange servers in 1 DAG te hebben (max 16) en dus meerdere passive mailbox database node te hebben. Daarnaast is het mogelijk om voor verschillende databases verschillende servers als Active aan te geven.

    Voorbeeld: Je hebt 3 exchange servers met 3 databases. Je maakt 1 DAG met een copie van elke database op elke server. Daarna kun je aangeven dat server 1 de actieve server is voor Database 1, server 2 de actieve voor database 2 en server 3 de actieve  server voor database 3.

    Het is heel eenvoudig  om een DAG op te zetten en een nieuwe server toe te voegen. Dit laatste is een grote verbetering ten opzichte van de voorgaande versies. Het opzetten van een cluster blijft voor de meeste beheerders een grote uitdaging. Die uitdaging is dus bij exchange 2010 weg genomen. Op het moment dat je een server hebt geïnstalleerd en je wilt als nog een cluster, dan hoef je alleen de DAG te definiëren en een tweede server toe te voegen. Wil je weten hoe je dit allemaal moet doen kijk dan eens op: Exchange technet site

    Martijn Bellaard

    De zin en onzin van open source en open standaards

    Geplaatst op 8-4-2009 10:51 door Melle Gloerich

    Als het aan de regering ligt moeten we allemaal aan de Open Source Software (OSS) gaan, want dat zou beter zijn voor de economie en de “sterke” positie van de grote software huizen doorbreken. Maar is Open Source wel het antwoord op de “IT” problemen? Zo is Open Source Software veiliger, goedkoper en zal het de monopolie positie van grote software huizen doorbreken.

    Maar wat is Open Source Software  nu eigenlijk. Het idee achter Open Source Software was dat iemand een leuk stuk software maakte, om vervolgens deze applicatie, inclusief source code, aan iedereen ter beschikking te stellen. De enige restrictie die hier aan vast zat was dat als je wat aanpaste, je deze aanpassing terug moest geven aan de originele maker.  Dat dit een succesvol concept kan zijn bewijzen producten als Apache, Firefox, Linux enz. Maar er moet niet vergeten worden dat mensen dus vrijwillig dit doen. Eigenlijk is dit een vereniging van mensen die gezamenlijk een software pakket hebben gemaakt. Iedereen die lid is van een vereniging of actief is binnen een stichting weet dat er een kleine groep mensen zijn die de vereniging trekken.  De trekkers zorgen er voor dat de vereniging bijeen blijft en dat er activiteiten vanuit zo een vereniging worden ondernomen. De overige leden zijn, wat ze noemen, consumers. Leden komen en gaan waarneer ze willen. Deze mensen vasthouden kost de nodige energie van die kleine kerngroep. Als deze kerngroep, om wat voor reden dan ook wegvalt, dan stort de vereniging meestal ook in.  Dit zelfde geldt voor stichtingen en ik heb dan ook al regelmatig verschillende stichtingen op die manier zien instorten.

    Een open source project is dus een vereniging of stichting die als doel heeft een speciale applicatie te ontwikkelen. Ook voor open source geldt dat er een kleine groep mensen zijn die de meeste ontwikkelingen doen. Soms gaat het zelfs om 1 persoon. Kijk maar eens naar DE telnet client die er is; Putty (wie gebruikt hem niet?).

    "It is written and maintained primarily by Simon Tatham."

    Denk je nu eens in dat Simon morgen iets krijgt. Wie gaat dan Putty onderhouden, JIJ? Nu is Putty geen core product voor de meeste bedrijven dus zal niemand er verlies door leiden. Bij het gebruik van open source zitten wel wat risico’s. Voor support moet je ook aankloppen bij een aantal vrijwilligers.

    Is close source dan beter op dit gebied kun je je afvragen. Ook hier geldt dat een aantal mensen de trekkers zijn. Nu heten ze alleen eigenaars. Deze eigenaars nemen op hun beurt weer mensen in dienst. Die dan tegen betaling werk verrichten.  Ook  het support is bij de meeste close source geregeld.

    Daarnaast geldt dat, als het een succesvol software pakket is, er altijd iemand bereid is het software pakket over te nemen. Hierdoor ontstaat er een stuk waarborg als de eigenaar er mee wil stoppen.

    Er is een hele simpele reden dat een close source bedrijf zijn best doet, want er is namelijk een goede motivator aanwezig in de vorm van geld. Dit is dan ook gelijk het grootste probleem bij een close source bedrijf. Doordat er soms weinig aanbieders zijn op een speciaal gebied zie je dat ze woekerprijzen rekenen of kromme licentie voorwaarden hanteren. Dit zie je niet terug bij open source.

    Wat is dan beter? Dat zit hem niet in de term Close of Open source, maar in functionaliteit.  Waarom vind ik Putty top. Hij doet precies wat ik wil, functioneert goed. Zelfs beter dan de meeste close source telnet clients. Hierdoor is het goede keuze. Maar dat geldt niet voor alles. Op het moment dat je gaat praten over een keuze voor een software pakket ga je kijken naar:

    1.  Welke functie wil ik hebben.
    2. Wat kost het, hier valt onder, wat zijn de aanschaf kosten, wat zijn de onderhoudskosten, wat zijn de implementatie kosten, wat zijn de hardware kosten
    3. Hoe krijg ik support
    4. Hoe levensvatbaar is de uitgever van de applicatie

    Afhankelijk van de soort applicatie zal 1 t/m 4 in belangrijkheid wisselen.

    Maar wat is dan wel belangrijk? Wat hebben we nu wel nodig in de IT. Dat zijn Open Standaards.  Wat is dat dan een Open Standaard? Eigenlijk is een Open Standaard niets anders dan een aantal afspraken over hoe er, bijvoorbeeld, gecommuniceerd moet worden. Zo is IPv6 een Open Standaard. Één van de afspraken hierin is dat ieder nummer 128 bits is. Iedereen die dus een IPv6 protocol wil schrijven weet dus dat de adressen 128 bits lang zijn.

    Dat Open Standaards succesvol kunnen zijn en de wereld kunnen veranderen bewijst TCP/IP wel. Omdat TCP/IP een Open Standaard was heeft ieder sofware maker (close en open) zijn eigen TCP/IP stack kunnen maken. Hierdoor is het mogelijk om met elke willekeurige computer (van grote server tot kleine PDA) te internetten. Ik wil je nog een andere voorbeeld geven, fictief, maar eentje om je aan het denken te zetten.

    Ik heb een SQL database applicatie van het merk X. Volgens een aantal Open Standaards is er bepaald hoe de clients moeten communiceren met mijn SQL database en hoe ik data moet exporteren. Nu werkt mijn SQL database niet naar behoren. Ik besluit een ander merk te nemen, merk Y. Omdat er open standaard is over hoe de date geëxporteerd moet worden kan mijn nieuwe SQL database zonder problemen de data weer inlezen. Het ligt namelijk vast hoe de data er uit moet zien als het geëxporteerd wordt. Daarnaast heeft diezelfde Open Standaard verteld hoe een SQL client applicatie moet praten met een SQL database applicatie. Hierdoor hoef ik dus niks te doen aan de client kant. Dit klinkt te mooi om waar te zijn? Zomaar een database server vervangen door een ander merk en je client kan er zonder problemen meet communiceren. Toch is dat nu net wat er gebeurd met TCP/IP, TLS, FTP enz enz. Allemaal open standaards. Ik wil het nog één stap verder trekken. Stel dat we een open standaard maken voor hoe een OS met een applicatie moet communiceren. Dan kunnen alle applicaties op alle OSsen draaien. Hoe hard zullen grote software huizen dan gaan zweten?

    Wat ik graag zou zien is dat de overheid Open Standaards gaat promoten en verplicht stellen inplaats van Open Source. Daar zouden ze, op europees of wereld niveau in moet investeren. Verschillende Open Standaards vast leggen en sofware leveranciers dwingen hieraan te voldoen. Dan pas krijgen wij in de IT vrijheid van keuze en kunnen we gaan kiezen voor het beste product voor wat we zoeken.

    Martijn Bellaard

    IPv6, het zal mijn tijd wel duren

    Geplaatst op 29-3-2009 16:48 door Martijn Bellaard

    Als ik met een beheerder praat over een migratie naar IPv6 dan krijg ik vaak één van de volgende reacties:

    • “Het duurt nog wel even voordat we aan IPv6 moeten we beginnen. We hebben nog tijd zat” 
    • “Ze vinden er vast wel iets op” 
    • “We hebben toch NAT” 
    • “IPv6 wordt nog niet eens op Internet gebruikt, waarom zou ik het dan wel al gebruiken?”

    Dit soort reacties zijn te verwachten, op het moment dat er iets gebeurd wat voor grote verandering zorgt. Wanneer een verandering van ons vraagt onszelf aan te passen, dan proberen we redenen te bedenken, waarom het niet voor ons geldt. Dezelfde reactie zie je ook als het gaat over IPv6. Dit heeft drie oorzaken, ten eerste zijn wij mensen behoudend ingesteld, ten tweede kan dit te maken hebben met een gebrek aan kennis en ten derde hebben de meeste beheerders het druk, waardoor ze geen zin hebben zich ook nog druk te moeten maken over IPv6. Toch ik wil eens gaan kijken naar de motivaties die hierboven staan om niet naar IPv6 te gaan kijken.

    “Het duurt nog wel even voordat we aan IPv6 moeten we beginnen. We hebben nog tijd zat”

    De vraag is of dit klopt, om dat te achterhalen is het goed om eens een paar cijfers te bekijken. We weten dat nog 12% van alle IPv4 nummers vrij zijn. Dat lijkt best veel, toch!? Laten we wat ander cijfers er bij halen.

    1. In 2006 werd er bij benadering 3,5% van alle vrije IPv4 nummers uitgedeeld.
    2. In 2007 werd er bij benadering 4% van alle vrije IPv4 nummers uitgedeeld.
    3. In 2008 werd er bij benadering 4,5% van alle vrije IPv4 nummers uitgedeeld.
      (Bron: www.iana.org , www.potaroo.net )

    Dit is dus een toenamen van +/- 0,5% per jaar. In de lijn van de verwachting ligt dus dat we 5% uitdelen in 2009 en 5,5% in 2010. Begin 2009 was er nog 12,5% van alle IPv4 nummers over. Als we vervolgens de verwachting van 2009 en 2010 optellen dan hebben we begin 2011 nog 1,5% van alle IPv4 nummers over. Voor 2011 hebben we 6% nodig, dus ergens in maart zijn de nummers op.

    Nu is dit een groffe schatting, maar zelfs de meest voorzichtige berekeningen komen er op uit dat ergens tussen begin 2011 en eind 2012 de nummers op zijn.

    http://www.cisco.com/web/about/ac123/ac147/archived_issues/ipj_6-4/ipv4.html http://www.ripe.net/info/info-services/ipv4/index.html http://www.runningipv6.net/ http://www.potaroo.net/tools/ipv4/index.html (Deze site is het meest nauwekeurig)

    “Ze vinden er vast wel iets op”

    Dat klopt, dat heet IPv6.


     

    “We hebben toch NAT”

    Lees mijn blog over Why NAT sucks maar eens


     

    “IPv6 wordt nog niet eens op Internet gebruikt, waarom zou ik het dan wel al gebruiken ?”

    Dit klopt niet. Een aantal root DNS’s ondersteunen al IPv6, ook de backbone van internet draait IPv6.

    Ga ook maar eens naar de volgende website: http://www.sixxs.net/misc/coolstuff/. Hier staan een paar voorbeelden van IPv6 gebruik. IPv6 komt dus al meer voor dan de meeste mensen denken.

     

    Voordat ik deze blog afsluit wil ik je nog een paar overwegingen meegeven:

    •  Maak je gebruik van netwerk apparatuur die de aankomende 5 jaar (zeg tot 2014) mee moet gaan of misschien langer? 
    • Heb je een website waar klanten op komen? 
    • Willen steeds meer gebruikers remote jou netwerk benaderen voor informatie?

    Als je op één of meerdere vragen JA kunt antwoorden dan moet je vandaag beginnen je te verdiepen in IPv6, zodat je in 2011 klaar bent om het te gaan uitrollen.

    Martijn Bellaard

    Hoe te starten met IPv6

    Geplaatst op 12-3-2009 20:48 door Martijn Bellaard

    Er wordt steeds meer en meer geschreven over IPv6. Dat is goed nieuws, maar waar moet je nu beginnen als je de overstap wilt maken naar IPv6. In deze blog wil ik daar eens wat aandacht aan besteden.
    Om tot een succesvolle IPv6 migratie te komen moet je vier verschillende fases doorlopen.

    Fase 1) De Inventarisatie


    Je start het IPv6 migratie traject door een inventarisatie te maken van alle netwerkapparatuur die op het netwerk zijn aangesloten. We hebben het dan niet alleen over de routers en switches, maar ook over  firewall, webcamera’s met een netwerk interface, meeting apparatuur dat via het netwerk data verstuurt, PDA’s.  Eigenlijk alles dat een netwerk connectie heeft moet je opnemen in de inventarisatielijst.
    Als tweede zul je alle applicaties moeten inventariseren.  Veel applicaties maken tegenwoordig gebruik van het netwerk om met een client te communiceren. Dus als je overstapt op IPv6 dan wil je wel graag weten of de applicatie werkt op IPv6
    Als laatste kijk je naar alle operating systems die je gebruikt. Hierbij is het van belang om te achterhalen welke versie van het Operating System je gebruikt. Op dit moment geldt dat elke moderne OS IPv6 ready is. Dus met deze lijst kun je de IPv6 ready, van de door jou gebruikte operating systems, bepalen
    De lijst met netwerk devices, applicaties en operating systems gaan we gebruiken om een testplan te maken.

    Fase 2) Testen

    Nu je dus weet hoe het zit met je IPv6 ondersteuning kun je gaan testen. Als eerste kun je beginnen met het testen van je Operating Systems. Zaken die je hierbij moet uitzoeken zijn:

    •  is er een IPv6 stack voor het OS,
    •  kan het OS een IPv6 nummer krijgen,
    •  kan het OS DNS resolving over IPv6 doen,
    •  ondersteunt het OS de autoconfiguration optie van IPv6
    •  ondersteunen de meegeleverde service IPv6, hierbij kun je denken aan file servive, print service, remote administration service (RDP/SSH), maar ook aan de standaard Firewall,

    Meer informatie over IPv6 ready kun je vinden op:
    http://www.ipv6ready.org/phase-2_approved_list

    Nu je weet dat je OS IPv6 ready is, kun je beginnen met het testen van je applicatie. Als de applicatie leverancier niet kan vertellen of de applicatie IPv6 ondersteundt dan kan de applicatie nog steeds werken over IPv6. Dit heeft te maken met het feit dat IPv6 in principe alleen een aanpassing doet op de netwerk laag. Toch zullen sommige applicaties een aanpassing nodig hebben. Applicaties die zeker getest moeten worden zijn:

    •  Applicaties die op het IP nummer  of IP nummer + poort luisteren. Denk hierbij bijvoorbeeld aan een webserver.
    • Applicaties die IP nummers loggen. Het logveldje voor het IP nummer moet minimaal 128 bits zijn en de applicatie moet ook 128 bits IP nummers kunnen inlezen.

    Als laatste zou je kunnen kijken naar je netwerk device. Hierbij zijn twee zaken van belang:

    • Zijn ze, net als bij een OS, IPv6 ready
    • Is IPv6 softwarematig of hardwarematig. Als IPv6 softwarematig en IPv4 hardwarematig is, dan zal het netwerk device slechte performance leveren op IPv6

    Fase 3: De migratie

    Je weet nu wat wel en wat niet IPv6 ready is. De volgende stap is daarom ook je IPv6 netwerk te ontwerpen en te implementeren. Zet IPv4 nog niet uit. Het mooie van de hele migratie is dat je makkelijk Duo-stack kunt gaan draaien.

    Alles wat dus nog niet IPv6 ready is kun je nu rustig gaan vervangen. De migratie mag best meerdere jaren in beslag nemen. Dat is geen enkel probleem.

    Een mooie mijlpaal in de migratie is het moment dat je met IPv6 het internet opgaat. Als je zover bent dan heb je een aantal belangrijke diensten binnen je IT infrastructuur omgezet naar IPv6.

    Fase 4: No-more IPv4

    Het einde van het traject is natuurlijk dat je IPv4 gaat uitzetten. Als je zover bent is er een reden tot een groot feest. Tenminste, ik vind dat je altijd op zoek moet gaan naar een reden om te feesten.


    Mijn laatste tip is: begin nu met fase 1 en 2, zodat je in 2011 klaar bent voor fase 3.

    Martijn Bellaard

    ADMT user migratie script

    Geplaatst op 25-2-2009 20:58 door Martijn Bellaard

    Bij een klant  doe ik op dit moment een AD migratie van twee domainen naar één domain. We hebben er voor gekozen om de Users te migreren met een ADMT script. In deze blog wil ik eens stil staan bij de script die ik geschreven heb voor mijn klant.

    VOORWERK


    Voordat het script uitgevoerd kan worden moeten de volgende zaken geregeld zijn:

    1. Opzetten “two way trust” tussen de oude domainen, old1.local en old2.local, en het nieuwe domain nieuwe.local om toegang te krijgen tot alle user accounts.
    2. ADMT installeren,
    3. Het aanmaken van de gebruiker miguser in alle domainen,
    4. Het installeren van de PEN servers op één van de domain controllers in het old1.local domain en in het old2.local domain,


    SETUP ADMT

    ADMT kan gedownload worden van:

    Http://www.microsoft.com/downloads/details.aspx?FamilyID=6f86937b-533a-466d-a8e8-aff85ad3d212&displaylang=en

    Installeren ADMT 3.0

    • Ga naar de locatie waar je ADMT 3.0 gedownload hebt en start ADMTSetup.exe op.
    • Op de Active Directory Migration Tool Installation Wizard scherm klik next
    • Kies I Agree, Next

    MS SQL Server Desktop Engine wordt geïnstalleerd

    • Op de Database Selection, next
    • Op de Active Directory Migration Tool v2 Database Import klik next
    • Klik Finish


    Aanmaken Migratie user account

    Om users te kunnen migreren moet er in beide domains een account aanwezig zijn met dezelfde naam en wachtwoord. Op die manier is het mogelijk om vanuit het nieuwe domain in te loggen op de oude domain

    1. Maak in alle domeinen (nieuwe.local, old2.local, old1.local) de volgende user aan: Username: Miguser Password: **************
    2. Maak deze user lid van domain admins. Hij moet alle accounts kunnen aanmaken en heeft dus de juiste rechten nodig. Je kunt ook kiezen om te werken met delegation of control en de account alleen rechten geven op de juiste OU.  Disable of verwijder dit account na de migratie.
    3. Maak de user nieuwe.local\miguser lid van de old1.local\administrators groep en old2.local\administrators groep. Net als bij 2 moet het account bij alle user in het oude domain kunnen

    Setup Password Export Server

    De Password Export Server (PES) zorgt er voor dat het ADMT script de wachtwoorden van alle users kan migreren naar het nieuwe domain. Hiervoor moet service dus als super-super-super  user toegang hebben tot het AD. Dit maakt het dus security technisch een zeer gevaarlijke service die pas gestart mag worden als de migratie begint.
    Als eerste zul je een key moeten maken voor het oude domain in het nieuwe domain
    1.    Log aan op de DC waarop ADMT 3.0 is geïnstalleerd
    2.    Open een CMD
    3.    Ga naar de directory c:\Windows\Admt\PES
    4.    Run het volgende commando voor het Old2.local domain: Admt key /option:create /sourcedomain:old2.local/keyfile:c:\windows\admt\pes\geminikey /pwd:*
    5.    Hij vraagt nu om een wachtwoord. Deze heb je zo weer nodig dus noteer hem
    6.    Kopieer de inhoud van de directory c:\windows\admt\pes naar een domain controller van het old2.localdomain onder c:\pes.
    7.    Log nu aan op een domain controller van het old2.localdomain
    8.    Open een CMD
    9.    Ga naar de directory c:\pes
    10.    Run Pwdmig.msi
    Nu ga je PES service installeren in het oude domain.
    11.    Klik Next
    12.    Op de Encryption File browse naar c:\pes en selecteer geminikey.pes bestand
    13.    Klik Open
    14.    Klik Next
    15.    Voer het wachtwoord in.
    16.    Klik Next
    17.    Op de ADMT Password Migration DLL kies je als service account old2.local\miguser
    18.    Herstart de domain controller.
    19.    Na de restart moet je de Password Export Server Service starten. Deze staat standaard op manual.
    Herhaal fase voor elke domain dat je migreerd naar het nieuwe domain


    MIGRATIE SCRIPT


    Voor de migratie van de user wordt er gebruik gemaakt van een script. Aan het einde van de blog staat de uitdraai van het script.  Maar eerst wordt er een uitleg gegeven over het script en hoe het script gedraaid dient te worden.

    SCRIPT UITLEG


    Het script is bedoeld om de user account vanuit het source domain te migreren naar een nieuwe target domain inclusief de wachtwoorden van user accounts. In de onderstaande tabel staat een uitleg van het script per regel.
    !!! LET OP!!! Alleen daar aanpassing doen als er in de tabel staat dat het mag. In elke ander situatie kan dit leiden tot een niet werkend script.

    Regel Uitleg
    1 Option Explicit zorgt er voor dat elke variabel gedefinieerd MOET worden, voordat hij gebruikt mag worden. Hierdoor worden eventuele tik fouten voorkomen
    3 t/m 105 In deze regels staan een aantal constanten gedefinieerd. Aanpassing in deze regels kunnen er voor zorgen dat het script niet langer werkt.
    106-122 Variables definities
    123-166   Aanmaken en openen van de logfiles
    De migratie log is terug te vinden onder  C:\Scripts\Reports\Miglog.csv
    De Error log is terug te vinden onder C:\Scripts\Reports\MigErrorlog.csv
    166-189  Aanmaken van het Migratie object. Dit object is noodzakelijk om te kunnen migreren. De volgende waardes mogen worden aangepast:
    objMigration.SourceDomain = Source domain
    objMigration.SourceDomainController = Source DC
    objMigration.SourceOU = Source OU waar de te migreren gebruikersaccount in staan. Ook eventuele users in child OUs zullen meegenomen worden.
    objMigration.PasswordServer = De DC waar de PES service op geïnstalleerd is
    190-207 Aanmaken van het user migratie object. Je hebt in regel 166 t/m 189 het migratie object gemaakt. Je defineert nu een child om de user te migreren. Op dezelfde manier kun je ook groepen en een computer migreren.
    208-209 Deze regel start de daadwerkelijke migratie.
    212-230 Aanmaken van een HTML report. Deze is terug te vinden in c:\Scripts\Reports
    231-237 Deze regels copiëren de password vanuit het source domain naar de target domain
    238-268 Afsluiten van de logfiles
    269-einde Migratie event handling.

    DRAAIEN VAN HET SCRIPT

    Als het script aan je wensen is aangepast kun je beginnen met het draaien van het script
    1.    Maak de directory c:\scripts en c:\scripts\reports aan op de DC waarop ADMT is geïnstalleerd.
    2.    Kopieer de regels aan het einde van de blog naar notepad.
    3.    Pas de regels 166-189 aan, zodat het juiste source domain, source ou en target ou vermeld staat.
    4.    Sla dit bestand op als Migusersourcedomain.vbs
    5.    Open een CMD
    6.    Run het volgende commando: runas /user:miguser cmd.exe en voer het juiste wachtwoord in.
    7.    Je krijgt nu een nieuwe CMD. Voer de volgende stappen uit in deze CMD
    8.    Ga naar c:\scripts
    9.    Voer het volgende commando in cscript migusersourcedomain.vbs
    De migratie wordt nu uitgevoerd. Afhankelijk van de grote van het domain kan dit wel even duren. Pak rustig een bak koffie of twee of drie of …….  Bestudeer na afloop de logfiles in c:\script\reports voor eventuele accounts die niet goed gegaan zijn.

    SCRIPT

    Vanaf NU vind je HET script. Copieren en in notepad plakken. Veel plezier met het script.

    Martijn Bellaard


    1.    Option Explicit
    2.    '----------------------------------------------------------------------------
    3.    ' ADMT Scripting Constants
    4.    ' Niet aanpassen en niet aankomen
    5.    '----------------------------------------------------------------------------
    6.    ' PasswordOption constants
    7.    Const admtComplexPassword        = &H0001
    8.    Const admtCopyPassword                         = &H0002
    9.    Const admtDoNotUpdatePasswordsForExisting       = &H0010
    10.    ' ConflictOptions constants
    11.    Const admtIgnoreConflicting                  = &H0000
    12.    Const admtMergeConflicting                        = &H0001
    13.    Const admtRemoveExistingUserRights            = &H0010
    14.    Const admtRemoveExistingMembers               = &H0020
    15.    Const admtMoveMergedAccounts                  = &H0040
    16.    ' DisableOption constants
    17.    Const admtLeaveSource                    = &H0000
    18.    Const admtDisableSource                  = &H0001
    19.    Const admtTargetSameAsSource             = &H0000
    20.    Const admtDisableTarget                  = &H0010
    21.    Const admtEnableTarget                   = &H0020
    22.    ' SourceExpiration constant
    23.    Const admtNoExpiration = -1
    24.    ' Translation Option
    25.    Const admtTranslateReplace     = 0
    26.    Const admtTranslateAdd         = 1
    27.    Const admtTranslateRemove      = 2
    28.    ' Report Type
    29.    Const admtReportMigratedAccounts      = 0
    30.    Const admtReportMigratedComputers = 1
    31.    Const admtReportExpiredComputers      = 2
    32.    Const admtReportAccountReferences     = 3
    33.    Const admtReportNameConflicts        = 4
    34.    ' Option constants
    35.    Const admtNone             = 0
    36.    Const admtData             = 1
    37.    Const admtFile             = 2
    38.    Const admtDomain           = 3
    39.    Const admtRecurse               = &H0100
    40.    Const admtFlattenHierarchy      = &H0000
    41.    Const admtMaintainHierarchy     = &H0200
    42.    ' Event related constants
    43.    ' Progress type
    44.    Const admtProgressObjectMigration      = 0
    45.    Const admtProgressntDispatch         = 1
    46.    Const admtProgressntOperation    = 2
    47.    Const admtProgressMailboxMigration  = 3
    48.    ' Event type
    49.    Const admtEventNone                             = 0
    50.    Const admtEventObjectInputPreprocessed          = 1
    51.    Const admtEventTaskStart                        = 2
    52.    Const admtEventTaskFinish                       = 3
    53.    Const admtEventObjectProcessed                  = 4
    54.    Const admtEventGroupMembershipProcessed         = 5
    55.    Const admtEventntStatusUpdate              =6
    56.    Const admtEventntNotStarted         = 7
    57.    Const admtEventntFailedToStart         = 8
    58.    Const admtEventntWaitingForReboot     = 9
    59.    Const admtEventntRunning         = 10
    60.    Const admtEventntCancelled         = 11
    61.    Const admtEventntPassed         = 12
    62.    Const admtEventntFailed         = 13
    63.    Const admtEventntWaitingForRetry     = 14
    64.    Const admtEventntSuccessful         = 15
    65.    Const admtEventntCompletedWithWarnings     = 16
    66.    Const admtEventntCompletedWithErrors     = 17
    67.    Const admtEventTaskLogSaved         = 18
    68.    Const admtntPreCheckPhase         = &H100
    69.    Const admtntntOperationPhase     = &H200
    70.    Const admtntPostCheckPhase         = &H300
    71.    Const admtntStatusMask         = &HFF
    72.    Const admtntPhaseMask         = &H300
    73.    ' Status type
    74.    Const admtStatusSuccess       = 0
    75.    Const admtStatusWarnings     = 1
    76.    Const admtStatusErrors        = 2
    77.    'Extra Const made by Martijn Bellaard PQR
    78.    Const strLogFile     = "C:\Scripts\Reports\Miglog.csv"
    79.    Const strErrorLogFile     = "C:\Scripts\Reports\MigErrorlog.csv"
    80.    Const Forwriting     = true
    81.    '----------------------------------------------------------------------------
    82.    ' Declarations
    83.    '----------------------------------------------------------------------------
    84.    Dim objMigration
    85.    Dim objUserMigration
    86.    Dim objGroupMigration
    87.    Dim objComputerMigration
    88.    Dim objSecurityTranslation
    89.    Dim objServiceAccountEnumeration
    90.    Dim objPasswordMigration
    91.    Dim objFSO
    92.    Dim objLogfile
    93.    Dim objErrorLogFile
    94.    Dim lngStatusType
    95.    lngStatusType = 0
    96.    '----------------------------------------------------------------------------
    97.    ' Create Logfile
    98.    ' Add by Martijn Bellaard PQR
    99.    '----------------------------------------------------------------------------
    100.    'create instance of file system object
    101.    Set objFSO = CreateObject("Scripting.FileSystemObject")
    102.    'Create Log file
    103.    Set objLogFile = objFSO.CreateTextFile(strLogFile, Forwriting)
    104.    Set objErrorLogFile = objFSO.CreateTextFile(strErrorLogFile, Forwriting)
    105.    'Set time and date in logfile and screen
    106.    Objlogfile.write "========================================="
    107.    objLogfile.writeline
    108.    Objlogfile.write "Start date:" & Date & "Start Time:"& Time
    109.    objLogfile.writeline
    110.    Objlogfile.write "OLD  to NEW log "
    111.    objLogfile.writeline
    112.    Objlogfile.write "========================================="
    113.    objLogfile.writeline
    114.    Objlogfile.write "Progress,Started,Finished,Failed,"
    115.    objLogfile.writeline
    116.    ObjErrorlogfile.write "========================================="
    117.    objErrorLogfile.writeline
    118.    ObjErrorlogfile.write "Start date:" & Date & "Start Time:"& Time
    119.    objErrorLogfile.writeline
    120.    ObjErrorlogfile.write "OLD to NEW log "
    121.    objErrorLogfile.writeline
    122.    ObjErrorlogfile.write "========================================="
    123.    objErrorLogfile.writeline
    124.    ObjErrorlogfile.write "Object, Statusnummer,"
    125.    objErrorLogfile.writeline
    126.    wscript.echo "========================================="
    127.    wscript.echo "Start date:" & Date & "Start Time:"& Time
    128.    wscript.echo "OLD to NEWlog" & strLogfile
    129.    wscript.echo "========================================="
    130.    '----------------------------------------------------------------------------
    131.    ' ADMT Migration Class
    132.    '----------------------------------------------------------------------------
    133.    ' create instance of migration object
    134.    Set objMigration = wscript.CreateObject("ADMT.Migration", "Task_")
    135.    ' set options
    136.    objMigration.IntraForest = False
    137.    objMigration.SourceDomain = "old1.local"
    138.    objMigration.SourceDomainController = "SourceDC.old1.local"
    139.    objMigration.SourceOU = "Medewerkers"
    140.    objMigration.TargetDomain = "nieuwe.local"
    141.    objMigration.TargetDomainController = "TargetDC.nieuwe.local"
    142.    objMigration.TargetOU = "Import "
    143.    objMigration.PasswordOption = AdmtCopyPassword
    144.    objMigration.PasswordServer = "SourceDC.old1.local"
    145.    objMigration.ConflictOptions = admtMergeConflicting + admtRemoveExistingUserRights + admtRemoveExistingMembers
    146.    objMigration.AdmtEventLevel = admtStatusErrors
    147.    '----------------------------------------------------------------------------
    148.    ' UserMigration Class
    149.    '----------------------------------------------------------------------------
    150.    ' create instance of user migration object
    151.    Set objUserMigration = objMigration.CreateUserMigration
    152.    'set options
    153.    objUserMigration.DisableOption = admtDisableTarget
    154.    objUserMigration.SourceExpiration = admtNoExpiration
    155.    objUserMigration.MigrateSIDs = False
    156.    objUserMigration.TranslateRoamingProfile = False
    157.    objUserMigration.UpdateUserRights = False
    158.    objUserMigration.MigrateGroups = False
    159.    objUserMigration.UpdatePreviouslyMigratedObjects = False
    160.    objUserMigration.FixGroupMembership = False
    161.    objUserMigration.MigrateServiceAccounts = False
    162.    ' migrate user accounts
    163.    objUserMigration.Migrate admtDomain + admtRecurse + admtMaintainHierarchy
    164.    '----------------------------------------------------------------------------
    165.    ' ReportGeneration Class
    166.    '----------------------------------------------------------------------------
    167.    ' create instance of report generation object
    168.    DIM objReportGeneration
    169.    Set objReportGeneration = objMigration.CreateReportGeneration
    170.    ' set options
    171.    objReportGeneration.AutoPreCheckRetry = True
    172.    objReportGeneration.AutoPreCheckRetryInterval = 30
    173.    objReportGeneration.AutoPreCheckRetryNumber = 48
    174.    ' generate report
    175.    objReportGeneration.Type = admtReportMigratedAccounts
    176.    objReportGeneration.Folder = "C:\scripts\Reports\"
    177.    objReportGeneration.Generate admtNone
    178.    '----------------------------------------------------------------------------
    179.    ' PasswordMigration Class
    180.    ' - Note: The source domain and OU will be used if not explicitly specified
    181.    '----------------------------------------------------------------------------
    182.    ' create instance of password migration object
    183.    Set objPasswordMigration = objMigration.CreatePasswordMigration
    184.    'Last line
    185.    'Set time and date in logfile and screen
    186.    Objlogfile.write "========================================="
    187.    objLogfile.writeline
    188.    Objlogfile.write "End date:" & Date & "End Time:"& Time
    189.    objLogfile.writeline
    190.    Objlogfile.write "End logfile "
    191.    objLogfile.writeline
    192.    Objlogfile.write "========================================="
    193.    objLogfile.writeline
    194.    ObjErrorlogfile.write "========================================="
    195.    objErrorLogfile.writeline
    196.    ObjErrorlogfile.write "End date:" & Date & "End Time:"& Time
    197.    objErrorLogfile.writeline
    198.    ObjErrorlogfile.write "End logfile "
    199.    objErrorLogfile.writeline
    200.    ObjErrorlogfile.write "========================================="
    201.    objErrorLogfile.writeline
    202.    wscript.echo "========================================="
    203.    wscript.echo "End date:" & Date & "End Time:"& Time
    204.    wscript.echo "Finish OLD to OLD"
    205.    wscript.echo "========================================="
    206.    Objlogfile.close
    207.    objerrorLogFile.close
    208.    ' -----------------------------------------------------------------------------
    209.    ' Progress event handler
    210.    '   lngProgressType: progress type (admtProgress*)
    211.    '   lngStarted:      the number of started operations
    212.    '   lngFinished:     the number of finished operations
    213.    '   lngFailed:       the number of failed operations
    214.    ' -----------------------------------------------------------------------------
    215.    Sub Task_Progress(lngProgressType, lngStarted, lngFinished, lngFailed)
    a.    wscript.echo  "Progress: " & lngProgressType & " Started: " & lngStarted & " Finished: " & lngFinished & " Failed:" & lngFailed
    b.    Objlogfile.write lngProgressType & "," & lngStarted & "," & lngFinished & "," & lngFailed & ","
    c.    objLogfile.writeline
    216.    End Sub
    217.    ' -----------------------------------------------------------------------------
    218.    ' Status event handler
    219.    '   lngEventType:    event type (admtEvent*)
    220.    '   strObjName:      the name of the object
    221.    '   lngStatusType:   status (admtStatus*)
    222.    '   objMesss:     an array of messs
    223.    ' -----------------------------------------------------------------------------
    224.    Sub Task_Status(lngEventType, strObjName, lngStatusType, objMesss)
    225.    Dim strMess
    a.    wscript.echo "Object: " & strObjName  & " Status nummer: " & lngstatusType
    b.    if lngStatusType > 0 then
    i.    ObjErrorlogfile.write strObjName  & "," & lngstatusType & ","
    ii.    objErrorLogfile.writeline
    c.    end if
    226.    End Sub
    227.    '   Einde Script
    228.    ' ----------------------------------------------------------------------------

    Als je nog vragen hebt hoor ik ze graag.
    Martijn Bellaard

    Why NAT sucks

    Geplaatst op 13-2-2009 19:02 door Martijn Bellaard

    Als wiskundige heb ik geleerd dat je iets kan bewijzen door aan te nemen dat het klopt om vervolgens op zoek te gaan naar een uitzondering die het tegendeel bewijst. Dat wil ik nu ook gaan doen.


    Stelling: Dankzij NAT hebben we geen IPv6 nodig

    NAT for the ISP


    Het idee achter deze stelling is dat, als straks de IPv4 nummers op zijn, een ISP er voor zou kunnen kiezen om hun gehele netwerk achter een NAT router te plaatsen. Hierdoor is het mogelijk dat de ISP één IP nummer aan de buitenkant heeft en aan de binnenkant een complete 10 range gebruikt voor zijn klanten. De klinkt als een mooie oplossing, maar er is toch een hoop mis met deze oplossing


     

    What is NAT ?


    Voordat we ingaan op wat er nu mis gaat met het bovenstaande model  wil ik kort ingaan op hoe NAT werk.

    Het idee achter NAT is dat door een relatie te leggen tussen een interne IP nummer en poort met een externe poort nummer netwerk verkeer over één IP nummer naar buiten gerouteerd kan worden..  Elke host die een connectie aangaat met een andere host, gebruikt een random poort voor de connectie. De NAT router onderschept dit bericht en onthoudt over welke random poort de host communiceerde. Samen met zijn prived IP nummer slaat hij deze gegevens op in zijn NAT tabel en koppelt dat aan een poort aan de buitenkant. Op die manier onthoudt de NAT router welke connectie bij welke host hoort.


     

    Whats wrong?

    Er zijn 16 bits voor het poortnummer gereserveerd, dus een NAT router kan maximaal 65536 IP nummers en poortcombinaties maken.  Dus je kunt zeggen dat er maximaal 65536 hosts door één NAT router bedient kunnen worden. Dat zou kloppen als je maar naar  één simpele website zou gaan.

    Laten we daarom eens naar www.ngn.nl gaan en het aantal connecties tellen. Ik zet dus 1 tab open met 1 website. Als ik dan het commando netstat  uitvoer zie ik dat er meteen 10 extra connecties bij zijn gekomen. Dus als al de gebruikers van een ISP naar www.ngn.nl gaan kan ik maximaal 6553 gebruikers hosten. Als ik vervolgens naar het forum ga zie ik dat ik er nog eens 20 connecties bij gekregen heb. Dit geeft me dus ruimte voor 3276 gebruikers. Maar dan moeten we geen MSN of zo iets gaan gebruiken. Of nog erger via het web onze mail gaan lezen. Dan kom je al snel uit op 40 connecties per gebruiker. Let op, ik doe nog niet zulke rara dingen. Ik lees mijn mail en kijk in het NGN forum.

    Nu gaan nog iets veel ergers doen. Ik ga naar Google en zoek op NGN. Ik open de eerste drie hits in een nieuwe tab. Ik zit nu al op 56 connecties. Als ik dan ook nog een bezoek breng aan maps.google.nl om te kijken waar het kantoor van de NGN is dan zit ik 65 hits.  Als ik daarnaast naar het weer ga kijken en mezelf op de hoogte wil brengen van het laatste nieuws zit ik als snel op 100 connecties. Ik ben nog steeds een light user. Dus een doorsnee ISP kan over 1 NAT router maximaal 655 light users ondersteunen.

    Een medium user zal als snel 200 connecties open hebben staan. Onder een medium user versta ik een user die naast het open zetten van een aantal websites, gebruik maakt van MSN en luistert via internet naar de radio. Daarnaast beschikt de medium user over meer dan 1 PC.

    Een heavy user loopt het aantal connectie al snel op naar de 400. Aangezien internet steeds een grotere rol in ons leven gaat spelen zullen we allemaal richting de heavy user gaan. Dus een ISP zou in dat geval maximaal 163 gebruikers achter één NAT router kunnen plaatsen, maar laten we voorlopig uitgaan van 200 connecties per gebruiker. Dan kunnen er ongeveer 300 gebruikers per NAT router aanwezig zijn. Er zijn ongeveer 7.000.000 huizenhouding in Nederland. Dus om alle huishoudingen achter de NAT routers te plaatsen heb je zo’n 2333 Nat routers nodig en mag er niet meer dan één PC per huis aanwezig zijn.  Voor het gemak vergeet ik de bedrijven maar even.

    Is this all?

    Nu is dit niet het enige wat mis is met NAT. We hebben nu alleen gekeken naar uitgaande verkeer. Maar er gaat ook verkeer de andere kant op. Doordat we gebruik maken van een NAT router is het lastig om een host achter de NAP router te bereiken.  Dit wordt gezien als één van de grote voordelen van een NAT router. Op die manier krijg je een stuk extra beveiliging. Maar deze extra beveiliging heeft ook zo zijn keerzijde. Denk bijvoorbeeld aan IPSec. IPSec is een protocol dat het mogelijk maak om encryptie en authenticatie in elk TCP/IP pakketje te stoppen, maar IPSec gaat niet door NAT heen. Hiervoor is dan ook weer een speciale versie van IPSec ontworpen, IPSec-T. In de toekomst zullen we steeds meer protocollen zien die niet werken door NAT heen. Denk hierbij aan  Video, voice software en remote support software. Vooral als security belangrijker wordt zul je de host willen kunnen identificeren  achter de NAT router. NAT houdt dit soort mogelijkheden op dit moment tegen.
    Daarnaast zullen er steeds meer servers komen die een eigen IP nummer willen hebben op internet. Als je deze achter NAT plaatst krijg je het IPSec probleem in het kwadraat. Een host achter een NAT router wil misschien niet dat hij direct vanaf het internet bereikbaar is, maar voor servers geldt dit niet. Die moeten juist direct  bereikbaar zijn vanaf het internet.  We zien dit soort problemen vandaag de dag ontstaan, als we gebruik gaan maken van SSL. SSL wordt gebruikt om de security te verhogen, maar een NAT router (of reverse proxy) heeft het hier moeilijk mee, tenzij je voor elke SSL applicatie een eigen IP nummer aan de buitenkant geeft en die raken nu dus juist op.

    So I said it, Nat Sucks


    Ik begon met de stelling : Dankzij NAT hebben we geen IPv6 nodig.
    Deze stelling klopt als we toestaan dat  er niet meer dan 1 PC per huis komt en dat we niet teveel websites tegelijk bezoeken en geen nieuwe servers op internet gaan plaatsten. 

    Natuurlijk kun je dan nog gaan kiezen voor NAT achter NAT achter NAT achter NAT en zo door. Dan kunnen we nog wel een tijdje door gaan, maar dit zal de performance niet ten  goede komen en dan heb ik het nog niet over problemen zoals met IPSec en SSL.