PostgreSQL léiert ni, datt e Client op enger VPN ass. Et kritt eng TCP-Verbindung vun enger Adress an eng Rei Umeldungsdaten, an entscheet, wat et domat mécht. Den Zougang vum Tunnel ofhängeg ze maachen heescht also dräi getrennte Entscheedungen esou ze arrangéieren, datt se iwwereneen kommen, an dann déi eng Adress ze kontrolléieren, déi de Server tatsächlech gesäit, amplaz vun där, déi Dir um Diagramm gezeechent hutt.

Dräi Entscheedungen, déi net verschmëlze sollen

Wou de Server lauschtert, ass eng Entscheedung. Wéi en Traffic déi Adress erreeche kann, ass eng zweet, déi vun der Host-Firewall an all Netzgrenz virun hir getraff gëtt. Wéi eng Datebankidentitéit vu wéi enger Quell sech authentifizéiere kann, ass eng drëtt, déi an pg_hba.conf getraff gëtt.

Jiddwereen gëtt vun enger anerer Komponent ëmgesat, an jiddwereen schléit mat enger anerer Noriicht fehl. Se an enger Diskussioun ze verschmëlzen ass de Wee, wéi Leit dorop kommen, d’HBA-Datei ze editéieren, fir e Firewallproblem ze léisen. Halt se an der Rei: en net gebonnene Listener ka net erreecht ginn, op e gefilterte Port ka sech net verbonne ginn, an eng HBA-Reeg entscheet nëmmen, wat geschitt, nodeems eng Verbindung existéiert. Wann eng Ännerung keng Wierkung huet, identifizéiert wéi eng vun den dräi Schichten Dir tatsächlech geännert hutt.

Wou de Server lauschtert

Bind un eng Adress, déi tatsächlech der Maschinn zougewisen ass, net un en Interface-Numm:

listen_addresses = '10.20.0.30'

D’Datebank kann hannert dem VPN-Gateway sëtzen ouni en eegenen Tunnelinterface, an dat ass genee de Grond, firwat eng Adress dat Richtegt ass ze nennen. Dës Astellung z’änneren erfuerdert e komplette Neistart; en Nei-Luede geet net duer.

Dann filtert de Port, normalerweis 5432, um Host an op all Grenz virun him. Un enger privater Adress ze bannen ass kee Beweis fir eng ëffentlech Oflehnung, well eng Port-Weiderleitung oder eng Cloud-Adresszouuerdnung nach ëmmer Pakete kann un dee private Listener liwweren.

D’Adress, déi d’HBA tatsächlech gesäit

Bei geroutetem Zougang gesäit de Server déi bannenzeg Tunneladress vun all Client. Bei Quell-Iwwersetzung gesäit en amplaz déi iwwersat Adress vun der Gateway, an all Client fält an deen eenzege Wäert zesummen. Ënnersicht d’Quell iwwer d’Verbindungsbeweiser vum Server selwer, ier Dir e Präfix auswielt, deen erlaabt soll ginn.

Fir eng Deployement, déi schonn TLS a SCRAM benotzt, gesäit en bewosst engen Beispill fir Fernzougang esou aus:

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

Dat erlaabt eng Roll an eng Datebank iwwer TLS aus dem genannte Pool an ofleent dann aneren TCP-Fernzougang. Et ass kee Ersatz fir eng komplett HBA-Datei: behält déi lokal Administratioun, d’Replikatioun an all aner autoriséiert Servicer, a setzt déi eng Reegele virun méi breed Erlaabnesser.

Wann Iwwersetzung am Spill ass, kann d’HBA d’Clienten net un hirem ursprénglechen Adressen ënnerscheeden. Halt d’Netzwierkzouloossung enk a verlaangt richteg Datebank-Umeldungsdaten, a ersetzt ni d’trust-Authentifikatioun duerch e richtege Kont.

Déi éischt Iwwereneekommes gewënnt, ouni Hannergrond

PostgreSQL liest d’Datei vu uewen no ënnen a benotzt den éischten Aschreiwung, deen zu der Verbindung passt. Et gëtt keen zweete Versuch, wann d’Authentifikatioun vun deem Aschreiwung fehlschléit, also eng fréier breed Erlaabnes besiegt eng spéider Oflehnung roueg.

Déi Reeg vun der Rei ass de gréissten Grond, firwat eng suergfälteg geschriwwen Oflehnung ni a Kraaft trëtt. Setzt déi spezifesch Reegele fir d’éischt an déi breed lescht, a liest d’Datei dann als eng Rei an net als en Ensembel. Eng Reeg, déi Dir ënnen derbäigesat hutt, ass keng Politik, si ass e Kommentar. Beweegt se no uewen a lued se nei, ier Dir zum Schluss kommt, datt d’Datei ignoréiert gëtt.

D’HBA-Referenz definéiert souwuel d’Rei wéi och den Ënnerscheed tëscht host- an hostssl-Aschreiwungen, wat wichteg ass, wann et bei der Reegel drëm geet, datt d’Verbindung verschlësselt muss sinn.

Nei lueden, Neistart an de verworfene Fall

HBA-Ännerunge ginn duerch e Nei-Luede ugewannt, an d’Vue pg_hba_file_rules hëlleft Iech, Parse-Fehler ze fannen. Déi Vue beschreift den aktuellen Inhalt vun der Datei, net ob de lafende Server se erfollegräich gelueden huet, also eng propper Lëscht ass kee Beweis, datt déi nei Reegele lieweg sinn.

Ännerungen um Listener brauche hiren eegene Neistart, an déi zwou Operatiounen si liicht ze verwiesselen, wann eng Ännerung keng Wierkung ze hunn schéngt.

Test mat frische Sessiounen: en genehmegten Client mam virgesinnene Kont verbënnt, dee selwechte Kont vun engem net genehmegte Wee net, an eng onautoriséiert Datebankidentitéit schléit nach ëmmer vum bannenzeg vun der VPN fehl. Déi dräi Resultater trennen d’Netzwierkgrenz vun der Datebankautorisatioun, an dat ass de ganzen Zweck, d’Entscheedungen getrennt ze halen.

Ähnlech Artikelen