PostgreSQL dros VPN: pa gyfeiriad ffynhonnell y bydd pg_hba yn ei weld
Mae’r gwrandawr, y mur tân a’r rheol HBA gyntaf sy’n cyfateb yn dair penderfyniad. Gwiriwch y ffynhonnell y mae PostgreSQL yn ei chael mewn gwirionedd cyn dewis rhagddodiad.
Nid yw PostgreSQL byth yn dysgu bod cleient ar VPN. Mae’n derbyn cysylltiad TCP o gyfeiriad a set o gyweiriadau, ac mae’n penderfynu beth i’w wneud â nhw. Felly mae gwneud mynediad yn dibynnu ar y twnnel yn golygu trefnu tri phenderfyniad ar wahân fel eu bod yn cyd-fynd, ac wedyn gwirio yr un cyfeiriad y mae’r gweinydd yn ei weld mewn gwirionedd yn hytrach na’r un a dynnoch ar y diagram.
Tri phenderfyniad na ddylai uno
Mae lle mae’r gweinydd yn gwrando yn un penderfyniad. Pa draffig sy’n gallu cyrraedd y cyfeiriad hwnnw yw’r ail, a wneir gan fur tân y gwesteiwr ac unrhyw ffin rwydwaith o’i flaen. Pa hunaniaeth cronfa ddata sy’n gallu dilysu o ba ffynhonnell yw’r trydydd, a wneir yn pg_hba.conf.
Mae pob un yn cael ei orfodi gan gydran wahanol, ac mae pob un yn methu â neges wahanol. Uno’r rhain mewn trafodaeth yw’r ffordd y mae pobl yn gorffen golygu’r ffeil HBA i drwsio problem mur tân. Cadwch nhw mewn trefn: ni ellir cyrraedd gwrandawr nad yw wedi’i rwymo, ni ellir cysylltu â phorthladd wedi’i hidlo, ac mae rheol HBA yn penderfynu dim ond beth sy’n digwydd ar ôl i gysylltiad fodoli. Pan nad oes gan newid effaith, nodwch pa un o’r tair haen y gwnaethoch ei newid mewn gwirionedd.
Lle mae’r gweinydd yn gwrando
Rhwymwch at gyfeiriad sydd wedi’i neilltuo i’r peiriant mewn gwirionedd, nid at enw rhyngwyneb:
listen_addresses = '10.20.0.30'Gall y gronfa ddata fod y tu ôl i giât VPN heb ryngwyneb twnnel ei hun, a dyna’n union pam mai cyfeiriad yw’r peth cywir i’w enwi. Mae newid y gosodiad hwn yn gofyn am ailgychwyn llawn; nid yw ail-lwytho yn ddigon.
Yna hidlwch y porthladd, fel arfer 5432, ar y gwesteiwr ac ar bob ffin o’i flaen. Nid yw rhwymo at gyfeiriad preifat yn brawf o wrthodiad cyhoeddus, oherwydd gall anfon porthladd ymlaen neu fapio cyfeiriad cwmwl dal danfon pecynnau i’r gwrandawr preifat hwnnw.
Y cyfeiriad y mae HBA yn ei weld mewn gwirionedd
Gyda mynediad wedi’i lwybreiddio mae’r gweinydd yn gweld cyfeiriad twnnel mewnol pob cleient. Gyda chyfieithu ffynhonnell mae’n gweld cyfeiriad cyfieithiedig y giât yn lle hynny, ac mae pob cleient yn cwympo i’r un gwerth hwnnw. Archwiliwch y ffynhonnell drwy dystiolaeth gysylltiad y gweinydd ei hun cyn i chi ddewis rhagddodiad i’w ganiatáu.
Ar gyfer defnydd sydd eisoes yn defnyddio TLS a SCRAM, mae enghraifft fynediad o bell sy’n fwriadol gul yn edrych fel hyn:
hostssl appdb app_login 10.8.0.0/24 scram-sha-256
host all all 0.0.0.0/0 reject
host all all ::/0 rejectMae hynny’n caniatáu un rôl ac un gronfa ddata dros TLS o’r pwll a nodwyd, ac yna’n gwrthod mynediad TCP o bell arall. Nid yw’n disodli ffeil HBA gyflawn: cadwch weinyddiaeth leol, atgynhyrchu ac unrhyw wasanaeth awdurdodedig arall, a rhowch y rheolau cul cyn y caniatadau ehangach.
Pan fo cyfieithu ar waith, ni all HBA wahaniaethu cleientiaid yn ôl eu cyfeiriadau gwreiddiol. Cadwch fynediad rhwydwaith yn dynn a mynnwch gyweiriadau cronfa ddata go iawn, ac na disodlwch ddilysu trust ag unrhyw gyfrif gwirioneddol.
Y cyfatebiad cyntaf sy’n ennill, heb gefn
Mae PostgreSQL yn darllen y ffeil o’r brig i’r gwaelod ac yn defnyddio’r cofnod cyntaf sy’n cyfateb i’r cysylltiad. Nid oes ail gynnig os bydd dilysu’r cofnod hwnnw’n methu, felly mae caniatâd eang cynharach yn trechu gwrthodiad diweddarach yn dawel.
Y rheol drefn hon yw’r rheswm mwyaf cyffredin pam na ddaw gwrthodiad a ysgrifennwyd yn ofalus byth i rym. Rhowch y rheolau penodol gyntaf a’r rhai eang olaf, ac yna darllenwch y ffeil fel dilyniant yn hytrach nag fel set. Nid yw rheol a ychwanegoch ar y gwaelod yn bolisi, mae’n sylw. Symudwch hi i fyny ac ail-lwythwch cyn dod i’r casgliad bod y ffeil yn cael ei hanwybyddu.
Mae’r cyfeirlyfr HBA yn diffinio’r drefn a’r gwahaniaeth rhwng cofnodion host a hostssl, sy’n bwysig pan mai pwynt y rheol yw bod rhaid i’r cysylltiad fod wedi’i amgryptio.
Ail-lwytho, ailgychwyn, a’r achos gwrthodedig
Mae newidiadau HBA yn cael eu cymhwyso gan ail-lwytho, ac mae’r golwg pg_hba_file_rules yn eich helpu i ddod o hyd i wallau dosrannu. Mae’r olwg honno’n disgrifio cynnwys presennol y ffeil, nid a yw’r gweinydd sy’n rhedeg wedi’u llwytho’n llwyddiannus, felly nid yw rhestr lân yn brawf bod y rheolau newydd yn fyw.
Mae newidiadau i’r gwrandawr angen eu hailgychwyn eu hunain, ac mae’n hawdd drysu rhwng y ddau weithrediad pan ymddengys nad oes gan newid unrhyw effaith.
Profwch gyda sesiynau ffres: mae cleient cymeradwy gyda’r cyfrif a fwriadwyd yn cysylltu, nid yw’r un cyfrif o lwybr heb ei gymeradwyo yn gwneud, ac mae hunaniaeth cronfa ddata heb awdurdod yn dal i fethu o du mewn i’r VPN. Mae’r tri chanlyniad hynny’n gwahanu’r ffin rwydwaith oddi wrth awdurdodi cronfa ddata, sef holl bwynt cadw’r penderfyniadau ar wahân.