<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family:Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<div><span>Disclaimer - For lab use only.  The following will void your warranty, render your instance unsupportable by TAC and probably cause your favorite pet to spontaneously combust.  There are perfectly legitimate reasons why Cisco keeps the internal databases
 shielded from direct access by external applications.  That being said, enjoy!<br>
</span>
<div><br>
</div>
<div>I got tired of going through the APIs to run queries on the CCM DB.  Also got tired of having to have an SFTP server or using more APIs to look at CDR data.  Here are the steps to give yourself direct access to both databases from a remote host.  Keep
 in mind that they're not just separate databases, but on separate Informix instances.<br>
</div>
<div><br>
</div>
<div>This method uses the temporary remote support credentials to make the ODBC connection.  You can create a separate OS user and grant rights to that account instead.  Using the remote support account here because this email is long enough as is.<br>
</div>
<div><br>
</div>
<div><br>
</div>
<div>/* Enable remote support */<br>
</div>
<div>admin:utils remote_account enable<br>
</div>
<div>Successful in enabling RemoteSupport<br>
</div>
<div>admin:utils remote_account create myroot 30<br>
</div>
<div>Account Successfully created<br>
</div>
<div>Account        : myroot<br>
</div>
<div>Passphrase     : XXXXXXXXXX03<br>
</div>
<div>Expiry         : 12-12-2018:19:00:00 (MM-DD-YYYY:Hr:Min:Sec)<br>
</div>
<div>Decode Version : 3<br>
</div>
<div>admin:exit<br>
</div>
<div><br>
</div>
<div>/* Connect as Remote Support */<br>
</div>
<div>Use UCOS Password Decrypter to decode passphrase<br>
</div>
<div>SSH in using remote support account<br>
</div>
<div><br>
</div>
<div>/* Get Instance Names */<br>
</div>
<div>[root@cucmpub myroot]# grep _ccm /etc/services<br>
</div>
<div>...<br>
</div>
<div>cucmpub_ccm12_0_1_12000_1   1500/tcp        # IDS on cucmpub<br>
</div>
<div>...<br>
</div>
<div>[root@cucmpub myroot]# grep _car /etc/services<br>
</div>
<div>...<br>
</div>
<div>cucmpub_car12_0_1_12000_1   1510/tcp        # CAR IDS instance<br>
</div>
<div>...<br>
</div>
<div><br>
</div>
<div>/* SU to Informix user */<br>
</div>
<div>[root@cucmpub myroot]# su - informix<br>
</div>
<div><br>
</div>
<div>/* Get Database Names */<br>
</div>
<div>-bash-4.1$ echo 'select name from sysdatabases' | dbaccess sysmaster@cucmpub_ccm12_0_1_12000_1<br>
</div>
<div>...<br>
</div>
<div>name  ccm12_0_1_12000_1<br>
</div>
<div>...<br>
</div>
<div>-bash-4.1$ echo 'select name from sysdatabases' | dbaccess sysmaster@cucmpub_car12_0_1_12000_1<br>
</div>
<div>...<br>
</div>
<div>name  car<br>
</div>
<div>...<br>
</div>
<div><br>
</div>
<div>/* Grant Informix Access */<br>
</div>
<div>-bash-4.1$ echo 'GRANT DBA TO myroot' | dbaccess ccm12_0_1_12000_1@cucmpub_ccm12_0_1_12000_1<br>
</div>
<div>-bash-4.1$ echo 'GRANT DBA TO myroot' | dbaccess car@cucmpub_car12_0_1_12000_1<br>
</div>
<div>-bash-4.1$ exit<br>
</div>
<div><br>
</div>
<div>/* Open ports in firewall */<br>
</div>
<div>[root@cucmpub myroot]# iptables -A INPUT -p tcp -m tcp --dport 1510 --tcp-flags SYN SYN -j DROP<br>
</div>
<div>[root@cucmpub myroot]# iptables -A INPUT -p tcp -m tcp --dport 1500 --tcp-flags SYN SYN -m hashlimit --hashlimit 35/second  --hashlimit-burst 2000 --hashlimit-mode srcip,dstport --hashlimit-name TCP_1500_DOS -j ACCEPT<br>
</div>
<div>[root@cucmpub myroot]# iptables -A INPUT -p tcp -m tcp --dport 1500 --tcp-flags SYN SYN -m limit --limit 1/minute --limit-burst 1 -j LOG --log-prefix " Exceeded hashlimit " --log-level warn<br>
</div>
<div>[root@cucmpub myroot]# iptables -A INPUT -p tcp -m tcp --dport 1500 --tcp-flags SYN SYN -j DROP<br>
</div>
<div>[root@cucmpub myroot]# iptables -A INPUT -p tcp -m tcp --dport 1510 --tcp-flags SYN SYN -m hashlimit --hashlimit 35/second  --hashlimit-burst 2000 --hashlimit-mode srcip,dstport --hashlimit-name TCP_1510_DOS -j ACCEPT<br>
</div>
<div>[root@cucmpub myroot]# iptables -A INPUT -p tcp -m tcp --dport 1510 --tcp-flags SYN SYN -m limit --limit 1/minute --limit-burst 1 -j LOG --log-prefix " Exceeded hashlimit " --log-level warn<br>
</div>
<div>[root@cucmpub myroot]# iptables -A INPUT -p tcp -m tcp --dport 1510 --tcp-flags SYN SYN -j DROP<br>
</div>
<div><br>
</div>
<div><br>
</div>
<span>Now you can use the myroot credentials along with the Informix Client SDK to connect directly to Informix.  I loaded the 64 bit Windows client SDK (clientsdk.4.10.FC9DE.WIN.zip) so I could create a linked server in MSSQL and run queries via MS SQL Studio.</span><br>
</div>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
</div>
</body>
</html>