#topicpath
*relayd + DeleGate + acme-client = SSLVPN [#f6ff4c62]
RIGHT:EBUG 第60回会合 ~
2017年 2月11日、万代市民会館 ~
川俣吉広、kaw@on.rim.or.jp

**発端 [#ab0755fb]
本件の例では、以下の構成でSSL-VPNの運用を行っていた。
 INTERNET                      || INTRANET LAN
 https://gw.foobar.com/bee/*   || http://sv.inner.foobar.com/quux/baz/*
                               ||
                           [OpenBSD 5.8]
 [Web Broweser]---HTTPS--->[DeleGate   ]---HTTP--->[Web Server]
                          /[     9.9.13]
                         /     ||
                      Basic    ||
                      Auth.    ||
このGWではDeleGateを用いて、以下のことをやっている;
-(A) SSL/TLSの終端 (証明書はDeleGate内蔵の自己署名されたもの)
-(B) ユーザの認証  (リバースプロキシのBasic認証)
-(C) URLのリダイレクト(書換え)

 #!/bin/sh
 
 function dgcmd {
     /usr/fuguita/sbin/delegated \
         DGROOT=/home/delegated \
         OWNER=delegated/delegated \
         LOGDIR='log/[date+archived/%Y%m]' \
         "$@"
 }
 
 umask 0027
 
 case X"$1" in
     Xstart)  dgcmd \
                 -Pfoobar.com:443 \          <-(A)
                  SERVER=https \             <-(A)
                  FCL=sslway \               <-(A)
                  REMITTABLE="http,https" \                  <-許可するプロトコル
                  RELIABLE="*.jp,*.gfngfn.net" \             <-許可するアクセス元
                  REACHABLE="inner.foobar.com,google.com" \  <-許可するアクセス先
                  AUTH=proxy:pauth \                                                        <-(B)
                  AUTHORIZER='-list{guest:welcome772,kaw:op2p29eje,ouquser:pvs/neue288}' \  <-(B)
                  MOUNT='/proj1/* http://gwe1.inner.foobar.com/bd/proj1/*' \   <-(C)
                  MOUNT='/proj2/* http://iwf.inner.foobar.com/wf/ntp8x16/*' \  <-(C)
                  MOUNT='/* https://google.com/?q=*' ;;                        <-(C)
     Xstop)    dgcmd -Pfoobar.com:443 -Fkill ;;
     Xrestart) $0 stop; sleep 15; $0 start;;
     *)        echo "$0 start|stop|restart" >&2 ;;
 esac
このサーバを更新し、OpenBSD 5.8 -> OpenBSD 6.0 に変更したところ、DeleGateがlibssl, libcryptoをロードしなくなった。~
外部よりアクセスすると、ブラウザに
 このサイトにアクセスできません
  foobar.com により途中で接続が切断されました。
と表示され(Google Chromeの場合)、接続できない。また、DeleGateのログでは、起動時に
 --ERROR: can't link the SSL/Crypto library.
ブラウザ接続時、DeleGateのログに
 [OpenBSD/6.0] not OOB: BrokenSocket[25] <= _-select.c91 ####
というエラーが記録される。

代替策として、SSL/TLSの終端を行う部分を他のソフトウェアで置き換えることとした。~
候補としては、Squid, Nginx, Varnishなどのリバースプロキシがあるが、今回はOpenBSDネイティブのrelaydを使用した。

併せて、SSL/TLSのサーバ証明書を自己書名のものから、Let's Encryptから発行されたものに変更した。

**relaydとは [#b1d506bc]
OpenBSDネイティブなL7ゲートウェイ。これを使用してロードバランサを構築可能。

**acme-clientについて [#pd5f684f]

**実装例 [#s0949dd2]

----
#topicpath

Front page   New Page list Search Recent changes   Help   RSS of recent changes