トップ 一覧 検索 ヘルプ RSS ログイン

DELE-tipsの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!delegate
http://delegate.hpcc.jp/delegate/

!start
 ./delegated +=dg.conf

!stop
 ./delegated -Fkill +=dg.conf

!!sample
 > ./delegated +=dg.conf

!dg.conf
 % cat ./delegate/conf/dg.conf
 ## DeleGate configure file. 
 -P18080
 SERVER=http
 -v
 ADMIN=mymail@ours.domain
 # RELIABLE=192.168.100.[100-200]
 # RELIABLE=10.[10-254].0.[1-200]
 #
 PERMIT="*:*:192.168.100.0/255.255.255.0"
 PERMIT="*:*:10.0.0.0/255.0.0.0"
 # PERMIT="*:*:*"
 #

!SSL 対応
 |REMITTABLE="+,ssltunnel"
 するか
 |CMAP=thru-CONNECT:HTTPCONF:https:サーバ:クライアント
 するか
 delegated -Dst -P8080

!dg.conf ( sample2)
  # DeleGate config. file
 -P8080
 SERVER=http-sp
 CACHE=do
 EXPIRE=7d
!dg.conf (sample3)
 -P80
 SERVER=http
 CACHE=do
 EXPIRE=100d
 ADMIN=you@your.domain
 # AUTH="admin::root:root"

!dg.conf (sample4)
 -P80
 DGROOT=/home/foobar/delegate 
 OWNER=foo/bar 
 REACHABLE="*"
 RELIABLE="*"
 SERVER="http"
 MOUNT="/* http://192.168.200.20:80/* cache=no"
 MOUNT="/sub/* http://dadd.foo.bar/hoge/* cache=no"

!dg.conf ( sample 5 )
 -P80
 DGROOT=/home/foobar/delegate 
 OWNER=foo/bar 
 REACHABLE="*"
 RELIABLE="*"
 SERVER="tcprelay://192.168.200.20:80/"

!Socks (sample6)
 -P8080
 SERVER=socks
 DGROOT=/home/foobar/delegate 
 -v
 ADMIN=mymail@ours.domain
 PERMIT="*:*:192.168.250.0/255.255.255.0"
 PERMIT="*:*:10.0.0.0/255.0.0.0"
 PERMIT="*:*:127.0.0.1/255.255.255.255"

 # $DGROOT/bin/dg9_9_13 -P18080 SERVER=socks ADMIN=hostmaster@example.com RELIABLE="192.168.0.0/24,10.0.0.0/16"
 
 # lsof -nPi TCP:1080
 COMMAND   PID     USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
 dg9_9_13 9758 delegate   11u  IPv4 2306802      0t0  TCP *:1080 (LISTEN)


----
Delegateで画像圧縮プロクシ

 外部から携帯や Air H" でネット接続した時にデータの転送時間を短縮するため、Delegate に画像圧縮の機能を持たせてみる。
Air H" にはトルネードウェブという圧縮プロクシが用意されているが、この Mac OS X 版は何故か使えたり使えなかったりで、あまり役に立たない。
それならというわけで自前で用意してみる。

 
 環境:Mac OS X 10.2.8 (Client), Delegate 8.9.4, ImageMagick 5.5.6

肝になるのは、 ImageMagick に付属する convert というコマンドを Delegate からフィルターとして利用すること。

 まずは Delegate が必要だが、それは「無線LANをSSLトンネル」に書いたので省略。

 次に、ImageMagick だが、これは Fink でインストール出来る。

 材料は以上。あとは設定。

 まず、xinetd から Delegate を起動させるため、次の内容を /etc/xinetd.conf に書き足すか、 /etc/xinetd.d/dg_comp というファイルを作って保存する。

 service dg_comp
 {
   socket_type = stream
   protocol = tcp
   user = root
   groups = yes
   wait = yes
   port = 8080
   type = UNLISTED
   disable = no
   server = /usr/local/sbin/delegated
   server_args = DGROOT=/Server/Delegate AUTHORIZER=127.0.0.1 SERVER=http  PERMIT=*:*:syn@* REMITTABLE=http,https,ftp CACHE=do EXPIRE=1h FCL=sslway  FTOCL=comp.cfi
 }

 ※ 「dg_comp」という部分は設定の名称なので任意だが、既存の設定と重複しない必要がある。
 ※ SSLWayを使用しない場合は FCL=sslway の部分を削除する。

 設定内容は次の通り。 
 ・8081ポートをListenする 
 ・プロセスが使用するルートディレクトリを /Server/Delegate とする(この配下にログ やキャッシュを作成する)
 ・クライアント認証を依頼するFTPサーバのあるホスト
 ・プロクシサーバの種類はHTTPプロクシ
 ・アクセスコントロール:「httpとhttpsとftpプロトコルを受け付ける」、「全てのサー バへの接続を許可する」、「全てのサーバからのユーザーsynのアクセスを許可する」
 ・対象プロトコルは http, https, ftp のみ
 ・クライアントからの接続は SSLWay を経由して SSL 接続させる。
 ・キャッシュ有効
 ・キャッシュ有効期限1時間
 ・クライアントへの転送にcomp.cfiに記述されているフィルターを実行する
 
 キャッシュファイルを削除する設定が出来ないので、 root の crontab に次の設定を作る。

 0 * * * * /usr/local/sbin/delegated -Fexpire /Server/Delegate/cache -rm -atime +1 -sum


 次に、Delegate の LIB ディレクトリにフィルタースクリプト (comp.cfi) を作る。

 #!cfi
 Content-Type: image/jpeg
 Body-Filter: /sw/bin/convert -colors 32 -quality 10 - -
--
 Content-Type: image/gif
 Body-Filter: /sw/bin/convert -colors 8 - -
--
 Content-Type: image/png
 Body-Filter: /sw/bin/convert -colors 8 -quality 8 - -

 設定内容は次の通り。

 ・image/jpeg ファイルの色数を32色に落とし、画質度数を 10 に制限する
 ・image/gif ファイルの色数を8色に落とす
 ・image/png ファイルの色数を8色に落とし、画質度数を 8 に制限する

 画像の圧縮率などは使用する用途によって調整する。
 上記の設定は私の自宅サーバ環境でクライアントにパソコンを使う事を前提に合わせてあ るが、クライアントにPDAなどで使う場合は圧縮率を上げ過ぎると端末の処理能力が追いつかなくなるので注意。

 ついでにgzipを使ってHTMLも圧縮しようとしてみたが、HTTP応答ヘッダの書き換えがうま  くいかないため、ブラウザがうまく反応しなかった。
 Delegateを二段にする事も考えたが、閲覧するWebサイトごとにクライアント認証を促されてしまうために断念。
 どうしても必要なら、SSHトンネルを -C オプション付きで作成し、gzip圧縮を有効にすればいいだろう。