From 58b9d0c45efe49ac95dd930ec70c1e3c76112df6 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Mon, 5 Aug 2019 16:56:05 +0200 Subject: [PATCH] Fix and new settings for dsvpn --- dsvpn/init | 4 ++- .../files/etc/init.d/openmptcprouter-vps | 28 +++++++++++++++++-- .../files/etc/uci-defaults/2020-omr-vpn | 2 +- 3 files changed, 30 insertions(+), 4 deletions(-) diff --git a/dsvpn/init b/dsvpn/init index 2e919a3a7..ccec6b40c 100755 --- a/dsvpn/init +++ b/dsvpn/init @@ -45,11 +45,13 @@ start_instance() { echo "${key}" > /tmp/${PROG_NAME}-${1}.key key="" - if [ "$(uci -q get network.omrvpn)" != "" ]; then + if [ "$(uci -q get network.omrvpn)" != "" ] && [ "$(uci -q get network.omrvpn)" != "$dev" ]; then uci -q set network.omrvpn.ifname=$dev uci -q commit fi + ip addr flush $dev + _log "starting ${PROG_NAME} ${1} instance $*" procd_open_instance diff --git a/openmptcprouter/files/etc/init.d/openmptcprouter-vps b/openmptcprouter/files/etc/init.d/openmptcprouter-vps index 1a6935b27..c942956fc 100755 --- a/openmptcprouter/files/etc/init.d/openmptcprouter-vps +++ b/openmptcprouter/files/etc/init.d/openmptcprouter-vps @@ -298,6 +298,19 @@ _get_vps_config() { /etc/init.d/dnsmasq restart >/dev/null 2>&1 fi fi + if [ "$vpn" = "dsvpn" ]; then + if [ "$pihole" = "true" ] && [ "$(uci -q get dhcp.@dnsmasq[0].server)" != "$host_ip#53" ]; then + host_ip="$(echo "$vps_config" | jsonfilter -q -e '@.dsvpn.host_ip')" + uci -q batch <<-EOF >/dev/null + delete dhcp.@dnsmasq[0].server + add_list dhcp.@dnsmasq[0].server="$host_ip#53" + set dhcp.@dnsmasq[0].rebind_protection='0' + commit dhcp + EOF + logger -t "OMR-VPS" "Restart dnsmasq..." + /etc/init.d/dnsmasq restart >/dev/null 2>&1 + fi + fi if [ "$glorytun_change" != "0" ]; then logger -t "OMR-VPS" "Restart glorytun..." uci -q batch <<-EOF >/dev/null @@ -380,7 +393,7 @@ _set_ss_redir() { } _set_config_from_vps() { - local shadowsocks_disabled vpn glorytun_state redirect shorewall_redirect mlvpn_key openvpn_key + local shadowsocks_disabled vpn glorytun_state redirect shorewall_redirect mlvpn_key openvpn_key dsvpn_key [ -z "$vps_config" ] && vps_config=$(_get_json "config") [ -z "$vps_config" ] && return @@ -482,6 +495,17 @@ _set_config_from_vps() { /etc/init.d/mlvpn restart fi + # DSVPN settings + dsvpn_key="$(echo "$vps_config" | jsonfilter -q -e '@.dsvpn.key')" + if [ -n "$dsvpn_key" ] && [ "$dsvpn_key" != "$(uci -q get dsvpn.vpn.key)" ]; then + uci -q batch <<-EOF >/dev/null + set dsvpn.vpn.key=$dsvpn_key + commit dsvpn + EOF + logger -t "OMR-VPS" "DSVPN restart..." + /etc/init.d/dsvpn restart + fi + # Shorewall settings shorewall_redirect="$(echo "$vps_config" | jsonfilter -q -e '@.shorewall.redirect_ports')" [ "$shorewall_redirect" = "enable" ] && redirect="1" @@ -639,6 +663,6 @@ start_service() { } service_triggers() { - procd_add_reload_trigger openmptcprouter shadowsocks-libev glorytun mlvpn openvpn network upnpd + procd_add_reload_trigger openmptcprouter shadowsocks-libev glorytun mlvpn openvpn network upnpd dsvpn #procd_add_reload_trigger openmptcprouter shadowsocks-libev network upnpd } \ No newline at end of file diff --git a/openmptcprouter/files/etc/uci-defaults/2020-omr-vpn b/openmptcprouter/files/etc/uci-defaults/2020-omr-vpn index 2fe91df1e..1f8e8f3d8 100755 --- a/openmptcprouter/files/etc/uci-defaults/2020-omr-vpn +++ b/openmptcprouter/files/etc/uci-defaults/2020-omr-vpn @@ -44,7 +44,7 @@ if [ "$(uci -q get dsvpn.vpn)" = "" ]; then set dsvpn.vpn.dev=tun0 set dsvpn.vpn.port=65011 set dsvpn.vpn.localip=10.255.251.2 - set dsvpn.vpn.remoteip=10.255.251.2 + set dsvpn.vpn.remoteip=10.255.251.1 set dsvpn.vpn.enabled=0 commit dsvpn EOF