X-Git-Url: http://wagner.pp.ru/gitweb/?a=blobdiff_plain;f=hints%2Fssh.html;h=793a8f3ef47247876333bd97a1f4c03ca9aced06;hb=e0bf98877c9b5873c2f39cb126f32fa915741df5;hp=eae874190066b19c8315055f432567496f396757;hpb=9766a16a9d842ad56bfda8c0444ffa96e14cfe37;p=sites%2Fhome_page.git diff --git a/hints/ssh.html b/hints/ssh.html index eae8741..793a8f3 100644 --- a/hints/ssh.html +++ b/hints/ssh.html @@ -1,48 +1,48 @@ -ðÏ ssh ÞÅÒÅÚ firewall-Ù - +По ssh через firewall-ы + -

ðÏ ssh ÞÅÒÅÚ firewall-Ù

+

По ssh через firewall-ы

-îÅÔ ÎÉÞÅÇÏ ÓÌÏÖÎÏÇÏ × ÔÏÍ, ÞÔÏÂÙ ÚÁÊÔÉ ÐÏ ssh ÎÁ ÍÁÛÉÎÕ ÚÁ ÆÁÊÒ×ÏÌÌ-ÏÍ Ó -NAT, ÅÓÌÉ Õ ×ÁÓ ÅÓÔØ ÌÏÇÉÎ ÎÁ ÓÁÍ firewall. ïÓÏÂÅÎÎÏ, ÅÓÌÉ ÎÁ ÜÔÏÍ -firewall-Å ÕÓÔÁÎÏ×ÌÅÎ netcat. +Нет ничего сложного в том, чтобы зайти по ssh на машину за файрволл-ом с +NAT, если у вас есть логин на сам firewall. Особенно, если на этом +firewall-е установлен netcat.

-õ openssh ÅÓÔØ ÐÏÌÅÚÎÁÑ ÏÐÃÉÑ ProxyCommand, ËÏÔÏÒÁÑ ÍÏÖÅÔ ÂÙÔØ ÉÓÐÏÌØÚÏ×ÁÎÁ -ÄÌÑ ÜÔÏÊ ÃÅÌÉ. îÁÐÒÉÍÅÒ ÍÏÖÎÏ ÎÁÐÉÓÁÔØ × Ó×ÏÊ .ssh/config +У openssh есть полезная опция ProxyCommand, которая может быть использована +для этой цели. Например можно написать в свой .ssh/config

 Host *.intranet.mycompany.com
  ProxyCommand ssh firewall.mycompany.com nc -q 0 %h 22
 

-ðÏÓÌÅ ÜÔÏÇÏ ÐÒÉ ÐÏÐÙÔËÅ ÐÏÊÔÉ ÐÏ ssh ÎÁ ÌÀÂÏÊ ÈÏÓÔ × ÄÏÍÅÎÅ -intranet.mycompany.com ÂÕÄÅÔ ÐÒÏÉÚ×ÏÄÉÔØÓÑ ÚÁÐÕÓË netcat ÎÁ ÍÁÛÉÎÅ -firewall.mycompany.com, ËÏÔÏÒÙÊ É ÂÕÄÅÔ ÄÏÓÔÁ×ÌÑÔØ ÉÎÆÏÒÍÁÃÉÀ ÏÔ ×ÁÛÅÇÏ -ssh ÎÁ 22 ÐÏÒÔ ÔÒÅÂÕÅÍÏÊ ÍÁÛÉÎÙ (ÏÂÒÁÔÉÔÅ ×ÎÉÍÁÎÉÅ ÎÁ ÏÐÃÉÀ -q 0). +После этого при попытке пойти по ssh на любой хост в домене +intranet.mycompany.com будет производиться запуск netcat на машине +firewall.mycompany.com, который и будет доставлять информацию от вашего +ssh на 22 порт требуемой машины (обратите внимание на опцию -q 0).

-ðÒÏÂÌÅÍÙ ×ÏÚÎÉËÁÀÔ ÅÓÌÉ ×ÁÛÁ ÍÁÛÉÎÁ — ÎÏÕÔÂÕË, É ÎÁÈÏÄÉÔÓÑ ÔÏ × -ËÏÒÐÏÒÁÔÉ×ÎÏÍ ÉÎÔÒÁÎÅÔÅ, ÔÏ ÔÏÌØËÏ ÓÎÁÒÕÖÉ. +Проблемы возникают если ваша машина — ноутбук, и находится то в +корпоративном интранете, то только снаружи.

-

îÉÖÅÐÒÉ×ÅÄÅÎÎÙÊ ÛÅÌÌÏ×ÓËÉÊ ÓËÒÉÐÔ ÜÔÕ ÐÒÏÂÌÅÍÕ ÒÅÛÁÅÔ. ë ÎÅÍÕ -ÉÍÅÅÔÓÑ ÆÁÊÌ ËÏÎÆÉÇÕÒÁÃÉÉ, × ËÏÔÏÒÏÍ ÏÐÉÓÙ×ÁÅÔÓÑ ÓÐÉÓÏË nat-ÓÅÔÅÊ, × -ËÏÔÏÒÙÅ ÈÏÞÅÔÓÑ ÈÏÄÉÔØ ÐÏ ssh. +

Нижеприведенный шелловский скрипт эту проблему решает. К нему +имеется файл конфигурации, в котором описывается список nat-сетей, в +которые хочется ходить по ssh.

-ðÒÅÄÕÓÍÏÔÒÅÎÙ Ä×Å ÄÉÒÅËÔÉ×Ù: +Предусмотрены две директивы:

add_domain domain host... -
úÁÄÁÅÔ ÓÐÉÓÏË ÈÏÓÔÏ×, ËÏÔÏÒÙÅ ÐÒÉÎÁÄÌÅÖÁÔ ÎÅËÏÔÏÒÏÊ ÓÅÔÉ. ÷ ÓÌÕÞÁÅ -ÅÓÌÉ ÓËÒÉÐÔ ×ÙÚ×ÁÎ Ó ÕËÁÚÁÎÉÅÍ ÏÄÎÏÇÏ ÉÚ ÜÔÉÈ ÈÏÓÔÏ× ÂÅÚ ÄÏÍÅÎÁ, -ÓÞÉÔÁÔØ, ÞÔÏ ÈÏÓÔ ÐÒÉÎÁÄÌÅÖÉÔ ÕËÁÚÁÎÎÏÍÕ ÄÏÍÅÎÕ +
Задает список хостов, которые принадлежат некоторой сети. В случае +если скрипт вызван с указанием одного из этих хостов без домена, +считать, что хост принадлежит указанному домену
proxy proxy_host domain_mask -
õËÁÚÙ×ÁÅÔ ÎÁ ËÁËÏÊ ÍÁÛÉÎÅ ÓÌÅÄÕÅÔ ÚÁÐÕÓËÁÔØ netcat ÄÌÑ ÄÏÓÔÕÐÁ Ë -ÈÏÓÔÁÍ ÕËÁÚÁÎÎÏÇÏ ÄÏÍÅÎÁ. domain_mask ÍÏÖÅÔ ÓÏÄÅÒÖÁÔØ Ú×ÅÚÄÏÞËÉ É -ÄÒÕÇÉÅ ÍÅÔÁÓÉÍ×ÏÌÙ, ÄÏÐÕÓÔÉÍÙÅ × ËÏÍÁÎÄÅ case shell. ó ÍÁÓËÏÊ -ÓÏÐÏÓÔÁ×ÌÑÀÔÓÑ ÉÍÅÎÁ ÈÏÓÔÏ×, ÄÏÐÏÌÎÅÎÎÙÅ ÄÏÍÅÎÎÙÍÉ ÉÍÅÎÁÍÉ × -ÓÏÏÔ×ÅÔÓÔ×ÉÉ Ó ËÏÍÁÎÄÏÊ add_domain. +
Указывает на какой машине следует запускать netcat для доступа к +хостам указанного домена. domain_mask может содержать звездочки и +другие метасимволы, допустимые в команде case shell. С маской +сопоставляются имена хостов, дополненные доменными именами в +соответствии с командой add_domain.
@@ -85,7 +85,7 @@ source ${HOME
-æÁÊÌ .rsrc ÍÏÖÅÔ ×ÙÇÌÑÄÅÔØ, ÎÁÐÒÉÍÅÒ, ×ÏÔ ÔÁË: +Файл .rsrc может выглядеть, например, вот так:
@@ -96,18 +96,18 @@ source ${HOME
-÷ ÒÅÚÕÌØÔÁÔÅ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÔÁËÏÇÏ ÆÁÊÌÁ +В результате использования такого файла
    -
  1. ëÏÒÏÔËÉÅ ÉÍÅÎÁ ÈÏÓÔÏ× dragon, vasilisk É hydra ÂÕÄÕÔ ÒÁÓÛÉÒÑÔÓÑ -ÄÏ dragon.home.ru, vasilisk.home.ru etc, ÎÅÚÁ×ÉÓÉÍÏ ÏÔ ÔÏÇÏ, × ËÁËÏÊ -ÓÅÔÉ ÓÅÊÞÁÓ ÍÁÛÉÎÁ. -
  2. áÎÁÌÏÇÉÞÎÏ ÉÍÅÎÁ ÈÏÓÔÏ× elk, ibex etc ÂÕÄÕÔ ÉÓËÁÔØÓÑ × ÄÏÍÅÎÅ +
  3. Короткие имена хостов dragon, vasilisk и hydra будут расширятся +до dragon.home.ru, vasilisk.home.ru etc, независимо от того, в какой +сети сейчас машина. +
  4. Аналогично имена хостов elk, ibex etc будут искаться в домене kontora.ru -
  5. ïÂÒÁÝÅÎÉÑ Ë ÈÏÓÔÁÍ ÄÏÍÅÎÁ kontora.ru ÂÕÄÅÔ ÐÒÏÉÓÈÏÄÉÔØ ÞÅÒÅÚ ÐÒÏËÓÉ -gw.kontora.ru, ÅÓÌÉ ÔÏÌØËÏ ÍÙ ÎÅ × ÌÏËÁÌØÎÏÊ ÓÅÔÉ ËÏÎÔÏÒÙ (É ÐÏ dhcp ÎÁÍ -ÎÅ ÏÔÄÁÌÉ ÄÏÍÅÎÎÏÅ ÉÍÑ kontora.ru) -
  6. ïÂÒÁÝÅÎÉÑ Ë ÈÏÓÔÁÍ home.ru ÂÕÄÕÔ ÐÒÏÉÓÈÏÄÉÔØ ÞÅÒÅÚ gw.home.ru, ÅÓÌÉ -ÔÏÌØËÏ ÍÙ ÎÅ × ÌÏËÁÌØÎÏÊ ÓÅÔÉ home.ru +
  7. Обращения к хостам домена kontora.ru будет происходить через прокси +gw.kontora.ru, если только мы не в локальной сети конторы (и по dhcp нам +не отдали доменное имя kontora.ru) +
  8. Обращения к хостам home.ru будут происходить через gw.home.ru, если +только мы не в локальной сети home.ru