VPN-ийн ард QGIS-ийг PostGIS-тэй холбох: алхам алхмаар
QGIS-ийг VPN-ийн ард байгаа PostGIS эсвэл WMS рүү чиглүүлж, туннелийг үйлчилгээний төгсгөлийн цэгээс тусгаарлаж, verify-full TLS-ийг хадгалж, хил бүрийг дараалан шалгана.
QGIS нь өгөгдлийн нийлүүлэгчид нь хүрч чадах аливаа замыг уншдаг тул ажиллаж байгаа VPN нь тохиргооны тал хувь л юм. Туннель нь ажлын талбарт зам ба нэр шийдвэрлэх бодлого өгдөг; төсөлд үйлчилгээний төгсгөлийн цэг, нийлүүлэгчийн протокол, үйлчилгээ хүлээн авах итгэмжлэл зэрэг хэрэгтэй хэвээр. Эдгээр нь гурван тусдаа талбар бөгөөд VPN-ийн нийтийн сонсогчийг өгөгдлийн сангийн талбарт бичих нь аль нь ч биш юм. Энэхүү гарын авлага QGIS-ийн маягтаас буцаж ирсэн мөр хүртэл нэг PostGIS давхаргыг дагаж, алхам бүрийн нотолж буй хилийг нэрлэнэ.
VPN-ээс биш, давхаргаас эхэл
Давхаргын төрөл бүр өөр төрлийн төгсгөлийн цэгт хүрдэг. PostGIS давхарга нь хост, порт, өгөгдлийн сан, үүрэг бүхий PostgreSQL холболт нээдэг. WMS эсвэл WFS давхарга нь үйлчилгээний URL авч, дараа нь боломжийн баримтыг шинжилдэг. Сүлжээний хуваалт дээрх shapefile-д үйлдлийн систем нээж чадах файлын зам л хэрэгтэй. Эдгээр нь гурван өөр механизм тул хоосон төсөл аль нь дээр ажиллаж байгааг мэдэх хүртэл юу ч хэлэхгүй.
GIS оператороос төгсгөлийн цэг, порт, шаардлагатай таних мэдээлэл, таны бүртгэлд үйлчлэх хандалтын бодлогыг асуу. Байршуулалт хувийн DNS эсвэл гэрчилгээний нэр шалгалтаас хамаардаг бол үйлчилгээний хостын нэрийг олгогдсон хэвээр нь хадгал. Өөр хэрэглэгчийн хадгалсан холболтоос хуулбарласан хост хаягийг дахин ашиглах нь хариулдаг боловч хуучин өгөгдлийн сантай машинд хүрэх хамгийн хурдан зам юм.
Маршрут, зөвшөөрөгдсөн нөөц, нэр шийдвэрлэлт нь VPN-ийг удирддаг хүнийх. Өгөгдлийн эх маягт нь туннелийн профайл хэзээ ч илгээгээгүй маршрутыг суулгаж чадахгүй бөгөөд гарцын бодлогыг өргөжүүлж чадахгүй. Хост шийдэгдэж, порт хариулбал асуудлын сүлжээний тал дууссан.
Операторын олгосон хувийн төгсгөлийн цэгийг оруул
QGIS дахь PostgreSQL маягт нь libpq-ийн хүлээдэг талбаруудыг тусгадаг тул командын мөрийн холболт дагах ижил дарааллаар бөглө. Үйлчилгээ ба хост нь өгөгдлийн сангийн машин авна, порт нь серверийн бодитоор нээдэг сонсогчийг авна, өгөгдлийн сан нь серверийн анхдагчийн оронд тодорхой каталог авна. Нууц үгийг төслийн файлд биш, баталгаажуулалтын тохиргоонд хадгал, ингэснээр хуваалцсан төсөл итгэмжлэл зөөхгүй.
Ямар нэгэн зүйл бичихээс өмнө хоёр нэрийг тусгаарла. Гарцын нэр VPN клиентэд, өгөгдлийн сангийн нэр QGIS-т хамаарах бөгөөд тэдгээр нь ховор ижил хост байдаг.
VPN gateway: vpn.gis.lab.example (profile only, not a data source)
Database host: db.gis.lab.example:5432 (PostGIS service)
Database name: gis_prod
TLS mode: verify-full
Хэрэв өгөгдлийн сан гарцын ард өөр машин дээр байвал маягт дахь нэр нь тэр машин байх ёстой. Туннелиар дамжуулсан хувийн DNS нь нэрийг ажиллуулдаг бөгөөд зөвхөн холбогдсон үед шийдэгддэг төсөл нь муу кэшлэх биш, зөв ажиллаж байгаа хэрэг.
Өгөгдлийн сангийн TLS горимыг туннелээс тусдаа барь
VPN бүтээгдэхүүний нэр дэх SSL нь туннелийг тодорхойлдог, өгөгдлийн сангийн сессийг биш. QGIS нь PostgreSQL-ийн SSL горимыг libpq-д дамжуулдаг бөгөөд энэ горим нь клиент серверийн гэрчилгээг шалгах эсэх, доторх хостын нэрийг шалгах эсэхийг удирддаг. verify-fullхоёуланг нь хийдэг, тиймээс гэрчилгээ нь үйлчилгээний нэрийг агуулж байвал хадгалах үнэ цэнэтэй горим энэ юм.
Туннель аль хэдийн шифрлэгдсэн учраас горимыг disable болгож бууруулах нь хүрсэн сервер нь таны хүссэн сервер мөн гэдгийг шалгахыг арилгана. Шалгалт бүтэлгүйтвэл ердийн шалтгаан нь нэрний зөрүү эсвэл үндсэн гэрчилгээний дутагдал бөгөөд хоёуланг нь холболтыг сулруулахгүйгээр засах боломжтой. sslrootcert-ийг операторын нийтэлсэн CA руу чиглүүлж, маягт дахь хостын нэрийг гэрчилгээ дэх нэртэй ижил байлга.
Хувийн маршруттай туннель болон хүчинтэй гэрчилгээтэй өгөгдлийн сан ч үүрэг дээр бүтэлгүйтэж болно. Аппликейшны итгэмжлэл VPN-ийн итгэмжлэлээс тусдаа бөгөөд гарц дээр баталгаажсан бүртгэл PostgreSQL-д ямар ч далд эрхгүй.
Хил бүрийг дараалан шалгаж, эхний бүтэлгүйтлийг унш
Клиентээс гадагш тогтмол дарааллаар ажилла: нэр шийдвэрлэлт, TCP хүртээмж, TLS, баталгаажуулалт, дараа нь асуулга өөрөө. Эхний бүтэлгүйтсэн алхам л мэдээлэх үнэ цэнэтэй бөгөөд урагш харайх нь таны хараахан хүрээгүй хилээс алдааны мэдээлэл өгдөг. Дөрвөн команд эхний дөрвөн алхмыг хамарна.
getent hosts db.gis.lab.example
nc -vz db.gis.lab.example 5432
psql "host=db.gis.lab.example port=5432 dbname=gis_prod sslmode=verify-full" -c 'select 1'
curl -sS 'https://wms.gis.lab.example/ows?service=WMS&request=GetCapabilities' | head -c 200
getent-ээс хоосон хариу нь нэр шийдвэрлэлтийн асуудал, өгөгдлийн сангийн асуудал биш. Татгалзсан эсвэл хугацаа дууссан nc нь маршрут эсвэл firewall дүрэм дутуу байгааг илэрхийлнэ, энэ нь гарцын талын засвар. psql-ээс TLS алдаа нь гэрчилгээ эсвэл нэр буруу байгааг илэрхийлнэ, харин password authentication failed нь та PostgreSQL-д хүрсэн бөгөөд асуудал итгэмжлэлд байгааг илэрхийлнэ. WMS давхаргын хувьд curl дуудлага нь QGIS шинжлэх байсан боломжийн XML-ийг буцаадаг тул тухайн гаралт дахь HTML нэвтрэх хуудас хоосон давхаргыг шууд тайлбарлана.
PostgreSQL алдаа нь хугацаа дуусахтай харьцуулахад сайн мэдээ. Энэ нь очих газар хариулсан гэдгийг баталж, тасалбарыг сүлжээний багаас өгөгдлийн сан эсвэл GIS администратор руу шилжүүлнэ. Энэ ялгааг тайланд хадгалах нь нэг тойрог хэмнэнэ.
Төсөл хоосон давхаргуудтай нээгдэх үед
QGIS дотор ямар нэгэн зүйлийг дахин оруулахаас өмнө давхаргын хадгалсан эх сурвалжийг шалга. Давхаргын шинж чанарууд төслийн хадгалсан яг холболтын мөрийг харуулдаг бөгөөд хуучин хосттой давхардсан холболтын бичлэг нь өмнөх оффисын сүлжээний ердийн үлдэгдэл. Холболтыг зассаны дараа төслийг дахин ачаалах нь нийлүүлэгчийг үргэлж дахин уншдаггүй тул давхаргыг устгаж, зассан холболтоос дахин нэм.
Дараа нь баталгаажуулалтын тохиргоо нь зөвхөн жагсаалтад байх биш, давхаргад хавсаргасан нь мөн эсэхийг батал. Өөр баталгаажуулалтын тохиргоотой хадгалсан давхарга хөтчийн самбарт чимээгүй бүтэлгүйтдэг бол бие даасан psql тест тэнцдэг.
Давхарга ачаалагдсаны дараа төслийг зөвхөн файлуудад харьцангуй замаар хадгалж, үйлчилгээний холболтуудыг тэдгээрийн төгсгөлийн цэгээр нэрлэсэн байлга. Төслийг өвлөн авсан дараагийн хүн тасалбар нээхгүйгээр эвдэрсэн давхарга аль хостыг хүлээж байсныг хэлж чадна.