Installatie handleiding HDN ProxyServer versie 1.4 1 juli 2010
© Copyright Communications Security Net B.V.
1
Inhoudsopgave 1 Inleiding..........................................................................................................................3 1.1 Plaats van de HDN ProxyServer.............................................................................4 1.2 Installatie.................................................................................................................5 1.3 Directorystructuur.................................................................................................10 2 Configuratie..................................................................................................................11 2.1 Default instellingen...............................................................................................11 2.2 Parameters.............................................................................................................11 2.3 Configureren HDN Software................................................................................14 2.4 Configureren ASU software..................................................................................15 3 Starten van de Software................................................................................................16 4 Verwijderen van de Software........................................................................................16 5 Logging.........................................................................................................................17 5.1 Logmeldingen.......................................................................................................17 5.2 Voorbeeld logdata.................................................................................................21
© Copyright Communications Security Net B.V.
2
1
Inleiding
De HDN ProxyServer is ontwikkeld om HDN communicatie met andere systemen middels een proxyfunctie te realiseren. Het primaire doel is om een HDN proxyServer in de DMZ te plaatsen en de HDN server of multi server in het interne bedrijfsnetwerk. De HDN ProxyServer zorgt ervoor dat er gescheiden sessies tussen de de remote HDN client en de internet HDN (multi) server ontstaan, waarbij bovendien gewaarborgd is dat er in de DMZ geen ontsleutelde data wordt opgeslagen. Het het initiatief voor het opzetten van de verbinding kan hierbij intern bij de organisatie liggen, of van een via het Internet binnenkomende verbinding afkomstig zijn. De HDN ProxyServer controleert of de data die bij de ProxyServer binnenkomt, voldoet aan de gestelde eisen. Dit betekent dat mogelijk verkeer door de HDN ProxyServer beperkt wordt tot datgene wat expliciet met het HDN berichtenverkeer te maken heeft. Ook voorziet de HDN ProxyServer in een logfunctie, waarbij zowel het toegestane verkeer, als de geweigerde verbindingen gelogd worden. De HDN Proxyserver is geschikt voor het afhandelen van zowel de asynchrone- als de synchrone HDN berichten. Deze handleiding behandelt de installatie en configuratie van een HDN ProxyServer.
© Copyright Communications Security Net B.V.
3
1.1
Plaats van de HDN ProxyServer
Het doel van de HDN ProxyServer is tweeledig. Ten eerste is deze bedoeld om verkeer vanaf het interne netwerk van de organisatie op een gecontroleerde manier naar andere systemen via het Internet te kunnen reguleren. Daarnaast wordt verkeer van HDN clients, komend vanaf het Internet naar de HDN ProxyServer geleid. Deze start vervolgens een aparte sessie naar de HDN (multi) server in het interne LAN. Meestal heeft een organisatie voor dit doel een netwerkbeveiliging ingericht waarbij een DMZ gecreëerd is. De HDN ProxyServer zal dan veelal in deze DMZ worden gepositioneerd. Onderstaand figuur geeft dit schematisch weer:
Uit dit figuur blijkt duidelijk dat de HDN (multi) server nooit een directe verbinding met systemen op het Internet heeft. De HDN ProxyServer handelt alle verkeer richting Internet af en zorgt er bovendien voor dat interne IP-adressen voor applicaties op het Internet verborgen blijven.
© Copyright Communications Security Net B.V.
4
1.2
Installatie
De HDN ProxyServer software wordt geleverd in de vorm van een installatieprogramma met als naam HDNProxyServer.exe. Door dit programma te starten, zal met de installatie begonnen worden. De installatieprocedure is zodanig opgezet, dat volstaan kan worden met de default instellingen. Onderstaande schermen geven het verloop van de installatie weer.
© Copyright Communications Security Net B.V.
5
Bij een standaard installatie, zullen de software en configuratiebestanden op locaties geplaatst worden, volgens de richtlijnen van Microsoft. Dit betekent voor de software dat de default installatie directory C:\Program Files\HDNProxy zal zijn. Voor de configuratie- en logbestanden is dit afhankelijk van het platform waarop de software geïnstalleerd wordt. Onder Windows/XP is dit bijvoorbeeld C:\documents and settings\All Users\Application Data\HDNProxy. Als u van deze locaties wilt afwijken kunt u, zodra onderstaand scherm getoond wordt, voor “Aangepast” kiezen.
© Copyright Communications Security Net B.V.
6
Als u voor het Aangepaste installatietype gekozen heeft, wordt onderstaand scherm getoond, waarbij u de mogelijkheid heeft om voor zowel de programmatuur als de configuratie- en logbestanden een door u gewenste locatie in te stellen.
© Copyright Communications Security Net B.V.
7
© Copyright Communications Security Net B.V.
8
Zodra de installatie voltooid is, zal de HDN ProxyServer direct als service gestart worden. Onderstaand scherm geeft deze service weer, zoals deze onder de Windows services getoond wordt.
Om te voorkomen dat hierdoor onbedoeld verkeer mogelijk is, worden in de default configuratie uitsluitend verbindingen vanaf de lokale machine geaccepteerd.
© Copyright Communications Security Net B.V.
9
1.3
Directorystructuur
Nadat de HDN ProxyServer software geïnstalleerd is, zal onderstaande directory- en bestandsstructuur zijn aangemaakt: [DATADIR]\HDNProxy etc\ etc\hdnproxy.prm log\ [PROGRAMDIR]\HDNProxy asu\ asu\ns.wsdl
Het configuratiebestand Directory waarin logbestanden geplaatst worden
Service voor Automatische Software Update
bin\ bin\hdnproxy.exe bin\libparms.dll bin\libparms.prm
De service die gestart wordt Leest configuratiedata Gebruikt voor installatie
certserver\ certserver\ns.wsdl
CRL distributie/certificaat vernieuwing
hdn\ hdn\hdnws.wsdl
HDN berichtenverkeer waaronder rapportages
html\
Direcory met online help
swpclient\ swpclient\swpublisher.wsdl Service voor schema updates
© Copyright Communications Security Net B.V.
10
2 2.1
Configuratie Default instellingen
De installatieprocedure zal een default configuratiebestand aanmaken, zodat de ProxyServer als service geactiveerd kan worden. De default configuratie ziet er als volgt uit: AcceptTimeout=30 AsyncForwardHost= AsyncForwardPort=0 AsyncListenPort=0 DataDir=C:\Documents and Settings\All Users\Application\Data\HDNProxy\ ExternalAddress=0.0.0.0 InstallDir=C:\Program Files\HDNProxy\ ListenAddress=127.0.0.1 ListenPort=8888 LogLevel=3 MaxConcurrent=10 ReceiveTimeout=10 SecurityLevel=3 SupportAsu=1 SupportCerts=1 SupportHDN=1 SupportSchemas=1 SyncForwardHost= SyncForwardPort=0 SyncListenPort=0
2.2
Parameters
AcceptTimeout
Dit is de intervaltijd, opgegeven in seconden waarmee de Service zal wachten op binnenkomende verbindingen. Deze tijd is ook de maximale tijd die er kan verstrijken als de gebruiker de service probeert te stoppen. De default waarde is 30 seconden.
AsyncForwardHost
De hostnaam, of het IP-adres van de interne HDN (multi)server waar de HDN ProxyServer binnenkomende asynchrone berichten naar moet doorsturen.
AsyncForwardPort
Het TCP poortnummer op de interne HDN (multi)server waar binnenkomende asynchrone HDN berichten naar doorgestuurd moeten worden.
© Copyright Communications Security Net B.V.
11
AsyncListenPort
Het TCP poortnummer waarop de HDN ProxyServer asynchrone HDN berichten vanaf het Internet binnenkrijgt. Wanneer deze poort de waarde 0 heeft, zal er geen listener voor asynchrone berichten gestart worden.
DataDir
De directory waarin het configuratiebestand en de logbestanden geplaatst worden.
ExternalAddress
Het externe IP adres van de HDN ProxyServer waarop verbindingen vanaf het Internet geaccepteerd mogen worden.
InstallDir
Directory waarin de software geïnstalleerd is.
ListenPort
Dit is het TCP poortnummer waarop de Service wacht op binnenkomende verbindingen.
LogLevel
Het niveau waarop logmeldingen gelogd worden. De volgende waarden kunnen hier worden opgegeven: 0 Alleen fatale fouten worden gelogd 1 Ook Errors worden gelogd 2 Naast Error worden ook Warnings gelogd 3 Infomeldingen worden gelogd 4 Log naast de overige meldingen, ook Debug data.
MaxConcurrent
Het maximaal aantal gelijktijdige sessies dat de service ondersteunt. Default staat deze parameter ingesteld op een maximum van 10 gelijktijdige sessies. Als alternatief is het ook mogelijk om de HDN ProxyServer te begrenzen op een maximaal geheugengebruik. Als deze parameter een negatieve waarde heeft, bijvoorbeeld -30, wordt daarmee aangegeven hoeveel Megabyte intern geheugen minimaal beschikbaar moet zijn. Zolang er voldoende vrij geheugen beschikbaar is, kunnen er gelijktijdige sessies gestart blijven worden. Het is ook mogelijk deze limitering uit te schakelen, door deze parameter een waarde 0 te geven.
ReceiveTimeout
Hier wordt de timeout, uitgedrukt in seconden, opgegeven dat de Service wacht op data van hetzij de client die de verbinding heeft opgezet danwel de server waarmee een verbinding gemaakt is. Deze tijd staat standaard ingesteld op 10 seconden.
© Copyright Communications Security Net B.V.
12
LogLevel
De default instelling is 3. Dit betekent dat alles gelogd wordt, met uitzondering van Debug meldingen.
SecurityLevel
Hier wordt het niveau opgegeven waarop controle plaatsvindt op data die de client probeert te versturen. Er worden door de HDN ProxyServer 4 niveaus onderscheiden:” 0 Er vindt geen controle plaats. 1 Er wordt gecontroleerd of de te starten sessie door een applicatie geïnitieerd is, die een gSOAP bericht wil versturen. 2 Er wordt bovendien gecontroleerd of de SOAP Envelope correspondeert met één van de te ondersteunen protocollen. 3 Naast de SOAP envelope, moet ook het bericht voorkomen in de te ondersteunen berichtsoorten, zoals in de WSDL beschrijvingen is opgenomen.
ListenAddress
Hier kan een lijst van IP-adressen worden opgegeven waarop de Service zal luisteren naar binnenkomende verbindingen vanaf het interne LAN. Default staat hier localhost ingevuld. Deze parameter herkent zowel hostnamen, als IP-adressen. Wel moeten de opgegeven adressen c.q. hostnamen lokaal op de machine waar de HDN ProxyServer gestart wordt beschikbaar zijn. Als meer dan één adres wordt opgegeven, moeten de verschillende adressen door een komma gescheiden zijn.Bijvoorbeeld: ListenAddress=localhost,192.168.1.34
SupportAsu
Hier wordt aangegeven of de Service sessies naar de ASU server moet toestaan. Default heeft deze parameter de waarde 1. ASU kan uitgeschakeld worden door deze parameter de waarde 0 te geven. Deze parameter heeft uitsluitend een functie, als het SecurityLevel minimaal op niveau 2 staat ingesteld.
SupportSchemas
Hier wordt aangegeven of de Service sessies naar de Schema update server moet toestaan. Default heeft deze parameter de waarde 1. Schema updates kunnen uitgeschakeld worden door deze parameter de waarde 0 te geven. Deze parameter heeft uitsluitend een functie, als het SecurityLevel minimaal op niveau 2 staat ingesteld.
© Copyright Communications Security Net B.V.
13
SupportCerts
Hier wordt aangegeven of de Service sessies naar de certificaatserver moet toestaan. Default heeft deze parameter de waarde 1. Toegang naar de certificaat kan uitgeschakeld worden door deze parameter de waarde 0 te geven. Deze parameter heeft uitsluitend een functie, als het SecurityLevel minimaal op niveau 2 staat ingesteld.
SupportHDN
Hier wordt aangegeven of de Service uitgaande HDN berichten moet toestaan. Default heeft deze parameter de waarde 1. HDN berichten kunnen uitgeschakeld worden door deze parameter de waarde 0 te geven. Deze parameter heeft uitsluitend een functie, als het SecurityLevel minimaal op niveau 2 staat ingesteld. Het TCP poortnummer waarop de HDN ProxyServer synchrone HDN berichten vanaf het Internet binnenkrijgt. Wanneer deze poort de waarde 0 heeft, zal er geen listener voor synchrone berichten gestart worden.
SyncListenPort
SyncForwardHost
De hostnaam, of het IP-adres van de interne HDN (multi)server waar de HDN ProxyServer binnenkomende synchrone berichten naar moet doorsturen.
SyncForwardPort
Het TCP poortnummer op de interne HDN (multi)server waar binnenkomende synchrone HDN berichten naar doorgestuurd moeten worden.
Het is mogelijk om de asynchrone en synchrone berichten naar één interne HDN server door te sturen, of naar twee verschillende machines. In geval beide berichtsoorten naar één machine doorgestuurd worden, is het van belang dat de parameters SyncForwardPort en AsyncForwardPort niet dezelfde waarde hebben.
2.3
Configureren HDN Software
De HDN software op het interne LAN moet ingesteld worden om voor wat uitgaand verkeer betreft via de HDN ProxyServer te communiceren. Om de HDN software via een proxyserver te laten communiceren, moet een configuratiebestand proxy.prm worden aangemaakt en in de directory met HDN configuratiebestanden geplaatst worden. Deze directory is etc\hdn. Waar deze directory te vinden is, hangt af van de wijze waarop de HDN software geïnstalleerd is. Default geldt hier exact dezelfde methode als voor de HDN ProxyServer software.
© Copyright Communications Security Net B.V.
14
Hieronder staat een voorbeeld van een proxy.prm bestand weergegeven. ProxyHost=192.168.1.139 ProxyPort=8888 ProxyUser= ProxyPassword=
proxyHost
De naam van of het IP-adres van de HDN ProxyServer.
ProxyPort
Het TCP poortnummer waarop de HDN ProxyServer staat ingesteld.
ProxyUser
Optioneel kan een proxy server authenticatie van de client afdwingen. De HDN ProxyServer maakt hier geen gebruik van, aangezien deze berichtinhoudelijk valideert. Daarom hoeft hier niets te worden ingevuld.
ProxyPassword
2.4
Optioneel kan een proxy server authenticatie van de client afdwingen. De HDN ProxyServer maakt hier geen gebruik van, aangezien deze berichtinhoudelijk valideert. Daarom hoeft hier niets te worden ingevuld.
Configureren ASU software
De ASU software werkt onafhankelijk van de HDN communicatiesoftware. Als het gewenst is de ASU software ook via de HDN ProxyServer te laten communiceren, moet aan de ASU configuratie ook een proxy.prm bestand worden toegevoegd. Dit bestand moet geplaatst worden in de directory [DATADIR]\CS Engineering\ASU\. De inhoud van dit bestand is identiek aan dat wat bij de HDN configuratie is aangemaakt. Er kan daarom volstaan worden met het kopiëren van het eerder aangemaakte proxy.prm bestand.
© Copyright Communications Security Net B.V.
15
3
Starten van de Software
De HDN ProxyServer wordt geïnstalleerd als Windows Service. Tijdens installatie wordt deze service zodanig ingesteld, dat deze automatisch gestart wordt. Het starten en stoppen van de HDN ProxyServer moet dan ook gebeuren middels het Windows Services console.
4
Verwijderen van de Software
De HDN ProxyServer software kan verwijderd worden via het Windows console (Start → Control Panel → Add or Remove Programs. In de lijst met programma's die hier getoond wordt, staat de HDN ProxyServer opgenomen.
© Copyright Communications Security Net B.V.
16
5
Logging
De HDN ProxyServer schrijft logmeldingen in een logbestand dat in de [DATADIR]\log directory geplaatst wordt. Hierbij is [DATADIR] de naam van de directory die tijdens installatie van de software is opgegeven als locatie waar configuratie- en logbestanden geplaatst moeten worden. De naam van het logbestand is LGFILExx.TXT. Hierbij is xx het huidige dagnummer. De logdata wordt dus elke dag in een ander bestand geschreven. Als bij het wisselen van dag naar een ander logbestand overgegaan wordt, zal een eventueel al aanwezig bestand gewist worden. Hiermee wordt bereikt dat de maximale omvang van historische logdata beperkt blijft tot maximaal de laatste 31 dagen.
5.1
Logmeldingen
In deze meldingen kunnen namen en getallen zijn opgenomen, die afhankelijk van de context zijn. De naamgeving is hierbij als volgt: %s
Een alfa-numerieke string
%d
Een geheel getal
%05d Een geheel getal, aangevuld tot 5 cijfers, met voorloop nullen, ingeval het getal kleiner is dan 10000 Onderstaande lijst geeft alle mogelijk voorkomende logmeldingen weer. Waar van toepassing staat bij deze meldingen cursief weergegeven welke actie ondernomen kan worden om een probleem te verhelpen. Ook kan nader verklaard worden wat de betekenis van een specifieke logmelding is. Fatal
Unable to open WSDL file
Fatal
No IP ListenAddress specified in hdnproxy.prm De Service kan niet gestart worden, doordat niet tenminste 1 IP-adres is opgegeven. Pas het configuratiebestand hdnproxy.prm aan.
Fatal
HDN ProxyServer stopped due to fatal error Deze foutmelding wordt gegeven als er een interne fout geconstateerd wordt, waardoor verdere werking niet mogelijk is. Bij deze melding kan een (Windows) foutcode gelogd worden.
Fatal
Cse exception: e=%s
© Copyright Communications Security Net B.V.
17
Fatal
Unable to reuse socket for listening
Fatal
Unable to create synchronisation event
Fatal
Unable to listen for connection
Fatal
Unable to bind socket to listener port Deze foutmelding wordt gegeven als de HDN ProxyServer zich niet aan de ingestelde TCP poort kan koppelen. Mogelijk is de opgegeven poort als door een ander proces in gebruik. Ook kan het zijn dat in het configuratiebestand HDNProxy.prm een verkeerd poortnummer is opgegeven.
Fatal
Unable to listen for connection
Error
Unable to open WSDL file. filename=%s Een WSDL bestand kon niet gelezen worden. Controleer of het opgegen bestand betaat en door de Service gelezen mag worden.
Error
Unable to create target socket Er kan geen verbinding met het doelsysteem gemaakt worden. De oorzaak is een fout waardoor op het systeem geen nieuwe TCP sockets gemaakt kunnen worden. Een mogelike oorzaak is een tekort aan Windows resources.
Error
Unable to resolve target host. host=%s In het hdnproxy.prm bestand is bij de parameter ListenAddress een hostnaam opgegeven, waar geen IP-adres bij gevonden kan worden. Controleer of in de ingevoerde hostnaam geen typefout zit. Ook is het mogelijk dat de HDN ProxyServer geen verbinding kan maken met de DNS server waar deze hostnaam in opgegeven is.
Error
Unable to resolve target system
Error
Select failed
Error
Client request Is invalid
Error
Unable to send data to target host
Error
Unable to read data from target
Error
Unable to send data to client
Error
Unhandled exception. file=%s line=%d
Error
Error initializing winsock Er kan geen nieuwe sessie gestart worden, doordat de communicatie met de Windows winsock component niet geïnitialiseerd kon worden.
Error
Error duplicating socket Er kan geen nieuwe sessie gestart worden. Een mogelijke oorzaak is een te kort aan Windows resources.
© Copyright Communications Security Net B.V.
18
Error
Could not obtain handle to synchronisation event
Error
Unable to initialize winsock. Error=%d
Error
Unable to resolve hostname. name=%s
Error
Accept failt. errnum=%d
Error
Wait failed. Error=0x%x
Warning Header validation failed at level %d Er is een sessie gestart naar de HDN ProxyServer met andere software als de HDN communicatieserver, of de HDN ProxyServer staat geblokkeerd voor het protocol dat gebruikt wordt. ASU staat bijvoorbeeld geblokkeerd en de ASU software is toch aktief en probeert verbinding met de ASU server te maken. Warning Session dropped. Not enough memory available. active=%d freemem=%d Deze melding wordt gegeven als de MaxConcurrent parameter in het hdnproxy.prm bestand staat ingesteld op een minimaal benodigde hoeveelheid vrij intern geheugen en er is op dat moment minder dan het opgegeven minimum beschikbaar. Warning Unknown event 0x%x Warning Session dropped. Session limit reached. limit=%d Als de MaxConcurrent parameter in het hdnproxy.prm bestand staat ingesteld op een maximum aantal gelijktijdige sessies en dit aantal is bereikt, dan wordt deze melding gegeven. Warning Trying to connect to target %s:%d Het tot stand brengen van een verbinding met het doelsysteem is mislukt. Mogelijke oorzaken zijn bijvoorbeeld een doelsysteem dat tijdelijk niet bereikbaar is of een probleem met netwerkinstellingen. Aanvullend wordt een extra foutmelding gelogd met daarin de Windows foutcode. Deze foutcode kan extra informatie over de oorzaak van deze foutsituatie geven. Info
Bind to %s:%d
Info
Connected to target %s:%d Er is verbinding met het doelsysteem tot stand gebracht. Het IP-adres en remote poortnummer wordt gelogd.
Info
Found %d SOAP Services
Info
Start HDN ProxyServer at security level %d Informatief. Gelogd wordt het niveau waarop de service gestart is.
Info
Connection closed. fromClient=%d fromTarget=%d
© Copyright Communications Security Net B.V.
19
De sessie tussen client en het doelsysteem is beëindigd. Deze melding geeft het aantal bytes weer dat verstuurd en ontvangen is. Info
Stop service on request
Info
Incoming connect. ip=%s type=%d active=%d Er is een verbindingsverzoek binnengekomen. Het remote IP-adres wordt gelogd. Het type van de verbinding geeft aan om wat voor soort verbinding het gaat: 0 – Verbinding vanaf het Internet op de asynchrone poort 1 – Verbinding vanaf het Internet op de synchrone poort 2 en hoger – Verbinding vanaf één van de interfaces naar het interne LAN. Ook wordt gelogd hoeveel gelijktijdige sessies er op dat moment zijn.
Info
Entering Run Service
Debug
Trying to connect to target %s:%d
Debug
CheckHeaders %s
Debug
CheckEnvelope %s
Debug
ChecksoapService %s
Debug
Waiting %d seconds on socket %d
Debug
Received from socket bytes=%d inFrame=%d
Debug
Partial data still in buffer. remainder=%d
Debug
Sent to target %d bytes
Debug
Found %s Melding van een geconfigureerde service naam.
Debug
Sent to client %d bytes
Debug
Signal parent process
Debug
Accepting call on socket
Debug
Waiting for clients. timeout=%d sec
Debug
Starting child. Active=%d clientsock=%d
Debug
Socket and type inherited from parent. sock=%d type=%d
Debug
Handle service event The %s service was installed The %s service was uninstalled The %s service could not be removed ::StartServiceCtrlDispatcher error %d:
© Copyright Communications Security Net B.V.
20
Entering WinService::ServiceMain() (servname=%s) The control handler could not be installed ProxyServer is initialized ProxyServer initialize failed ProxyServer stopping WinService::SetStatus(%lu, %lu) The initialization process failed The serveice was started Entering WinService::Run() Sleeping... Leaving WinService::Run() WinService::Handler(%lu) The service received an unsupported request Updating status (%lu, %lu)
5.2
Voorbeeld logdata
Nov 26 16:47:03 Nov 26 16:47:03 level 3 Nov 26 16:51:29 Nov 26 16:51:29 Nov 26 16:51:29 active=0 Nov 26 16:51:29 Nov 26 16:51:32 fromTarget=4297
localhost hdnproxy.exe:info : 1492: Found 17 SOAP Services localhost hdnproxy.exe:info : 01492: Start HDN ProxyServer at security localhost hdnproxy.exe:info : 01492:Bind to 127.0.0.1:8888 localhost hdnproxy.exe:info : 01492:Bind to 172.16.3.225:8888 localhost hdnproxy.exe:info : 01492:Incoming connect. ip=127.0.0.1 localhost hdnproxy.exe:info : 01492:Connected to target 172.16.3.226:8081 localhost hdnproxy.exe:info : 01492:Connection closed. fromClient=59159
© Copyright Communications Security Net B.V.
21