From 9eec1fe052dc431488c93ac3a09a887e01bbc486 Mon Sep 17 00:00:00 2001 From: bedefaced Date: Wed, 19 Apr 2017 20:20:21 +0300 Subject: [PATCH] openvpn cron jobs adding --- openvpn/autostart.sh | 26 ++++++++++++++++++++++++++ openvpn/checkserver.sh | 7 +++++++ openvpn/env.sh | 1 + openvpn/install.sh | 8 ++++++-- openvpn/iptables-setup.sh | 8 -------- 5 files changed, 40 insertions(+), 10 deletions(-) create mode 100755 openvpn/autostart.sh create mode 100755 openvpn/checkserver.sh diff --git a/openvpn/autostart.sh b/openvpn/autostart.sh new file mode 100755 index 0000000..df3bc78 --- /dev/null +++ b/openvpn/autostart.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +source $DIR/env.sh + +if [[ "$EUID" -ne 0 ]]; then + echo "Sorry, you need to run this as root" + exit 1 +fi + +TMPFILE=$(mktemp crontab.XXXXX) +crontab -l > $TMPFILE + +RESTOREPATH=$(which iptables-restore) +RESTORPRESENTS=$(grep iptables-restore $TMPFILE) +if [ $? -ne 0 ]; then + echo "@reboot $RESTOREPATH <$IPTABLES >/dev/null 2>&1" >> $TMPFILE +fi + +OPENVPNPRESENTS=$(grep "$CHECKSERVER" $TMPFILE) +if [ $? -ne 0 ]; then + echo "*/5 * * * * $CHECKSERVER >/dev/null 2>&1" >> $TMPFILE +fi + +crontab $TMPFILE > /dev/null +rm $TMPFILE diff --git a/openvpn/checkserver.sh b/openvpn/checkserver.sh new file mode 100755 index 0000000..9956229 --- /dev/null +++ b/openvpn/checkserver.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +RET=$(pgrep openvpn) + +if [ $? -eq 1 ]; then + /etc/init.d/openvpn restart +fi diff --git a/openvpn/env.sh b/openvpn/env.sh index 938b578..8ed9e19 100755 --- a/openvpn/env.sh +++ b/openvpn/env.sh @@ -7,6 +7,7 @@ CADIR=$OPENVPNDIR/easy-rsa IPTABLES=/etc/iptables.rules RCLOCAL=/etc/rc.local NOBODYGROUP=nogroup +CHECKSERVER=$OPENVPNDIR/checkserver.sh LOCALPREFIX="172.20" LOCALIP="$LOCALPREFIX.0.0" diff --git a/openvpn/install.sh b/openvpn/install.sh index 8381b27..1946b1d 100755 --- a/openvpn/install.sh +++ b/openvpn/install.sh @@ -12,7 +12,7 @@ fi echo echo "Installing OpenVPN..." -apt-get install openvpn easy-rsa bridge-utils +apt-get install openvpn easy-rsa cron echo echo "Configuring routing..." @@ -49,9 +49,13 @@ echo echo "Configuring VPN users..." $DIR/adduser.sh +echo +echo "Adding cron jobs..." +yes | cp -rf $DIR/checkserver.sh $CHECKSERVER +$DIR/autostart.sh + echo echo "Starting OpenVPN..." -systemctl enable openvpn service openvpn restart echo diff --git a/openvpn/iptables-setup.sh b/openvpn/iptables-setup.sh index 0ed4b2d..13c35eb 100755 --- a/openvpn/iptables-setup.sh +++ b/openvpn/iptables-setup.sh @@ -73,13 +73,5 @@ iptables -A OUTPUT -o tun+ -j ACCEPT iptables -A INPUT -p udp --dport 1194 -j ACCEPT iptables-save | awk '($0 !~ /^-A/)||!($0 in a) {a[$0];print}' > $IPTABLES - -RESTORPRESENTS=$(grep iptables-restore $RCLOCAL) -if [ $? -ne 0 ]; then - sed -i -e "/exit 0/d" $RCLOCAL - echo "iptables-restore < $IPTABLES" >> $RCLOCAL - echo "exit 0" >> $RCLOCAL -fi - iptables -F iptables-restore < $IPTABLES