diff --git a/randomvpn b/randomvpn new file mode 100755 index 0000000..7c19bb7 --- /dev/null +++ b/randomvpn @@ -0,0 +1,24 @@ +#!/usr/bin/env sh +# Script to select a random VPN client from /etc/openvpn/client/ (the default openvpn directory) + +workdir="/etc/openvpn/client/" + +if [ $UID -ne 0 ]; then + echo "You need root privileges." + exit +fi + +if [ "$1" == "stop" ]; then + systemctl stop openvpn-client@* + exit +fi + +if command -v openvpn > /dev/null && command -v systemctl > /dev/null; then + cd "$workdir" + vpn=$(shuf -ezn 1 * | xargs -0 -n1 | cut -f1 -d '.') + $(sudo systemctl start openvpn-client@$vpn) + exit +else + echo "OpenVPN or systemd not installed, exiting." + exit +fi diff --git a/system-bin/randomvpn b/system-bin/randomvpn new file mode 100755 index 0000000..7c19bb7 --- /dev/null +++ b/system-bin/randomvpn @@ -0,0 +1,24 @@ +#!/usr/bin/env sh +# Script to select a random VPN client from /etc/openvpn/client/ (the default openvpn directory) + +workdir="/etc/openvpn/client/" + +if [ $UID -ne 0 ]; then + echo "You need root privileges." + exit +fi + +if [ "$1" == "stop" ]; then + systemctl stop openvpn-client@* + exit +fi + +if command -v openvpn > /dev/null && command -v systemctl > /dev/null; then + cd "$workdir" + vpn=$(shuf -ezn 1 * | xargs -0 -n1 | cut -f1 -d '.') + $(sudo systemctl start openvpn-client@$vpn) + exit +else + echo "OpenVPN or systemd not installed, exiting." + exit +fi diff --git a/user-bin/rnetworking b/system-bin/rnetworking similarity index 100% rename from user-bin/rnetworking rename to system-bin/rnetworking diff --git a/system-units/randomvpn.service b/system-units/randomvpn.service new file mode 100644 index 0000000..7368ae7 --- /dev/null +++ b/system-units/randomvpn.service @@ -0,0 +1,20 @@ +[Unit] +Description=Random VPN client +After=syslog.target network-online.target +Wants=network-online.target + +[Service] +Type=oneshot +WorkingDirectory=/etc/openvpn/client/ +ProtectHome=true +ProtectSystem=strict +ExecStart=/usr/bin/randomvpn +RemainAfterExit=yes +CapabilityBoundingSet=CAP_IPC_LOCK CAP_NET_ADMIN CAP_NET_RAW CAP_SETGID CAP_SETUID CAP_SYS_CHROOT CAP_DAC_OVERRIDE LimitNPROC=10 +DeviceAllow=/dev/null rw +DeviceAllow=/dev/net/tun rw +ExecStop=/usr/bin/randomvpn stop +KillMode=process + +[Install] +WantedBy=multi-user.target diff --git a/rnetworking.timer b/system-units/rnetworking.timer similarity index 79% rename from rnetworking.timer rename to system-units/rnetworking.timer index 4b70780..878d895 100644 --- a/rnetworking.timer +++ b/system-units/rnetworking.timer @@ -1,8 +1,8 @@ [Unit] Description=Comprobación automatica de servicios de red cada 5 minutos [Timer] - OnBootSec=2min - OnUnitActiveSec=10min + OnBootSec=1min + OnUnitActiveSec=5min Unit=rnetworking.service [Install]