17.10. ÐаÑиÑа Ñоединений TCP/IP Ñ Ð¿Ñименением ÑÑннелей SSH
ÐÐ»Ñ Ð·Ð°ÑиÑÑ ÑеÑевÑÑ Ñоединений клиенÑов Ñ ÑеÑвеÑом Postgres Pro можно пÑимениÑÑ SSH. ÐÑи пÑавилÑном Ð¿Ð¾Ð´Ñ Ð¾Ð´Ðµ ÑÑо позволÑÐµÑ Ð¾Ð±ÐµÑпеÑиÑÑ Ð´Ð¾Ð»Ð¶Ð½Ñй ÑÑÐ¾Ð²ÐµÐ½Ñ Ð·Ð°ÑиÑÑ ÑеÑевого ÑÑаÑика, даже Ð´Ð»Ñ ÐºÐ»Ð¸ÐµÐ½Ñов, не поддеÑживаÑÑÐ¸Ñ SSL.
ÐÑежде вÑего, ÑбедиÑеÑÑ, ÑÑо на компÑÑÑеÑе Ñ ÑеÑвеÑом Postgres Pro Ñакже ÑабоÑÐ°ÐµÑ ÑеÑÐ²ÐµÑ SSH и Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе подклÑÑиÑÑÑÑ Ðº Ð½ÐµÐ¼Ñ ÑеÑез ssh каким-нибÑÐ´Ñ Ð¿Ð¾Ð»ÑзоваÑелем. ÐаÑем Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑÑÑановиÑÑ Ð·Ð°ÑиÑÑннÑй ÑÐ¾Ð½Ð½ÐµÐ»Ñ Ñ ÐºÐ»Ð¸ÐµÐ½ÑÑкой маÑÐ¸Ð½Ñ ÑледÑÑÑим обÑазом:
ssh -L 63333:localhost:5432 joe@foo.com
ÐеÑвое ÑиÑло в аÑгÑменÑе -L, 63333 â ÑÑо Ð½Ð¾Ð¼ÐµÑ Ð¿Ð¾ÑÑа Ñ Ð²Ð°Ñей ÑÑоÑÐ¾Ð½Ñ ÑÑннелÑ; ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð½Ð¾Ð¼ÐµÑ Ð»Ñбого Ñвободного поÑÑа. (IANA ÑезеÑвиÑÑÐµÑ Ð¿Ð¾ÑÑÑ Ñ 49152 по 65535 Ð´Ð»Ñ ÑаÑÑного иÑполÑзованиÑ.) ÐÑоÑое ÑиÑло, 5432 â поÑÑ Ñ ÑдалÑнной ÑÑоÑÐ¾Ð½Ñ ÑÑннелÑ, поÑÑ Ð²Ð°Ñего ÑеÑвеÑа. ÐÐ¼Ñ Ð¸Ð»Ð¸ IP-адÑÐµÑ Ð¼ÐµÐ¶Ð´Ñ ÑÑими номеÑами поÑÑов иденÑиÑиÑиÑÑÐµÑ Ñелевой компÑÑÑÐµÑ (где ÑабоÑÐ°ÐµÑ ÑеÑÐ²ÐµÑ Ð±Ð°Ð· даннÑÑ
, к коÑоÑÐ¾Ð¼Ñ Ð²Ñ Ð±ÑдеÑе подклÑÑаÑÑÑÑ), Ñ ÑоÑки зÑÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð¿ÑÑÑеÑа, Ñ ÐºÐ¾ÑоÑого вÑполнÑеÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑение (в данном пÑимеÑе, foo.com). ЧÑÐ¾Ð±Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑиÑÑÑÑ Ðº ÑÑÐ¾Ð¼Ñ ÑеÑвеÑÑ ÑеÑез ÑозданнÑй ÑоннелÑ, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе подклÑÑиÑÑÑÑ Ðº поÑÑÑ 63333 на локалÑном компÑÑÑеÑе:
psql -h localhost -p 63333 postgres
ÐÐ»Ñ ÑеÑвеÑа баз даннÑÑ
ÑÑо бÑÐ´ÐµÑ Ð²ÑглÑдеÑÑ Ñак, как бÑдÑо Ð²Ñ Ð´ÐµÐ¹ÑÑвиÑелÑно полÑзоваÑÐµÐ»Ñ joe компÑÑÑеÑа foo.com, подклÑÑаÑÑийÑÑ Ðº localhost в ÑÑом конÑекÑÑе, и он бÑÐ´ÐµÑ Ð¿ÑименÑÑÑ ÑÑ Ð¿ÑоÑедÑÑÑ Ð¿ÑовеÑки подлинноÑÑи, коÑоÑÐ°Ñ ÑÑÑановлена Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑений данного полÑзоваÑÐµÐ»Ñ Ñ ÑÑого компÑÑÑеÑа. ÐамеÑÑÑе, ÑÑо ÑеÑÐ²ÐµÑ Ð½Ðµ бÑÐ´ÐµÑ ÑÑиÑаÑÑ Ñакое Ñоединение заÑиÑÑннÑм SSL, Ñак как на Ñамом деле ÑÑаÑик Ð¼ÐµÐ¶Ð´Ñ ÑеÑвеÑом SSH и ÑеÑвеÑом Postgres Pro не заÑиÑÑн. ÐÑо не должно неÑÑи какие-Ñо дополниÑелÑнÑе ÑиÑки, Ñак как ÑÑи ÑеÑвеÑÑ ÑабоÑаÑÑ Ð½Ð° одном компÑÑÑеÑе.
ЧÑÐ¾Ð±Ñ Ð½Ð°ÑÑÑоеннÑй Ñаким обÑазом ÑÑÐ½Ð½ÐµÐ»Ñ ÑабоÑал, Ð²Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¸Ð¼ÐµÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑаÑÑÑÑ Ðº компÑÑÑеÑÑ ÑеÑез ssh под именем joe@foo.com, Ñак же, как ÑÑо пÑоиÑÑ
Ð¾Ð´Ð¸Ñ Ð¿Ñи ÑÑÑановлении ÑеÑминалÑного подклÑÑÐµÐ½Ð¸Ñ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ssh.
ÐÑ Ñакже можеÑе наÑÑÑоиÑÑ Ð¿ÐµÑенапÑавление поÑÑов пÑимеÑно Ñак:
ssh -L 63333:foo.com:5432 joe@foo.com
Ðо в ÑÑом ÑлÑÑае Ð´Ð»Ñ ÑеÑвеÑа баз даннÑÑ
подклÑÑение бÑÐ´ÐµÑ Ð¿ÑиÑ
одиÑÑ Ñ ÐµÐ³Ð¾ инÑеÑÑейÑа foo.com, а ÑÑÐ¾Ñ Ð¸Ð½ÑеÑÑÐµÐ¹Ñ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ Ð½Ðµ пÑоÑлÑÑиваеÑÑÑ (вÑледÑÑвие ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ listen_addresses = 'localhost'). ÐбÑÑно ÑÑебÑеÑÑÑ Ð´ÑÑгое поведение.
ÐÑли вам нÑжно «пеÑейÑи» к ÑеÑвеÑÑ Ð±Ð°Ð· даннÑÑ ÑеÑез некоÑоÑÑй ÑлÑз, ÑÑо можно оÑганизоваÑÑ Ð¿ÑимеÑно Ñак:
ssh -L 63333:db.foo.com:5432 joe@shell.foo.com
ÐамеÑÑÑе, ÑÑо в ÑÑом ÑлÑÑае ÑÑаÑик Ð¼ÐµÐ¶Ð´Ñ shell.foo.com и db.foo.com не бÑÐ´ÐµÑ Ð·Ð°ÑиÑÑн ÑÑннелем SSH. SSH пÑÐµÐ´Ð»Ð°Ð³Ð°ÐµÑ Ð´Ð¾Ð²Ð¾Ð»Ñно много ваÑианÑов конÑигÑÑаÑии, ÑÑо позволÑÐµÑ Ð¾ÑганизовÑваÑÑ Ð·Ð°ÑиÑÑ ÑеÑи ÑазнÑми ÑпоÑобами. Ðа подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº докÑменÑаÑии SSH.
ÐодÑказка
СÑÑеÑÑвÑÑÑ Ð¸ дÑÑгие пÑиложениÑ, коÑоÑÑе могÑÑ ÑоздаваÑÑ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑнÑе ÑÑннели, пÑименÑÑ Ð¿Ð¾ ÑÑÑи ÑÐ¾Ñ Ð¶Ðµ Ð¿Ð¾Ð´Ñ Ð¾Ð´, ÑÑо бÑл опиÑан вÑÑе.