PostgreSQL клиент VPN-д байгааг хэзээ ч мэддэггүй. Энэ нь нэг хаягаас TCP холболт болон итгэмжлэлийн багцыг хүлээн авч, тэдгээрийг хэрхэн ашиглахаа шийддэг. Тиймээс хандалтыг туннелээс хамааралтай болгох гэдэг нь гурван тусдаа шийдвэрийг харилцан нийцүүлэн зохион байгуулж, дараа нь диаграм дээр зурсан хаягийн оронд серверийн бодитоор хардаг цорын ганц хаягийг шалгахыг хэлнэ.

Нэгтгэж болохгүй гурван шийдвэр

Сервер хаана сонсож байгаа нь нэг шийдвэр. Ямар трафик тэр хаягт хүрч чадах нь хоёр дахь бөгөөд үүнийг хост firewall болон түүний урд байгаа аливаа сүлжээний хил хязгаар шийддэг. Аль өгөгдлийн сангийн таних тэмдэг аль эх сурвалжаас баталгаажиж болох нь гурав дахь бөгөөд pg_hba.conf дотор шийдэгддэг.

Тус бүрийг өөр өөр бүрэлдэхүүн хэрэгжүүлдэг бөгөөд тус бүр өөр мессежээр бүтэлгүйтдэг. Тэдгээрийг хэлэлцүүлэгт нэгтгэх нь хүмүүс firewall-ийн асуудлыг засахын тулд HBA файлыг засварлаж эхлэх шалтгаан болдог. Тэдгээрийг дарааллаар нь бариарай: холбогдоогүй сонсогч руу хүрэх боломжгүй, шүүсэн порт руу холбогдох боломжгүй, HBA дүрэм нь холболт үүссэний дараа юу болохыг л шийднэ. Өөрчлөлт ямар ч үр дүнгүй бол гурван давхаргын алийг нь бодитоор өөрчилснөө тодорхойлоорой.

Сервер хаана сонсдог

Интерфейсийн нэрэнд биш, машинд бодитоор хуваарилагдсан хаяг руу холбоно уу:

listen_addresses = '10.20.0.30'

Өгөгдлийн сан нь өөрийн туннелийн интерфейсгүйгээр VPN гарцын ард байж болох бөгөөд яг ийм учраас хаягийг нэрлэх нь зөв юм. Энэ тохиргоог өөрчлөхөд бүрэн дахин эхлүүлэх шаардлагатай; дахин ачаалах нь хангалтгүй.

Дараа нь портыг, ихэвчлэн 5432-ыг, хост дээр болон түүний урд байгаа хил бүр дээр шүүнэ үү. Хувийн хаягт холбогдох нь нийтийн хаалтын баталгаа биш, учир нь портын дамжуулалт эсвэл үүлэн хаягийн зураглал пакетуудыг тэр хувийн сонсогч руу хүргэж болно.

HBA-ийн бодитоор хардаг хаяг

Маршрутлагдсан хандалтад сервер клиент бүрийн дотоод туннелийн хаягийг хардаг. Эх сурвалжийн орчуулгад тэрээр оронд нь гарцын орчуулсан хаягийг хардаг бөгөөд клиент бүр тэр нэг утгад нийлдэг. Зөвшөөрөх префикс сонгохын өмнө эх сурвалжийг серверийн өөрийн холболтын нотолгоогоор шалгана уу.

TLS болон SCRAM-ыг аль хэдийн ашиглаж буй байршуулалтын хувьд санаатайгаар нарийн алсын хандалтын жишээ иймэрхүү харагдана:

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

Энэ нь заасан нөөцөөс TLS-ээр нэг роль, нэг өгөгдлийн санд зөвшөөрөл өгөөд дараа нь бусад алсын TCP хандалтыг татгалздаг. Энэ нь бүрэн HBA файлыг орлохгүй: орон нутгийн удирдлага, репликац болон бусад зөвшөөрөгдсөн үйлчилгээг хадгалж, нарийн дүрмийг илүү өргөн зөвшөөрлийн өмнө тавина уу.

Орчуулга ажиллаж байх үед HBA клиентүүдийг анхны хаягаар нь ялгаж чадахгүй. Сүлжээний хүлээн авалтыг чанд бариад жинхэнэ өгөгдлийн сангийн итгэмжлэл шаардаж, trust баталгаажуулалтыг бодит бүртгэлээр хэзээ ч бүү соль.

Эхний тохирол ялна, нөөц замгүй

PostgreSQL файлыг дээрээс доош уншиж, холболттой тохирох эхний бичлэгийг ашиглана. Тэр бичлэгийн баталгаажуулалт бүтэлгүйтвэл хоёр дахь оролдлого байхгүй, тиймээс эрт өргөн зөвшөөрөл хожим татгалзалтыг чимээгүйхэн дийлдэг.

Энэ дарааллын дүрэм нь анхааралтай бичсэн татгалзал хэзээ ч хүчин төгөлдөр болохгүй байх хамгийн түгээмэл шалтгаан юм. Тодорхой дүрмүүдийг эхэнд, өргөнүүдийг төгсгөлд тавьж, дараа нь файлыг олонлог биш, дараалал хэлбэрээр уншина уу. Доод талд нэмсэн дүрэм нь бодлого биш, тайлбар юм. Файлыг үл тоомсорлож байна гэж дүгнэхээс өмнө түүнийг дээш зөөж дахин ачаална уу.

HBA лавлагаа нь дарааллыг болон host ба hostssl бичлэгүүдийн ялгааг тодорхойлдог бөгөөд дүрмийн утга нь холболт заавал шифрлэгдсэн байх ёстой гэдэгт оршиход энэ нь чухал юм.

Дахин ачаалах, дахин эхлүүлэх, татгалзсан тохиолдол

HBA-ийн өөрчлөлтийг дахин ачааллаар хэрэгжүүлдэг бөгөөд pg_hba_file_rules харагдац нь задлан шинжилгээний алдааг олоход тусалдаг. Тэр харагдац нь файлын одоогийн агуулгыг дүрсэлдэг, ажиллаж буй сервер тэдгээрийг амжилттай ачаалсан эсэхийг биш, тиймээс цэвэр жагсаалт шинэ дүрмүүд хүчинтэй гэдгийн баталгаа биш.

Сонсогчийн өөрчлөлтүүд өөрийн дахин эхлүүлэлтийг шаарддаг бөгөөд өөрчлөлт ямар ч үр дүнгүй мэт санагдах үед хоёр үйлдлийг андуурахад хялбар.

Шинэ сессүүдээр туршаарай: зорилтот бүртгэлтэй зөвшөөрөгдсөн клиент холбогддог, мөн бүртгэл зөвшөөрөөгүй замаас холбогддоггүй, зөвшөөрөлгүй өгөгдлийн сангийн таних тэмдэг VPN-ийн дотроос ч бүтэлгүйтдэг. Эдгээр гурван үр дүн сүлжээний хил хязгаарыг өгөгдлийн сангийн эрх олголтоос тусгаарладаг бөгөөд шийдвэрүүдийг тусдаа барихын бүх учир нь энэ юм.

Холбоотой нийтлэлүүд