diff --git a/usr/local/lib/network.bash b/usr/local/lib/network.bash index 5a5651c..3957b8c 100644 --- a/usr/local/lib/network.bash +++ b/usr/local/lib/network.bash @@ -32,6 +32,7 @@ declare -Ag NETWORK_SRC_IP_IDX declare -g NETWORK_DST_TYPE declare -Ag NETWORK_DST_TAB 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_LOCK="/var/lock/network/rx3-network" @@ -108,20 +109,23 @@ network_dst_tab_load() ndtl_config="$4" ndtl_table="$5" - var_assign NETWORK_DST_ID_LIST "${ndtl_id}" INC + var_assign NETWORK_DST_ID_LIST "${ndtl_id}" INC - tab_assign NETWORK_DST_TAB "${ndtl_id},Name" "${ndtl_name}" - tab_assign NETWORK_DST_TAB "${ndtl_id},Type" "${ndtl_type}" - tab_assign NETWORK_DST_TAB "${ndtl_id},Device" "${ndtl_device}" - tab_assign NETWORK_DST_TAB "${ndtl_id},Config" "${ndtl_config}" - tab_assign NETWORK_DST_TAB "${ndtl_id},Table" "${ndtl_table}" + tab_assign NETWORK_DST_TAB "${ndtl_id},Name" "${ndtl_name}" + tab_assign NETWORK_DST_TAB "${ndtl_id},Type" "${ndtl_type}" + tab_assign NETWORK_DST_TAB "${ndtl_id},Device" "${ndtl_device}" + tab_assign NETWORK_DST_TAB "${ndtl_id},Config" "${ndtl_config}" + tab_assign NETWORK_DST_TAB "${ndtl_id},Table" "${ndtl_table}" - var_assign NETWORK_TABLE_LIST "${ndtl_table}" INC + var_assign NETWORK_TABLE_LIST "${ndtl_table}" INC - 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" - tab_assign NETWORK_DST_TAB "${ndtl_id},IP" "${dns_value}" + 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}" case "${ndtl_type}" in @@ -151,10 +155,12 @@ network_dst_tab_load() ;; esac - tab_assign NETWORK_DST_TAB "${ndtl_id},Bytes_Received" "${ndtl_bytes_received}" - 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},Bytes_Received" "${ndtl_bytes_received}" + 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_DEV_IDX "${ndtl_dev}" "${ndtl_id}" + ndtl_id=$(( ${ndtl_id} + 1)) fi done <<< ${NETWORK_DST_CONFIG} @@ -179,6 +185,7 @@ network_dst_tab_get() dst_table=${NETWORK_DST_TAB["${dst_id},Table"]} 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_bytes_received=${NETWORK_DST_TAB["${dst_id},Bytes_Received"]} 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 + 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:" 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 #-------------------------------------------------------------------------------------------------------------------------- @@ -244,7 +275,7 @@ network_src_tab_load() fi dns_lookup PTR ${nstl_ip} - nstl_name="${dns_value}" + nstl_host_name="${dns_value}" case "${nstl_type}" in @@ -269,7 +300,7 @@ network_src_tab_load() nstl_bytes_sent="" nstl_start_date="" 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 nstl_status="1" @@ -282,7 +313,7 @@ network_src_tab_load() nstl_bytes_sent=$( echo ${7} | numfmt --to=iec-i --suffix=B) 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_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 ;; esac @@ -297,7 +328,7 @@ network_src_tab_load() 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},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},Owner" "${nstl_owner}" tab_assign NETWORK_SRC_TAB "${nstl_id},Table" "${nstl_table}" @@ -332,7 +363,7 @@ network_src_tab_get() src_id="$1" 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_owner=${NETWORK_SRC_TAB["${src_id},Owner"]} src_table=${NETWORK_SRC_TAB["${src_id},Table"]} diff --git a/var/www/cgi-bin/vpn-admin_board.cgi b/var/www/cgi-bin/vpn-admin_board.cgi index 62f33cd..cce9a9c 100755 --- a/var/www/cgi-bin/vpn-admin_board.cgi +++ b/var/www/cgi-bin/vpn-admin_board.cgi @@ -105,10 +105,10 @@ Destination_Status_Board () echo "

Destination Status Board

" echo "" echo " " - echo " " + echo " " else 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 @@ -123,7 +123,7 @@ Destination_Status_Board () if [[ "${format}" == "html" ]] then - echo -n "" 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 done @@ -184,13 +184,11 @@ Source_Routing_Board_Line() if [[ "${class}" != "skip" ]] then - host_name=${src_name} - if [[ "${format}" == "html" ]] then echo -n "" - echo -n "" + echo -n "" echo -n "" @@ -209,7 +207,7 @@ Source_Routing_Board_Line() ;; esac 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 @@ -294,9 +292,9 @@ Source_Routing_Board() if [[ "${format}" == "html" ]] then - echo -n "" + echo -n "" else - echo -n "${dst_name};" + echo -n "${dst_host_name};" fi done @@ -379,7 +377,7 @@ VPN_OpenVPN_Board() then if [[ "${format}" == "html" ]] then - echo -n "" + echo -n "" echo -n "" if [[ ( "${admin}" == "true") || ( "${REMOTE_USER}" == "${src_owner}") ]] @@ -398,7 +396,7 @@ VPN_OpenVPN_Board() echo -n "" fi else - echo -n "${src_id};${src_ip};${src_name}" + echo -n "${src_id};${src_ip};${src_host_name}" fi if [[ "${format}" == "html" ]] @@ -409,7 +407,7 @@ VPN_OpenVPN_Board() then echo -n "" - if [[ -f /etc/openvpn/tls/certs/${src_name}.crt ]] + if [[ -f /etc/openvpn/tls/certs/${src_host_name}.crt ]] then echo -n "" echo -n "" @@ -422,7 +420,7 @@ VPN_OpenVPN_Board() else echo -n "" - if [[ -f /etc/openvpn/tls/certs/${src_name}.crt ]] + if [[ -f /etc/openvpn/tls/certs/${src_host_name}.crt ]] then echo -n "" echo -n "" @@ -434,7 +432,7 @@ VPN_OpenVPN_Board() fi fi else - if [[ -f /etc/openvpn/tls/certs/${src_name}.crt ]] + if [[ -f /etc/openvpn/tls/certs/${src_host_name}.crt ]] then echo ";1" else
#NameTypeDeviceAddressConfigTableStatusBytes InBytes OutUpTime
#NameTypeDeviceIPHost NameConfigTableStatusBytes InBytes OutUpTime
${dst_id}${dst_name}${NETWORK_DST_TYPE[${dst_type}]}${dst_device}${dst_ip}${dst_config}${dst_table}" + echo -n "
${dst_id}${dst_name}${NETWORK_DST_TYPE[${dst_type}]}${dst_device}${dst_ip}${dst_host_name}${dst_config}${dst_table}" if [[ "${dst_status}" == 1 ]] then @@ -134,7 +134,7 @@ Destination_Status_Board () echo "${dst_bytes_received:--}${dst_bytes_sent:--}${dst_uptime:--}
${src_id}${NETWORK_SRC_TYPE[${src_type}]}${src_ip}${host_name}${NETWORK_SRC_TYPE[${src_type}]}${src_ip}${src_host_name}${src_device:--}${dst_name}${dst_host_name}
${src_id}${src_ip}${src_name}
${src_id}${src_ip}${src_host_name}\"Configuration\"Configuration\"TC\"Private\"Certificat\"TC\"Private\"Certificat