SSLHとはHTTP, HTTPS, SSH, OpenVPN, tinc, XMPP等のプロトコルを全て443番ポートで公開するプログラムです。
ネットワークの制限された環境だと80番と443番ポートでしか通信を許可されていなかったりします。
このプログラムを使用するとそれらの制限を回避する事ができます。
日本語で解説されたサイトが少ないので簡単に導入方法をメモしておきたいと思います。
Repoforgeリポジトリの追加
# rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm
SSLHのインストール
# yum install sslh
SSLHの設定
# vi /etc/rc.d/init.d/sslh
#!/bin/bash
#
# /etc/rc.d/init.d/sslh
# sslh This shell script takes care of starting and stopping
# sslh - a daemon switching incoming connection between SSH and SSL/HTTPS servers
#
# Author: Andre Krajnik akrajnik@gmail.com
# 2010-03-20
#
#
# chkconfig: 2345 13 87
#
# description: sslh - a daemon switching incoming connection between SSH and SSL/HTTPS servers
# Source function library.
. /etc/init.d/functions
# ./sslh -p 0.0.0.0:8443 -l 127.0.0.1:443 -s 127.0.0.1:22
SSLH="/usr/sbin/sslh" # sslhコマンドまでのパスを書き換えて合わせる
PIDFILE="/var/run/sslh"
# SSLHのポートを8443から443に変更し、HTTPSを8443に変更する(HTTPSサーバの設定を8443にしておく)
# さらに追加したいプロトコルがあれば各自で追加する
# なお、OpenVPNを指定する場合はUDPではなくTCPである必要があると思われます
OPTIONS="--user nobody --pidfile $PIDFILE -p 0.0.0.0:443 --ssl 127.0.0.1:8443 --ssh 127.0.0.1:22 --openvpn 127.0.0.1:1194"
if [ -f /etc/sysconfig/sslh ]; then
. /etc/sysconfig/sslh
fi
start() {
echo -n "Starting SSL-SSH-Switch: "
if [ -f $PIDFILE ]; then
PID=`cat $PIDFILE`
echo sslh already running: $PID
exit 2;
else
daemon $SSLH $OPTIONS
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch $PIDFILE
return $RETVAL
fi
}
stop() {
echo -n "Shutting down SSL-SSH-Switch: "
echo
killproc sslh
echo
rm -f $PIDFILE
return 0
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status sslh
;;
restart)
stop
start
;;
*)
echo "Usage: {start|stop|status|restart}"
exit 1
;;
esac
exit $?
SSLHの起動
# service sslh start
SSLHの自動起動
# chkconfig sslh on
0 Comments.