Ver código fonte

Check VPN connection including users, profiles and history

pmacko 1 mês atrás
pai
commit
e0029fc844
1 arquivos alterados com 59 adições e 0 exclusões
  1. 59 0
      checkvpn.sh

+ 59 - 0
checkvpn.sh

@@ -0,0 +1,59 @@
+#!/bin/bash
+#########################################################################
+#                  Check VPN connection including users                 #
+#                           Created by DoIT-PM                          #
+#                               ver 0.2                                 #
+#########################################################################
+
+#---------------------------- VARIABLES --------------------------------#
+BDA="23"
+TIM=$(date +%H)
+DAY=$(date +%d)
+DAB=$(date +%y%m%d)
+DAT=$(date +%b" "%_d)
+WEB="/opt/librenms/html/admin/vpn"
+test -f /var/log/messages && LOG="/var/log/messages"
+test -f /var/log/syslog && LOG="/var/log/syslog"
+REP="/tmp/vpn.rep"
+test -d $WEB || mkdir $WEB
+test -f $REP && rm -rf $REP
+
+#---------------------------- COLLECTION -------------------------------#
+collect(){
+echo -e "- \e[1;32mExtracting\e[0m data from [\e[1;33m$DAT\e[0m]"
+echo "-------- ---------------- ------------ ----------------" > $REP
+echo "TIME VPN-PROFILE USER-NAME IP-ADDRESS" >> $REP
+echo "-------- ---------------- ------------ ----------------" >> $REP
+cat $LOG | grep "$DAT" | grep "ASA-6-113039" | awk '{print $3,$8,$10,$12}' | sed 's/</ /g' | sed 's/>/ /g' >> $REP
+echo "-------- ---------------- ------------ ----------------" >> $REP
+}
+
+#----------------------------- BIG-DATA --------------------------------#
+bigdata(){
+if [ "$TIM" -eq "$BDA" ];
+then
+        echo -e "- \e[1;32mAdding\e[0m day data to BigData"
+        cat $REP | grep "^[0-9]" > $WEB/vpn.tmp
+        sed -i "s/^/$DAB /" $WEB/vpn.tmp
+        cat $WEB/vpn.tmp >> $WEB/vpn.rep
+        echo "------ -------- ---------------- ------------ ----------------" > $WEB/vpn.clr
+        echo "DATE TIME VPN-PROFILE USER-NAME IP-ADDRESS" >> $WEB/vpn.clr
+        echo "------ -------- ---------------- ------------ ----------------" >> $WEB/vpn.clr
+        cat $WEB/vpn.rep | awk '!seen[$0]++' | sort >> $WEB/vpn.clr
+        echo "------ -------- ---------------- ------------ ----------------" >> $WEB/vpn.clr
+        cat $WEB/vpn.clr | column -t > $WEB/vpn.txt
+else
+        echo -e "- \e[1;31mNOT\e[0m right time for updating BigData"
+fi
+}
+
+#------------------------------- CORE ----------------------------------#
+clear
+collect
+bigdata
+cat $REP | column -t
+USR=$(cat $REP | awk '{print $3}' | egrep -v "USER|\---" | sort | uniq | wc -l)
+VPN=$(cat $REP | egrep -v "USER|\---" | sort | wc -l)
+echo -e "- Summary today VPN access: [\e[1;33m$VPN\e[0m]"
+echo -e "- Unique today VPN users: [\e[1;33m$USR\e[0m]"
+echo -e "- Report summary: [\e[1;35m$WEB/vpn.txt\e[0m]"