httptunnel

提供: セキュリティ
2015年6月9日 (火) 00:41時点におけるDaemon (トーク | 投稿記録)による版 (ページの作成:「httptunnel (HTTPトンネル)とは、HTTPリクエストで双方性の仮想的なデータ接続を作成します。HTTPリクエストは、必要があれば、...」)

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索
スポンサーリンク

httptunnel (HTTPトンネル)とは、HTTPリクエストで双方性の仮想的なデータ接続を作成します。HTTPリクエストは、必要があれば、HTTPプロキシを通して、送信できます。ファイアーウォールプロキシに制限された環境下で利用します。

読み方

httptunnel
えいてぃてぃぴー とんねる

概要

httptunnelは、ファイアーウォールの制限下におかれたユーザにとっても便利です。もし、ウェブへのアクセスがHTTPプロキシを通してのみ許可されている場合、httptunnelを使用することができ、ファイアーウォールの外のコンピュータにtelnetやPPPで接続できます。

httptunnelは、サーバとクライアントが提供されます。

ssh -> htc -> proxy    -> hts -> sshd
ssh -> htc -> Firewall -> hts -> sshd
htc
HTTP Tunnel Client
hts
HTTP Tunnel Server

どのようなときに利用するのか

大抵の場合は、必要はありません。

  • 攻撃者がHTTP通信に、通信を隠したい
  • 制限された環境下で、どうしてもsshをしたい

というとに限られるでしょう。

学校の外にsshしたいんだ!会社の外にsshしたいんだ!みたいな、特殊な人達が利用するもので、一般人には、不要なものです。

どのような環境で利用されるのか

  • ファイアーウォール で制限され、HTTP通信が許可されているような環境
  • プロキシ 経由でしか、インターネットに接続できない環境で、HTTP でしか、インターネットに出られない環境

インストール

Ubuntu/Debianにインストールする場合

apt-get コマンドでインストールする場合です。

sudo apt-get install httptunnel

ファイル

root@5ecf56dbad43:/root# dpkg -L httptunnel
/.
/usr
/usr/bin
/usr/bin/hts
/usr/bin/htc
/usr/share
/usr/share/doc
/usr/share/doc/httptunnel
/usr/share/doc/httptunnel/DISCLAIMER
/usr/share/doc/httptunnel/README
/usr/share/doc/httptunnel/changelog.Debian.gz
/usr/share/doc/httptunnel/FAQ
/usr/share/doc/httptunnel/AUTHORS
/usr/share/doc/httptunnel/HACKING
/usr/share/doc/httptunnel/copyright
/usr/share/doc/httptunnel/TODO.gz
/usr/share/doc/httptunnel/NEWS.gz
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/htc.1.gz
/usr/share/man/man1/hts.1.gz

hts

コマンドラインオプション

Usage: hts [OPTION]... [HOST:][PORT]
Listen for incoming httptunnel connections at PORT (default port is 8888).
When a connection is made, I/O is redirected to the destination specified
by the --device, --forward-port or --stdin-stdout switch.
 
  -c, --content-length BYTES     use HTTP PUT requests of BYTES size
                                 (k, M, and G postfixes recognized)
  -d, --device DEVICE            use DEVICE for input and output
  -F, --forward-port HOST:PORT   connect to PORT at HOST and use it for 
                                 input and output
  -h, --help                     display this help and exit
  -k, --keep-alive SECONDS       send keepalive bytes every SECONDS seconds
                                 (default is 5)
  -M, --max-connection-age SEC   maximum time a connection will stay
                                 open is SEC seconds (default is 300)
  -s, --stdin-stdout             use stdin/stdout for communication
                                 (implies --no-daemon)
  -S, --strict-content-length    always write Content-Length bytes in requests
  -V, --version                  output version information and exit
  -w, --no-daemon                don't fork into the background
  -p, --pid-file LOCATION        write a PID file to LOCATION
 
Report bugs to bug-httptunnel@gnu.org.

htc

コマンドラインオプション

root@5ecf56dbad43:/root# htc --help
Usage: htc [OPTION]... HOST[:PORT]
Set up a httptunnel connection to PORT at HOST (default port is 8888).
When a connection is made, I/O is redirected from the source specified
by the --device, --forward-port or --stdin-stdout switch to the tunnel.
 
  -A, --proxy-authorization USER:PASSWORD  proxy authorization
  -z, --proxy-authorization-file FILE      proxy authorization file
  -B, --proxy-buffer-size BYTES  assume a proxy buffer size of BYTES bytes
                                 (k, M, and G postfixes recognized)
  -c, --content-length BYTES     use HTTP PUT requests of BYTES size
                                 (k, M, and G postfixes recognized)
  -d, --device DEVICE            use DEVICE for input and output
  -F, --forward-port PORT        use TCP port PORT for input and output
  -h, --help                     display this help and exit
  -k, --keep-alive SECONDS       send keepalive bytes every SECONDS seconds
                                 (default is 5)
  -M, --max-connection-age SEC   maximum time a connection will stay
                                 open is SEC seconds (default is 300)
  -P, --proxy HOSTNAME[:PORT]    use a HTTP proxy (default port is 8080)
  -s, --stdin-stdout             use stdin/stdout for communication
                                 (implies --no-daemon)
  -S, --strict-content-length    always write Content-Length bytes in requests
  -T, --timeout TIME             timeout, in milliseconds, before sending
                                 padding to a buffering proxy
  -U, --user-agent STRING        specify User-Agent value in HTTP requests
  -V, --version                  output version information and exit
  -w, --no-daemon                don't fork into the background
 
Report bugs to bug-httptunnel@gnu.org.

使い方

サーバ側

$ hts -F localhost:22 443

クライアント側

$ htc -F 10000 localhost:22

sshで接続します。

$ ssh -p 10000 localhost

プロキシあり

サーバ側

$ hts -F localhost:22 443

クライアント側

$ htc -F 10000 -P proxy:3128 localhost:443

関連項目




スポンサーリンク