예제 #1
0
def then_json_sensor_interfaces (context):
    interfaces = json.loads(context.result.getvalue())
    ifaces = interfaces['data']['interfaces']
    setup = AVOssimSetupConfigHandler (logfile="/dev/null")
    if_setup =  setup.get_sensor_interfaces_list()
    #Compare
    assert_equal(set(if_setup).issubset (set (ifaces)), True,"The API list %s not equals to the file list %s" % (str(ifaces),str(if_setup)))
예제 #2
0
def then_verify_sensor_key (context,var_setup_key,var_sensor,var_value):
    tempdir =  tempfile.mkdtemp (suffix =".behave")
    u = uuid.UUID(context.alienvault[var_sensor])
    try:
        dbsensor = db.session.query(Sensor).filter (Sensor.id == u.bytes).one()
        ip_sensor = dbsensor.ip
        config = ConfigParser()
        assert config.read ("/etc/ansible/ansible.cfg")[0] == "/etc/ansible/ansible.cfg", "Can\'t load ansible.cfg file"
        sshkey = config.get("defaults","private_key_file")
        ssh = paramiko.SSHClient()
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        ssh.connect (ip_sensor,username="******",key_filename=sshkey)
        t = ssh.get_transport()
        sftp = paramiko.SFTPClient.from_transport(t)
        tempconf = os.path.join (tempdir,"ossim_setup.conf")
        sftp.get ("/etc/ossim/ossim_setup.conf",tempconf)
        ssh.close() 
        cfg =  AVOssimSetupConfigHandler (filename=tempconf,logfile="/dev/null")
        if var_setup_key == "[sensor]/sensor_ctx":
            sctx  = cfg.get_sensor_ctx()
            assert sctx == context.alienvault[var_value]
        else:
            assert False,"Unknow ket %s" % var_setup_key

    except OSError,msg:
        assert False,"I/O Error: %s" % str(msg)
예제 #3
0
def get_engine(database='all'):
    global engines
    if engines == {}:
        from avconfig.ossimsetupconfig import AVOssimSetupConfigHandler
        config_file = "/etc/ossim/ossim_setup.conf"
        ossim_setup = AVOssimSetupConfigHandler(config_file)

        uri = "mysql://%s:%s@%s/" % (ossim_setup.get_database_user(),
                                     ossim_setup.get_database_pass(),
                                     ossim_setup.get_database_db_ip())

        kwargs = {
            'echo': False,
            'poolclass': NullPool,
            'connect_args': {
                'cursorclass': MySQLdb.cursors.SSCursor
            }
        }

        engines = {
            'alienvault': create_engine(uri + 'alienvault', **kwargs),
            'alienvault_siem': create_engine(uri + 'alienvault_siem',
                                             **kwargs),
            'avcenter': create_engine(uri + 'avcenter', **kwargs),
            'alienvault_api': create_engine(uri + 'alienvault_api', **kwargs)
        }

    if database == 'all':
        return engines

    return engines.get(database)
예제 #4
0
def get_engine(database='any'):
    global engines
    if engines == {}:
        from avconfig.ossimsetupconfig import AVOssimSetupConfigHandler
        config_file = "/etc/ossim/ossim_setup.conf"
        ossim_setup = AVOssimSetupConfigHandler(config_file)

        uri = "mysql://%s:%s@%s/" % (ossim_setup.get_database_user(),
                                     ossim_setup.get_database_pass(),
                                     ossim_setup.get_database_db_ip())

        kwargs = {'echo': False,
                  'poolclass': NullPool,
                  'pool_reset_on_return': None,
                  'connect_args': {'cursorclass': MySQLdb.cursors.SSCursor, 'autocommit': True}}

        engines = {'alienvault': create_engine(uri + 'alienvault', **kwargs),
                   'alienvault_siem': create_engine(uri + 'alienvault_siem', **kwargs),
                   'alienvault_api': create_engine(uri + 'alienvault_api', **kwargs)}

    if database == 'any':
        # Return any engine, as it is not really needed to specify one.
        return engines.get('alienvault')

    return engines.get(database)
예제 #5
0
def then_verify_sensor_key(context, var_setup_key, var_sensor, var_value):
    tempdir = tempfile.mkdtemp(suffix=".behave")
    u = uuid.UUID(context.alienvault[var_sensor])
    try:
        dbsensor = db.session.query(Sensor).filter(Sensor.id == u.bytes).one()
        ip_sensor = dbsensor.ip
        config = ConfigParser()
        assert config.read("/etc/ansible/ansible.cfg")[
            0] == "/etc/ansible/ansible.cfg", "Can\'t load ansible.cfg file"
        sshkey = config.get("defaults", "private_key_file")
        ssh = paramiko.SSHClient()
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        ssh.connect(ip_sensor, username="******", key_filename=sshkey)
        t = ssh.get_transport()
        sftp = paramiko.SFTPClient.from_transport(t)
        tempconf = os.path.join(tempdir, "ossim_setup.conf")
        sftp.get("/etc/ossim/ossim_setup.conf", tempconf)
        ssh.close()
        cfg = AVOssimSetupConfigHandler(filename=tempconf, logfile="/dev/null")
        if var_setup_key == "[sensor]/sensor_ctx":
            sctx = cfg.get_sensor_ctx()
            assert sctx == context.alienvault[var_value]
        else:
            assert False, "Unknow ket %s" % var_setup_key

    except OSError, msg:
        assert False, "I/O Error: %s" % str(msg)
예제 #6
0
def get_engine (database='all'):
    global engines
    if engines == {}:
        from avconfig.ossimsetupconfig import AVOssimSetupConfigHandler
        config_file = "/etc/ossim/ossim_setup.conf"
        ossim_setup = AVOssimSetupConfigHandler(config_file)

        uri = "mysql://%s:%s@%s/" % (ossim_setup.get_database_user(),
                                     ossim_setup.get_database_pass(),
                                     ossim_setup.get_database_db_ip())

        kwargs = {'echo': False, 'poolclass': NullPool, 'connect_args': {'cursorclass': MySQLdb.cursors.SSCursor}}

        engines = {'alienvault': create_engine(uri + 'alienvault', **kwargs),
                   'alienvault_siem': create_engine(uri + 'alienvault_siem', **kwargs),
                   'avcenter': create_engine(uri + 'avcenter', **kwargs),
                   'alienvault_api': create_engine(uri + 'alienvault_api', **kwargs)}

    if database == 'all':
        return engines

    return engines.get(database)
예제 #7
0
import getpass
import sys

from ansiblemethods.ansiblemanager import Ansible, PLAYBOOKS
from db.methods.system import db_get_systems, get_system_id_from_local
from ansiblemethods.system.system import ansible_remove_key_from_known_host_file, ansible_add_system
from avconfig.ossimsetupconfig import AVOssimSetupConfigHandler

ossim_setup = AVOssimSetupConfigHandler()
ansible = Ansible()


def add_system_with_new_key(local_system_id, remote_system_ip):
    number_of_tries = 0
    status = False

    while not status and number_of_tries < 3:
        number_of_tries += 1
        msg = 'Please enter root password for {}:\n '.format(remote_system_ip)
        password = getpass.getpass(msg)
        status, result = ansible_add_system(local_system_id, remote_system_ip, password)
        if not status:
            print(result)

    return status


def confirm(prompt='Confirm', default=False):
    """ Prompts for yes or no response from the user. Returns True for yes and False for no.

    Args:
예제 #8
0
#  MA  02110-1301  USA
#
#
#  On Debian GNU/Linux systems, the complete text of the GNU General
#  Public License can be found in `/usr/share/common-licenses/GPL-2'.
#
#  Otherwise you can read it here: http://www.gnu.org/licenses/gpl-2.0.txt
#

import os
import sys

from avconfig.ossimsetupconfig import AVOssimSetupConfigHandler

CONFIG_FILE = "/etc/ossim/ossim_setup.conf"
ossim_setup = AVOssimSetupConfigHandler(CONFIG_FILE)


class Config(object):
    DIR = os.path.abspath(os.path.dirname(__file__))
    # Path to our database
    SQLALCHEMY_DATABASE_URI = "mysql://%s:%s@%s/alienvault" % (
        ossim_setup.get_database_user(), ossim_setup.get_database_pass(),
        ossim_setup.get_database_db_ip())

    SQLALCHEMY_BINDS = {
        "status_message":
        "mysql://%s:%s@%s/alienvault_api" %
        (ossim_setup.get_database_user(), ossim_setup.get_database_pass(),
         ossim_setup.get_database_db_ip()),
        "status_message_action":
예제 #9
0
from __future__ import print_function
from nose import with_setup
from nose.tools import raises
import unittest
import sys
import os
import random
import string
import difflib
from shutil import copyfile

from avconfig.ossimsetupconfig import AVOssimSetupConfigHandler
from ansiblemethods.system.network import set_interfaces_roles, get_iface_list
ossim_setup = AVOssimSetupConfigHandler("/etc/ossim/ossim_setup.conf")
admin_ip = ossim_setup.get_general_admin_ip()

NET_IPS = {
    'eth1': "172.17.2.50",
    'eth2': "172.17.2.51",
    'eth3': "172.17.2.52",
    'eth4': "172.17.2.53",
    'eth5': "172.17.2.54"
}


class TestNetworkSetInterfaces(unittest.TestCase):
    """Class to test the set_interface_roles function"""
    def setUp(self):
        #print ("TestNetworkSetInterfaces:setup() before each test method")
        pass
예제 #10
0
from __future__ import print_function
from nose import with_setup
from nose.tools import raises
import unittest
import sys
import os
import random
import string
import difflib
from shutil import copyfile

from avconfig.ossimsetupconfig import AVOssimSetupConfigHandler
from ansiblemethods.system.network import set_interfaces_roles, get_iface_list

ossim_setup = AVOssimSetupConfigHandler("/etc/ossim/ossim_setup.conf")
admin_ip = ossim_setup.get_general_admin_ip()

NET_IPS = {'eth1': "172.17.2.50", 'eth2': "172.17.2.51", 'eth3': "172.17.2.52", 'eth4': "172.17.2.53",
           'eth5': "172.17.2.54"}


class TestNetworkSetInterfaces(unittest.TestCase):
    """Class to test the set_interface_roles function"""

    @classmethod
    def setUpClass(cls):
        print("TestNetworkSetInterfaces::setup_class() before any methods in this class")

        rc, net_current_status = get_iface_list(admin_ip)
        cls.net_current_status = net_current_status