Add original scripts
This commit is contained in:
180
vpn_pptp.sh
Executable file
180
vpn_pptp.sh
Executable file
@@ -0,0 +1,180 @@
|
||||
#!/bin/sh
|
||||
|
||||
PPTPD=/usr/sbin/pptpd
|
||||
PIDFILE="/var/run/pptpd.pid"
|
||||
PPTPD_CONF="/etc/ppp/pptpd.conf"
|
||||
OPTIONS_PPTPD="/etc/ppp/options.pptpd"
|
||||
VPN_CONF="/etc/config/vpn.conf"
|
||||
|
||||
DBG="nodebug"
|
||||
if [ "x$2" == "xdebug" ]; then
|
||||
DBG="debug"
|
||||
fi
|
||||
|
||||
init_pptp_modules()
|
||||
{
|
||||
/bin/echo "init insmod and mknod"
|
||||
[ -c /dev/ppp ] || /bin/mknod --mode=644 /dev/ppp c 108 0
|
||||
[ -d /etc/config/ppp ] || mkdir -p /etc/config/ppp
|
||||
[ -L /etc/ppp ] || /bin/ln -sf /etc/config/ppp /etc/ppp
|
||||
/bin/echo "1" > /proc/sys/net/ipv4/ip_forward
|
||||
[ -L /etc/ppp/ip-up ] || /bin/ln -sf /sbin/nasutil /etc/ppp/ip-up
|
||||
[ -L /etc/ppp/ip-down ] || /bin/ln -sf /sbin/nasutil /etc/ppp/ip-down
|
||||
[ -L /usr/lib/libsmbpw.so ] || /bin/ln -sf /usr/lib/libsmbpw.1.3.so /usr/lib/libsmbpw.so
|
||||
|
||||
/sbin/lsmod | grep ppp_generic 1>>/dev/null 2>>/dev/null
|
||||
if [ $? != 0 ]; then
|
||||
/bin/echo "insmod pptp and pppd modules"
|
||||
for i in sha1_generic.ko arc4.ko ecb.ko slhc.ko crc-ccitt.ko ppp_generic.ko ppp_async.ko ppp_mppe.ko \
|
||||
bsd_comp.ko ppp_deflate.ko
|
||||
do
|
||||
[ ! -f /lib/modules/others/vpn/$i ] || /sbin/insmod /lib/modules/others/vpn/$i
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
init_iptable_modules()
|
||||
{
|
||||
[ -L /usr/lib/libxtables.so.7 ] || /bin/ln -sf /usr/lib/libxtables.so.7.0.0 /usr/lib/libxtables.so.7
|
||||
[ -L /usr/lib/libxtables.so ] || /bin/ln -sf /usr/lib/libxtables.so.7.0.0 /usr/lib/libxtables.so
|
||||
[ -L /usr/lib/libip4tc.so.0 ] || /bin/ln -sf /usr/lib/libip4tc.so.0.0.0 /usr/lib/libip4tc.so.0
|
||||
[ -L /usr/lib/libip4tc.so ] || /bin/ln -sf /usr/lib/libip4tc.so.0.0.0 /usr/lib/libip4tc.so
|
||||
[ -L /usr/lib/libip6tc.so.0 ] || /bin/ln -sf /usr/lib/libip6tc.so.0.0.0 /usr/lib/libip6tc.so.0
|
||||
[ -L /usr/lib/libip6tc.so ] || /bin/ln -sf /usr/lib/libip6tc.so.0.0.0 /usr/lib/libip6tc.so
|
||||
/sbin/lsmod | grep x_tables 1>>/dev/null 2>>/dev/null
|
||||
if [ $? != 0 ]; then
|
||||
/bin/echo "insmod iptable modules"
|
||||
for i in x_tables.ko nf_conntrack.ko xt_tcpudp.ko nf_defrag_ipv4.ko nf_conntrack_ipv4.ko nf_nat.ko \
|
||||
ip_tables.ko iptable_nat.ko iptable_filter.ko ipt_MASQUERADE.ko ipt_REDIRECT.ko
|
||||
do
|
||||
[ ! -f /lib/modules/others/vpn/$i ] || /sbin/insmod /lib/modules/others/vpn/$i
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
remove_pptp_modules()
|
||||
{
|
||||
for i in ppp_deflate bsd_comp ppp_mppe ppp_async ppp_generic crc-ccitt slhc
|
||||
do
|
||||
/sbin/rmmod $i
|
||||
done
|
||||
}
|
||||
|
||||
remove_iptable_modules()
|
||||
{
|
||||
for i in ipt_REDIRECT ipt_MASQUERADE iptable_filter iptable_nat ip_tables nf_nat nf_conntrack_ipv4 nf_defrag_ipv4 \
|
||||
xt_tcpudp nf_conntrack x_tables
|
||||
do
|
||||
/sbin/rmmod $i
|
||||
done
|
||||
}
|
||||
|
||||
start()
|
||||
{
|
||||
if [ ! -f ${PPTPD} ]; then
|
||||
/bin/echo "pptpd is not exit."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f /usr/sbin/pppd ]; then
|
||||
/bin/echo "pppd is not exit."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -L /etc/rcK.d/K47vpn_pptp ]; then
|
||||
/bin/ln -sf ../init.d/vpn_pptp.sh /etc/rcK.d/K47vpn_pptp
|
||||
fi
|
||||
|
||||
if [ -f ${PIDFILE} ]; then
|
||||
/bin/echo "pptpd is aleady run."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ `/sbin/getcfg "PPTP" "Enable" -u -d "FALSE" -f "${VPN_CONF}"` = "TRUE" ]; then
|
||||
/bin/echo "pptpd start."
|
||||
init_pptp_modules
|
||||
init_iptable_modules
|
||||
/sbin/vpn_util init_pptp ${DBG}
|
||||
/sbin/daemon_mgr pptpd start "${PPTPD} -c ${PPTPD_CONF} -o ${OPTIONS_PPTPD} -p ${PIDFILE}"
|
||||
LOCALIP=`grep "^localip" ${PPTPD_CONF} | cut -d' ' -f 2`
|
||||
INTERFACE=`grep "^bcrelay" ${PPTPD_CONF} | cut -d' ' -f 2`
|
||||
/bin/echo "LOCALIP = ${LOCALIP} INTERFACE = ${INTERFACE}"
|
||||
/sbin/iptables -t nat -A POSTROUTING -s ${LOCALIP}/24 -o ${INTERFACE} -j MASQUERADE
|
||||
else
|
||||
/bin/echo "pptpd is disabled."
|
||||
fi
|
||||
}
|
||||
|
||||
stop()
|
||||
{
|
||||
/bin/echo "pptpd stop."
|
||||
LOCALIP=`grep "^localip" ${PPTPD_CONF} | cut -d' ' -f 2`
|
||||
INTERFACE=`grep "^bcrelay" ${PPTPD_CONF} | cut -d' ' -f 2`
|
||||
/bin/echo "LOCALIP = ${LOCALIP} INTERFACE = ${INTERFACE}"
|
||||
/sbin/iptables -t nat -D POSTROUTING -s ${LOCALIP}/24 -o ${INTERFACE} -j MASQUERADE
|
||||
|
||||
/bin/kill -9 `/bin/pidof pppd` 1>>/dev/null 2>&1
|
||||
/bin/kill -9 `/bin/pidof bcrelay` 1>>/dev/null 2>&1
|
||||
/sbin/daemon_mgr pptpd stop "${PPTPD} -c ${PPTPD_CONF} -o ${OPTIONS_PPTPD} -p ${PIDFILE}"
|
||||
/bin/kill -9 `/bin/cat ${PIDFILE}` 1>>/dev/null 2>&1
|
||||
/bin/rm -f ${PIDFILE} 1>>/dev/null 2>&1
|
||||
/bin/rm -f /var/log/pptp_online_user 1>>/dev/null 2>&1
|
||||
}
|
||||
|
||||
reload()
|
||||
{
|
||||
if [ `/sbin/getcfg "PPTP" "Enable" -u -d "FALSE" -f "${VPN_CONF}"` = "FALSE" ]; then
|
||||
/bin/echo "pptpd is disabled."
|
||||
exit 1;
|
||||
fi
|
||||
/bin/echo "pptpd stop."
|
||||
/bin/kill -9 `/bin/pidof bcrelay` 1>>/dev/null 2>&1
|
||||
/sbin/daemon_mgr pptpd stop "${PPTPD} -c ${PPTPD_CONF} -o ${OPTIONS_PPTPD} -p ${PIDFILE}"
|
||||
/bin/kill -9 `/bin/cat ${PIDFILE}` 1>>/dev/null 2>&1
|
||||
/bin/rm -f ${PIDFILE} 1>>/dev/null 2>&1
|
||||
LOCALIP=`grep "^localip" ${PPTPD_CONF} | cut -d' ' -f 2`
|
||||
INTERFACE=`grep "^bcrelay" ${PPTPD_CONF} | cut -d' ' -f 2`
|
||||
/bin/echo "LOCALIP = ${LOCALIP} INTERFACE = ${INTERFACE}"
|
||||
/sbin/iptables -t nat -D POSTROUTING -s ${LOCALIP}/24 -o ${INTERFACE} -j MASQUERADE
|
||||
|
||||
/sbin/vpn_util init_pptp ${DBG}
|
||||
/sbin/daemon_mgr pptpd start "${PPTPD} -c ${PPTPD_CONF} -o ${OPTIONS_PPTPD} -p ${PIDFILE}"
|
||||
LOCALIP=`grep "^localip" ${PPTPD_CONF} | cut -d' ' -f 2`
|
||||
INTERFACE=`grep "^bcrelay" ${PPTPD_CONF} | cut -d' ' -f 2`
|
||||
/bin/echo "LOCALIP = ${LOCALIP} INTERFACE = ${INTERFACE}"
|
||||
/sbin/iptables -t nat -A POSTROUTING -s ${LOCALIP}/24 -o ${INTERFACE} -j MASQUERADE
|
||||
}
|
||||
|
||||
restart()
|
||||
{
|
||||
stop
|
||||
sleep 1
|
||||
start
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
start
|
||||
;;
|
||||
stop)
|
||||
stop
|
||||
remove_pptp_modules
|
||||
;;
|
||||
restart)
|
||||
restart
|
||||
;;
|
||||
init)
|
||||
/bin/echo "pptpd init."
|
||||
init_pptp_modules
|
||||
init_iptable_modules
|
||||
/sbin/vpn_util init_pptp
|
||||
;;
|
||||
reload)
|
||||
reload
|
||||
;;
|
||||
*)
|
||||
echo "Usage: /etc/init.d/$0 {start|stop|restart|reload}"
|
||||
exit 1
|
||||
esac
|
||||
|
||||
exit 0
|
||||
Reference in New Issue
Block a user