Skip to content

webHomer settings

Alexandr Dubovikov edited this page Nov 22, 2015 · 8 revisions

HOMER

Before you can start using HOMER, a few important parameters need to be configured.

APACHE: mod_rewrite

webHomer 3.5+ uses the new api (REST), in order for this to work you MUST activate mod_rewrite (if the rewrite_module is not enabled in httpd.conf API will not work)

i.e. Debian/Ubuntu:

sudo a2enmod rewrite

and in your apache's config, Document should have

AllowOverride all

http://httpd.apache.org/docs/2.2/mod/core.html#allowoverride

Apache's aliases use might prevent mod_rewrite from adding new paths.

In such case, you should edit 'api/.htaccess' file and change Rewrite rule:

RewriteRule ^(.*)$ /your_api_path/index.php [L]

APACHE: Virtual Host

The following apache2 configuration snippet provides for webHomer needs in a vhost forcing https.

Example: /etc/apache2/sites-enabled/homer.yourdomain.org

<VirtualHost *:80>
        ServerAdmin [email protected]
        ServerName  homer.yourdomain.org

        Redirect permanent / https://homer.yourdomain.org/
        # Logfiles
        ErrorLog  /var/vhosts/homer.yourdomain.org/logs/error.log
        CustomLog /var/vhosts/homer.yourdomain.org/logs/access.log combined
</VirtualHost>

<VirtualHost *:443>
        ServerAdmin [email protected]
        ServerName  homer.yourdomain.org

        # Indexes + Directory Root.
        DirectoryIndex index.php index.html index.htm
        DocumentRoot /var/vhosts/homer.yourdomain.org/htdocs/

        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/vhosts/homer.yourdomain.org/htdocs/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride all
                #for apache <= 2.3
                Order allow,deny
                allow from all
                #For apache >= 2.4
                #Require all granted
        </Directory>

        # CGI Directory
        ScriptAlias /cgi-bin/ /var/vhosts/homer.yourdomain.org/cgi-bin/
        <Location "/var/vhosts/homer.yourdomain.org/cgi-bin">
                Options +ExecCGI -MultiViews
                Order allow,deny
                Allow from all
        </Location>

        <IfModule mod_ssl.c>
                SSLEngine on
                SSLCertificateFile /etc/apache2/apache.pem
        </IfModule>

        # Logfiles
        ErrorLog  /var/vhosts/homer.yourdomain.org/logs/error_ssl.log
        CustomLog /var/vhosts/homer.yourdomain.org/logs/access_ssl.log combined
</VirtualHost>

webHomer: Base Settings

webHomer ships with two example configuration files (configuration_example.php and preferences_example.php) that need to be filled in by the administrator and renamed before use.

WEBHOMER: DATABASE

Insert the minimum DB access details in "configuration.php":

/* Access db of homer users */
define(HOST, "localhost");
define(USER, "root");
define(PW, "password");
define(DB, "homer_users");

Also define username and password for HOMER SIP Capture DB. This user must be defined in all your nodes DB. Don't forget to insert all your database nodes into homer_nodes table.

Configure the proper details in "configuration.php":

/* Homer connection 
*  this user must have the same password for all Homer nodes
*  please define all your nodes in homer_nodes table
*/

define(HOMER_HOST, "localhost"); /* DEFAULT. Don't forget insert this host to your DB nodes table */
define(HOMER_USER, "homer_users");
define(HOMER_PW, "homer_password");
define(HOMER_DB, "homer_db");
define(HOMER_TABLE, "sip_capture");

WEBHOMER: WEB & PATH SETTINGS

In order to work, webHomer's webservice needs to be properly setup; A few key parameters in "configuration.php":

PCAPDIR - Expects a Filesystem Path. This directory will be used to store temporary pcap files and call flow SVG/HTMLs. Must be absolute path and must reflect the location of the webhomer folder from GIT. THIS FOLDER MUST BE WRITEABLE!

define(PCAPDIR,"/var/www/webhomer/tmp/");

The application will use this temporary folder to store its generated files. Do not forget to configure full write permissions to the selected /tmp folder!

WEBPCAPLOC - Expects a Web Path. This parameters determines the web location of PCAPDIR. (If the URL for your PCAPDIR is http://domain.com/webhomer/tmp, then this should be set to /webhomer/tmp).

define(WEBPCAPLOC,"/webhomer/tmp/");

APILOC - Expects a Web Path. This parameters determined the web location of the HOMER API. Please set according to your host/virtualhost path in

define(APILOC,"/webhomer/api/");

A number of other customizable, non critical parameters such as timezones and modules, and user interface preferences are set separately in "preferences.php" - rename the example file and set your preferences accordingly.


WEBHOMER: USERS

Remove the default user and add your own accounts (permission/levels in preferences.php)


WEBHOMER: DB NODES

Homer can function using one or more database nodes

Make sure the node name value defined in your Kamailio capture node script is correctly reflected in ADMIN > DB Nodes with a properly configured entry.

modparam("sipcapture", "capture_node", "node1");

Without this parameter, some search filtering options might not work as intended!

Basic example with 1 Node and 2 Capture Agents:

      CaptAgent hep-id: 111 -----> [NODE1] <----- CaptAgent hep-id: 222

      HOMER Search-Filtering options:

      ALL TRAFFIC - node1
      AGENT1 ONLY - node1:111
      AGENT2 ONLY - node1:222
      etc...

webHomer: Correlation Settings

WEBHOMER: ALIASES IP -> HOSTNAME

This feature is used in Call-Flow generators to convert IP addresses to Hostnames, and more importantly to correlate traffic to gateways with multiple iterfaces (public/private) or networks (ipv4/ipv6)

Example:
    Soft-Switch Public IP: AA.BB.CC.DD
    Soft-Switch Private IP: EE.FF.GG.HH
    Soft-Switch IPv6: III::LLLL:MMMM:NNNN:OOOO

In Homer add several ALIASES with the exact same NAME:

    IP: AA.BB.CC.DD
    NAME: SWITCH1
    STATUS: 1

    IP: EE.FF.GG.HH
    NAME: SWITCH1
    STATUS: 1

    IP: [III::LLLL:MMMM:NNNN:OOOO]
    NAME: SWITCH1
    STATUS: 1

WEBHOMER CFLOW: Internal/External HOSTS Correlation

In order for HOMER to identify and correlated messages between internal Hosts using IP:PORT schema, change the following in webhomer/preferences.php:

   define('CFLOW_HPORT', 2); /* Column/Host Mode = Plain: 0, +Port: 1, Auto-Select: 2 */

In order for HOMER to visually merge messages between Internal and External CE services, create the following ALIASES via UI (Browse: WebHomer > Admin > Aliases > New):

       HOST                              NAME
       -----------------------           -----------
       {external_IP}:5060                NGCP-LB
       127.0.0.1:5060                    NGCP-LB
       127.0.0.1:5062                    NGCP-Proxy
       127.0.0.1:5080                    NGCP-B2BUA

NOTE: NAME field for internal & external LBs (5060) MUST BE IDENTICAL to correlate!

If your system uses other custom IPs or Interfaces, follow the same logic above to add them.


WEBHOMER CFLOW: B2BUA Call Correlation

In order for HOMER to correlate call legs forked by the SPCE B2BUA, set the following in webhomer/preferences.php:

      /* BLEG DETECTION */
      define('BLEGDETECT', 1); /* always detect BLEG leg in CFLOW/PCAP*/
      define('BLEGCID', "b2b"); /* options: x-cid, b2b */
      define('BLEGTAIL', "_b2b-1"); /* session-ID correlation suffix for SPCE b2b mode */

WEBHOMER: SECURITY CONSIDERATIONS

webHomer (and HOMER in general) is designed to be deployed on a private, well protected network segment and it's not intended to be bare facing public access. Please make sure you protect/firewall/ACL your capture setup properly!

Clone this wiki locally