Izvođaču treba jedna interna web aplikacija i ništa drugo, a lak odgovor je dati im tunel u podmrežu servera. To radi do dana kada je skeniraju. Uži dizajn traži više razmišljanja, jer dostupnost, rutiranje i dozvola aplikacije su tri odvojene kontrole koje se moraju slagati.

Zapišite zahtjev kao uslugu, a ne kao podmrežu

Počnite s odredišnim hostom, protokolom i portom, pa dodajte korisničku ili uređajnu grupu koja treba do njega doći. Uključite privatnu DNS zonu samo ako aplikacija razrješava ime, i uključite davatelja identiteta samo ako ga tok prijave treba. Sve ostalo je ovisnost koju još niste opravdali.

Podmreža je pojedinost implementacije mrežnog tima, dok je usluga ono što je posao tražio i jedinica koja se može pregledati i umiroviti.

Ako popis ovisnosti naraste preko tri stavke, aplikaciji vjerojatno treba vlastiti razgovor o dizajnu.

Rutirajte usko, ali provodite na drugom mjestu

Uzak put ili selektor govori tunelu koje pakete nositi; to nije politika autorizacije. Filter pristupnika, vatrozid odredišnog hosta i vlastiti model dozvola aplikacije mjesta su gdje se odlučuje o pristupu. Put koji pokriva jednu adresu dobar je početak i nije kontrola koja zaustavlja odlučnog korisnika. Upravo to razdvajanje omogućuje promjenu filtera bez redizajna tunela.

Obrnuto, širok put sa strogim filterom može biti legitiman, ali samo ako svi uključeni znaju koji od njih provodi kontrolu.

Izričito dokumentirajte točku provođenja, inače će je sljedeća promjena slučajno premjestiti.

Provjerite izvor koji usluga doista vidi

Odredište vidi ili adresu iz klijentskog bazena ili adresu pristupnika, ovisno o tome prevodite li. Pravila vatrozida hosta i zapisi moraju odgovarati stvarnom izvoru. Ako više korisnika dijeli prevedeni izvor, nijedno pravilo po korisniku na tom hostu ne može ih razlikovati, i to je dizajnersko ograničenje, a ne greška.

Odaberite prijevod namjerno: pojednostavljuje rutiranje i uništava identitet izvora, što je važno za reviziju i pravila po korisniku.

Zapišite koje ste od dvoje odabrali, uz pravilo koje o tome ovisi.

Autorizacija aplikacije nije neobavezna

Dosezanje porta ne daje ulogu. Aplikacija i dalje treba vlastitu prijavu i vlastite dozvole, jer mrežni sloj ne može izraziti koje zapise korisnik smije uređivati. Usluga koja vjeruje svakom zahtjevu iz interne podmreže pretvara uzak tunel u puni pristup za jedno kompromitirano uvjerenje. Tunel odlučuje kome je dopušteno otvoriti utičnicu, a aplikacija odlučuje što smiju raditi s njom.

Tu se uzak dizajn isplati dvaput, jer manje dostupnih hostova znači manje mjesta na kojima se pogreška na razini aplikacije može zloupotrijebiti.

Držite mrežno pravilo i aplikacijsku ulogu u odvojenim sustavima i umirovite ih odvojeno.

Dokažite i dopušteni i odbijeni put

Povežite se kao ovlašteni korisnik i obavite jednu bezazlenu reprezentativnu radnju, zatim pokušajte odredište koje bi trebalo biti nedostupno. Dizajn koji testira samo prvu polovicu nije testiran, a test odbijanja je onaj koji dokazuje dizajn. Testirajte novu sesiju nakon svake promjene pravila i pogledajte povratni put ako zahtjevi dolaze, a odgovori ne.

Ne isključujte filtre prosljeđivanja da bi prihvatni test prošao, jer to mijenja stvar koja se testira.

Kada korisniku usluga više nije potrebna, umirovite udaljeni identitet i aplikacijsku ulogu u njihovim sustavima i zabilježite oboje. Vodič strongSwan za prosljeđivanje pokriva stranu pristupnika na tom putu.

Povezani članci