LinuxでOpenSSHでフォワーディングしてみるテスト。
なんか、Linuxって不便だよねって思った瞬間。
通常のフォワーディング
Wellknownポートはrootでしかbindingできませんよ。
root# ssh -L %local_portnum%:%フォワーディングして接続したサーバーから見てのホスト名%:%Remote_portnum% %Remote_Server%
お好みで鍵を使用しても。
「%フォワーディングして接続したサーバーから見てのホスト名%」ってのはようはまぁ、SSHしたサーバーから見てlocalhostならlocalhostって書けばいいだけのことで。
たとえば、mail.example.comというメールサーバーがあって、そこにSSH接続してSMTPセッションを張る場合は
root# ssh -L 2500:localhost:25 username@mail.example.com
とすりゃSPAM対策とかでリモートから送信できないけどmail.example.com自身からは配送できる場合とかに使える。
MySQLを使用してみたりしたい場合。
普通に
root# ssh -L 3306:localhost:3306 username@db.example.com
とかして
root# mysql -h localhost -P 3306 -u username -p
とかしたいんだけど、無理だったりするわけだ。
てかmysqlコマンドは「-h」のパラメーターが「localhost/127.0.0.1」の場合はポートの指定無視しやがる(まぁ、Unix Socket使ってんだろうけどさ)
というわけで、bindingするアドレスを指定してフォワーディングする機能があったりするんですが…
最近のLinuxのたいていの(?)ディストリビューション
- RHEL3
- CentOS 4.1(yumで更新)
- Turbolinux 10 Server
- Fedora Core2(yum済み)
どれを取っても対応したバージョンが入っていませんorz
というわけでOpenSSH4.2をダウンロードしてきててけとーにインストール(別ディレクトリ推奨)してそのsshを使って
root# ssh -L 192.168.0.1(自分自身のIPアドレス):3306:localhost:3306 username@db.example.com
とかしたあと
root# mysql -h 192.168.0.1 -P 3306 -u username -p
とかやったりすると接続できるようになるはずです。
#てかこのまま放置ってできないかな…いちいちシェル上げっぱなしってのもありえないし。