PostgreSQL yfir VPN: hvaða upprunafang pg_hba mun sjá
Hlustarinn, eldveggurinn og fyrsta samsvarandi HBA-reglan eru þrjár ákvarðanir. Athugaðu upprunann sem PostgreSQL tekur í raun við áður en þú velur forskeyti.
PostgreSQL kemst aldrei að því að biðlari sé á VPN. Það tekur við TCP-tengingu frá einhverju fangi og mengi skilríkja og ákveður hvað það gerir með þau. Að láta aðgang ráðast af göngunum þýðir því að raða þremur aðskildum ákvörðunum svo að þær stemmi, og athuga síðan eina fangið sem þjónninn sér í raun í stað þess sem þú teiknaðir á skýringarmyndina.
Þrjár ákvarðanir sem mega ekki renna saman
Hvar þjónninn hlustar er ein ákvörðun. Hvaða umferð getur náð því fangi er önnur, tekin af eldvegg hýsilsins og hvaða netmörkum sem er fyrir framan hann. Hvaða auðkenni gagnagrunns mega sannvotta sig frá hvaða uppruna er þriðja, tekin í pg_hba.conf.
Hverri þeirra er framfylgt af mismunandi hlut og hver um sig bregst með mismunandi skilaboðum. Að renna þeim saman í umræðu er leiðin sem fólk endar á að breyta HBA-skránni til að laga eldveggsvandamál. Haltu þeim í röð: hlustara sem er ekki bundinn er ekki hægt að ná, ekki er hægt að tengjast síuðum porti, og HBA-regla ákveður aðeins hvað gerist eftir að tenging er til. Þegar breyting hefur engin áhrif skaltu greina hvaða af þremur lögum þú breyttir í raun.
Hvar þjónninn hlustar
Bindu við fang sem er í raun úthlutað vélinni, ekki við nafn viðmóts:
listen_addresses = '10.20.0.30'Gagnagrunnurinn getur staðið bak við VPN-gáttina án eigin gönguviðmóts, og einmitt þess vegna er fang rétta hluturinn að nefna. Að breyta þessari stillingu krefst fullrar endurræsingar; endurhleðsla er ekki nóg.
Síðan skaltu sía portið, venjulega 5432, á hýsilnum og við hver netmörk fyrir framan hann. Að binda við einkafang er ekki sönnun um opinbera synjun, því framsending ports eða skýjafangskortlagning getur enn skilað pakkum til þess einkahlustara.
Fangið sem HBA sér í raun
Með beinum leiðum sér þjónninn innra gangafang hvers biðlara. Með upprunaupphlutun sér hann í staðinn upphlutað fang gáttarinnar, og hver biðlari fellur saman í það eitt gildi. Skoðaðu upprunann í gegnum eigin tengingarsönnun þjónsins áður en þú velur forskeyti til að leyfa.
Fyrir uppsetningu sem notar þegar TLS og SCRAM lítur viljandi þröngt fjaraðgangsdæmi svona út:
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 rejectÞað leyfir eitt hlutverk og einn gagnagrunn yfir TLS úr tilgreindu safninu og hafnar síðan annarri fjartengingu TCP. Það kemur ekki í stað heillar HBA-skrár: haltu staðbundinni stjórnun, fjölritun og hverri annarri leyfðri þjónustu, og settu þröngar reglur á undan víðtækari heimildum.
Þegar upphlutun er í gangi getur HBA ekki greint biðlara eftir upprunalegum föngum þeirra. Haltu netaðgangi þröngum og krefst raunverulegra gagnagrunnsskilríkja, og skiptu aldrei trust-sannvottun út fyrir raunverulegan reikning.
Fyrsta samsvörunin vinnur, án varaleiðar
PostgreSQL les skrána ofan frá og niður og notar fyrstu færsluna sem passar við tenginguna. Það er engin önnur tilraun ef sannvottun þeirrar færslu mistekst, svo fyrri víð heimild sigrar síðari synjun hljóðlega.
Þessi röðunarregla er algengasta ástæðan fyrir því að vandlega skrifuð synjun kemur aldrei til framkvæmda. Settu sérstakar reglur fyrst og víðar síðast, og lestu síðan skrána sem röð en ekki sem mengi. Regla sem þú bættir við neðst er ekki stefna, hún er athugasemd. Færðu hana upp og endurhlaðaðu áður en þú ályktar að skráin sé hunsuð.
HBA-tilvísunin skilgreinir bæði röðina og muninn á host- og hostssl-færslum, sem skiptir máli þegar tilgangur reglunnar er að tengingin verði að vera dulkóðuð.
Endurhleðsla, endurræsing og synjaða tilfellið
HBA-breytingar eru virkjaðar með endurhleðslu, og pg_hba_file_rules-sýnin hjálpar þér að finna þáttunarvillur. Sú sýn lýsir núverandi innihaldi skrárinnar, ekki hvort keyrandi þjónninn hlóð þær með góðum árangri, svo hreinn listi er ekki sönnun um að nýju reglurnar séu virkar.
Breytingar á hlustaranum þurfa eigin endurræsingu, og auðvelt er að rugla saman aðgerðunum tveimur þegar breyting virðist hafa engin áhrif.
Prófaðu með ferskum lotum: samþykktur biðlari með tilætluðum reikningi tengist, sami reikningur frá ósamþykktri leið ekki, og óheimilt gagnagrunnsauðkenni mistekst enn innan frá VPN. Þessar þrjár niðurstöður aðskilja netmörkin frá heimild gagnagrunnsins, sem er allur tilgangurinn með að halda ákvörðununum aðskildum.