’n Kontrakteur het een interne webtoepassing nodig en niks anders, en die maklike antwoord is om hulle ’n tonnel na die bediener-subnet te gee. Dit werk tot die dag wanneer hulle dit skandeer. Die nouer ontwerp verg meer denke, want bereikbaarheid, roetering en toepassingtoestemming is drie afsonderlike beheermaatreëls wat moet ooreenstem.

Skryf die vereiste as ’n diens, nie ’n subnet nie

Begin met die bestemmingsgasheer, die protokol en die poort, en voeg dan die gebruiker- of toestelgroep by wat dit moet bereik. Sluit die private DNS-sone slegs in as die toepassing ’n naam oplos, en sluit ’n identiteitsverskaffer slegs in as die aanmeldvloei een nodig het. Alles anders is ’n afhanklikheid wat jy nog nie geregverdig het nie.

’n Subnet is ’n implementeringsdetail van die netwerkspan, terwyl ’n diens is wat die besigheid gevra het en die eenheid wat hersien en uit diens gestel kan word.

As die afhanklikheidslys verby drie items groei, het die toepassing waarskynlik sy eie ontwerpgesprek nodig.

Roeteer smal, maar handhaaf elders

’n Smal roete of keurder sê vir die tonnel watter pakkette om te dra; dit is nie ’n magtigingsbeleid nie. Die gateway-filter, die bestemmingsgasheer se firewall en die toepassing se eie toestemmingsmodel is waar toegang besluit word. ’n Roete wat een adres dek, is ’n goeie begin, en dit is nie die beheer wat ’n vasberade gebruiker stop nie. Daardie skeiding is wat jou toelaat om die filter te verander sonder om die tonnel te herontwerp.

Omgekeerd kan ’n wye roete met ’n streng filter wettig wees, maar slegs as almal betrokke weet watter een die handhawing doen.

Dokumenteer die handhawingspunt uitdruklik, anders sal die volgende verandering dit per ongeluk verskuif.

Kontroleer die bron wat die diens werklik sien

Die teiken sien óf die kliënt se poeladres óf die gateway se adres, afhangend van of jy vertaal. Gasheer-firewallreëls en logs moet by die werklike bron pas. As verskeie gebruikers ’n vertaalde bron deel, kan geen reël per gebruiker op daardie gasheer hulle onderskei nie, en dit is ’n ontwerpbeperking eerder as ’n fout.

Kies vertaling doelbewus: dit vereenvoudig roetering en vernietig bronidentiteit, wat saak maak vir oudit en vir reëls per gebruiker.

Skryf neer watter van die twee jy gekies het, langs die reël wat daarvan afhang.

Toepassingmagtiging is nie opsioneel nie

Om ’n poort te bereik gee nie ’n rol nie. Die toepassing het steeds sy eie aanmelding en sy eie toestemmings nodig, want die netwerklaag kan nie uitdruk watter rekords ’n gebruiker mag wysig nie. ’n Diens wat enige versoek van die interne subnet vertrou, verander ’n smal tonnel in volle toegang vir een gekompromitteerde geloofsbrief. Die tonnel besluit wie die sok mag oopmaak, en die toepassing besluit wat hulle daarmee mag doen.

Dit is waar die noue ontwerp twee keer betaal, want minder bereikbare gashere beteken minder plekke waar ’n toepassingvlakfout uitgebuit kan word.

Hou die netwerkreël en die toepassingrol in afsonderlike stelsels, en stel hulle afsonderlik uit diens.

Bewys beide die toegelate en die geweierde pad

Verbind as die gemagtigde gebruiker en voer een skadelose verteenwoordigende bewerking uit, en probeer dan ’n bestemming wat onbereikbaar moet wees. ’n Ontwerp wat net die eerste helfte toets, is nie getoets nie, en die geweierde toets is die een wat die ontwerp bewys. Toets ’n vars sessie ná elke reëlverandering, en kyk na die terugpad as versoeke aankom maar antwoorde nie.

Moet nie aanstuurfilters deaktiveer om die aanvaardingstoets te laat slaag nie, want dit verander die ding wat getoets word.

Wanneer die gebruiker die diens nie meer nodig het nie, stel die afstandidentiteit en die toepassingrol in hulle onderskeie stelsels uit diens, en teken albei aan. Die strongSwan-aansturingsgids dek die gateway-kant van die pad.

Verwante artikels