【無料ツールで作るセキュアな環境(50)】〜OpenSSH 10〜(執筆:office) | ScanNetSecurity[国内最大級のサイバーセキュリティ専門ポータルサイト]
2018.02.19(月)

【無料ツールで作るセキュアな環境(50)】〜OpenSSH 10〜(執筆:office)

特集 特集

 今回はOpenSSHの利用方法の中でも、非常に有用なポート転送(port fowarding)について解説する。通信経路が安全でないネットワークを通じて様々なネットワーク通信する場合にも、ポート転送によって安全なSSH通信で保護することができる。

 ポート転送はSSHプロトコルの暗号通信経路を予め用意しておき、その経路の中を通して一般のネットワーク通信をさせるというイメージを持ってもらうとよいだろう。SSHの接続の方向と一般のネットワーク通信の接続の方向との関係で2通りのポート転送のやり方がある。

 1つ目のポート転送の方法は、SSHの接続元(ローカルホスト)と接続先(リモートホスト)と同じ向きに一般の通信の接続要求がある場合、つまりローカルホスト側(のネットワーク)に一般用ネットワークソフトのクライアントがあり、リモートホスト側(のネットワーク)に何らかのネットワークサーバがある場合である。

 この場合sshでの接続の際には、一般のSSHプロトコルの接続に必要な情報以外に、一般用通信のためのローカルホストの接続用ポート番号(localport)、リモート側の最終接続先ホスト(endhost)、リモート側の最終接続先ポート番号(endport)の情報を与えてやらなければならない。この場合のsshでの接続コマンドは、
ssh [-1] [-v] [-C] [-f] [-N] [-g] -L localport:endhost:endport [UserID@]hostname

という形になる。-L オプションでローカルホストからリモートホスト方向へのポート転送を指定している。-1 の部分の数字はSSHプロトコルの指定、-v オプションはデバッグモード、-C オプションが圧縮転送、-f オプションはSSHによる接続確立後のバックグラウンド移行であり、これまで説明してきた場合と同様である。

 簡単な例として、sshクライアントを動かしているローカルホスト(sshclient.local.com)からリモートホスト(sshd.office.ac)側のネットワーク内にあるserverd.office.acというホストにtelnet接続できるよう、ローカルホストのポート10000を開けておく場合は、
$ ssh -1 -L 10000:serverd.office.ac:23 sshd.office.ac

というコマンドを用いればよい。

 endhostであるserverd.office.acはSSH接続のリモートホストであるsshd.office.acから見てのホスト名なので、この例の場合のendhost指定はネットワーク名のoffice.acを省略可能である。もしendhostとして localhost と指定した場合は、(sshクライアントの動いているローカルホストではなく、)sshdの動いているリモートホスト自身のことになるので注意して欲しい。

 このポート転送を利用してローカルホスト上のtelnetクライアントからserverd.office.acに接続したい場合は、
$ telnet localhost 10000

office
office@ukky.net
http://www.office.ac/

(詳しくはScan本誌をご覧ください)
http://www.vagabond.co.jp/vv/m-sc.htm

《ScanNetSecurity》

Scan PREMIUM 会員限定記事

もっと見る

Scan PREMIUM 会員限定記事特集をもっと見る

カテゴリ別新着記事

★★Scan PREMIUM 会員限定コンテンツにフルアクセスが可能となります★★
<b>★★Scan PREMIUM 会員限定コンテンツにフルアクセスが可能となります★★</b>

経営課題としてサイバーセキュリティに取り組む情報システム部門や、研究・開発・経営企画に携わる方へ向けた、創刊19年のセキュリティ情報サービス Scan PREMIUM を、貴社の事業リスク低減のためにご活用ください。

×