Dec 8, 2009

delegate + SSL

以下は、古い内容ですが、DGBeeconの実験趣旨に賛同し、あえて昔のメモを載せておきます。
SSLを実装する方は、あくまでも最新版OpenSSLを実装するようにしてください。

ソース
    http://www.delegate.org/delegate/download/ からGETする

1. 展開 & インストール
   # tar -xzvf delegate5.9.1.tar.gz
   # cd delegate5.9.1/src
   # make PATH=".:$PATH" CC=gcc
        管理者のメールアドレスなどを適宜入力。
        makeが終わると、delegated が作成されている。 /usr/local/bin あたりへコピーする
   % su
   # cp delegated /usr/local/bin
   # chown root.root /usr/local/bin/delegated

2. キャッシュ & ログ等のディレクトリを作成
   # mkdir /var/spool/delegate-nobody
   # mkdir /var/spool/delegate-nobody/cache
   # chown nobody.nogroup /var/spool/delegate-nobody
   # chown nobody.nogroup /var/spool/delegate-nobody/cache
   # chmod 777 /var/spool/delegate-nobody/cache
        上記はsolarisの場合。linuxでは、nobody:nobody

3. /etc/services の空いているポートを調べて登録する
   # more /etc/services
        .
        .
       中略
        .
        .
        dlip            7201/tcp
        dlip            7201/udp
        natd            8668/divert # Network Address Translation
        jetdirect       9100/tcp   #HP JetDirect card
        .
        .
   8080が空いているのでdelegate用に割り当てる。
   # vi /etc/services
        dlip            7201/udp
        http-proxy      8080/tcp    #DeleGate Proxy
        natd            8668/divert # Network Address Translation

4. 起動
   # delegated -P3128 SERVER=http CACHEDIR=/var/spool/delegate PROXY="gw1:80:*"

   ポート8080を使ってhttpのproxyをさせてみる
   # delegated -P8080 SERVER=http CACHEDIR=/var/spool/delegate

   ポート3456経由でtelnet proxyさせる場合、
   # delegated -P3456 SERVER=telnet

   squid を立ち上げているならあえてsquid proxyを経由させて
   # delegated -P3456 PROXY=proxy.domain.com:3128
   なんてのも面白いかも。

5. まとめ
   DeleGateは様々なプロトコルに対応しているProxyなので研究してみる価値
   がありそうだ。

---------------------------------------------------------------
各種、プロトコル変換
---------------------------------------------------------------
■POP3でmailをhttpで見る
        ※DeleGate 5.6.2以降で行うこと。

    # vi /etc/inetd.conf
    -----
    pop-proxy       8110/tcp        # DeleGate Proxy for POP3 99.05.13
    -----

    # vi /usr/local/sbin/delegate-pop.rc
    --------------------------------------
    #!/bin/sh
    /usr/local/bin/delegated -P80 \
      MOUNT="/pop/* pop://mail-gw.hogehoge.or.jp/*" \
      REMITTABLE=pop \
      VARDIR=/home/delegate \
      LOGFILE='${PORT}[date+.%d]' \
      OWNER=delegate/delegate \
      PERMIT="*:*:*"
    --------------------------------------

・オプション解説
  MOUNT=...
      ブラウザで http://delegate.hogehoge.or.jp:8110/pop/ にアクセスすると
      delegatedが、mail-gw.hogehoge.or.jpに POPでアクセスしに行ってくれる。

  REMITTABLE=pop
      POPのみで動く。

  PERMIT="*:*:*"
      どこから誰でもアクセスできる。

・実際の動作
 ブラウザでアクセスすると、アカウントとパスワードの入力を求められる。
 そのデータをもとに、delegatedは指定したmailserverにアクセスして
 mailを取ってきてくれる。そしてhtmlに変換して、ブラウザで見える
 ようにしてくれる。POPなので、mailの送信は不可能。

---------------------------------------------------------------
 99.05.13
  delegate - pop gateway
  refer to: http://www.geocities.co.jp/SiliconValley-PaloAlto/5772/delegate.html#jis
----------------------------------------------------------
99.06.15 追記

■Lotus Notesサーバへのポート転送
    delegated -P1352 SERVER=tcprelay://NotesServer(FQDN):1352
    refer to:
        http://tenjin.ics.es.osaka-u.ac.jp/delegate/digest.html

■NNTPサーバへのポート転送
    > % delegated -P119 \
    >   SERVER=tcprelay://eiwanews:119:-:news0.provider.ad.jp \
    >   SERVER=tcprelay://news1.provider.ad.jp:119:-:eiwanews \
    >   PERMIT=tcprelay:eiwanews,news1.provider.ad.jp:eiwanews,news0.provider.ad.jp

---------------------------------------------------------
参考  99.05.12
    delegate5.9.1.tar.gz
    Quoted from
        http://www2.tky.3web.ne.jp/~marlan/FreeBSD/delegate.html

    Refer to
        http://www.geocities.co.jp/SiliconValley-PaloAlto/5772/delegate.html
        http://wall.etl.go.jp/delegate/tutorial/tutorial-jp.html
        http://www.asahi-net.or.jp/~TY4S-TKHS/comp/delegated.html
        http://tenjin.ics.es.osaka-u.ac.jp/delegate/digest.html
---------------------------------------------------------
09/12/07
==============================================================
delegate + ssl
                        2002.03.16
==============================================================
delegate 9以前の場合は、sslwayをmakeする。

(1) how to make sslway
    % cd delegate*/filters

    ex1.
        % vi Makefile.go
            LIBS =          ../lib/library.a ../lib/libsubst.a
            # SSLEAY=               ../../SSL
            SSLEAY=         /usr/local/ssl/lib

        ... then make like this ...

        % make -f Makefile.go CC=gcc SSLEAY=/usr/local/ssl/lib

    ex2.
          % make -f Makefile.go CC=gcc SSLEAY=/usr/lib

         (formerly 
          ---    % ln -s /usr/local/ssl/lib ../../SSL
          ---   to use ../../SSL/libssl.a ../../SSL/libcrypto.a
          ---   ../lib/library.a ../lib/libsubst.a \
          ---   % make -f Makefile.go sslway
         )

    # cp -a sslway /usr/local/bin

--------------------------------------------------------------
(2) how to configure
    # mkdir /var/spool/delegate-nobody
    # chown -R nobody.nobody /var/spool/delegate-nobody
                             --------------------------
        ここではdelegatedのデフォルト DGROOT を作成しておいた。
    # cd /usr/local/ssl/certs
    # ../bin/req -new -newkey rsa:512 -nodes -days 365
      -x509 -out server-cert.pem -keyout server-key.pem
                 ---------------         --------------
        sslway がデフォルトで使用する証明書ファイル名
        起動スクリプトで変更しても良い。下記参照。
        [Your Name] ではサーバのFQDNを入力すると良い

(3) configure / OpenSSL (2001.12.3)
    # ../bin/openssl req -nodes -new -newkey rsa:512 -days 365 \
       -x509 -out server-cert.pem -keyout server-key.pem
     Using configuration from /usr/local/ssl/openssl.cnf
     Generating a 512 bit RSA private key
     ....++++++++++++
     ...........++++++++++++
     writing new private key to 'server-key.pem'
     -----
     You are about to be asked to enter information
     that will be incorporated into your certificate request.
     What you are about to enter is what is called a Distinguished
     Name or a DN.
     There are quite a few fields but you can leave some blank
     For some fields there will be a default value,
     If you enter '.', the field will be left blank.
     -----

--------------------------------------------------------------
# cat /usr/local/sbin/dlg-https.sh
    #!/bin/sh
    # DeleGate with SSL
    SSL_SERVER_KEY_FILE=/usr/local/ssl/certs/server-key.pem
    export SSL_SERVER_KEY_FILE;
    SSL_SERVER_CERT_FILE=/usr/local/ssl/certs/server-cert.pem
    export SSL_SERVER_CERT_FILE;
    DELEGATE=/usr/local/bin/delegated
    if [ -x $DELEGATE ]; then
        echo -n 'Staring DeleGate Server (SSL)'
        $DELEGATE \
        -P443 \
        SERVER=https \
        MOUNT="/* http://web.hoge.ac.jp/*" \
        RELIABLE=* \
        FCL="/usr/local/bin/sslway -ac"
    fi
    #    ADMIN=postmaster@hoge.ac.jp \
    #    DGROOT=/var/spool/delegate-nobody \
    #     MOUNT="sub/* http://sub-webserver/*" \
    #     REACHABLE=webserver,sub-webserver \
    #     DELEGATE=pop.hoge.co.jp:995 \
    #     CONNECT=d:*:* \
    # End of Scripts
    ADMINやDGROOTはコメントアウトしておく方が確実に動作する???
    〃      は指定しないと起動時にウォーニングメッセージが出る。

-------------------------------------------------------------
Solaris /dev/random
    solarisには/dev/randomがはいってないので、インストール
    /dev/randomの入手先
    http://www.cosy.sbg.ac.at/~andi/ よりバイナリパッケージを入手
    ANDIrand-0.7-5.8-x86-1.pkg
    $ su
    # pkgadd -d ANDIrand-0.7-5.8-x86-1.pkg
    そのまま起動するには
    # /etc/rc2.d/S60random start
    次回起動時には起動スクリプトにて実行される

--------------------------------------------
※追加情報
sun純正の/dev/randomがpatchとして提供されました。
    x86用        112439-01
    SPARC用は    112438-01
    ダウンロード先  http://jp.sunsolve.sun.com/pub-cgi/show.pl?target=patches/patch-access
    ここで検索窓から
        112439
        で検索。
    適当なところで
    $ unzip 112439-01.zip
    $ su
    # patchadd ./112439-01

--------------------------------------------
refer to
    http://www.knj.co.jp/~hidaka/working/unix/delegate.html
    http://www.denon.co.jp/j/docs/DeleGateSSL.html
    http://troi.cs.knct.ac.jp/tani-lab/install/solaris/pop_wiz_ssl.html
--------------------------------------------------------------
    info 02.07.09 ...
    http://columbia.jp/j/docs/DeleSSL/ssl.html
--------------------------------------------------------------

No comments: