diff --git a/README.md b/README.md index 5d1c5b2c..85adf168 100644 --- a/README.md +++ b/README.md @@ -79,9 +79,13 @@ Linux distributions. - [Device Management instructions](docs/DEVICE_MANAGEMENT.md) + ## Other useful info +### Versions History + - [Versions History](docs/VERSIONS_HISTORY.md) + ### Powered by: | Product | Objetive | | ------------ | -------------------------------------- | diff --git a/back/pialert.py b/back/pialert.py index 93af5afa..7b4209d7 100644 --- a/back/pialert.py +++ b/back/pialert.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # #------------------------------------------------------------------------------- -# Pi.Alert v2.56 / 2021-01-15 +# Pi.Alert v2.60 / 2021-01-20 # Open Source Network Guard / WIFI & LAN intrusion detector # # pialert.py - Back module. Network scanner @@ -32,11 +32,15 @@ import csv #=============================================================================== # CONFIG CONSTANTS #=============================================================================== -PIALERT_PATH = os.path.dirname(os.path.abspath(__file__)) +PIALERT_BACK_PATH = os.path.dirname(os.path.abspath(__file__)) +PIALERT_PATH = PIALERT_BACK_PATH + "/.." + if (sys.version_info > (3,0)): - exec(open(PIALERT_PATH + "/pialert.conf").read()) + exec(open(PIALERT_PATH + "/config/version.conf").read()) + exec(open(PIALERT_PATH + "/config/pialert.conf").read()) else: - execfile (PIALERT_PATH + "/pialert.conf") + execfile (PIALERT_PATH + "/config/version.conf") + execfile (PIALERT_PATH + "/config/pialert.conf") #=============================================================================== @@ -54,7 +58,6 @@ def main (): print ('---------------------------------------------------------') # Initialize global variables - # PIALERT_PATH = os.path.dirname(os.path.abspath(__file__)) log_timestamp = datetime.datetime.now() # DB @@ -254,7 +257,7 @@ def update_devices_MAC_vendors (): # Update vendors DB (iab oui) print ('\nUpdating vendors DB (iab & oui)...') - update_args = ['sh', PIALERT_PATH + '/vendors_db_update.sh'] + update_args = ['sh', PIALERT_BACK_PATH + '/vendors_db_update.sh'] update_output = subprocess.check_output (update_args) # DEBUG # update_args = ['./vendors_db_update.sh'] @@ -1049,12 +1052,12 @@ def email_reporting (): openDB() # Open text Template - template_file = open(PIALERT_PATH + '/report_template.txt', 'r') + template_file = open(PIALERT_BACK_PATH + '/report_template.txt', 'r') mail_text = template_file.read() template_file.close() # Open html Template - template_file = open(PIALERT_PATH + '/report_template.html', 'r') + template_file = open(PIALERT_BACK_PATH + '/report_template.html', 'r') mail_html = template_file.read() template_file.close() @@ -1099,7 +1102,7 @@ def email_reporting (): eventAlert['eve_EventType'], eventAlert['eve_DateTime'], eventAlert['eve_IP'], eventAlert['eve_AdditionalInfo']) mail_html_Internet += html_line_template.format ( - PA_FRONT_URL, eventAlert['eve_MAC'], + REPORT_DEVICE_URL, eventAlert['eve_MAC'], eventAlert['eve_EventType'], eventAlert['eve_DateTime'], eventAlert['eve_IP'], eventAlert['eve_AdditionalInfo']) @@ -1127,7 +1130,7 @@ def email_reporting (): eventAlert['eve_IP'], eventAlert['dev_Name'], eventAlert['eve_AdditionalInfo']) mail_html_new_devices += html_line_template.format ( - PA_FRONT_URL, eventAlert['eve_MAC'], eventAlert['eve_MAC'], + REPORT_DEVICE_URL, eventAlert['eve_MAC'], eventAlert['eve_MAC'], eventAlert['eve_DateTime'], eventAlert['eve_IP'], eventAlert['dev_Name'], eventAlert['eve_AdditionalInfo']) @@ -1154,7 +1157,7 @@ def email_reporting (): eventAlert['eve_MAC'], eventAlert['eve_DateTime'], eventAlert['eve_IP'], eventAlert['dev_Name']) mail_html_devices_down += html_line_template.format ( - PA_FRONT_URL, eventAlert['eve_MAC'], eventAlert['eve_MAC'], + REPORT_DEVICE_URL, eventAlert['eve_MAC'], eventAlert['eve_MAC'], eventAlert['eve_DateTime'], eventAlert['eve_IP'], eventAlert['dev_Name']) @@ -1184,7 +1187,7 @@ def email_reporting (): eventAlert['eve_IP'], eventAlert['eve_EventType'], eventAlert['dev_Name'], eventAlert['eve_AdditionalInfo']) mail_html_events += html_line_template.format ( - PA_FRONT_URL, eventAlert['eve_MAC'], eventAlert['eve_MAC'], + REPORT_DEVICE_URL, eventAlert['eve_MAC'], eventAlert['eve_MAC'], eventAlert['eve_DateTime'], eventAlert['eve_IP'], eventAlert['eve_EventType'], eventAlert['dev_Name'], eventAlert['eve_AdditionalInfo']) diff --git a/back/pialert.conf b/config/pialert.conf similarity index 81% rename from back/pialert.conf rename to config/pialert.conf index 6df0ed41..68b7e5f3 100644 --- a/back/pialert.conf +++ b/config/pialert.conf @@ -1,5 +1,5 @@ #------------------------------------------------------------------------------- -# Pi.Alert v2.56 / 2021-01-15 +# Pi.Alert # Open Source Network Guard / WIFI & LAN intrusion detector # # pialert.conf - Back module. Configuration file @@ -7,14 +7,10 @@ # Puche 2021 pi.alert.application@gmail.com GNU GPLv3 #------------------------------------------------------------------------------- -VERSION = '2.56' -VERSION_YEAR = '2021' -VERSION_DATE = '2021-01-15' - -DB_PATH = '/home/pi/pialert/db/pialert.db' -LOG_PATH = '/home/pi/pialert/log' +PIALERT_PATH = '/home/pi/pialert' +DB_PATH = PIALERT_PATH + '/db/pialert.db' +LOG_PATH = PIALERT_PATH + '/log' VENDORS_DB = '/usr/share/arp-scan/ieee-oui.txt' -PA_FRONT_URL = 'http://pi.alert/deviceDetails.php?mac=' PRINT_LOG = False SMTP_SERVER = 'smtp.gmail.com' @@ -25,6 +21,7 @@ SMTP_PASS = 'password' REPORT_MAIL = False REPORT_FROM = 'Pi.Alert <' + SMTP_USER +'>' REPORT_TO = 'user@gmail.com' +REPORT_DEVICE_URL = 'http://pi.alert/deviceDetails.php?mac=' # QUERY_MYIP_SERVER = 'https://diagnostic.opendns.com/myip' QUERY_MYIP_SERVER = 'http://ipv4.icanhazip.com' diff --git a/config/version.conf b/config/version.conf new file mode 100644 index 00000000..561a2fb5 --- /dev/null +++ b/config/version.conf @@ -0,0 +1,3 @@ +VERSION = '2.60' +VERSION_YEAR = '2021' +VERSION_DATE = '2021-01-20' diff --git a/docs/INSTALL.md b/docs/INSTALL.md index 7ba93ec2..0b7d9b35 100644 --- a/docs/INSTALL.md +++ b/docs/INSTALL.md @@ -77,11 +77,14 @@ Estimated time: 20' ``` 2.5 - Connect to web admin panel + ``` + hostname -I + ``` - http://192.168.1.x/admin/ - (*replace 192.168.1.x with your Raspberry IP*) 2.6 - Activate DHCP server - - Pi-hole -> Settings -> DHCP -> Mark "DHCP server enabled" + - Pi-hole admin portal -> Settings -> DHCP -> Mark "DHCP server enabled" 2.7 - Add pi.alert DNS Record ``` @@ -114,7 +117,7 @@ block is not necessary the default server page to pialert subfolder ``` sudo mv /var/www/html/index.lighttpd.html /var/www/html/index.lighttpd.html.old - sudo ln -s /home/pi/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 @@ -144,17 +147,29 @@ block is not necessary python -V ``` -4.3 - If python is not installed in your system, you can install it with this + New versions of Ubuntu includes Python 3. You can choose between use `python3` + command or to install Python 2 (that includes `python` command). + If you prefer to use Python 3, in the next installation block, you must update + `pialert.cron` file with the correct command: `python3` instead of `python`. + ``` + python3 -V + ``` + +4.3 - If Python is not installed in your system, you can install it with this command: ``` sudo apt-get install python ``` - + Or this one if you prefer Python 3: + ``` + sudo apt-get install python3 + ``` ## Pi.Alert 5.1 - Download Pi.Alert and uncompress ``` + cd curl -LO https://github.com/pucherot/Pi.Alert/raw/main/tar/pialert_latest.tar tar xvf pialert_latest.tar rm pialert_latest.tar @@ -162,14 +177,15 @@ block is not necessary 5.2 - Public the front portal ``` - sudo ln -s /home/pi/pialert/front /var/www/html/pialert + sudo ln -s ~/pialert/front /var/www/html/pialert ``` -5.3 - If you have configured your DNS server (Pi.hole or other) to resolve - the pi.alert to your raspberry, youy must configure lighttpd to redirect - these requests to the correct pialert web folder +5.3 - Configure web server redirection + If you have configured your DNS server (Pi.hole or other) to resolve pi.alert + to your raspberry, youy must configure lighttpd to redirect these requests to + the correct pialert web folder ``` - sudo cp pialert/install/pialert_front.conf /etc/lighttpd/conf-available + sudo cp ~/pialert/install/pialert_front.conf /etc/lighttpd/conf-available sudo ln -s ../conf-available/pialert_front.conf /etc/lighttpd/conf-enabled/pialert_front.conf sudo /etc/init.d/lighttpd restart ``` @@ -183,13 +199,14 @@ block is not necessary 5.5 - Config Pialert parameters ``` - nano ~/pialert/back/pialert.conf + sed -i "s,'/home/pi/pialert','$HOME/pialert'," ~/pialert/config/pialert.conf + nano ~/pialert/config/pialert.conf ``` - If you want to use email reporting, configure this parameters ```ini REPORT_MAIL = True SMTP_USER = 'user@gmail.com' - SMTP_PASS = 'password' + SMTP_PASS = 'password' vi REPORT_TO = 'user@gmail.com' ``` @@ -212,26 +229,43 @@ block is not necessary ``` python ~/pialert/back/pialert.py update_vendors ``` + or + ``` + python3 ~/pialert/back/pialert.py update_vendors + ``` 5.7 - Test Pi.Alert Scan ``` python ~/pialert/back/pialert.py internet_IP python ~/pialert/back/pialert.py 1 ``` - -5.8 - Add crontab jobs + or ``` - (crontab -l 2>/dev/null; cat ~/pialert/back/pialert.cron) | crontab - + python3 ~/pialert/back/pialert.py internet_IP + python3 ~/pialert/back/pialert.py 1 ``` -5.9 - Add permissions to the web-server user +5.8 - Update crontab template with python3 + If you prefer to use Python 3 (installed in the previous block), you must + update `pialert.cron` file with the correct command: `python3` instead of + `python` + ``` + sed -i 's/python/python3/g' ~/pialert/install/pialert.cron + ``` + +5.9 - Add crontab jobs + ``` + (crontab -l 2>/dev/null; cat ~/pialert/install/pialert.cron) | crontab - + ``` + +5.10 - Add permissions to the web-server user ``` sudo chgrp -R www-data ~/pialert/db chmod -R 770 ~/pialert/db ``` -5.10 - Check DNS record for pi.alert (explained in point 2.7 of Pi.hole - installation) +5.11 - Check DNS record for pi.alert (explained in point 2.7 of Pi.hole + installation) - Add pi.alert DNS Record ``` hostname -I @@ -240,7 +274,7 @@ block is not necessary - pi.alert 192.168.1.x - (*replace 192.168.1.x with your Raspberry IP*) -5.11 - Use admin panel to configure the devices +5.12 - Use admin panel to configure the devices - http://pi.alert/ - http://192.168.1.x/pialert/ - (*replace 192.168.1.x with your Raspberry IP*) diff --git a/docs/VERSIONS_HISTORY.md b/docs/VERSIONS_HISTORY.md new file mode 100644 index 00000000..237f16ee --- /dev/null +++ b/docs/VERSIONS_HISTORY.md @@ -0,0 +1,28 @@ +# Pi.Alert Version History + + + | Version | Description | + | ------- | --------------------------------------------------------------- | + | v2.60 | Improved the compability of installation process (Ubuntu) | + | v2.56 | Bug fixing | + | v2.55 | Bug fixing | + | v2.52 | Bug fixing | + | v2.51 | Bug fixing | + | v2.50 | First public release | + + +## Pi.Alert v2.60 + + - `pialert.conf` moved from back to config folder + - `pialert.conf` splitted in two files: `pialert.conf` and `version.conf` + - Added compatibility with Python 3 (default version in Ubuntu) + - Added compatibility in the Installation guide with Ubuntu server + - Eliminated some unnecessary packages from the installation + + +### License + GPL 3.0 + [Read more here](../LICENSE.txt) + +### Contact + pi.alert.application@gmail.com diff --git a/front/img/backgroud.png b/front/img/background.png similarity index 100% rename from front/img/backgroud.png rename to front/img/background.png diff --git a/front/php/templates/footer.php b/front/php/templates/footer.php index 17efec20..1ef34db2 100644 --- a/front/php/templates/footer.php +++ b/front/php/templates/footer.php @@ -15,7 +15,7 @@ © 2020 Puche --> © '. $conf_data['VERSION_YEAR'] .' Puche'; ?> @@ -27,7 +27,7 @@ Pi.Alert  2.50  (2019-12-30) --> ('. $conf_data['VERSION_DATE'] .')'; ?> diff --git a/front/php/templates/header.php b/front/php/templates/header.php index c3c9087a..d1cbee52 100644 --- a/front/php/templates/header.php +++ b/front/php/templates/header.php @@ -49,7 +49,7 @@ -
+