□SSHを使ったポートフォワード


今までに作成した、TCP通信を行うアプリケーションにて、その通信を暗号化したい場合に
アプリケーションの対応なしでも、ssh(openssh)を利用することで、対応が可能な場合があります。

前提として、送信側と、受信側にsshパッケージが導入されている必要があります。

rpm -qa | grep ssh 

などとして、調べることで導入されているか分かります。

(実行例)
[root@localhost local]# rpm -qa | grep ssh
openssh-clients-3.6.1p2-18
openssh-3.6.1p2-18
openssh-askpass-gnome-3.6.1p2-18
openssh-server-3.6.1p2-18
openssh-askpass-3.6.1p2-18
[root@localhost local]#


2ノード間をポートフォワードしたい場合、いくつか方法がありますが、下記の例は、
ローカルに設定しておき、ローカルの指定のポートにアクセスされたら、他方の指定ポートに
仲介する設定です。

ssh -C -N -f -L 1115:192.168.10.207:50001 db2inst4@192.168.10.207

-C 転送するパケットを圧縮する
-N 接続後シェルプロンプトを出さない
-f バックグランド実行
-L ローカル※以降の nnnn:<host name or IP >:nnnnにて指定
1115 ローカルサーバーでリスンするポート番号
192.168.10.207 リモートサーバー
50001 リモートサーバー側のポート番号
db2inst4 リモートサーバー側のOSユーザー

設定の確認は下記の様にするとコマンドラインの表示で出来ます。

ps -edf | grep ssh | grep -v grep

(実行例)
[root@localhost oracle]# ps -edf | grep ssh | grep -v grep
root      1107     1  0 Sep12 ?        00:00:00 /usr/sbin/sshd
root     32444  1107  0 17:12 ?        00:00:00 sshd: oracle [priv]
oracle   32446 32444  0 17:12 ?        00:00:00 sshd: oracle
root       406     1  0 17:26 ?        00:00:08 ssh -C -N -f -L 1115:192.168.10.207:50001 db2inst4@192.168.10.207
最終更新:2006年09月14日 18:44