インストール
#ubuntu aptitude install connect-proxy #centos yum install connect #cygwin apt-cyg install connect-proxy
connectは
connect-proxy はその名前の通り、CONNETでプロキシに接続する。
CONNECTって?
CONNECTは、主にHTTPS(443)通信のために使う.HTTPSは通信内容が見えないのでプロキシは中継するだけ。むしろ見てはいけない.
connect コマンドはHTTPプロキシに転送要求を出します。
使い方
~/.ssh/config 23 Host mm 24 Hostname ssh.example.com 25 ProxyCommand connect-proxy squid.example.com:3128 %h %p
プロキシにログインが居る場合
環境変数にユーザー名とパスワードを書く.
export HTTP_PROXY_USER=takuya_1st export HTTP_PROXY_PASS=MY_PASSWORD
corkskrew との違い
あまりない、使う部分においては殆ど同じ.
注意点
squid がサポートする digest 認証はconnectで使えない.通常のhtpasswd は使えた.
digest認証が失敗する様子
connct は -d オプションで通信エラーを見ることが出来ます.
takuya@letsnote:~$ connect -d -H 192.168.22.83:3128 192.168.22.210 22 DEBUG: No direct address are specified. DEBUG: relay_method = HTTP (3) DEBUG: relay_host=192.168.22.83 DEBUG: relay_port=3128 DEBUG: relay_user=takuya_1st DEBUG: local_type=stdio DEBUG: dest_host=192.168.22.210 DEBUG: dest_port=22 DEBUG: not matched, addr to be relayed: 192.168.22.210 DEBUG: 192.168.22.210 is for not direct. DEBUG: connecting to 192.168.22.83:3128 DEBUG: begin_http_relay() DEBUG: >>> "CONNECT 192.168.22.210:22 HTTP/1.0\r\n" DEBUG: >>> "\r\n" DEBUG: <<< "HTTP/1.0 407 Proxy Authentication Required\r\n" DEBUG: <<< "Server: squid/3.0.STABLE19\r\n" DEBUG: <<< "Mime-Version: 1.0\r\n" DEBUG: <<< "Date: Fri, 12 Aug 2011 19:01:38 GMT\r\n" DEBUG: <<< "Content-Type: text/html\r\n" DEBUG: <<< "Content-Length: 1569\r\n" DEBUG: <<< "X-Squid-Error: ERR_CACHE_ACCESS_DENIED 0\r\n" DEBUG: <<< "Proxy-Authenticate: Digest realm="Squid proxy-caching web server", nonce="knhFTiDDxQmbBRkz", qop="auth", stale=false\r\n" DEBUG: Unsupported authentication type: digestDEBUG: <<< "X-Cache: MISS from localhost\r\n" DEBUG: <<< "X-Cache-Lookup: NONE from localhost:3128\r\n" DEBUG: <<< "Proxy-Connection: close\r\n" DEBUG: <<< "\r\n" DEBUG: Can't find Proxy-Authenticate: in response header.FATAL: failed to begin relaying via HTTP.
basic に変えたら通った
takuya@letsnote:~$ connect -d -H 192.168.22.83:3128 192.168.22.210 22 DEBUG: No direct address are specified. DEBUG: relay_method = HTTP (3) DEBUG: relay_host=192.168.22.83 DEBUG: relay_port=3128 DEBUG: relay_user=takuya_1st DEBUG: local_type=stdio DEBUG: dest_host=192.168.22.210 DEBUG: dest_port=22 DEBUG: not matched, addr to be relayed: 192.168.22.210 DEBUG: 192.168.22.210 is for not direct. DEBUG: connecting to 192.168.22.83:3128 DEBUG: begin_http_relay() DEBUG: >>> "CONNECT 192.168.22.210:22 HTTP/1.0\r\n" DEBUG: >>> "\r\n" DEBUG: <<< "HTTP/1.0 407 Proxy Authentication Required\r\n" DEBUG: <<< "Server: squid/3.0.STABLE19\r\n" DEBUG: <<< "Mime-Version: 1.0\r\n" DEBUG: <<< "Date: Fri, 12 Aug 2011 19:28:33 GMT\r\n" DEBUG: <<< "Content-Type: text/html\r\n" DEBUG: <<< "Content-Length: 1569\r\n" DEBUG: <<< "X-Squid-Error: ERR_CACHE_ACCESS_DENIED 0\r\n" DEBUG: <<< "Proxy-Authenticate: Digest realm="Squid proxy-caching web server", nonce="4X5FTpDCxQkyyc1n", qop="auth", stale=false\r\n" DEBUG: Unsupported authentication type: digestDEBUG: <<< "Proxy-Authenticate: Basic realm="Squid proxy-caching web server\xE3\x80\x80"\r\n" DEBUG: <<< "X-Cache: MISS from localhost\r\n" DEBUG: <<< "X-Cache-Lookup: NONE from localhost:3128\r\n" DEBUG: <<< "Proxy-Connection: close\r\n" DEBUG: <<< "\r\n" DEBUG: not matched, addr to be relayed: 192.168.22.210 DEBUG: 192.168.22.210 is for not direct. DEBUG: connecting to 192.168.22.83:3128 DEBUG: begin_http_relay() DEBUG: >>> "CONNECT 192.168.22.210:22 HTTP/1.0\r\n" DEBUG: >>> "Proxy-Authorization: Basic xxxxx\r\n" DEBUG: >>> "\r\n" DEBUG: <<< "HTTP/1.0 200 Connection established\r\n" DEBUG: connected, start user session. DEBUG: <<< "\r\n" DEBUG: connected DEBUG: start relaying. DEBUG: recv 32 bytes SSH-2.0-OpenSSH_5.5p1 Debian-6
Digestに非対応ってチョッと怖い気もするが.仕方ないね.
プロキシで暗号化通信を観察して良いのか
管理者がプロキシで暗号化通信を見ようとするのは横暴であり、中国共産党と同じかもしれない.
プロキシで見るためにはクライアントにオレオレ証明書を入れてプロキシ側で暗号化通信を展開後,再・暗号化する。これが果たしてやって良いことなのかは激しく疑問.
偽証明書によるSSLというものをはたして、電気通信事業者がやってよいのかという疑問があります。私企業が社内ネットワークの監視目的で導入するのは許されても、電気通信事業者が一般向けのサービスにおいてそれを実施するのは、電気通信事業法違反かどうかわかりませんがスレスレだと思いますし、倫理的に許されないと思います。
高木浩光@自宅の日記 - SoftBankガラケーの致命的な脆弱性がようやく解消
通信事業者が偽SSLとか言語道断だし.私企業でもやって良いことなのかな・・・倫理的にどうなんだろう.「社員の通信は全部見てやる!」って俺が管理者なら怖くてもいえない.流出させちゃ行けない顧客情報なら名前や住所をマスクして仕事させればいいわけで・・・情報倫理の研究部会に参加してみて論文読んでみよう.
au がグローバルIPがたりないからWiMAXはプライベートで割当てますと言ったとか.v4-v6ブリッジ飛び越えて,いきなりそんなこと言っちゃうau ならホントやりかねない。怖いねー