Showing posts with label delegate. Show all posts
Showing posts with label delegate. Show all posts

Feb 26, 2015

中間CA証明書のマージ


背景

   シマンテックの証明書をdelegated環境で使用する場合は
   中間CA証明書・クロスルート設定CA証明書を、サーバ証明書に
   組み込む必要がある。手順を以下に記す。

手順

    1.シマンテックから証明書受領。

    2.delegatedでSSLリバースプロキシの場合は、
      「X.509形式 (Apacheを代表とするサーバ(Microsoft IIS以外)用)」を
      エディタで server01-cert_verisign_public.pem として保存。

    3.グローバル・サーバID用中間CA証明書(クロスルート設定CA証明書込み)の

      取得用サイトにアクセスする。
      https://www.jp.websecurity.symantec.com/repository/intermediate.html

    4.「グローバル・サーバID」の「2枚1組」から申し込み時期に一致する

      リンクをクリックする。

    5.「CN = VeriSign Class 3 International Server CA - G3」を確認

    6.取得(画面からコピー)する。

    7.エディタで VeriSign_Class_3_International_ServerCA-G3.txt を新規作成、
      先ほどコピーした内容を貼り付けて保存する。

    8.# grep -i cert VeriSign_Class_3_International_ServerCA-G3.txt
      で 「-----BEGIN CERTIFICATE-----」~「-----END CERTIFICATE-----」が

      二組そろっていることを確認。

  9.サーバ証明書とマージ
     (1) 
         # cat server01-cert_verisign_public.pem > test1

     (2)
         # cat VeriSign_Class_3_International_ServerCA-G3.txt >> test1

      ・メモ
          手順4で「1枚毎」を選択した場合は、さらにエディタで*G5.txtを

    作成し、次のコマンドでマージすれば良い。
         # cat VeriSign_Class_3_Public_Primary_Certification_Authority-G5.txt >> test1
          面倒なだけなので、「2枚1組」で良い。

   10.形式変換
          # openssl pkcs12 -inkey server01-nopasskey.pem  \
             -in test1 -export -out server01-merged.pkcs12
          # openssl pkcs12 -in server01-merged.pkcs12 -nodes  \

           -out server01-merged.pem

   11.証明書のありかを設定して、delegated起動準備

     ・Windowsサーバの場合は、
        copy server01-nopasskey.pem [DGROOT]\bin\server-key.pem
        copy server01-merged.pem      [DGROOT]\bin\server-cert.pem  

     ←2015/03/22訂正(server01.pemをserver01-merged.pemに)。
      見てくれた方は意味不明だったと思います。済みません。

     ・ Linuxサーバの場合は、delegated起動スクリプトに、

    証明書のありかを記載。


   12.証明書の実装状態を確認
     ・ブラウザで確認


     ・Symantecのチェックツールでも確認しておくと良さそう
          Certificate Chainが構造化されている事が確認できる。
          チェックツールのサイトアドレスはこちら

参考

   Certificate Chaining
   http://help.globalscape.com/help/eft6/Certificate_Chaining.htm

   APサーバに中間証明書付のSSLサーバ証明書をインポートするには?
   (2011/12/31)
   http://acro-engineer.hatenablog.com/entry/20111231/1325314832

   How to configure SSL

   http://docs.codehaus.org/display/JETTY/How+to+configure+SSL

   SSL証明書ファイルのエンコードタイプとopensslでの変換方法
   http://www.digicert.ne.jp/howto/basis/file_types.html


以上

Feb 19, 2015

delegateと SSLv3対策メモ

delegateでSSL3を使用できなくする
http://d.hatena.ne.jp/iww/20141231/sslway

確認手段
(1)
  wget --no-check-certificate --secure-protocol=SSLv3 https://web-server/dir01/
  wget --no-check-certificate --secure-protocol=TLSv1 https://web-server/dir01/

(2)
  openssl s_client -connect web-server:443 -ssl3
  openssl s_client -connect web-server:443 -tls1

Apr 14, 2012

delegateと、sslクライアント証明書で、アクセス制御

SSLクライアント証明書を持っているクライアントだけを、既設Webサーバに delegatedでアクセス許可する設定のメモ。書きかけ。

■用意すべき鍵/証明書

 * server-key.pem: サーバの秘密鍵。sslwayのオプションで指定
 * server-cert.pem: サーバ証明書。sslwayのオプションで指定
 * cacert.pem: CAのルート証明書。sslwayのオプションで指定
   ハッシュ値をファイル名としたシンボリックリンクを作成

   # ln -s cacert.pem `openssl x509 -in cacert.pem -hash -noout`.0
 * crl.pem: CRL = Certificate Revocation List

   ハッシュ値をファイル名としたシンボリックリンクを作成
   # ln -s crl.pem `oepnssl crl -in crl.pem -hash -noout`.r0

■DeleGateの設定 

 DeleGateをSSLリバースプロキシとして構築し、
 クライアントとDeleGate間の通信はHTTPSで行い、 
 DeleGateとwebserverは素のHTTPで接続する構成を考えます。

■起動スクリプト、サンプル 
  delegeted -P443 \
  SERVER=https \
  STLS='fcl,im20,sslway -key server-key.pem -cert server-cert.pem \
   -CApath /var/spool/delegate-nobody/lib -Vrfy -crl_check' \
  MOUNT='/* http://webserver/*' \
  PERMIT='http:{webserver:80}:*'


      <2015.02.26 追記>
    DOS(Windows)だと 
   cd d:\dgroot\bin
   delegated.exe -P443 -vl -f SERVER=https STLS='fcl,sslway -tls1'
    MOUNT='/* http://1.2.3.4/*' PERMIT="*:*:*" DGROOT=d:\dgroot
   ADMIN=admin@example.com

</2015.02.26 追記>

■オプションの解説
 -Vrfy : クライアント証明書の提示・認証を強制するオプション
 -crl_check : CRLを読み込むオプション。
 -tls1 : tls1を明示するオプション。                                         <--- 2015.02.26

■証明書の配布
 ・Androidへの証明書インストール手順、メモ
 ・クライアント証明書をiPhoneにインポートする手順、メモ

■参考にしたところ
 DeleGate HTTPS Reverse Proxy (shakemid.com 2007/11/23)
 Delegate + OpenSSL による SSL対応リバースプロキシの構築 (murashima.net 2003/03/28)
 DeleGate HTTPS Reverse Proxy_bak_20070518 (shakemid.com 2007/05/18)
 DeleGateでクライアント認証付きSSLリバースプロキシサーバ、いわゆるSSL-VPNの一種を構築してみます(shakemid.com)

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
--------------------------------------------------------------

Dec 6, 2009

Delegated SSLwayのlinuxディストリビューション別コンパイル結果

delegateのDGbeecon実験のために、何かお役に立てないか、と過去のメモ書きから記載します。

開発用ワークステーションとしてインストールした直後の、各Linuxディストリビューションで、SSLwayのコンパイルが、手を入れないまま、どれだけ楽に出来るのか、成否結果をメモ書きしておきます。

SSLWAY make の手順、ご本家の手引書
https://www.delegate.org/delegate/ssl/

所々、自分でも意味不明。メモは丁寧に書くべし、と反省。

■Fedora 9 2.6.27.5-41.fc9.i686 #1 SMP Thu Nov 13 20:52:14 EST 2008 i686 i686
 i386 GNU/linux
 gnome 2.22.3

成功。 特にアクションは 不要だった。

------------------------------------------------------------

■Ubuntu 2.6.27-9 generic #1 SMP Thu Nov 20 21:57:00 UTC 2008 i686 GNU /linux
 Gnome 2.24.1

成功。 ただし、モジュール追加が必要だった。

以下、コンパイル試行、モジュール追加の経緯

コンパイル失敗。ネット情報等から次のモジュール追加が必要であることがわかっ
た。

>> sudo apt-get yum install
>> sudo apt-get gcc-c++ install ← この操作事態は失敗

>> sudo apt-get install build-essential

この後、再コンパイルで成功。

>> aptでzlib-devel、openssl-devel、libtermcap-develをインストール
>>しようとしても
>> KURO-BOX:/usr/local/vpnserver# apt-get install zlib-devel
>> Reading Package Lists... Done
>> Building Dependency Tree... Done
>> E: Couldn't find package zlib-devel
>> となって、インストールできません。残りの2つも同じ現象です。
>>
>>> apt-get install libssl-dev
>>> とやってみた
>>>
>> http://www.yamasita.jp/cgi-bin/BBS/eztree.cgi?action=view&view_num=3321
>>
>> OK!
>>

------------------------------------------------------------
■Kubuntu 2.6.24-21-generic #1 SMP Mon Aug 25 17:32:09 UTC 2008 i686
GNU/Linux

失敗

備考、エラーの内容等
「time.h が見つからない」等、ヘッダーファイルが存在しない旨のエラーが
 発生し、コンパイル成功しない。
C言語・開発用モジュールの インストールを行えば、コンパイル可能になるもの
 と推察されますが、面倒でしたので、諦めました。

試みたこと
sudo apt-get install linux-devel
sudo apt-get install libc6-dev
sudo apt-get install libstdc++6-4.2-dev
sudo apt-get install linux-devel
sudo apt-get install linux-devel

------------------------------------------------------------