SSHでVPNっぽいことできるという話
あまり知られていないようだったので。
以下のような構成で赤い矢印のファイアウォールを開けれないとき(社内の申請面倒だとか、セキュリティ的にもProxyサーバへの通信が開きっぱなしにしたくないとか)に、青の矢印で通信をさせる。
TeraTermだと
1.「設定」→「SSH転送」をクリック
2.「追加」をクリック
3.「リモート」 にチェックをつけ、
「8812(サーバAが使っていないポート番号なら何でも)」を入力、
to local mechine→「192.111.111.111(ProxyサーバのIPアドレス)」
port→「8080(Proxyサーバのポート)」
と入力し、「OK」をクリック
4.元の画面に戻ったら「OK」をクリック
5.「設定」→「設定の保存」をクリック
6.そのまま「保存」をクリック
7.「ファイル」→「新しい接続」でサーバAに接続するか、
すでに接続している場合は「ファイル」→「セッションの複製」をする。
8.export http_proxy=http://localhost:8812/
とすることで青矢印の通信経路でProxyサーバに行くことになる。
*認証情報が必要なProxyの場合は
export http_proxy=http://userid:password@localhost:8812/
とすることで、URLにユーザID(これだとuserid)と
パスワード(これだとpassword)を埋めることができる。
9.あとはyum check-updateでもwgetでも。
CentOSやUbuntuServerではこの通信手段が標準で許可されており、
設定を逆(?)にすることで、以下のような使い方も可能となる。
もともとサーバAと他のサーバ間にファイアウォールがないことに問題があるが、
サーバAの保守委託先にはサーバAしかアクセスできないようにしているつもりがどのサーバへもアクセスできてしまう事に気づいていない方が多い。
切っておきたい場合は
/etc/ssh/sshd_config
AllowTcpForwarding No
*そんなことよりサーバAから他のサーバへ行かせないようにするべき…