Add original scripts
This commit is contained in:
113
stunnel.sh
Executable file
113
stunnel.sh
Executable file
@@ -0,0 +1,113 @@
|
||||
#!/bin/sh
|
||||
# For Administration
|
||||
# default port: 6000
|
||||
|
||||
STUNNEL_CONF_DIR=/etc/config/stunnel
|
||||
STUNNEL_CONF_DEFAULT=/etc/default_config/stunnel
|
||||
STUNNEL_KEY=/etc/config/stunnel/backup.key
|
||||
STUNNEL_CERT=/etc/config/stunnel/backup.cert
|
||||
STUNNEL_KEY_DEFAULT=/etc/default_config/stunnel/backup.key
|
||||
STUNNEL_CERT_DEFAULT=/etc/default_config/stunnel/backup.cert
|
||||
STUNNEL_PEM=/etc/config/stunnel/stunnel.pem
|
||||
STUNNEL_PEM_DEFAULT=/etc/default_config/stunnel/stunnel.pem
|
||||
STUNNEL_DOWNLOAD_PATH=/home/httpd
|
||||
DOWNLOAD_PATH=/home/httpd/cgi-bin/download
|
||||
STUNNEL_CONF=/etc/stunnel/stunnel.conf
|
||||
|
||||
test -f /usr/sbin/stunnel || exit 0
|
||||
project_name=`/sbin/getcfg Project Name -d QNAP -f /var/default`
|
||||
|
||||
prepare_cert_key()
|
||||
{
|
||||
if [ ! -f $STUNNEL_CERT ] && [ -f $STUNNEL_CERT_DEFAULT ]; then
|
||||
/bin/cp $STUNNEL_CERT_DEFAULT $STUNNEL_CERT
|
||||
fi
|
||||
|
||||
if [ ! -f $STUNNEL_KEY ] && [ -f $STUNNEL_KEY_DEFAULT ]; then
|
||||
/bin/cp $STUNNEL_KEY_DEFAULT $STUNNEL_KEY
|
||||
fi
|
||||
|
||||
if [ -f $STUNNEL_CERT ] && [ -f $STUNNEL_KEY ]; then
|
||||
#avaiable to download default SSL key
|
||||
[ x`/sbin/getcfg "SSL Import" "default certificate"` = xno ] || /sbin/setcfg "SSL Import" "default certificate" no
|
||||
fi
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
echo -n "Starting stunnel services: "
|
||||
STUNNEL_PORT=`/sbin/getcfg "Stunnel" "Port" -d "443"`
|
||||
WFM_ENABLE_DEFINED_PORT=`/sbin/getcfg "WebFS" "Enable_Defined_Port" -d "FALSE"`
|
||||
WFM_DEFINED_PORT=`/sbin/getcfg "WebFS" "Port" -d "8008"`
|
||||
WFM_DEFINED_SSL_PORT=`/sbin/getcfg "WebFS" "SSL_Port" -d "8090"`
|
||||
|
||||
prepare_cert_key
|
||||
|
||||
[ `/sbin/getcfg "Stunnel" "Enable" -d "1"` = "0" ] && exit 1
|
||||
|
||||
if [ ! -d ${STUNNEL_CONF_DIR} ]; then
|
||||
[ ! -f ${STUNNEL_CONF_DIR} ] || /bin/rm ${STUNNEL_CONF_DIR}
|
||||
/bin/mkdir ${STUNNEL_CONF_DIR}
|
||||
[ -d ${STUNNEL_CONF_DEFAULT} ] && /bin/cp ${STUNNEL_CONF_DEFAULT}/* ${STUNNEL_CONF_DIR}
|
||||
else
|
||||
if [ `/sbin/getcfg "SSL Import" "default certificate" -d "yes"` = "yes" ]; then
|
||||
/bin/cmp ${STUNNEL_PEM_DEFAULT} ${STUNNEL_PEM} 1>/dev/null 2>/dev/null
|
||||
if [ $? != 0 ]; then
|
||||
[ -f ${STUNNEL_PEM_DEFAULT} ] && /bin/cp -f ${STUNNEL_PEM_DEFAULT} ${STUNNEL_PEM}
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
/bin/grep "Some security enhancements" ${STUNNEL_CONF} 1>>/dev/null 2>>/dev/null
|
||||
[ $? = 0 ] && /bin/sed -i 's/^.*Some security enhancements.*$/ciphers = ALL:!SSLv2:!LOW:!EXPORT40:@STRENGTH/' ${STUNNEL_CONF}
|
||||
/bin/sed -i 's/^ciphers.*$/ciphers = ALL:!SSLv2:!LOW:!EXPORT40:@STRENGTH/' ${STUNNEL_CONF}
|
||||
if [ `/sbin/getcfg "Network" "IPV6" -u -d "FALSE"` = "TRUE" ]; then
|
||||
/sbin/setcfg "https" "accept" ":::${STUNNEL_PORT}" -f "${STUNNEL_CONF}"
|
||||
if [ $WFM_ENABLE_DEFINED_PORT = "TRUE" ]; then
|
||||
/sbin/setcfg "wfm" "accept" ":::${WFM_DEFINED_SSL_PORT}" -f "${STUNNEL_CONF}"
|
||||
fi
|
||||
else
|
||||
/sbin/setcfg "https" "accept" "${STUNNEL_PORT}" -f "${STUNNEL_CONF}"
|
||||
if [ $WFM_ENABLE_DEFINED_PORT = "TRUE" ]; then
|
||||
/sbin/setcfg "wfm" "accept" "${WFM_DEFINED_SSL_PORT}" -f "${STUNNEL_CONF}"
|
||||
fi
|
||||
fi
|
||||
/sbin/setcfg "https" "TIMEOUTclose" "0" -f "${STUNNEL_CONF}"
|
||||
/sbin/setcfg "https" "TIMEOUTconnect" "2" -f "${STUNNEL_CONF}"
|
||||
|
||||
if [ $WFM_ENABLE_DEFINED_PORT = "TRUE" ]; then
|
||||
/sbin/setcfg "wfm" "connect" "127.0.0.1:${WFM_DEFINED_PORT}" -f "${STUNNEL_CONF}"
|
||||
/sbin/setcfg "wfm" "TIMEOUTclose" "0" -f "${STUNNEL_CONF}"
|
||||
/sbin/setcfg "wfm" "TIMEOUTconnect" "2" -f "${STUNNEL_CONF}"
|
||||
else
|
||||
/sbin/rmcfg "wfm" -f "${STUNNEL_CONF}" 2>/dev/null
|
||||
fi
|
||||
/sbin/setcfg "" debug 0 -f "${STUNNEL_CONF}"
|
||||
/bin/touch /var/qfunc/stunnel.enable
|
||||
/sbin/daemon_mgr stunnel start \
|
||||
"/usr/sbin/stunnel ${STUNNEL_CONF} 2>/dev/null 1>/dev/null"
|
||||
echo -n " stunnel"
|
||||
echo "."
|
||||
;;
|
||||
stop)
|
||||
echo -n "Shutting down stunnel services:"
|
||||
/sbin/daemon_mgr stunnel stop /usr/sbin/stunnel
|
||||
/bin/kill -9 `pidof stunnel`
|
||||
/bin/rm -f /var/qfunc/stunnel.enable
|
||||
echo -n " stunnel"
|
||||
echo "."
|
||||
;;
|
||||
restart)
|
||||
$0 stop
|
||||
/bin/sleep 2
|
||||
$0 start
|
||||
;;
|
||||
prepare_cert_key)
|
||||
prepare_cert_key
|
||||
;;
|
||||
*)
|
||||
echo "Usage: /etc/init.d/stunnel {start|stop|restart|prepare_cert_key}"
|
||||
exit 1
|
||||
esac
|
||||
|
||||
exit 0
|
||||
Reference in New Issue
Block a user