- Add host name in destination tab.

This commit is contained in:
2025-06-29 23:56:14 +02:00
parent 52d313a525
commit f8db9fdd45
2 changed files with 62 additions and 33 deletions

View File

@@ -32,6 +32,7 @@ declare -Ag NETWORK_SRC_IP_IDX
declare -g NETWORK_DST_TYPE declare -g NETWORK_DST_TYPE
declare -Ag NETWORK_DST_TAB declare -Ag NETWORK_DST_TAB
declare -g NETWORK_DST_ID_LIST declare -g NETWORK_DST_ID_LIST
declare -Ag NETWORK_SRC_DEV_IDX
declare -g NETWORK_CONFIG_FILE="/etc/sysconfig/rx3-network" declare -g NETWORK_CONFIG_FILE="/etc/sysconfig/rx3-network"
declare -g NETWORK_CONFIG_LOCK="/var/lock/network/rx3-network" declare -g NETWORK_CONFIG_LOCK="/var/lock/network/rx3-network"
@@ -120,7 +121,10 @@ network_dst_tab_load()
tab_assign NETWORK_DST_TAB "${ndtl_id},Status" "$( ip link show dev ${ndtl_device} 2>/dev/null | grep -q ",UP," && echo 1 || echo 0)" tab_assign NETWORK_DST_TAB "${ndtl_id},Status" "$( ip link show dev ${ndtl_device} 2>/dev/null | grep -q ",UP," && echo 1 || echo 0)"
dns_lookup A vpn${ndtl_id}.vpn.rx3 "NOCACHE" ndtl_host_name="vpn${ndtl_id}.vpn.rx3"
tab_assign NETWORK_DST_TAB "${ndtl_id},Host_Name" "${ndtl_host_name}"
dns_lookup A "${ndtl_host_name}" "NOCACHE"
tab_assign NETWORK_DST_TAB "${ndtl_id},IP" "${dns_value}" tab_assign NETWORK_DST_TAB "${ndtl_id},IP" "${dns_value}"
case "${ndtl_type}" case "${ndtl_type}"
@@ -155,6 +159,8 @@ network_dst_tab_load()
tab_assign NETWORK_DST_TAB "${ndtl_id},Bytes_Sent" "${ndtl_bytes_sent}" tab_assign NETWORK_DST_TAB "${ndtl_id},Bytes_Sent" "${ndtl_bytes_sent}"
tab_assign NETWORK_DST_TAB "${ndtl_id},Uptime" "${ndtl_uptime}" tab_assign NETWORK_DST_TAB "${ndtl_id},Uptime" "${ndtl_uptime}"
tab_assign NETWORK_DST_DEV_IDX "${ndtl_dev}" "${ndtl_id}"
ndtl_id=$(( ${ndtl_id} + 1)) ndtl_id=$(( ${ndtl_id} + 1))
fi fi
done <<< ${NETWORK_DST_CONFIG} done <<< ${NETWORK_DST_CONFIG}
@@ -179,6 +185,7 @@ network_dst_tab_get()
dst_table=${NETWORK_DST_TAB["${dst_id},Table"]} dst_table=${NETWORK_DST_TAB["${dst_id},Table"]}
dst_status=${NETWORK_DST_TAB["${dst_id},Status"]} dst_status=${NETWORK_DST_TAB["${dst_id},Status"]}
dst_host_name=${NETWORK_DST_TAB["${dst_id},Host_Name"]}
dst_ip=${NETWORK_DST_TAB["${dst_id},IP"]} dst_ip=${NETWORK_DST_TAB["${dst_id},IP"]}
dst_bytes_received=${NETWORK_DST_TAB["${dst_id},Bytes_Received"]} dst_bytes_received=${NETWORK_DST_TAB["${dst_id},Bytes_Received"]}
dst_bytes_sent=${NETWORK_DST_TAB["${dst_id},Bytes_Sent"]} dst_bytes_sent=${NETWORK_DST_TAB["${dst_id},Bytes_Sent"]}
@@ -200,6 +207,15 @@ network_dst_tab_dump()
echo "NETWORK_DST_ID_LIST: [${NETWORK_DST_ID_LIST}]" echo "NETWORK_DST_ID_LIST: [${NETWORK_DST_ID_LIST}]"
echo echo
echo "NETWORK_DST_DEV_IDX:"
for key in "${!NETWORK_DST_DEV_IDX[@]}"
do
echo "[${key}]: [${NETWORK_DST_DEV_IDX[${key}]}]"
done | sort -n
echo
echo "NETWORK_DST_TAB:" echo "NETWORK_DST_TAB:"
for key in "${!NETWORK_DST_TAB[@]}" for key in "${!NETWORK_DST_TAB[@]}"
@@ -214,6 +230,21 @@ network_dst_tab_dump()
#--------------------------------------------------------------------------------------------------------------------------
# network_dst_tab_dev_lookup
#--------------------------------------------------------------------------------------------------------------------------
network_dst_tab_dev_lookup()
{
dst_dev="$1"
dst_id=${NETWORK_DST_DEV_IDX["${dst_dev}"]}
}
#-------------------------------------------------------------------------------------------------------------------------- #--------------------------------------------------------------------------------------------------------------------------
# network_src_tab_load # network_src_tab_load
#-------------------------------------------------------------------------------------------------------------------------- #--------------------------------------------------------------------------------------------------------------------------
@@ -244,7 +275,7 @@ network_src_tab_load()
fi fi
dns_lookup PTR ${nstl_ip} dns_lookup PTR ${nstl_ip}
nstl_name="${dns_value}" nstl_host_name="${dns_value}"
case "${nstl_type}" case "${nstl_type}"
in in
@@ -269,7 +300,7 @@ network_src_tab_load()
nstl_bytes_sent="" nstl_bytes_sent=""
nstl_start_date="" nstl_start_date=""
nstl_uptime="" nstl_uptime=""
nstl_last_seen="$( stat -c "%x" /etc/openvpn/status/${nstl_name}.status 2>/dev/null | sed -e 's/\..*//')" nstl_last_seen="$( stat -c "%x" /etc/openvpn/status/${nstl_host_name}.status 2>/dev/null | sed -e 's/\..*//')"
else else
nstl_status="1" nstl_status="1"
@@ -282,7 +313,7 @@ network_src_tab_load()
nstl_bytes_sent=$( echo ${7} | numfmt --to=iec-i --suffix=B) nstl_bytes_sent=$( echo ${7} | numfmt --to=iec-i --suffix=B)
nstl_start_date=${8} nstl_start_date=${8}
nstl_uptime=$( echo "$(($(date +%s) - $(date -d "${nstl_start_date}" +%s)))" | awk '{days = int($1/86400); print days " day" (( days > 1 ) ? "s" : "") strftime(" %H:%M:%S", $1,1)}') nstl_uptime=$( echo "$(($(date +%s) - $(date -d "${nstl_start_date}" +%s)))" | awk '{days = int($1/86400); print days " day" (( days > 1 ) ? "s" : "") strftime(" %H:%M:%S", $1,1)}')
nstl_last_seen="$(stat -c "%x" /etc/openvpn/status/${nstl_name}.status 2>/dev/null | sed -e 's/\..*//')" nstl_last_seen="$(stat -c "%x" /etc/openvpn/status/${nstl_host_name}.status 2>/dev/null | sed -e 's/\..*//')"
fi fi
;; ;;
esac esac
@@ -297,7 +328,7 @@ network_src_tab_load()
var_assign NETWORK_SRC_ID_LIST "${nstl_id}" INC var_assign NETWORK_SRC_ID_LIST "${nstl_id}" INC
tab_assign NETWORK_SRC_TAB "${nstl_id},IP" "${nstl_ip}" tab_assign NETWORK_SRC_TAB "${nstl_id},IP" "${nstl_ip}"
tab_assign NETWORK_SRC_TAB "${nstl_id},Name" "${nstl_name}" tab_assign NETWORK_SRC_TAB "${nstl_id},Host_Name" "${nstl_host_name}"
tab_assign NETWORK_SRC_TAB "${nstl_id},Type" "${nstl_type}" tab_assign NETWORK_SRC_TAB "${nstl_id},Type" "${nstl_type}"
tab_assign NETWORK_SRC_TAB "${nstl_id},Owner" "${nstl_owner}" tab_assign NETWORK_SRC_TAB "${nstl_id},Owner" "${nstl_owner}"
tab_assign NETWORK_SRC_TAB "${nstl_id},Table" "${nstl_table}" tab_assign NETWORK_SRC_TAB "${nstl_id},Table" "${nstl_table}"
@@ -332,7 +363,7 @@ network_src_tab_get()
src_id="$1" src_id="$1"
src_ip=${NETWORK_SRC_TAB["${src_id},IP"]} src_ip=${NETWORK_SRC_TAB["${src_id},IP"]}
src_name=${NETWORK_SRC_TAB["${src_id},Name"]} src_host_name=${NETWORK_SRC_TAB["${src_id},Host_Name"]}
src_type=${NETWORK_SRC_TAB["${src_id},Type"]} src_type=${NETWORK_SRC_TAB["${src_id},Type"]}
src_owner=${NETWORK_SRC_TAB["${src_id},Owner"]} src_owner=${NETWORK_SRC_TAB["${src_id},Owner"]}
src_table=${NETWORK_SRC_TAB["${src_id},Table"]} src_table=${NETWORK_SRC_TAB["${src_id},Table"]}

View File

@@ -105,10 +105,10 @@ Destination_Status_Board ()
echo " <H2>Destination Status Board</H2>" echo " <H2>Destination Status Board</H2>"
echo "" echo ""
echo " <TABLE BORDER=\"1\" WIDTH=\"100%\">" echo " <TABLE BORDER=\"1\" WIDTH=\"100%\">"
echo " <TR class=\"header\"><TD class=\"header\">#</TD><TD>Name</TD><TD>Type</TD><TD>Device</TD><TD>Address</TD><TD>Config</TD><TD>Table</TD><TD>Status</TD><TD>Bytes In</TD><TD>Bytes Out</TD><TD>UpTime</TD></TR>" echo " <TR class=\"header\"><TD class=\"header\">#</TD><TD>Name</TD><TD>Type</TD><TD>Device</TD><TD>IP</TD><TD>Host Name</TD><TD>Config</TD><TD>Table</TD><TD>Status</TD><TD>Bytes In</TD><TD>Bytes Out</TD><TD>UpTime</TD></TR>"
else else
echo "TABLE: Destination_Status_Board" echo "TABLE: Destination_Status_Board"
echo "#;Name;Type;Device;Address;Config;Table;Status;Bytes In;Bytes Out;UpTime" echo "#;Name;Type;Device;IP;Host Name;Config;Table;Status;Bytes In;Bytes Out;UpTime"
fi fi
@@ -123,7 +123,7 @@ Destination_Status_Board ()
if [[ "${format}" == "html" ]] if [[ "${format}" == "html" ]]
then then
echo -n "<TR><TD class="header">${dst_id}</TD><TD>${dst_name}</TD><TD>${NETWORK_DST_TYPE[${dst_type}]}</TD><TD>${dst_device}</TD><TD>${dst_ip}</TD><TD>${dst_config}</TD><TD>${dst_table}</TD><TD>" echo -n "<TR><TD class="header">${dst_id}</TD><TD>${dst_name}</TD><TD>${NETWORK_DST_TYPE[${dst_type}]}</TD><TD>${dst_device}</TD><TD>${dst_ip}</TD><TD>${dst_host_name}</TD><TD>${dst_config}</TD><TD>${dst_table}</TD><TD>"
if [[ "${dst_status}" == 1 ]] if [[ "${dst_status}" == 1 ]]
then then
@@ -134,7 +134,7 @@ Destination_Status_Board ()
echo "<TD>${dst_bytes_received:--}</TD><TD>${dst_bytes_sent:--}</TD><TD>${dst_uptime:--}</TD>" echo "<TD>${dst_bytes_received:--}</TD><TD>${dst_bytes_sent:--}</TD><TD>${dst_uptime:--}</TD>"
else else
echo "${dst_id};${dst_name};${NETWORK_DST_TYPE[${dst_type}]};${dst_device};${dst_ip};${dst_config};${dst_table};${dst_status};${dst_bytes_received};${dst_bytes_sent};${dst_uptime}" echo "${dst_id};${dst_name};${NETWORK_DST_TYPE[${dst_type}]};${dst_device};${dst_ip};${dst_host_name};${dst_config};${dst_table};${dst_status};${dst_bytes_received};${dst_bytes_sent};${dst_uptime}"
fi fi
done done
@@ -184,13 +184,11 @@ Source_Routing_Board_Line()
if [[ "${class}" != "skip" ]] if [[ "${class}" != "skip" ]]
then then
host_name=${src_name}
if [[ "${format}" == "html" ]] if [[ "${format}" == "html" ]]
then then
echo -n "<TR class="${class}"><TD class="header">${src_id}</TD>" echo -n "<TR class="${class}"><TD class="header">${src_id}</TD>"
echo -n "<TD>${NETWORK_SRC_TYPE[${src_type}]}</TD><TD>${src_ip}</TD><TD>${host_name}</TD>" echo -n "<TD>${NETWORK_SRC_TYPE[${src_type}]}</TD><TD>${src_ip}</TD><TD>${src_host_name}</TD>"
echo -n "<TD>${src_device:--}</TD>" echo -n "<TD>${src_device:--}</TD>"
@@ -209,7 +207,7 @@ Source_Routing_Board_Line()
;; ;;
esac esac
else else
echo -n "${src_id};${NETWORK_SRC_TYPE[${src_type}]};${src_ip};${host_name};${src_device};${status};" echo -n "${src_id};${NETWORK_SRC_TYPE[${src_type}]};${src_ip};${src_host_name};${src_device};${status};"
fi fi
@@ -294,9 +292,9 @@ Source_Routing_Board()
if [[ "${format}" == "html" ]] if [[ "${format}" == "html" ]]
then then
echo -n "<TD>${dst_name}</TD>" echo -n "<TD>${dst_host_name}</TD>"
else else
echo -n "${dst_name};" echo -n "${dst_host_name};"
fi fi
done done
@@ -379,7 +377,7 @@ VPN_OpenVPN_Board()
then then
if [[ "${format}" == "html" ]] if [[ "${format}" == "html" ]]
then then
echo -n "<TR class=\"${class}\"><TD class=\"header\">${src_id}</TD><TD>${src_ip}</TD><TD>${src_name}</TD>" echo -n "<TR class=\"${class}\"><TD class=\"header\">${src_id}</TD><TD>${src_ip}</TD><TD>${src_host_name}</TD>"
echo -n "<TD><A HREF=\"?cmd=config_download&amp;admin=${admin}&amp;filter=${filter}&amp;ip=${src_ip}&amp;defroute=true&amp;type=ext\" ><IMG SRC=\"/icons/user-online.png\" TITLE=\"Configuration Default Route External Certificates\" ALT=\"Configuration External Certificates\"></A></TD>" echo -n "<TD><A HREF=\"?cmd=config_download&amp;admin=${admin}&amp;filter=${filter}&amp;ip=${src_ip}&amp;defroute=true&amp;type=ext\" ><IMG SRC=\"/icons/user-online.png\" TITLE=\"Configuration Default Route External Certificates\" ALT=\"Configuration External Certificates\"></A></TD>"
if [[ ( "${admin}" == "true") || ( "${REMOTE_USER}" == "${src_owner}") ]] if [[ ( "${admin}" == "true") || ( "${REMOTE_USER}" == "${src_owner}") ]]
@@ -398,7 +396,7 @@ VPN_OpenVPN_Board()
echo -n "<TD><IMG SRC=\"/icons/user-online.png\" TITLE=\"Configuration Inline Certificates\" ALT=\"Configuration Inline Certificates\"></TD>" echo -n "<TD><IMG SRC=\"/icons/user-online.png\" TITLE=\"Configuration Inline Certificates\" ALT=\"Configuration Inline Certificates\"></TD>"
fi fi
else else
echo -n "${src_id};${src_ip};${src_name}" echo -n "${src_id};${src_ip};${src_host_name}"
fi fi
if [[ "${format}" == "html" ]] if [[ "${format}" == "html" ]]
@@ -409,7 +407,7 @@ VPN_OpenVPN_Board()
then then
echo -n "<TD><A HREF=\"?cmd=cert_download&amp;admin=${admin}&amp;filter=${filter}&amp;ip=${src_ip}&amp;type=tc\" ><IMG SRC=\"/icons/user-online.png\" TITLE=\"TC Certificate\" ALT=\"TC Certificate\"></A></TD>" echo -n "<TD><A HREF=\"?cmd=cert_download&amp;admin=${admin}&amp;filter=${filter}&amp;ip=${src_ip}&amp;type=tc\" ><IMG SRC=\"/icons/user-online.png\" TITLE=\"TC Certificate\" ALT=\"TC Certificate\"></A></TD>"
if [[ -f /etc/openvpn/tls/certs/${src_name}.crt ]] if [[ -f /etc/openvpn/tls/certs/${src_host_name}.crt ]]
then then
echo -n "<TD><A HREF=\"?cmd=cert_download&amp;admin=${admin}&amp;filter=${filter}&amp;ip=${src_ip}&amp;type=key\"><IMG SRC=\"/icons/user-online.png\" TITLE=\"Private Key\" ALT=\"Private Key\"></A></TD>" echo -n "<TD><A HREF=\"?cmd=cert_download&amp;admin=${admin}&amp;filter=${filter}&amp;ip=${src_ip}&amp;type=key\"><IMG SRC=\"/icons/user-online.png\" TITLE=\"Private Key\" ALT=\"Private Key\"></A></TD>"
echo -n "<TD><A HREF=\"?cmd=cert_download&amp;admin=${admin}&amp;filter=${filter}&amp;ip=${src_ip}&amp;type=csr\"><IMG SRC=\"/icons/user-online.png\" TITLE=\"Certificate Signing Request\" ALT=\"Certificat Signing Request\"></A></TD>" echo -n "<TD><A HREF=\"?cmd=cert_download&amp;admin=${admin}&amp;filter=${filter}&amp;ip=${src_ip}&amp;type=csr\"><IMG SRC=\"/icons/user-online.png\" TITLE=\"Certificate Signing Request\" ALT=\"Certificat Signing Request\"></A></TD>"
@@ -422,7 +420,7 @@ VPN_OpenVPN_Board()
else else
echo -n "<TD><IMG SRC=\"/icons/user-online.png\" TITLE=\"TC Certificate\" ALT=\"TC Certificate\"></TD>" echo -n "<TD><IMG SRC=\"/icons/user-online.png\" TITLE=\"TC Certificate\" ALT=\"TC Certificate\"></TD>"
if [[ -f /etc/openvpn/tls/certs/${src_name}.crt ]] if [[ -f /etc/openvpn/tls/certs/${src_host_name}.crt ]]
then then
echo -n "<TD><IMG SRC=\"/icons/user-online.png\" TITLE=\"Private Key\" ALT=\"Private Key\"></TD>" echo -n "<TD><IMG SRC=\"/icons/user-online.png\" TITLE=\"Private Key\" ALT=\"Private Key\"></TD>"
echo -n "<TD><IMG SRC=\"/icons/user-online.png\" TITLE=\"Certificat Signing Request\" ALT=\"Certificat Signing Request\"></TD>" echo -n "<TD><IMG SRC=\"/icons/user-online.png\" TITLE=\"Certificat Signing Request\" ALT=\"Certificat Signing Request\"></TD>"
@@ -434,7 +432,7 @@ VPN_OpenVPN_Board()
fi fi
fi fi
else else
if [[ -f /etc/openvpn/tls/certs/${src_name}.crt ]] if [[ -f /etc/openvpn/tls/certs/${src_host_name}.crt ]]
then then
echo ";1" echo ";1"
else else