PostgreSQL haijui kamwe kuwa mteja yuko kwenye VPN. Hupokea muunganisho wa TCP kutoka anwani na seti ya vitambulisho, na huamua nini cha kufanya navyo. Kwa hiyo kufanya ufikiaji utegemee handaki kunamaanisha kupanga maamuzi matatu tofauti ili yapatane, kisha kuangalia anwani moja tu ambayo seva huona kweli badala ya ile uliyochora kwenye mchoro.

Maamuzi matatu ambayo hayapaswi kuunganishwa

Mahali seva inasikiliza ni uamuzi mmoja. Trafiki gani inaweza kufikia anwani hiyo ni wa pili, unaofanywa na firewall ya mwenyeji na mpaka wowote wa mtandao mbele yake. Utambulisho gani wa hifadhidata unaweza kuthibitika kutoka chanzo gani ni wa tatu, unaofanywa katika pg_hba.conf.

Kila mmoja unatekelezwa na kipengele tofauti, na kila mmoja unashindikana kwa ujumbe tofauti. Kuyachanganya katika majadiliano ndiyo njia ambayo watu huishia kuhariri faili ya HBA ili kurekebisha tatizo la firewall. Yashikilie kwa mpangilio: msikilizaji ambaye hajafungwa hawezi kufikiwa, bandari iliyochujwa haiwezi kuunganishwa, na kanuni ya HBA huamua tu kile kinachotokea baada ya muunganisho kuwepo. Wakati mabadiliko hayana athari, tambua ni tabaka gani kati ya matatu ulibadilisha kweli.

Mahali seva inasikiliza

Funga kwa anwani ambayo imepewa mashine kweli, si jina la kiolesura:

listen_addresses = '10.20.0.30'

Hifadhidata inaweza kukaa nyuma ya lango la VPN bila kiolesura chake cha handaki, na ndiyo sababu anwani ndiyo kitu sahihi cha kutaja. Kubadilisha mpangilio huu kunahitaji kuanzishwa upya kikamilifu; kupakia upya hakutoshi.

Kisha chuja bandari, kwa kawaida 5432, kwenye mwenyeji na kwenye kila mpaka mbele yake. Kufunga kwa anwani ya kibinafsi si uthibitisho wa kukataliwa kwa umma, kwa sababu upelekaji wa bandari au upangaji wa anwani ya wingu bado unaweza kupeleka pakiti kwa msikilizaji huyo wa kibinafsi.

Anwani ambayo HBA huona kweli

Kwa ufikiaji uliopitishwa kwenye njia, seva huona anwani ya ndani ya handaki ya kila mteja. Kwa tafsiri ya chanzo huona badala yake anwani iliyotafsiriwa ya lango, na kila mteja huanguka katika thamani hiyo moja. Chunguza chanzo kupitia ushahidi wa muunganisho wa seva yenyewe kabla ya kuchagua kiambishi cha kuruhusu.

Kwa usambazaji ambao tayari unatumia TLS na SCRAM, mfano wa ufikiaji wa mbali uliokusudiwa kuwa mwembamba unaonekana hivi:

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

Hiyo inaruhusu jukumu moja na hifadhidata moja juu ya TLS kutoka kwenye bwawa lililotajwa, kisha inakataa ufikiaji mwingine wa TCP wa mbali. Si mbadala wa faili kamili ya HBA: weka utawala wa ndani, urudufishaji na huduma nyingine yoyote iliyoidhinishwa, na weka kanuni nyembamba mbele ya ruhusa pana.

Wakati tafsiri inatumika, HBA haiwezi kuwatofautisha wateja kwa anwani zao za awali. Weka upokeaji wa mtandao mkali na udai vitambulisho halisi vya hifadhidata, na kamwe usibadilishe uthibitishaji wa trust na akaunti halisi.

Mechi ya kwanza inashinda, bila mbadala

PostgreSQL husoma faili kutoka juu hadi chini na hutumia rekodi ya kwanza inayolingana na muunganisho. Hakuna jaribio la pili ikiwa uthibitishaji wa rekodi hiyo unashindikana, kwa hiyo ruhusa pana ya awali hushinda kwa utulivu kukataliwa kwa baadaye.

Kanuni hiyo ya mpangilio ndiyo sababu ya kawaida zaidi kwa nini kukataliwa kulikoandikwa kwa uangalifu hakuwa kamwe na nguvu. Weka kanuni mahususi kwanza na pana mwisho, kisha soma faili kama mfuatano na si kama seti. Kanuni uliyoongeza chini si sera, ni maoni. Ipeleke juu na upakie upya kabla ya kuhitimisha kuwa faili inapuuzwa.

Rejea ya HBA inafafanua mpangilio na tofauti kati ya rekodi za host na hostssl, jambo ambalo ni muhimu wakati lengo la kanuni ni kwamba muunganisho lazima usimbwe.

Kupakia upya, kuanzisha upya na kesi iliyokataliwa

Mabadiliko ya HBA hutumika kwa kupakia upya, na mwonekano wa pg_hba_file_rules hukusaidia kupata makosa ya uchanganuzi. Mwonekano huo unaelezea yaliyomo ya sasa ya faili, si kama seva inayoendesha imeyapakia kwa mafanikio, kwa hiyo orodha safi si uthibitisho kuwa kanuni mpya zinafanya kazi.

Mabadiliko ya msikilizaji yanahitaji kuanzishwa upya kwake, na shughuli hizo mbili ni rahisi kuchanganywa wakati mabadiliko yanaonekana hayana athari.

Jaribu kwa vipindi vipya: mteja aliyeruhusiwa na akaunti inayokusudiwa huunganishwa, akaunti hiyo hiyo kutoka njia isiyoruhusiwa haifanyi, na utambulisho wa hifadhidata usioidhinishwa bado unashindikana kutoka ndani ya VPN. Matokeo hayo matatu hutenganisha mpaka wa mtandao na uidhinishaji wa hifadhidata, na hiyo ndiyo sababu yote ya kutunza maamuzi kando.

Makala zinazohusiana