moxbox init

This commit is contained in:
monlor
2020-03-05 00:08:40 +08:00
commit 76dbe98978
856 changed files with 170708 additions and 0 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,49 @@
#------------------【PPTPD】--------------------
pptpd() {
eval `mbdb export pptpd`
source /etc/mixbox/bin/base
echo "********* $service ***********"
echo "[${appinfo}]"
if [ -f /tmp/pptp_connected ]; then
echo "已连接用户信息:"
cat /tmp/pptp_connected
fi
readsh "启动${appname}服务[1/0] " "enable" "1"
if [ "$enable" == '1' ]; then
# Scripts Here
read -p "更改${appname}配置?[1/0] " res
if [ "$res" = '1' ]; then
readsh "请输入${appname}本地IP地址" "localip" "192.168.111.1"
readsh "请输入${appname}起始IP地址" "ip_min" "2"
readsh "请输入${appname}结束IP地址" "ip_max" "100"
readsh "请输入${appname}解析DNS地址" "dns1" "223.5.5.5"
readsh "请输入${appname}解析DNS备用地址" "dns2" "223.6.6.6"
fi
cat /etc/ppp/chap-secrets 2> /dev/null
read -p "管理${appname}用户?[1/0] " res
if [ "$res" = '1' ]; then
while true; do
read -p "请输入${appname}用户名[回车结束]" user
[ -z "$user" ] && break || read -p "请输入${appname}密码:" pwd
echo "添加用户:$user $pwd"
${mbroot}/apps/${appname}/scripts/${appname}.sh add $user $pwd
done
while true; do
read -p "请输入要删除的用户名[回车结束]" user
[ -z "$user" ] && break
echo "删除用户:$user"
${mbroot}/apps/${appname}/scripts/${appname}.sh del $user
done
fi
readsh "请输入${appname}外网访问配置[1/0]" "openport" "1"
read -p "重启${appname}服务?[1/0] " res
[ "$res" = '1' -o -z "$res" ] && ${mbroot}/apps/${appname}/scripts/${appname}.sh restart
else
${mbroot}/apps/${appname}/scripts/${appname}.sh stop
fi
}
#------------------【PPTPD】--------------------

View File

@@ -0,0 +1,19 @@
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
mppe required,no40,no56,stateless
mtu 1450
mru 1450
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
lcp-echo-interval 2
lcp-echo-failure 3
ip-up-script /etc/mixbox/apps/pptpd/scripts/ip-up
ip-down-script /etc/mixbox/apps/pptpd/scripts/ip-down
# tools

View File

@@ -0,0 +1,2 @@
option /tmp/options.pptpd
# tools

View File

@@ -0,0 +1,8 @@
service="PPTPD"
appname="pptpd"
needver="0.0.1"
backupfiles=""
supports="linux_arm,linux_mips,linux_x86_64"
appinfo="简单但并不安全的VPN服务器"
newinfo=""
version="0.0.2"

View File

@@ -0,0 +1 @@
1.0.0

View File

@@ -0,0 +1,3 @@
#!/bin/sh
grep -v $1 /tmp/pptp_connected > /tmp/pptp_connected.new
mv /tmp/pptp_connected.new /tmp/pptp_connected

3
apps/pptpd/scripts/ip-up Normal file
View File

@@ -0,0 +1,3 @@
#!/bin/sh
DATE=`date "+%Y-%m-%d %H:%M:%S"`
echo $1 $5 $6 $PEERNAME $DATE $PPPD_PID >> /tmp/pptp_connected

127
apps/pptpd/scripts/pptpd.sh Normal file
View File

@@ -0,0 +1,127 @@
#!/bin/sh
source /etc/mixbox/bin/base
eval `mbdb export pptpd`
source "$(mbdb get mixbox.main.path)"/apps/entware/scripts/functions.sh
port=1723
open_ports () {
iptables -I FORWARD -i ppp+ -j ACCEPT -m comment --comment "mixbox-${appname}" &> /dev/null
open_port
}
add(){
[ -z "$1" -o -z "$2" ] && exit 1
sed -i "/^$1/"d /etc/ppp/chap-secrets
echo "$1 pptpd $2 * #tools" >> /etc/ppp/chap-secrets
}
del(){
[ -z "$1" ] && exit 1
sed -i "/^$1/{/tools$/d}" /etc/ppp/chap-secrets
cat /tmp/pptp_connected | grep $1 | awk -F " " '{print $7}' | xargs kill -9
sed -i "/$1/"d /tmp/pptp_connected
}
detect_entware() {
result1=$(mbdb show entware)
result2=$(ls /opt | grep etc)
if [ -z "$result1" ] || [ -z "$result2" ]; then
logsh "$service" "检测到【Entware】服务未启动或未安装"
end
else
result3=$(echo $PATH | grep opt)
[ -z "$result3" ] && export PATH=/opt/bin:/opt/sbin:$PATH
fi
}
install_entware_app() {
for i in $@; do
result=$(/opt/bin/opkg list-installed | grep -c "^$i")
if [ "$result" == '0' ]; then
/opt/bin/opkg install $i
[ $? -ne 0 ] && logsh "$service" "程序$i安装失败" && exit 1
fi
done
}
start() {
[ -n "$(pidof ${appname})" ] && logsh "$service" "${appname}已经在运行!" && exit 1
logsh "$service" "正在启动${appname}服务... "
# cru a "${appname}" "0 6 * * * ${mbroot}/apps/${appname}/scripts/${appname}.sh restart"
# Scripts Here
# 检查entware
detect_entware
install_entware_app ${appname}
cp -rf ${mbroot}/apps/${appname}/config/pptpd.conf /tmp/pptpd.conf
cp -rf ${mbroot}/apps/${appname}/config/options.pptpd /tmp/options.pptpd
echo "localip "$localip >> /tmp/pptpd.conf
network=$(echo $localip | awk -F "." '{print $1"."$2"."$3"."}')
echo "remoteip " $network$ip_min"-"$ip_max >> /tmp/pptpd.conf
echo "ms-dns "$dns1 >> /tmp/options.pptpd
echo "ms-dns "$dns2 >> /tmp/options.pptpd
echo "ms-wins "$lanip >> /tmp/options.pptpd
auto_start_enable ${appname}
open_ports
write_firewall_start
daemon /opt/sbin/pptpd -c /tmp/pptpd.conf -o /tmp/options.pptpd
if [ $? -ne 0 ]; then
logsh "$service" "启动${appname}服务失败!" && end
else
logsh "$service" "启动${appname}服务完成!"
fi
}
stop() {
logsh "$service" "正在停止${appname}服务... "
[ "$enable" == '0' ] && destroy
close_port
remove_firewall_start
rm -rf {${mbtmp}}/*pptp*
killall -9 ${appname} &> /dev/null
# ps |grep pptpd | grep -v grep | grep -v {pptpd} | grep -v restart | awk '{print $1}' | xargs kill -9
}
destroy() {
auto_start_disable ${appname}
# End app, Scripts here
# cru d "${appname}"
return
}
end() {
mbdb set $appname.main.enable=0
stop && exit 1
}
status() {
if [ -n "$(pidof ${appname})" ]; then
status="运行中|1"
else
status="未运行|0"
fi
mbdb set ${appname}.main.status="$status"
}
case "$1" in
start) start ;;
stop) stop ;;
restart) stop; start ;;
reload) close_port && open_ports ;;
status) status ;;
add) add "$2" "$3" ;;
del) del "$2" ;;
esac