Merge pull request #56 from SteveClement/master

Fixed pathing for config.cfg and ranking.cfg
pull/65/head
Steve Clement 2018-04-06 23:47:19 +02:00 committed by GitHub
commit 8ea5d01260
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 1782 additions and 69 deletions

View File

@ -1,7 +1,6 @@
# MISP-Dashboard # MISP-Dashboard
An experimental dashboard showing live data and statistics from the ZMQ of one or more MISP instances. An experimental dashboard showing live data and statistics from the ZMQ of one or more MISP instances.
# Installation # Installation
- Launch ```./install_dependencies.sh``` from the MISP-Dashboard directory - Launch ```./install_dependencies.sh``` from the MISP-Dashboard directory
- Update the configuration file ```config.cfg``` so that it matches your system - Update the configuration file ```config.cfg``` so that it matches your system
@ -38,8 +37,7 @@ OSError: [Errno 26] Text file busy: '/home/steve/code/misp-dashboard/DASHENV/bin
``` ```
# Starting the System # Starting the System
:warning: You do not need to run it as root. Normal privileges are fine.
/!\ You do not need to run it as root. Normal privileges are fine.
- Be sure to have a running redis server - Be sure to have a running redis server
- e.g. ```redis-server --port 6250``` - e.g. ```redis-server --port 6250```
@ -201,6 +199,9 @@ Images and logos are handmade for:
Note that: Note that:
- Part of ```MISPHonorableIcons/1.svg``` comes from [octicons.github.com](https://octicons.github.com/icon/git-pull-request/) (CC0 - No Rights Reserved) - Part of ```MISPHonorableIcons/1.svg``` comes from [octicons.github.com](https://octicons.github.com/icon/git-pull-request/) (CC0 - No Rights Reserved)
- Part of ```MISPHonorableIcons/2.svg``` comes from [Zeptozephyr](https://zeptozephyr.deviantart.com/art/Vectored-Portal-Icons-207347804) (CC0 - No Rights Reserved) - Part of ```MISPHonorableIcons/2.svg``` comes from [Zeptozephyr](https://zeptozephyr.deviantart.com/art/Vectored-Portal-Icons-207347804) (CC0 - No Rights Reserved)
- Part of ```MISPHonorableIcons/3.svg``` comes from [octicons.github.com](https://octicons.github.com/icon/git-pull-request/) (CC0 - No Rights Reserved)
- Part of ```MISPHonorableIcons/4.svg``` comes from [Zeptozephyr](https://zeptozephyr.deviantart.com/art/Vectored-Portal-Icons-207347804) & [octicons.github.com](https://octicons.github.com/icon/git-pull-request/) (CC0 - No Rights Reserved)
- Part of ```MISPHonorableIcons/5.svg``` comes from [Zeptozephyr](https://zeptozephyr.deviantart.com/art/Vectored-Portal-Icons-207347804) & [octicons.github.com](https://octicons.github.com/icon/git-pull-request/) (CC0 - No Rights Reserved)
``` ```
Copyright (C) 2017 CIRCL - Computer Incident Response Center Luxembourg (c/o smile, security made in Lëtzebuerg, Groupement d'Intérêt Economique) Copyright (C) 2017 CIRCL - Computer Incident Response Center Luxembourg (c/o smile, security made in Lëtzebuerg, Groupement d'Intérêt Economique)

View File

@ -9,7 +9,7 @@ import util
import contributor_helper import contributor_helper
ONE_DAY = 60*60*24 ONE_DAY = 60*60*24
configfile = os.path.join(os.environ['DASH_CONFIG'], 'config.cfg') configfile = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'config/config.cfg')
cfg = configparser.ConfigParser() cfg = configparser.ConfigParser()
cfg.read(configfile) cfg.read(configfile)
serv_log = redis.StrictRedis( serv_log = redis.StrictRedis(

View File

@ -23,7 +23,7 @@ class Contributor_helper:
db=cfg.getint('RedisLog', 'db')) db=cfg.getint('RedisLog', 'db'))
self.cfg = cfg self.cfg = cfg
self.cfg_org_rank = configparser.ConfigParser() self.cfg_org_rank = configparser.ConfigParser()
self.cfg_org_rank.read(os.path.join(os.environ['DASH_CONFIG'], 'ranking.cfg')) self.cfg_org_rank.read(os.path.join(os.path.dirname(os.path.realpath(__file__)), '../config/ranking.cfg'))
self.CHANNEL_LASTAWARDS = cfg.get('RedisLog', 'channelLastAwards') self.CHANNEL_LASTAWARDS = cfg.get('RedisLog', 'channelLastAwards')
self.CHANNEL_LASTCONTRIB = cfg.get('RedisLog', 'channelLastContributor') self.CHANNEL_LASTCONTRIB = cfg.get('RedisLog', 'channelLastContributor')
self.users_helper = users_helper.Users_helper(serv_redis_db, cfg) self.users_helper = users_helper.Users_helper(serv_redis_db, cfg)

View File

@ -8,9 +8,6 @@ sudo apt-get install python3-virtualenv virtualenv screen redis-server unzip -y
if [ -z "$VIRTUAL_ENV" ]; then if [ -z "$VIRTUAL_ENV" ]; then
virtualenv -p python3 DASHENV virtualenv -p python3 DASHENV
echo export DASH_HOME=$(pwd) >> ./DASHENV/bin/activate
echo export DASH_CONFIG=$(pwd)/config/ >> ./DASHENV/bin/activate
. ./DASHENV/bin/activate . ./DASHENV/bin/activate
fi fi
@ -27,6 +24,9 @@ if [ -e "config/config.cfg" ]; then
fi fi
else else
cp -i config/config.cfg.default config/config.cfg cp -i config/config.cfg.default config/config.cfg
echo "Sanitizing MaxMindDB Path"
sed -i "s|pathMaxMindDB=./data/GeoLite2-City/GeoLite2-City.mmdb|pathMaxMindDB=$PWD/data/GeoLite2-City/GeoLite2-City.mmdb|" config/config.cfg
sed -i "s|path_countrycode_to_coord_JSON=./data/country_code_lat_long.json|path_countrycode_to_coord_JSON=$PWD/data/country_code_lat_long.json|" config/config.cfg
fi fi
## Web stuff ## Web stuff

View File

@ -1,4 +1,4 @@
import sys,os,os.path import sys,os,os.path
sys.path.insert(0, os.path.dirname(__file__)) sys.path.insert(0, os.path.dirname(__file__))
os.environ["DASH_CONFIG"] = os.path.join(os.path.dirname(__file__), "config") os.environ["DASH_CONFIG"] = os.path.join(os.path.realpath(__file__), "config")
from server import app as application from server import app as application

6
run.sh
View File

@ -1,6 +0,0 @@
. ./DASHENV/bin/activate
./zmq_subscriber.py &
./zmq_dispatcher.py &
export FLASK_DEBUG=1
export FLASK_APP=server.py
flask run --host=0.0.0.0 --port=8001

View File

@ -16,7 +16,7 @@ from helpers import contributor_helper
from helpers import users_helper from helpers import users_helper
from helpers import trendings_helper from helpers import trendings_helper
configfile = os.path.join(os.environ['DASH_CONFIG'], 'config.cfg') configfile = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'config/config.cfg')
cfg = configparser.ConfigParser() cfg = configparser.ConfigParser()
cfg.read(configfile) cfg.read(configfile)

View File

@ -1,40 +1,68 @@
#!/bin/bash #!/usr/bin/env bash
set -e
set -x set -x
GREEN="\\033[1;32m" GREEN="\\033[1;32m"
DEFAULT="\\033[0;39m" DEFAULT="\\033[0;39m"
RED="\\033[1;31m" RED="\\033[1;31m"
[ -z "$DASH_HOME" ] && echo "Needs the env var DASHENV. (Did you: . ./DASHENV/bin/activate ) Please run the script from the virtual environment." && exit 1; # Getting CWD where bash script resides
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
DASH_HOME="${DIR}"
redis_dir="${DASH_HOME}/../redis/src/" cd ${DASH_HOME}
if [ ! -e "${redis_dir}" ]; then
[ ! -f "`which redis-server`" ] && echo "Either ${DASH_HOME}/../redis/src/ does not exist or 'redis-server' is not installed/not on PATH. Please fix and run again." && exit 1 if [ -e "${DIR}/DASHENV/bin/python" ]; then
redis_dir="" echo "dashboard virtualenv seems to exist, good"
ENV_PY="${DIR}/DASHENV/bin/python"
else
echo "Please make sure you have a dashboard environment, au revoir"
exit 1
fi fi
[ ! -f "`which redis-server`" ] && echo "'redis-server' is not installed/not on PATH. Please fix and run again." && exit 1
netstat -an |grep LISTEN |grep 6250 |grep -v tcp6 ; check_redis_port=$?
netstat -an |grep LISTEN |grep 8001 |grep -v tcp6 ; check_dashboard_port=$?
ps auxw |grep zmq_subscriber.py |grep -v grep ; check_zmq_subscriber=$?
ps auxw |grep zmq_dispatcher.py |grep -v grep ; check_zmq_dispatcher=$?
# Configure accordingly, remember: 0.0.0.0 exposes to every active IP interface, play safe and bind it to something you trust and know # Configure accordingly, remember: 0.0.0.0 exposes to every active IP interface, play safe and bind it to something you trust and know
export FLASK_APP=server.py export FLASK_APP=server.py
export FLASK_DEBUG=0 export FLASK_DEBUG=0
export FLASK_PORT=8001 export FLASK_PORT=8001
export FLASK_HOST=127.0.0.1 export FLASK_HOST=127.0.0.1
conf_dir="${DASH_HOME}/config/" conf_dir="config/"
screenName="Misp-Dashboard"
screen -dmS "$screenName"
sleep 0.1 sleep 0.1
echo -e $GREEN"\t* Launching Redis servers"$DEFAULT if [ "${check_redis_port}" == "1" ]; then
screen -S "$screenName" -X screen -t "redis-server" bash -c $redis_dir'redis-server '$conf_dir'6250.conf && echo "Started Redis" ; read x' echo -e $GREEN"\t* Launching Redis servers"$DEFAULT
redis-server ${conf_dir}6250.conf &
else
echo -e $RED"\t* NOT starting Redis server, made a very unrealiable check on port 6250, and something seems to be there… please double check if this is good!"$DEFAULT
fi
echo -e $GREEN"\t* Launching zmq subscriber"$DEFAULT sleep 0.1
screen -S "$screenName" -X screen -t "zmq-subscriber" bash -c 'echo "Starting zmq-subscriber" ; ./zmq_subscriber.py; read x' if [ "${check_zmq_subscriber}" == "1" ]; then
echo -e $GREEN"\t* Launching zmq subscriber"$DEFAULT
${ENV_PY} ./zmq_subscriber.py &
else
echo -e $RED"\t* NOT starting zmq subscriber, made a rather unrealiable ps -auxw | grep for zmq_subscriber.py, and something seems to be there… please double check if this is good!"$DEFAULT
fi
echo -e $GREEN"\t* Launching zmq dispatcher"$DEFAULT sleep 0.1
screen -S "$screenName" -X screen -t "zmq-dispatcher" bash -c 'echo "Starting zmq-dispatcher"; ./zmq_dispatcher.py; read x' if [ "${check_zmq_dispatcher}" == "1" ]; then
echo -e $GREEN"\t* Launching zmq dispatcher"$DEFAULT
${ENV_PY} ./zmq_dispatcher.py &
else
echo -e $RED"\t* NOT starting zmq dispatcher, made a rather unrealiable ps -auxw | grep for zmq_dispatcher.py, and something seems to be there… please double check if this is good!"$DEFAULT
fi
echo -e $GREEN"\t* Launching flask server"$DEFAULT sleep 0.1
screen -S "$screenName" -X screen -t "flask" bash -c 'echo "Starting Flask Server"; flask run --host=${FLASK_HOST} --port=${FLASK_PORT}; read x' if [ "${check_dashboard_port}" == "1" ]; then
echo -e $GREEN"\t* Launching flask server"$DEFAULT
${ENV_PY} ./server.py &
else
echo -e $RED"\t* NOT starting flask server, made a very unrealiable check on port 8001, and something seems to be there… please double check if this is good!"$DEFAULT
fi

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 150 KiB

View File

@ -6,7 +6,8 @@ GREEN="\\033[1;32m"
DEFAULT="\\033[0;39m" DEFAULT="\\033[0;39m"
RED="\\033[1;31m" RED="\\033[1;31m"
[ -z "$DASH_HOME" ] && echo "Needs the env var DASHENV. Run the script from the virtual environment." && exit 1; DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
DASH_HOME="${DIR}/.."
conf_dir="${DASH_HOME}/config/" conf_dir="${DASH_HOME}/config/"
redis_dir="${DASH_HOME}/../redis/src/" redis_dir="${DASH_HOME}/../redis/src/"

View File

@ -6,7 +6,9 @@ GREEN="\\033[1;32m"
DEFAULT="\\033[0;39m" DEFAULT="\\033[0;39m"
RED="\\033[1;31m" RED="\\033[1;31m"
[ -z "$DASH_HOME" ] && echo "Needs the env var DASHENV. Run the script from the virtual environment." && exit 1; DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
DASH_HOME="${DIR}/..
conf_dir="${DASH_HOME}/config/" conf_dir="${DASH_HOME}/config/"
redis_dir="${DASH_HOME}/../redis/src/" redis_dir="${DASH_HOME}/../redis/src/"

View File

@ -1,6 +1,8 @@
#!/bin/bash #!/bin/bash
set -e set -e
[ -z "$DASH_HOME" ] && echo "Needs the env var DASHENV. Run the script from the virtual environment." && exit 1; DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
DASH_HOME="${DIR}/.."
./start_framework.sh ./start_framework.sh
# Wait a bit that redis terminate # Wait a bit that redis terminate

View File

@ -18,7 +18,7 @@ from helpers import contributor_helper
from helpers import users_helper from helpers import users_helper
from helpers import trendings_helper from helpers import trendings_helper
configfile = os.path.join(os.environ['DASH_CONFIG'], 'config.cfg') configfile = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'config/config.cfg')
cfg = configparser.ConfigParser() cfg = configparser.ConfigParser()
cfg.read(configfile) cfg.read(configfile)

View File

@ -10,7 +10,7 @@ import os
import sys import sys
import json import json
configfile = os.path.join(os.environ['DASH_CONFIG'], 'config.cfg') configfile = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'config/config.cfg')
cfg = configparser.ConfigParser() cfg = configparser.ConfigParser()
cfg.read(configfile) cfg.read(configfile)
logDir = cfg.get('Log', 'directory') logDir = cfg.get('Log', 'directory')