Meshnet, Docker kaj la permeso inter ili
Nodo en la maŝo, kiu atingas publikigitan ujon, trapasas permeson de la gastiganto kaj tradukon de Docker. Ekzamenu la du aparte, alie vi aprobos malĝustan amplekson.
Du URL-oj povas aspekti identaj en la retumilo de nodo kaj tamen signifi tre malsamajn aferojn por la fajroŝirmilo. Unu montras al servo aŭskultanta sur la gastiganto mem. La alia montras al adreso de gastiganto, kies pordo estas publikigita en ujan reton, kie traduka paŝo transdonas la konekton al alia IP. En maŝo de nodo al nodo, kiu regas aliron al la loka reto per permeso por ĉiu nodo, tiu diferenco estas la tuta ekzameno.
La permeso temas pri la finpunkto de la gastiganto, la traduko temas pri Docker, kaj la ensaluto temas pri la aplikaĵo. Tri decidoj, tri lokoj por rigardi.
Sekvu la celon post publikigo
Prenu Linux-gastiganton kun Docker, kiu publikigas la pordon 80 de ujo sur la gastiganta pordo 8080. Nodo konektiĝas al la maŝa adreso de la gastiganto sur 8080, la gastiganto akceptas la konekton, kaj cela traduko reverkas ĝin al la ponto-adreso de la ujo, kutime io kiel 172.17.0.2 sur pordo 80.
Kiam regulo ekzamenas tiun fluon, la interesa celo estas la ujo, ne la gastiganto. Politiko, kiu rezonas nur pri «servo sur ĉi tiu maŝino», rezonas pri la malĝusta objekto. La peto surteriĝis sur la gastiganto, sed ĝi estas liverata aliloke.
Tial la dokumentaro de la maŝo listigas Docker-ujojn inter la rimedoj, kiujn la permeso de loka reto regas en Linux. La permeso ne estas sinonimo de ordinara ero en la permeslisto de VPN, kaj la du kontroloj ne anstataŭas unu la alian. Unu decidas, ĉu nodo entute rajtas atingi lokajn rimedojn; la alia decidas, kiujn celojn portas tunela vojo.
Decidu, kiom da loka aliro permeso donas
Doni al nodo aliron al la loka reto ne estas decido pri unu ujo. Ĝi povas malkaŝi aliajn publikigitajn servojn sur la sama gastiganto, kaj ĝi povas atingi pli malproksimen laŭ tio, kiel la gastiganto plusendas. Ekzamenu la efektivan amplekson antaŭ ol klaki la ŝaltilon por unu panelo.
Poste rigardu, kie Docker publikigas la pordon. Publikigo sur 0.0.0.0 kreas aŭskultanton sur ĉiu adreso de la gastiganto, kio povas aldoni ordinaran LAN-eron apud la maŝa. Se la postulo estas nur maŝa, ligu la publikigon al la specifa adreso aŭ interfaco, kiun vi celas, kaj traktu la pli vastan ligon kiel apartan konstaton, ne kiel oportunon.
Tenu la plusendan politikon de la gastiganto kaj la propran aŭtentikigon de la aplikaĵo sufiĉe mallarĝaj por la servo. URL, kiu aspektas privata, ne estas alirkontrolo, kaj ujo, kiu fidas ĉiun fonton en sia ponta reto, ne estas protektita de la fakto, ke la maŝa nodo estis aprobita. La aŭtentikigo de la aplikaĵo estas la tria decido, kaj ĝi estas la sola, kiu scias, kiu estas la uzanto. Permeso je la nivelo de gastiganto ne povas provizi tiun scion.
Testu la permeson, ne nur la URL-on
De la aprobita nodo malfermu la ĝustan servon kaj konfirmu, ke ĝi funkcias. Poste provu celon, kiu devus resti malpermesita, kaj konfirmu, ke ĝi ne funkcias. Testi nur la feliĉan vojon diras al vi, ke la permeso estis donita; ĝi ne diras, ke la limo estas tie, kie vi pensas.
Aparte komparu servon denaskan al la gastiganto. Se datumbazo aŭskultas sur la gastiganto kaj panelo funkcias en ujo, ili sekvas malsamajn vojojn tra la sama permeso kaj eble ne estas regataj same de la plusenda politiko de la gastiganto. Notu, kiu estas kiu, antaŭ ol skribi la ekzamenan noton.
Ne malplenigu la tabelojn de Docker aŭ la regulojn de la maŝa kliento por «restarigi» aliron. Ambaŭ produktoj instalas sian propran politikan integriĝon, kaj ĝia forigo produktas gastiganton, kiu ŝajnas funkcii dum ĝi preterpasas la kontrolojn, kiujn oni petis vin taksi. Se regulo aspektas malĝusta, legu ĝin kaj ŝanĝu ĝuste tiun regulon. Se vi ne povas klarigi, kion faras regulo, tio estas la konstato, ne kialo forigi ĝin.
Skribu la konstaton per la terminoj de la sistemo mem
Gravas la distingo, kiun la produkto efektive plenumas, ne tiu en la ekzamena ŝablono: permeso atingi finpunkton de gastiganto, permeso atingi enkursigajn privatajn rimedojn, kaj permeso uzi la aplikaĵon. Publikigi pordon lasas tiujn tri decidojn ĝuste tie, kie ili estis, kaj ekzamenanto, kiu traktas ilin kiel unu, aprobos malĝustan amplekson.
Indiku la adreson de la gastiganto, la publikigitan pordon, la celon de la ujo kaj la permeson de la nodo en la sama frazo. Tiu frazo estas testebla de iu alia, kaj tio faras ĝin konstato anstataŭ opinio.