Tunnel SSH QGIS PostGIS: pa orúkọ server mọ́ fún TLS
Ìtọ́jú SSH ń fún QGIS ní ibudo àdúgbò, ṣùgbọ́n ibi-ìpamọ́ ṣì nílò orúkọ gidi rẹ̀ fún TLS. Lo iṣẹ́ libpq pẹ̀lú hostaddr àti olùgbọ́ loopback.
Tunnel náà gòkè, QGIS so mọ́, ìwọlé sì kú pẹ̀lú àṣìṣe ẹ̀rí tí ó dárúkọ 127.0.0.1 dípò ẹ̀rọ ibi-ìpamọ́. Ìgbésẹ̀ tó ń fà mọ́ra tókàn ni láti tú sslmode sílẹ̀, èyí tí ó pa ìwádìí mọ́ ẹnu tí ó sì sọ ìdánilójú ìdánimọ̀ tí o fẹ́ ní ìbẹ̀rẹ̀. Ìṣòro gidi ni pé ibudo àdúgbò àti orúkọ server ni a ń tọ́jú sínú pápá kan náà. Àkọsílẹ̀ iṣẹ́ libpq yà wọ́n sọ́tọ̀, nítorí náà socket lọ sí ibudo tí a tọ́jú lọ, nígbà tí TLS ṣì ń ṣàyẹ̀wò orúkọ tí a tẹ̀ sórí ẹ̀rí.
Ohun tí ẹni-ìbánisọ̀rọ̀pọ̀ ro pé òun so mọ́
Lábẹ́ sslmode=verify-full, libpq fi ẹ̀rí tí server gbé jáde wé orúkọ ẹ̀rọ tí a béèrè. Nígbà tí orúkọ yẹn jẹ́ àdírẹ́sì loopback, ìfiwéra kùnà bí ó tilẹ̀ jẹ́ pé ẹ̀rí náà wúlò fún ẹ̀rọ gidi ibi-ìpamọ́. Ìtọ́jú SSH ń yí socket tí ó ń gbé àwọn byte padà, kì í ṣe ìdánimọ̀ tí ẹni-ìbánisọ̀rọ̀pọ̀ yẹ kí ó retí. Nígbà tí a ya àwọn èròǹgbà méjì yìí sọ́tọ̀, àṣìṣe náà kò ní dà bí àìtọ́ TLS mọ́.
Ìtọ́jú kì í ṣe àṣẹ pẹ̀lú. PostgreSQL ṣì ń lo àwọn òfin tirẹ̀ lórí ìsopọ̀ tí server SSH dá, nítorí náà pa ìpele gbígbé àti ìpele ibi-ìpamọ́ sọ́tọ̀ kí o tó yí ohunkóhun padà.
So ìtọ́jú náà mọ́ loopback nìkan
Olùgbọ́ yẹ kí ó wà lórí ẹ̀rọ QGIS àti kò síbòmíràn. Dídárúkọ 127.0.0.1 ní kedere ń pa á mọ́ kúrò lọ́wọ́ àwọn ìsopọ̀ mìíràn, nígbà tí àdírẹ́sì ìdè tí a fi sílẹ̀ lè tú ibudo náà síta gbogbo ènìyàn ní ìbámu pẹ̀lú ètò ẹnubodè ẹni-ìbánisọ̀rọ̀pọ̀ SSH.
ssh -N -L 127.0.0.1:15432:127.0.0.1:5432 [email protected]Ibùdó tí ó tẹ̀lé àmì-ìlà méjì kejì ni a ń yanjú láti ẹ̀gbẹ́ server SSH, nítorí náà àpẹẹrẹ yìí ro pé PostgreSQL wà lórí ẹ̀rọ kan náà pẹ̀lú sshd; ibi-ìpamọ́ lórí ẹ̀rọ mìíràn nílò àdírẹ́sì yẹn àti àwọn ìgbàláàyè rẹ̀. Bẹ̀rẹ̀ ìpàdé pẹ̀lú -N kí ẹ̀yà-ìkòkò kankan má bàa ṣí, má fi ọwọ́ kan ìwádìí kọ́kọ́rọ́ ẹ̀rọ, kí o sì jẹ́rìí pé olùgbọ́ náà farahàn kí o tó dá QGIS lẹ́bi. Tí ibudo náà bá ti ń lò, ìtọ́jú náà kùnà ní ìbẹ̀rẹ̀ kì í ṣe ní àkókò ìbéèrè.
Fi orúkọ àti socket sínú àkọsílẹ̀ iṣẹ́ kan
Fáìlì iṣẹ́ ń jẹ́ kí ìsopọ̀ kan náà gbé orúkọ ìwádìí àti ibùdó socket mìíràn. Tọ́jú àkọsílẹ̀ náà síbi tí libpq ti ń wá àwọn iṣẹ́, tàbí tọ́ka PGSERVICEFILE síbẹ̀.
[gis-via-ssh]
host=db.geo.example
hostaddr=127.0.0.1
port=15432
dbname=gisdb
user=gis_reader
sslmode=verify-full
gssencmode=disable
sslrootcert=/path/to/approved-root.crtNíbí host ń pa ìdánimọ̀ tí a ń lò fún àwọn ìwádìí ẹ̀rí mọ́ nígbà tí hostaddr ń fi àwọn pákẹ́ẹ̀tì ránṣẹ́ sí ibudo loopback tí a tọ́jú lọ, àti pé àwọn méjèèjì ni a nílò kí ètò yìí lè ṣiṣẹ́. gssencmode=disable ṣe pàtàkì nínú àwọn kíkọ́ tí yóò bí bẹ́ẹ̀ kọ́ máa ṣe ìjíròrò ìkọ̀kọ̀ GSSAPI kọ́kọ́, nítorí ọ̀nà yẹn ń fojú fo àwọn ètò TLS tí a ṣẹ̀ṣẹ̀ gbé kalẹ̀. Tọ́ka sí iṣẹ́ náà pẹ̀lú orúkọ láti inú àpótí ìjíròrò ìsopọ̀ PostgreSQL ti QGIS kí o sì fi ọ̀rọ̀-ìpamọ́ náà lélẹ̀ nípasẹ̀ ìbéèrè déédéé, kì í ṣe nínú fáìlì tí a pín. Àwọn orúkọ àti ọ̀nà tí ó wà lókè jẹ́ ààyè-ìdí; rọ́pò wọn pẹ̀lú àwọn iye tí o fọwọ́ sí.
Ohun tí PostgreSQL ṣì ń ṣàyẹ̀wò lẹ́yìn tunnel
Server rí ìsopọ̀ láti ẹ̀rọ SSH, loopback nínú ètò yìí, ó sì fi í wé àwọn ìlànà ìjẹ́rìí tí ó dá lórí ẹ̀rọ lẹ́sẹẹsẹ. Ojúṣe ibi-ìpamọ́ rẹ ṣì gbọdọ̀ jẹ́rìí, ìwọlé SSH kò sì fún ni ní ìdánimọ̀ ibi-ìpamọ́ fúnra rẹ̀. Ṣàyẹ̀wò ohun tí server gbà gbọ́, kì í ṣe ohun tí ẹni-ìbánisọ̀rọ̀pọ̀ ro.
psql "service=gis-via-ssh" -c "select inet_server_addr(), current_user"Pa ìpàdé ìtọ́jú mọ́ nígbà tí iṣẹ́ bá parí; àkọsílẹ̀ àdúgbò yóò dá ṣiṣẹ́, kò sì sí ohun mìíràn tí yóò yí padà. Ọ̀nà kan sí ibi-ìpamọ́ kì í ṣe VPN fún gbogbo ẹni-ìbánisọ̀rọ̀pọ̀ GIS, àti kíka rẹ̀ sí VPN ni ohun tí ń mú kí a ṣe àyẹ̀wò ìsopọ̀ tókàn lọ́nà tí kò tọ́.