Compare commits

..

12 Commits
v3.00 ... v3.02

Author SHA1 Message Date
pucherot
9232f31778 Pi.Alert v3.02
#114 - Fixed: UNIQUE constraint failed with Local MAC
2021-04-24 11:48:11 +02:00
pucherot
9c324b1817 Installation Script 2021-04-23 22:05:47 +02:00
pucherot
25b5db0e23 Update pialert_install.sh 2021-04-23 19:35:51 +02:00
pucherot
2af9d1dd38 Pi.Alert 3.01
#106
2021-04-23 13:54:25 +02:00
pucherot
040216ce3c Pi.Alert 3.01 2021-04-22 23:10:49 +02:00
pucherot
99c29fe86b Pi.Alert 3.01 2021-04-22 23:03:59 +02:00
pucherot
27afadfcdc Pi.Alert 3.01
#106
2021-04-22 22:12:38 +02:00
pucherot
4342f0f212 Pi.Alert 3.01
#106
2021-04-22 22:03:48 +02:00
pucherot
405331d177 Pi.Alert 3.00 2021-04-22 19:55:00 +02:00
pucherot
ffe2851e4f Pi.Alert 3.00 2021-04-22 08:53:43 +02:00
pucherot
6ade5a4f63 Pi.Alert 3.00 2021-04-21 22:49:52 +02:00
pucherot
e39845afc0 Pi.Alert 3.00 2021-04-21 22:36:41 +02:00
12 changed files with 102 additions and 47 deletions

View File

@@ -374,7 +374,7 @@ def scan_network ():
read_DHCP_leases () read_DHCP_leases ()
# Load current scan data # Load current scan data
print ('\nProcesising scan results...') print ('\nProcessing scan results...')
print_log ('Save scanned devices') print_log ('Save scanned devices')
save_scanned_devices (arpscan_devices, cycle_interval) save_scanned_devices (arpscan_devices, cycle_interval)
@@ -586,16 +586,24 @@ def save_scanned_devices (p_arpscan_devices, p_cycle_interval):
VALUES (?, 'Internet', ?, Null, 'queryDNS') """, (cycle, internet_IP) ) VALUES (?, 'Internet', ?, Null, 'queryDNS') """, (cycle, internet_IP) )
# #76 Add Local MAC of default local interface # #76 Add Local MAC of default local interface
#local_mac_cmd = ["bash -lc ifconfig `ip route list default | awk {'print $5'}` | grep ether | awk '{print $2}'"] # BUGFIX #106 - Device that pialert is running
local_mac_cmd = ["/sbin/ifconfig `ip route list default | awk {'print $5'}` | grep ether | awk '{print $2}'"] # local_mac_cmd = ["bash -lc ifconfig `ip route list default | awk {'print $5'}` | grep ether | awk '{print $2}'"]
local_mac = subprocess.Popen (local_mac_cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT).communicate()[0].strip() # local_mac_cmd = ["/sbin/ifconfig `ip route list default | sort -nk11 | head -1 | awk {'print $5'}` | grep ether | awk '{print $2}'"]
local_mac_cmd = ["/sbin/ifconfig `ip -o route get 1 | sed 's/^.*dev \\([^ ]*\\).*$/\\1/;q'` | grep ether | awk '{print $2}'"]
local_mac = subprocess.Popen (local_mac_cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT).communicate()[0].decode().strip()
local_ip_cmd = ["ip route list default | awk {'print $7'}"] # local_dev_cmd = ["ip -o route get 1 | sed 's/^.*dev \\([^ ]*\\).*$/\\1/;q'"]
local_ip = subprocess.Popen (local_ip_cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT).communicate()[0].strip() # local_dev = subprocess.Popen (local_dev_cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT).communicate()[0].decode().strip()
sql.execute ("INSERT INTO CurrentScan (cur_ScanCycle, cur_MAC, cur_IP, cur_Vendor, cur_ScanMethod) "+ # local_ip_cmd = ["ip route list default | awk {'print $7'}"]
"VALUES ( ?, ?, ?, Null, 'local_MAC') ", (cycle, local_mac, local_ip) ) local_ip_cmd = ["ip -o route get 1 | sed 's/^.*src \\([^ ]*\\).*$/\\1/;q'"]
local_ip = subprocess.Popen (local_ip_cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT).communicate()[0].decode().strip()
# Check if local mac has been detected with other methods
sql.execute ("SELECT COUNT(*) FROM CurrentScan WHERE cur_ScanCycle = ? AND cur_MAC = ? ", (cycle, local_mac) )
if sql.fetchone()[0] == 0 :
sql.execute ("INSERT INTO CurrentScan (cur_ScanCycle, cur_MAC, cur_IP, cur_Vendor, cur_ScanMethod) "+
"VALUES ( ?, ?, ?, Null, 'local_MAC') ", (cycle, local_mac, local_ip) )
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
def print_scan_stats (): def print_scan_stats ():

View File

@@ -1,3 +1,3 @@
VERSION = '3.00' VERSION = '3.02'
VERSION_YEAR = '2021' VERSION_YEAR = '2021'
VERSION_DATE = '2021-04-21' VERSION_DATE = '2021-04-24'

View File

@@ -16,11 +16,11 @@ Estimated time: 20'
## One-step Automated Install: ## One-step Automated Install:
<!--- --------------------------------------------------------------------- ---> <!--- --------------------------------------------------------------------- --->
`curl -sSL https://github.com/pucherot/Pi.Alert/raw/main/install/pialert_install.sh | bash` #### `curl -sSL https://github.com/pucherot/Pi.Alert/raw/main/install/pialert_install.sh | bash`
## One-step Automated Update: ## One-step Automated Update:
<!--- --------------------------------------------------------------------- ---> <!--- --------------------------------------------------------------------- --->
`curl -sSL https://github.com/pucherot/Pi.Alert/raw/main/install/pialert_update.sh | bash` #### `curl -sSL https://github.com/pucherot/Pi.Alert/raw/main/install/pialert_update.sh | bash`
## Uninstall process ## Uninstall process
<!--- --------------------------------------------------------------------- ---> <!--- --------------------------------------------------------------------- --->
@@ -93,7 +93,7 @@ Estimated time: 20'
``` ```
or this one if have severals interfaces or this one if have severals interfaces
``` ```
ip -o route get 1 | sed -n 's/.*src \([0-9.]\+\).*/\1/p' ip -o route get 1 | sed 's/^.*src \([^ ]*\).*$/\1/;q'
``` ```
- http://192.168.1.x/admin/ - http://192.168.1.x/admin/
@@ -108,7 +108,7 @@ Estimated time: 20'
``` ```
or this one if have severals interfaces or this one if have severals interfaces
``` ```
ip -o route get 1 | sed -n 's/.*src \([0-9.]\+\).*/\1/p' ip -o route get 1 | sed 's/^.*src \([^ ]*\).*$/\1/;q'
``` ```
- Pi-hole admin portal -> Local DNS -> DNS Records -> Add new domain /IP - Pi-hole admin portal -> Local DNS -> DNS Records -> Add new domain /IP
@@ -129,27 +129,37 @@ Estimated time: 20'
If you have installed Pi.hole, lighttpd and PHP are already installed and this If you have installed Pi.hole, lighttpd and PHP are already installed and this
block is not necessary block is not necessary
3.1 - Install lighttpd 3.1 - Install apt-utils
```
sudo apt-get install apt-utils -y
```
3.2 - Install lighttpd
``` ```
sudo apt-get install lighttpd -y sudo apt-get install lighttpd -y
``` ```
3.2 - If Pi.Alert will be the only site available in this webserver, you can 3.3 - If Pi.Alert will be the only site available in this webserver, you can
redirect the default server page to pialert subfolder redirect the default server page to pialert subfolder
``` ```
sudo mv /var/www/html/index.lighttpd.html /var/www/html/index.lighttpd.html.old sudo mv /var/www/html/index.lighttpd.html /var/www/html/index.lighttpd.html.old
sudo ln -s ~/pialert/install/index.html /var/www/html/index.html sudo ln -s ~/pialert/install/index.html /var/www/html/index.html
``` ```
3.3 - Install PHP 3.4 - Install PHP
``` ```
sudo apt-get install php php-cgi php-fpm php-sqlite3 -y sudo apt-get install php php-cgi php-fpm php-sqlite3 -y
``` ```
3.4 - Activate PHP 3.5 - Activate PHP
``` ```
sudo lighttpd-enable-mod fastcgi-php sudo lighttpd-enable-mod fastcgi-php
sudo /etc/init.d/lighttpd restart sudo service lighttpd restart
```
3.6 - Install sqlite3
```
sudo apt-get install sqlite3 -y
``` ```
@@ -161,9 +171,9 @@ block is not necessary
sudo arp-scan -l sudo arp-scan -l
``` ```
4.2 - Install dnsutils utility 4.2 - Install dnsutils & net-tools utilities
``` ```
sudo apt-get install dnsutils -y sudo apt-get install dnsutils net-tools -y
``` ```
4.3 - Test Python 4.3 - Test Python
@@ -235,9 +245,11 @@ block is not necessary
- If you want to use email reporting, configure this parameters - If you want to use email reporting, configure this parameters
```ini ```ini
REPORT_MAIL = True REPORT_MAIL = True
REPORT_TO = 'user@gmail.com'
SMTP_SERVER = 'smtp.gmail.com'
SMTP_PORT = 587
SMTP_USER = 'user@gmail.com' SMTP_USER = 'user@gmail.com'
SMTP_PASS = 'password' SMTP_PASS = 'password'
REPORT_TO = 'user@gmail.com'
``` ```
- If you want to update your Dynamic DNS, configure this parameters - If you want to update your Dynamic DNS, configure this parameters
@@ -303,7 +315,7 @@ block is not necessary
``` ```
or this one if have severals interfaces or this one if have severals interfaces
``` ```
ip -o route get 1 | sed -n 's/.*src \([0-9.]\+\).*/\1/p' ip -o route get 1 | sed 's/^.*src \([^ ]*\).*$/\1/;q'
``` ```
- Pi-hole admin portal -> Local DNS -> DNS Records -> Add new domain /IP - Pi-hole admin portal -> Local DNS -> DNS Records -> Add new domain /IP
- pi.alert 192.168.1.x - pi.alert 192.168.1.x

View File

@@ -5,7 +5,7 @@ Estimated time: 5'
## One-step Automated Uninstall: ## One-step Automated Uninstall:
<!--- --------------------------------------------------------------------- ---> <!--- --------------------------------------------------------------------- --->
`curl -sSL https://github.com/pucherot/Pi.Alert/raw/main/install/pialert_uninstall.sh | bash` #### `curl -sSL https://github.com/pucherot/Pi.Alert/raw/main/install/pialert_uninstall.sh | bash`
## Uninstallation process (step by step) ## Uninstallation process (step by step)
<!--- --------------------------------------------------------------------- ---> <!--- --------------------------------------------------------------------- --->

View File

@@ -14,10 +14,22 @@
| v2.50 | First public release | | v2.50 | First public release |
## Pi.Alert v3.02
<!--- --------------------------------------------------------------------- --->
**PENDING UPDATE DOC**
- Fixed: UNIQUE constraint failed with Local MAC #114
## Pi.Alert v3.01
<!--- --------------------------------------------------------------------- --->
**PENDING UPDATE DOC**
- Fixed: Problem with local MAC & IP (raspberry) #106
## Pi.Alert v3.00 ## Pi.Alert v3.00
<!--- --------------------------------------------------------------------- ---> <!--- --------------------------------------------------------------------- --->
**PENDING UPDATE DOC** **PENDING UPDATE DOC**
- `arp-scan` config options: interface, several subnets. #101 #15 - `arp-scan` config options: interface, several subnets. #101 #15
- Next/previos button while editing devices #66 #37 - Next/previos button while editing devices #66 #37
- Internet presence/sessions monitoring #63 - Internet presence/sessions monitoring #63
- Logical delete / archive / hide Device #93 - Logical delete / archive / hide Device #93

View File

@@ -519,7 +519,7 @@
var parEventsRows = 'Front_Details_Events_Rows'; var parEventsRows = 'Front_Details_Events_Rows';
var parEventsHide = 'Front_Details_Events_Hide'; var parEventsHide = 'Front_Details_Events_Hide';
var period = '1 month'; var period = '1 month';
var tab = '#panDetails' var tab = 'tabDetails'
var sessionsRows = 10; var sessionsRows = 10;
var eventsRows = 10; var eventsRows = 10;
var eventsHide = true; var eventsHide = true;
@@ -674,9 +674,9 @@ function initializeiCheck () {
activateSaveRestoreData(); activateSaveRestoreData();
// Ask skip notifications // Ask skip notifications
if (event.currentTarget.id == 'chkArchived' ) { // if (event.currentTarget.id == 'chkArchived' ) {
askSkipNotifications(); // askSkipNotifications();
} // }
} }
}); });
} }

View File

@@ -23,7 +23,8 @@
LOG="pialert_install_`date +"%Y-%m-%d_%H-%M"`.log" LOG="pialert_install_`date +"%Y-%m-%d_%H-%M"`.log"
MAIN_IP=`ip -o route get 1 | sed -n 's/.*src \([0-9.]\+\).*/\1/p'` # MAIN_IP=`ip -o route get 1 | sed -n 's/.*src \([0-9.]\+\).*/\1/p'`
MAIN_IP=`ip -o route get 1 | sed 's/^.*src \([^ ]*\).*$/\1/;q'`
PIHOLE_INSTALL=false PIHOLE_INSTALL=false
PIHOLE_ACTIVE=false PIHOLE_ACTIVE=false
@@ -311,6 +312,9 @@ add_pialert_DNS() {
install_lighttpd() { install_lighttpd() {
print_header "Lighttpd & PHP" print_header "Lighttpd & PHP"
print_msg "- Installing apt-utils..."
sudo apt-get install apt-utils -y 2>&1 >> "$LOG"
print_msg "- Installing lighttpd..." print_msg "- Installing lighttpd..."
sudo apt-get install lighttpd -y 2>&1 >> "$LOG" sudo apt-get install lighttpd -y 2>&1 >> "$LOG"
@@ -326,7 +330,11 @@ install_lighttpd() {
fi fi
print_msg "- Restarting lighttpd..." print_msg "- Restarting lighttpd..."
sudo /etc/init.d/lighttpd restart 2>&1 >> "$LOG" sudo service lighttpd restart 2>&1 >> "$LOG"
# sudo /etc/init.d/lighttpd restart 2>&1 >> "$LOG"
print_msg "- Installing sqlite3..."
sudo apt-get install sqlite3 -y 2>&1 >> "$LOG"
} }
@@ -342,8 +350,8 @@ install_arpscan() {
print_msg "- Testing arp-scan..." print_msg "- Testing arp-scan..."
sudo arp-scan -l | head -n -3 | tail +3 | tee -a "$LOG" sudo arp-scan -l | head -n -3 | tail +3 | tee -a "$LOG"
print_msg "- Installing dnsutils..." print_msg "- Installing dnsutils & net-tools..."
sudo apt-get install dnsutils -y 2>&1 >> "$LOG" sudo apt-get install dnsutils net-tools -y 2>&1 >> "$LOG"
} }
@@ -520,7 +528,7 @@ test_pialert() {
if $FIRST_SCAN_KNOWN ; then if $FIRST_SCAN_KNOWN ; then
echo "" echo ""
print_msg "- Set devices as Known devices..." print_msg "- Set devices as Known devices..."
sqlite3 $PIALERT_HOME/db/pialert.db "UPDATE Devices SET dev_NewDevice=0, dev_AlertEvents=0" 2>&1 >> "$LOG" sqlite3 $PIALERT_HOME/db/pialert.db "UPDATE Devices SET dev_NewDevice=0, dev_AlertEvents=0 WHERE dev_NewDevice=1" 2>&1 >> "$LOG"
fi fi
} }
@@ -573,7 +581,8 @@ publish_pialert() {
sudo ln -s ../conf-available/pialert_front.conf "$LIGHTTPD_CONF_DIR/conf-enabled/pialert_front.conf" 2>&1 >> "$LOG" sudo ln -s ../conf-available/pialert_front.conf "$LIGHTTPD_CONF_DIR/conf-enabled/pialert_front.conf" 2>&1 >> "$LOG"
print_msg "- Restarting lighttpd..." print_msg "- Restarting lighttpd..."
sudo /etc/init.d/lighttpd restart 2>&1 >> "$LOG" sudo sudo service lighttpd restart 2>&1 >> "$LOG"
# sudo /etc/init.d/lighttpd restart 2>&1 >> "$LOG"
} }
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------

View File

@@ -78,7 +78,7 @@ msgbox() {
END_DIALOG=false END_DIALOG=false
while ! $END_DIALOG ; do while ! $END_DIALOG ; do
whiptail --title "Pi.Alert Installation" --msgbox "$LINE1\\n\\n$LINE2" $ROWS $COLS whiptail --title "Pi.Alert Uninstallation" --msgbox "$LINE1\\n\\n$LINE2" $ROWS $COLS
BUTTON=$? BUTTON=$?
ask_cancel ask_cancel
ANSWER=true ANSWER=true
@@ -97,7 +97,7 @@ ask_yesno() {
END_DIALOG=false END_DIALOG=false
while ! $END_DIALOG ; do while ! $END_DIALOG ; do
whiptail --title "Pi.Alert Installation" --yesno $DEF_BUTTON "$LINE1\\n\\n$LINE2" $ROWS $COLS whiptail --title "Pi.Alert Uninstallation" --yesno $DEF_BUTTON "$LINE1\\n\\n$LINE2" $ROWS $COLS
BUTTON=$? BUTTON=$?
ask_cancel ask_cancel
done done
@@ -115,7 +115,7 @@ ask_option() {
END_DIALOG=false END_DIALOG=false
while ! $END_DIALOG ; do while ! $END_DIALOG ; do
ANSWER=$(whiptail --title "Pi.Alert Installation" --menu "$1" $ROWS $COLS "${MENU_ARGS[@]}" 3>&2 2>&1 1>&3 ) ANSWER=$(whiptail --title "Pi.Alert Uninstallation" --menu "$1" $ROWS $COLS "${MENU_ARGS[@]}" 3>&2 2>&1 1>&3 )
BUTTON=$? BUTTON=$?
ask_cancel CANCEL ask_cancel CANCEL
done done
@@ -127,7 +127,7 @@ ask_input() {
END_DIALOG=false END_DIALOG=false
while ! $END_DIALOG ; do while ! $END_DIALOG ; do
ANSWER=$(whiptail --title "Pi.Alert Installation" --inputbox "$LINE1\\n\\n$LINE2" $ROWS $COLS "$3" 3>&2 2>&1 1>&3 ) ANSWER=$(whiptail --title "Pi.Alert Uninstallation" --inputbox "$LINE1\\n\\n$LINE2" $ROWS $COLS "$3" 3>&2 2>&1 1>&3 )
BUTTON=$? BUTTON=$?
ask_cancel CANCEL ask_cancel CANCEL
@@ -139,16 +139,16 @@ ask_input() {
} }
ask_cancel() { ask_cancel() {
LINE0="Do you want to cancel the installation process" LINE0="Do you want to cancel the uninstallation process"
LINE0=$(printf "\n\n%*s" $(((${#LINE0}+$COLS-5)/2)) "$LINE0") LINE0=$(printf "\n\n%*s" $(((${#LINE0}+$COLS-5)/2)) "$LINE0")
if [ "$BUTTON" = "1" ] && [ "$1" = "CANCEL" ] ; then BUTTON="255"; fi if [ "$BUTTON" = "1" ] && [ "$1" = "CANCEL" ] ; then BUTTON="255"; fi
if [ "$BUTTON" = "255" ] ; then if [ "$BUTTON" = "255" ] ; then
whiptail --title "Pi.Alert Installation" --yesno --defaultno "$LINE0" $ROWS $COLS whiptail --title "Pi.Alert Uninstallation" --yesno --defaultno "$LINE0" $ROWS $COLS
if [ "$?" = "0" ] ; then if [ "$?" = "0" ] ; then
process_error "Installation Aborted by User" process_error "Uninstallation Aborted by User"
fi fi
else else
END_DIALOG=true END_DIALOG=true

View File

@@ -35,6 +35,7 @@ main() {
move_files move_files
clean_files clean_files
check_packages
download_pialert download_pialert
update_config update_config
update_db update_db
@@ -86,6 +87,21 @@ clean_files() {
rm -r "$PIALERT_HOME/"*.md 2>/dev/null || : rm -r "$PIALERT_HOME/"*.md 2>/dev/null || :
} }
# ------------------------------------------------------------------------------
# Check packages
# ------------------------------------------------------------------------------
check_packages() {
print_msg "- Checking package apt-utils..."
sudo apt-get install apt-utils -y 2>&1 >> "$LOG"
print_msg "- Checking package sqlite3..."
sudo apt-get install sqlite3 -y 2>&1 >> "$LOG"
print_msg "- Checking packages dnsutils & net-tools..."
sudo apt-get install dnsutils net-tools -y 2>&1 >> "$LOG"
}
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
# Download and uncompress Pi.Alert # Download and uncompress Pi.Alert
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------

View File

@@ -8,12 +8,10 @@
# Puche 2021 pi.alert.application@gmail.com GNU GPLv3 # Puche 2021 pi.alert.application@gmail.com GNU GPLv3
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
PIALERT_VERSION=`awk '$1=="VERSION" { print $3 }' ../config/version.conf | tr -d \'`
PIALERT_DEV_PATH=/media/WD_4TB/dev PIALERT_DEV_PATH=/media/WD_4TB/dev
# ------------------------------------------------------------------------------
cd $PIALERT_DEV_PATH cd $PIALERT_DEV_PATH
pwd pwd
PIALERT_VERSION=`awk '$1=="VERSION" { print $3 }' pialert/config/version.conf | tr -d \'`
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
ls -l pialert/tar/pialert*.tar ls -l pialert/tar/pialert*.tar

Binary file not shown.