diff --git a/README.md b/README.md index 13ebed6e61b..2d969201506 100644 --- a/README.md +++ b/README.md @@ -201,6 +201,8 @@ services: * `CHECK_CONNECTION_INTERVAL` - Time in seconds to check connection and reconnect if need it. (300 by default) For example '- CHECK_CONNECTION_INTERVAL=600' * `CHECK_CONNECTION_URL` - URL for checking Internet connection. (www.google.com by default) For example '- CHECK_CONNECTION_URL=www.custom.domain' * `MESHNET` - Enable or Disable. +* `ALLOWLOCAL` - Comma delimited list of Meshnet devices you will allow to access this devices local network. For example 'ALLOWLOCAL=vpn-friction5976.nord,vpn-world2962.nord' +* `ALLOWROUTE` - Comma delimited list of Meshnet devices you will allow to route though this device. For example 'ALLOWROUTE=vpn-friction5976.nord,vpn-world2962.nord' * `LAN_DISCOVERY` - on or off. diff --git a/rootfs/usr/bin/nord_config b/rootfs/usr/bin/nord_config index 0f8afa5c2de..09c7f4b88c7 100644 --- a/rootfs/usr/bin/nord_config +++ b/rootfs/usr/bin/nord_config @@ -10,6 +10,25 @@ nordvpn set technology ${TECHNOLOGY:-NordLynx} [[ -n ${MESHNET} ]] && nordvpn set meshnet ${MESHNET} [[ -n ${LAN_DISCOVERY} ]] && nordvnp set lan-discovery ${LAN_DISCOVERY} +# Configue local network and routing allow list +if [[ -n ${MESHNET} ]]; then + allowedLocalHosts=${ALLOWROUTE} + if [[ -n ${allowedLocalHosts} ]]; then + IFS=',' read -ra allowed <<< "$allowedLocalHosts" + for host in "${allowed[@]}"; do + nordvpn meshnet peer local allow "${host}" + done + fi + + allowedRoutingHosts=${ALLOWROUTE} + if [[ -n ${allowedRoutingHosts} ]]; then + IFS=',' read -ra allowed <<< "$allowedRoutingHosts" + for host in "${allowed[@]}"; do + nordvpn meshnet peer routing allow "${host}" + done + fi +fi + #[[ -n ${KILLSWITCH} ]] && nordvpn set killswitch ${KILLSWITCH} Killswitch is enabled by default using iptables [[ -n ${PROTOCOL} ]] && nordvpn set protocol ${PROTOCOL}