FireWall内部に設置されているサーバ(イントラサーバ)を社外(インターネット)へ
公開する際に利用した。社内のイントラサーバはhttpのみでしかアクセスが出来ない。
社外利用に関しては通信データを暗号化したいとなるが、現行動作中のマシンを変更して
大事に至るよりは、FireWallにて通信データを加工できるというこのサービスに注目し
採用にいたる。
変則的だが、社内では、今まで通りのアクセス方法で利用し、社外からは暗号化された
特殊サーバという位置付けでアクセスとなる。
(要は、社内と社外ではアクセス方法が異るという意味)
インストール自体はこれで終りです。認証サーバは、localhost(自マシン)に なっています。今回はここはdefaultで使っています。
電源ON時に自動実行出来る様に設定をします。以下のファイルを作成。
(ファイル名称は適当に決めました)
file : /etc/init.d/myinit.stone-ssl
#!/bin/sh test -f /usr/bin/stone || exit 0 # 社内マシンで公開したいhttpサーバのIPアドレスを指定 # 下記の値はダミー値です。 TGT="192.168.10.10" # 社外から受け付けるhttpsサーバのIPアドレスを指定 # 下記の値はダミー値です。 DES="210.XXX.XXX.XXX" # コマンドpath指定 PS="/bin/ps" GREP="/bin/grep" CUT="/usr/bin/cut" KILL="/bin/kill" STONE="/usr/bin/stone" STONE_OPT="-l -f 2 -a /var/log/stone.log ${TGT}:http ${DES}:443/ssl" case "$1" in start) echo -n "Starting stone-ssl server: stone" ${STONE} ${STONE_OPT} 2> /dev/null & echo "." ;; stop) echo -n "Stopping stone-ssl server: stone... " PID=`${PS} -e | ${GREP} stone | ${CUT} -f1 -d' '` if [ "$PID" != "" ]; then ${KILL} ${PID} fi ;; *) echo "Usage: /etc/init.d/stone-ssl {start|stop}" exit 1 ;; esac exit 0 |
以下のコマンドでアクセスログファイルを生成しパーミッションを変更しておきます。
# touch /var/log/stone.log
# chmod 640 /var/log/stone.log
以下のコマンドで自動起動できる様に登録します。
# update-rc.d myinit.stone-ssl defaults 99
マシンの再起動なくサービスを起動したい場合はここで、
# /etc/init.d/myinit.stone-ssl start
これで、SSL(RC4-128bit & RSA-1024bit)対応のブラウザにて、
https://DES/
httpsです。httpではないですよ。
と、入力してあげると、TGTマシンのhttpデータをSSLでラッパーして通信してくれます。
下図の場合は、DESにhttpsでアクセスすると、TGTにあたかも接続している様に動作します。
TGTは依然としてhttpにて動作しています。
模式図(簡易ですみません)
社外 | FireWall | 社内 | ||
[The Internet] | ← https → (暗号) |
stone-sslマシン (暗号/復号) |
← http → | WWWサーバ |
DES | TGT |