- Improve VPN supervisor log,
- Add IP validation on refresh.
This commit is contained in:
@@ -60,6 +60,38 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------------------------------------------------------------
|
||||||
|
# is_valid_ip
|
||||||
|
#--------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
is_valid_ip()
|
||||||
|
{
|
||||||
|
local ip=$1
|
||||||
|
local regex='^([0-9]{1,3}\.){3}[0-9]{1,3}$'
|
||||||
|
|
||||||
|
|
||||||
|
if [[ $ip =~ $regex ]]
|
||||||
|
then
|
||||||
|
IFS='.' read -r o1 o2 o3 o4 <<< "$ip"
|
||||||
|
|
||||||
|
for octet in $o1 $o2 $o3 $o4
|
||||||
|
do
|
||||||
|
if (( octet < 0 || octet > 255 ))
|
||||||
|
then
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#--------------------------------------------------------------------------------------------------------------------------
|
#--------------------------------------------------------------------------------------------------------------------------
|
||||||
# ip_to_num
|
# ip_to_num
|
||||||
#--------------------------------------------------------------------------------------------------------------------------
|
#--------------------------------------------------------------------------------------------------------------------------
|
||||||
@@ -775,6 +807,8 @@ network_dst_address_refresh()
|
|||||||
|
|
||||||
dst_ip_new=$( nc ${proxy_host} ${proxy_port})
|
dst_ip_new=$( nc ${proxy_host} ${proxy_port})
|
||||||
|
|
||||||
|
if is_valid_ip ${dst_ip_new}
|
||||||
|
then
|
||||||
if [[ "${dst_ip_old}" != "${dst_ip_new}" ]]
|
if [[ "${dst_ip_old}" != "${dst_ip_new}" ]]
|
||||||
then
|
then
|
||||||
${LOG} "Update ${dst_host_name}: Old: [${dst_ip_old}] New: [${dst_ip_new}]"
|
${LOG} "Update ${dst_host_name}: Old: [${dst_ip_old}] New: [${dst_ip_new}]"
|
||||||
@@ -784,6 +818,9 @@ network_dst_address_refresh()
|
|||||||
else
|
else
|
||||||
${LOG} "Skiping ${dst_host_name}: IP: [${dst_ip_old}]"
|
${LOG} "Skiping ${dst_host_name}: IP: [${dst_ip_old}]"
|
||||||
fi
|
fi
|
||||||
|
else
|
||||||
|
${LOG} "Skiping ${dst_host_name}: Invalid IP: [${dst_ip_new}] Old IP[${dst_ip_old}]"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -29,9 +29,6 @@ declare -g VPN_PID_FILE="/var/lib/network/rx3-vpn.pid"
|
|||||||
declare -g VPN_STATUS_FILE="/var/lib/network/rx3-vpn.status"
|
declare -g VPN_STATUS_FILE="/var/lib/network/rx3-vpn.status"
|
||||||
declare -g VPN_STATUS_LOCK="/var/lock/network/rx3-vpn.status"
|
declare -g VPN_STATUS_LOCK="/var/lock/network/rx3-vpn.status"
|
||||||
|
|
||||||
#declare -g VPN_TEMPLATE_FILE="/etc/openvpn/template/ext-client-tunx.conf"
|
|
||||||
#declare -g VPN_CONFIG_FILE="/etc/openvpn/ext-client-DEVICE.conf"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -198,9 +195,6 @@ vpn_job_tab_init()
|
|||||||
|
|
||||||
log_print "${VPN_LOG_FILE}" "${LOG}" "Loading config: Id: [${job_id}] Name: [${dst_name}] Cmd: [${VPN_JOB_TAB["${job_id},Cmd"]}]"
|
log_print "${VPN_LOG_FILE}" "${LOG}" "Loading config: Id: [${job_id}] Name: [${dst_name}] Cmd: [${VPN_JOB_TAB["${job_id},Cmd"]}]"
|
||||||
|
|
||||||
# ${LOG} "Loading config: Id: [${job_id}] Name: [${dst_name}] Cmd: [${VPN_JOB_TAB["${job_id},Cmd"]}]"
|
|
||||||
# echo >>${VPN_LOG_FILE} $(date) "Loading config: Id: [${job_id}] Name: [${dst_name}] Cmd: [${VPN_JOB_TAB["${job_id},Cmd"]}]"
|
|
||||||
|
|
||||||
job_id=$(( ${job_id} + 1))
|
job_id=$(( ${job_id} + 1))
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
@@ -227,9 +221,6 @@ vpn_job_tab_deinit()
|
|||||||
then
|
then
|
||||||
log_print "${VPN_LOG_FILE}" "${LOG}" "Killing : Id: [${job_id}] Name: [${job_name}] PId: [${job_pid}]..."
|
log_print "${VPN_LOG_FILE}" "${LOG}" "Killing : Id: [${job_id}] Name: [${job_name}] PId: [${job_pid}]..."
|
||||||
|
|
||||||
# ${LOG} $(date) "Killing : Id: [${job_id}] Name: [${job_name}] PId: [${job_pid}]..."
|
|
||||||
# echo >> ${VPN_LOG_FILE} $(date) "Killing : Id: [${job_id}] Name: [${job_name}] PId: [${job_pid}]..."
|
|
||||||
|
|
||||||
kill -15 ${job_pid}
|
kill -15 ${job_pid}
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
@@ -282,9 +273,6 @@ vpn_supervisor()
|
|||||||
|
|
||||||
log_print "${VPN_LOG_FILE}" "${LOG}" "Starting Supervisor..."
|
log_print "${VPN_LOG_FILE}" "${LOG}" "Starting Supervisor..."
|
||||||
|
|
||||||
# ${LOG} "Starting Superviosr, PId: [$$]..."
|
|
||||||
# echo >> ${VPN_LOG_FILE} $(date) "($$):" "Starting Supervisor..."
|
|
||||||
|
|
||||||
|
|
||||||
# Main Loop
|
# Main Loop
|
||||||
|
|
||||||
@@ -301,9 +289,6 @@ vpn_supervisor()
|
|||||||
then
|
then
|
||||||
log_print "${VPN_LOG_FILE}" "${LOG}" "Restarting Cmd: [${job_cmd}]..."
|
log_print "${VPN_LOG_FILE}" "${LOG}" "Restarting Cmd: [${job_cmd}]..."
|
||||||
|
|
||||||
# ${LOG} "Restarting Cmd: [${job_cmd}]..."
|
|
||||||
# echo >> ${VPN_LOG_FILE} $(date) "($$):" "Restarting Cmd: [${job_cmd}]..."
|
|
||||||
|
|
||||||
eval ${DEBUG} ${job_cmd}
|
eval ${DEBUG} ${job_cmd}
|
||||||
|
|
||||||
job_pid="$( ps aux | grep "${job_cmd}" | grep -v grep | head -1 | awk '{print $2}')"
|
job_pid="$( ps aux | grep "${job_cmd}" | grep -v grep | head -1 | awk '{print $2}')"
|
||||||
@@ -317,16 +302,15 @@ vpn_supervisor()
|
|||||||
tab_assign VPN_JOB_TAB "${job_id},Date" "$(date --rfc-3339=seconds -u)"
|
tab_assign VPN_JOB_TAB "${job_id},Date" "$(date --rfc-3339=seconds -u)"
|
||||||
|
|
||||||
log_print "${VPN_LOG_FILE}" "${LOG}" "PId: [${VPN_JOB_TAB["${job_id},PId"]}]!"
|
log_print "${VPN_LOG_FILE}" "${LOG}" "PId: [${VPN_JOB_TAB["${job_id},PId"]}]!"
|
||||||
|
|
||||||
# ${LOG} "PId: [${VPN_JOB_TAB["${job_id},PId"]}]!"
|
|
||||||
# echo >> ${VPN_LOG_FILE} $(date) "($$):" "PId: [${VPN_JOB_TAB["${job_id},PId"]}]!"
|
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
log_print "${VPN_LOG_FILE}" "${LOG}" "Saving VPN tab..."
|
||||||
vpn_job_tab_save
|
vpn_job_tab_save
|
||||||
|
|
||||||
sleep 30
|
sleep 30
|
||||||
|
|
||||||
|
log_print "${VPN_LOG_FILE}" "${LOG}" "Refreshing DNS entries..."
|
||||||
network_dst_address_refresh_all
|
network_dst_address_refresh_all
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
@@ -408,15 +392,9 @@ vpn_start()
|
|||||||
|
|
||||||
log_print "${VPN_LOG_FILE}" "${LOG}" "Daemon started, PId: [${daemon_pid}]"
|
log_print "${VPN_LOG_FILE}" "${LOG}" "Daemon started, PId: [${daemon_pid}]"
|
||||||
|
|
||||||
# ${LOG} "($$):" "Daemon started, PId: [${daemon_pid}]"
|
|
||||||
# echo >> ${VPN_LOG_FILE} $(date) "($$):" "Daemon started, PId: [${daemon_pid}]"
|
|
||||||
|
|
||||||
echo >${VPN_PID_FILE} "${daemon_pid}"
|
echo >${VPN_PID_FILE} "${daemon_pid}"
|
||||||
else
|
else
|
||||||
log_print "${VPN_LOG_FILE}" "${LOG}" "Daemon already running PId: [${daemon_pid}]"
|
log_print "${VPN_LOG_FILE}" "${LOG}" "Daemon already running PId: [${daemon_pid}]"
|
||||||
|
|
||||||
# echo 1>&2 "($$):" "Daemon already running PId: [${daemon_pid}]"
|
|
||||||
# echo >> ${VPN_LOG_FILE} $(date) "($$):" "Daemon already running PId: [${daemon_pid}]"
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -446,15 +424,9 @@ vpn_stop()
|
|||||||
if [[ "${daemon_pid}" == "0" ]] || [[ $rc != 0 ]]
|
if [[ "${daemon_pid}" == "0" ]] || [[ $rc != 0 ]]
|
||||||
then
|
then
|
||||||
log_print "${VPN_LOG_FILE}" "${LOG}" "Daemon already stoped!"
|
log_print "${VPN_LOG_FILE}" "${LOG}" "Daemon already stoped!"
|
||||||
|
|
||||||
# ${LOG} "($$):" "Daemon already stoped!"
|
|
||||||
# echo >> ${VPN_LOG_FILE} $(date) "($$):" "Daemon already stoped!"
|
|
||||||
else
|
else
|
||||||
log_print "${VPN_LOG_FILE}" "${LOG}" "Stoping daemon, PId: [${daemon_pid}]..."
|
log_print "${VPN_LOG_FILE}" "${LOG}" "Stoping daemon, PId: [${daemon_pid}]..."
|
||||||
|
|
||||||
# ${LOG} "($$):" "Stoping daemon, PId: [${daemon_pid}]..."
|
|
||||||
# echo >> ${VPN_LOG_FILE} $(date) "($$):" "Stoping daemon, PId: [${daemon_pid}]..."
|
|
||||||
|
|
||||||
kill -15 ${daemon_pid}
|
kill -15 ${daemon_pid}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -488,10 +460,10 @@ vpn_status()
|
|||||||
|
|
||||||
echo "Number of VPN Jobs: (${#VPN_JOB_IDX[@]})"
|
echo "Number of VPN Jobs: (${#VPN_JOB_IDX[@]})"
|
||||||
|
|
||||||
if [ -f ${VPN_STATUS_FILE} ]
|
# if [ -f ${VPN_STATUS_FILE} ]
|
||||||
then
|
# then
|
||||||
cat ${VPN_STATUS_FILE}
|
# cat ${VPN_STATUS_FILE}
|
||||||
fi
|
# fi
|
||||||
|
|
||||||
echo -e "Id | Name | PId | Date | Command"
|
echo -e "Id | Name | PId | Date | Command"
|
||||||
echo "-----------------------------------------------------------------------------------------------------------------------------------------------------------------------"
|
echo "-----------------------------------------------------------------------------------------------------------------------------------------------------------------------"
|
||||||
|
|||||||
Reference in New Issue
Block a user