1 <html><head><title>ðÏ ssh ÞÅÒÅÚ firewall-Ù</title></head>
2 <meta name="description" content="óËÒÉÐÔ ÄÌÑ ÈÏÖÄÅÎÉÑ ÐÏ ssh ×ÎÕÔÒØ
3 ÌÏËÁÌØÎÙÈ ÓÅÔÅÊ, ÅÓÌÉ Õ ×ÁÓ ÅÓÔØ ÌÏÇÉÎ ÎÁ gateway">
7 <h1>ðÏ ssh ÞÅÒÅÚ firewall-Ù</h1>
9 îÅÔ ÎÉÞÅÇÏ ÓÌÏÖÎÏÇÏ × ÔÏÍ, ÞÔÏÂÙ ÚÁÊÔÉ ÐÏ ssh ÎÁ ÍÁÛÉÎÕ ÚÁ ÆÁÊÒ×ÏÌÌ-ÏÍ Ó
10 NAT, ÅÓÌÉ Õ ×ÁÓ ÅÓÔØ ÌÏÇÉÎ ÎÁ ÓÁÍ firewall. ïÓÏÂÅÎÎÏ, ÅÓÌÉ ÎÁ ÜÔÏÍ
11 firewall-Å ÕÓÔÁÎÏ×ÌÅÎ netcat.
14 õ openssh ÅÓÔØ ÐÏÌÅÚÎÁÑ ÏÐÃÉÑ ProxyCommand, ËÏÔÏÒÁÑ ÍÏÖÅÔ ÂÙÔØ ÉÓÐÏÌØÚÏ×ÁÎÁ
15 ÄÌÑ ÜÔÏÊ ÃÅÌÉ. îÁÐÒÉÍÅÒ ÍÏÖÎÏ ÎÁÐÉÓÁÔØ × Ó×ÏÊ <tt>.ssh/config</tt>
17 </p><pre> Host *.intranet.mycompany.com
18 ProxyCommand ssh firewall.mycompany.com nc -q 0 %h 22
21 ðÏÓÌÅ ÜÔÏÇÏ ÐÒÉ ÐÏÐÙÔËÅ ÐÏÊÔÉ ÐÏ ssh ÎÁ ÌÀÂÏÊ ÈÏÓÔ × ÄÏÍÅÎÅ
22 intranet.mycompany.com ÂÕÄÅÔ ÐÒÏÉÚ×ÏÄÉÔØÓÑ ÚÁÐÕÓË netcat ÎÁ ÍÁÛÉÎÅ
23 firewall.mycompany.com, ËÏÔÏÒÙÊ É ÂÕÄÅÔ ÄÏÓÔÁ×ÌÑÔØ ÉÎÆÏÒÍÁÃÉÀ ÏÔ ×ÁÛÅÇÏ
24 ssh ÎÁ 22 ÐÏÒÔ ÔÒÅÂÕÅÍÏÊ ÍÁÛÉÎÙ (ÏÂÒÁÔÉÔÅ ×ÎÉÍÁÎÉÅ ÎÁ ÏÐÃÉÀ -q 0).
27 ðÒÏÂÌÅÍÙ ×ÏÚÎÉËÁÀÔ ÅÓÌÉ ×ÁÛÁ ÍÁÛÉÎÁ — ÎÏÕÔÂÕË, É ÎÁÈÏÄÉÔÓÑ ÔÏ ×
28 ËÏÒÐÏÒÁÔÉ×ÎÏÍ ÉÎÔÒÁÎÅÔÅ, ÔÏ ÔÏÌØËÏ ÓÎÁÒÕÖÉ.
30 <p> îÉÖÅÐÒÉ×ÅÄÅÎÎÙÊ ÛÅÌÌÏ×ÓËÉÊ ÓËÒÉÐÔ ÜÔÕ ÐÒÏÂÌÅÍÕ ÒÅÛÁÅÔ. ë ÎÅÍÕ
31 ÉÍÅÅÔÓÑ ÆÁÊÌ ËÏÎÆÉÇÕÒÁÃÉÉ, × ËÏÔÏÒÏÍ ÏÐÉÓÙ×ÁÅÔÓÑ ÓÐÉÓÏË nat-ÓÅÔÅÊ, ×
32 ËÏÔÏÒÙÅ ÈÏÞÅÔÓÑ ÈÏÄÉÔØ ÐÏ ssh.
34 ðÒÅÄÕÓÍÏÔÒÅÎÙ Ä×Å ÄÉÒÅËÔÉ×Ù:
36 <dt>add_domain <i>domain</i> <i>host...</i>
37 </dt><dd>úÁÄÁÅÔ ÓÐÉÓÏË ÈÏÓÔÏ×, ËÏÔÏÒÙÅ ÐÒÉÎÁÄÌÅÖÁÔ ÎÅËÏÔÏÒÏÊ ÓÅÔÉ. ÷ ÓÌÕÞÁÅ
38 ÅÓÌÉ ÓËÒÉÐÔ ×ÙÚ×ÁÎ Ó ÕËÁÚÁÎÉÅÍ ÏÄÎÏÇÏ ÉÚ ÜÔÉÈ ÈÏÓÔÏ× ÂÅÚ ÄÏÍÅÎÁ,
39 ÓÞÉÔÁÔØ, ÞÔÏ ÈÏÓÔ ÐÒÉÎÁÄÌÅÖÉÔ ÕËÁÚÁÎÎÏÍÕ ÄÏÍÅÎÕ
40 </dd><dt>proxy <i>proxy_host</i> <i>domain_mask</i>
41 </dt><dd>õËÁÚÙ×ÁÅÔ ÎÁ ËÁËÏÊ ÍÁÛÉÎÅ ÓÌÅÄÕÅÔ ÚÁÐÕÓËÁÔØ netcat ÄÌÑ ÄÏÓÔÕÐÁ Ë
42 ÈÏÓÔÁÍ ÕËÁÚÁÎÎÏÇÏ ÄÏÍÅÎÁ. <i>domain_mask</i> ÍÏÖÅÔ ÓÏÄÅÒÖÁÔØ Ú×ÅÚÄÏÞËÉ É
43 ÄÒÕÇÉÅ ÍÅÔÁÓÉÍ×ÏÌÙ, ÄÏÐÕÓÔÉÍÙÅ × ËÏÍÁÎÄÅ <b>case</b> shell. ó ÍÁÓËÏÊ
44 ÓÏÐÏÓÔÁ×ÌÑÀÔÓÑ ÉÍÅÎÁ ÈÏÓÔÏ×, ÄÏÐÏÌÎÅÎÎÙÅ ÄÏÍÅÎÎÙÍÉ ÉÍÅÎÁÍÉ ×
45 ÓÏÏÔ×ÅÔÓÔ×ÉÉ Ó ËÏÍÁÎÄÏÊ add_domain.
47 <table border="0"><tbody><tr>
48 <td bgcolor="#000000">
49 <font color="#ffffff"><pre><font color="#8080ff">#!/bin/sh</font>
50 <font color="#00ffff">host</font>=<font color="#ff40ff">$1</font>
51 <font color="#ffff00">shift</font>
52 declare <font color="#ff40ff">-a</font> OPTIONS
53 <font color="#00ffff">myhost</font>=<font color="#ff40ff">`hostname -f`</font>
54 add_domain() <font color="#ff40ff">{</font>
55 <font color="#00ffff">domain</font>=<font color="#ff40ff">$1</font>
56 <font color="#ffff00">shift</font>
57 <font color="#ffff00">for</font> i <font color="#ffff00">do</font>
58 <font color="#ffff00">if</font> <font color="#ffff00">[</font> <font color="#ffff00">"</font><font color="#ff40ff">$i</font><font color="#ffff00">"</font> <font color="#ffff00">=</font> <font color="#ffff00">"</font><font color="#ff40ff">$host</font><font color="#ffff00">"</font> <font color="#ffff00">]</font><font color="#ffff00">;</font> <font color="#ffff00">then</font>
59 <font color="#00ffff">host</font>=<font color="#ff40ff">$host</font>.<font color="#ff40ff">$domain</font>
60 <font color="#ffff00">return</font>
61 <font color="#ffff00">fi</font>
62 <font color="#ffff00">done</font>
63 <font color="#ff40ff">}</font>
64 proxy() <font color="#ff40ff">{</font>
65 <font color="#ffff00">[</font> <font color="#ffff00">-n</font> <font color="#ffff00">"</font><font color="#ff40ff">$OPTIONS</font><font color="#ffff00">"</font> <font color="#ffff00">]</font> <font color="#ffff00">&&</font> <font color="#ffff00">return</font>
66 <font color="#ffff00">case</font> <font color="#ffff00">"</font><font color="#ff40ff">$host</font><font color="#ffff00">"</font> <font color="#ffff00">in</font>
67 <font color="#ff40ff">$2</font><font color="#ffff00">)</font>
68 <font color="#ffff00">case</font> <font color="#ffff00">"</font><font color="#ff40ff">$myhost</font><font color="#ffff00">"</font> <font color="#ffff00">in</font>
69 <font color="#ff40ff">$2</font><font color="#ffff00">)</font>
70 <font color="#00ffff">OPTIONS</font>=<font color="#ffff00">""</font>
71 <font color="#ffff00">;;</font>
72 *<font color="#ffff00">)</font>
73 <font color="#00ffff">OPTIONS</font>=<font color="#ffff00">"</font><font color="#ff6060">-o </font><font color="#ff40ff">\"</font><font color="#ff6060">ProxyCommand /usr/bin/ssh </font><font color="#ff40ff">$1</font><font color="#ff6060"> nc -q 0 %h 22</font><font color="#ff40ff">\"</font><font color="#ffff00">"</font>
74 <font color="#ffff00">;;</font>
75 <font color="#ffff00">esac</font>
76 <font color="#ffff00">;;</font>
77 *<font color="#ffff00">)</font> <font color="#00ffff">OPTIONS</font>=<font color="#ffff00">""</font>
78 <font color="#ffff00">;;</font>
79 <font color="#ffff00">esac</font>
80 <font color="#ff40ff">}</font>
81 source <font color="#ff40ff">${</font><font color="#ff40ff">HOME</font><font color="#ff40ff">}</font>/.rsrc
83 <font color="#ffff00">[</font> <font color="#ffff00">-n</font> <font color="#ffff00">"</font><font color="#ff40ff">$1</font><font color="#ffff00">"</font> <font color="#ffff00">]</font> <font color="#ffff00">||</font> <font color="#ffff00">set </font><font color="#00ffff">exec</font> <font color="#ffff00">'</font><font color="#ff6060">$SHELL</font><font color="#ffff00">'</font> <font color="#00ffff">--login</font>
84 <font color="#ffff00">eval</font> <font color="#ffff00">exec</font> <font color="#ffff00">"</font><font color="#ff6060">/usr/bin/ssh -t </font><font color="#ff40ff">${</font><font color="#ff40ff">OPTIONS</font><font color="#ff40ff">}</font><font color="#ff6060"> </font><font color="#ffff00">"</font><font color="#ff40ff">$host</font><font color="#ffff00">"</font><font color="#ff6060"> LANG=</font><font color="#ff40ff">\$</font><font color="#ff6060">LANG </font><font color="#ff40ff">\"\$</font><font color="#ff6060">@</font><font color="#ff40ff">\"</font><font color="#ffff00">"</font>
86 </td></tr></tbody></table>
88 æÁÊÌ .rsrc ÍÏÖÅÔ ×ÙÇÌÑÄÅÔØ, ÎÁÐÒÉÍÅÒ, ×ÏÔ ÔÁË:
90 <table border="0"><tbody><tr>
91 <td bgcolor="#000000">
92 <font color="#ffffff"><pre><font color="#ffff00">add_domain</font> home.ru dragon vasilisk hydra
93 <font color="#ffff00">add_domain</font> kontora.ru elk ibex bear wolf
94 <font color="#ffff00">proxy</font> gw.home.ru *.home.ru
95 <font color="#ffff00">proxy</font> firewall.kontora.ru *.kontora.ru
97 </td></tr></tbody></table>
99 ÷ ÒÅÚÕÌØÔÁÔÅ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÔÁËÏÇÏ ÆÁÊÌÁ
101 <li> ëÏÒÏÔËÉÅ ÉÍÅÎÁ ÈÏÓÔÏ× dragon, vasilisk É hydra ÂÕÄÕÔ ÒÁÓÛÉÒÑÔÓÑ
102 ÄÏ dragon.home.ru, vasilisk.home.ru etc, ÎÅÚÁ×ÉÓÉÍÏ ÏÔ ÔÏÇÏ, × ËÁËÏÊ
104 </li><li> áÎÁÌÏÇÉÞÎÏ ÉÍÅÎÁ ÈÏÓÔÏ× elk, ibex etc ÂÕÄÕÔ ÉÓËÁÔØÓÑ × ÄÏÍÅÎÅ
106 </li><li> ïÂÒÁÝÅÎÉÑ Ë ÈÏÓÔÁÍ ÄÏÍÅÎÁ kontora.ru ÂÕÄÅÔ ÐÒÏÉÓÈÏÄÉÔØ ÞÅÒÅÚ ÐÒÏËÓÉ
107 gw.kontora.ru, ÅÓÌÉ ÔÏÌØËÏ ÍÙ ÎÅ × ÌÏËÁÌØÎÏÊ ÓÅÔÉ ËÏÎÔÏÒÙ (É ÐÏ dhcp ÎÁÍ
108 ÎÅ ÏÔÄÁÌÉ ÄÏÍÅÎÎÏÅ ÉÍÑ kontora.ru)
109 </li><li> ïÂÒÁÝÅÎÉÑ Ë ÈÏÓÔÁÍ home.ru ÂÕÄÕÔ ÐÒÏÉÓÈÏÄÉÔØ ÞÅÒÅÚ gw.home.ru, ÅÓÌÉ
110 ÔÏÌØËÏ ÍÙ ÎÅ × ÌÏËÁÌØÎÏÊ ÓÅÔÉ home.ru