<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>XEN-trifuge</title>
	<atom:link href="http://xen-trifuge.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://xen-trifuge.com</link>
	<description></description>
	<lastBuildDate>Wed, 19 Oct 2011 12:59:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='xen-trifuge.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>XEN-trifuge</title>
		<link>http://xen-trifuge.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://xen-trifuge.com/osd.xml" title="XEN-trifuge" />
	<atom:link rel='hub' href='http://xen-trifuge.com/?pushpress=hub'/>
		<item>
		<title>The Evolution of the Remote Campus: HR 1722</title>
		<link>http://xen-trifuge.com/2011/01/29/hr-1722-and-the-evolution-of-the-remote-campus/</link>
		<comments>http://xen-trifuge.com/2011/01/29/hr-1722-and-the-evolution-of-the-remote-campus/#comments</comments>
		<pubDate>Sat, 29 Jan 2011 22:38:41 +0000</pubDate>
		<dc:creator>John M. Smith</dc:creator>
				<category><![CDATA[Citrix]]></category>
		<category><![CDATA[HR 1722]]></category>
		<category><![CDATA[Remote Campus]]></category>
		<category><![CDATA[Telework]]></category>
		<category><![CDATA[Citrix Telework]]></category>
		<category><![CDATA[Work from home]]></category>

		<guid isPermaLink="false">http://jmsazboy.wordpress.com/2011/01/29/hr-1722-and-the-evolution-of-the-remote-campus/</guid>
		<description><![CDATA[In December of 2010 President Obama signed HR 1722, the Telework Enhancement Act of 2010. Basically this means that every Federal Agency has, now, less than 6 months to come up with a telework strategy for nearly 2 million federal employees. Recent storms in DC have caused sabers to rattle in the last two years [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xen-trifuge.com&amp;blog=7899546&amp;post=256&amp;subd=jmsazboy&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In December of 2010 President Obama signed HR 1722, the Telework Enhancement Act of 2010. Basically this means that every Federal Agency has, now, less than 6 months to come up with a telework strategy for nearly 2 million federal employees. Recent storms in DC have caused sabers to rattle in the last two years to develop a telework strategy for business continuity.  However in an era of wage freezing, cuts and layoffs telework eligibility could mean the difference between key personnel staying or trying their luck in the private sector. One day a week at home in the DC Area could easily be the equivalent of $1000 or more back into an employee&#8217;s pocket.</p>
<p>Threaded into the legislation were requirements about reporting on the participation, providing for accountability and training employees on telework. I wanted to take the time to cover some of the concerns that come with this legislation and dispel the idea that somehow IT organizations are suddenly going to flip a switch and become teleworking hubs overnight. At my agency we recently had snow storms that all but shut down the city yet, well over half of the effected users were able to work at home as if it were business as usual. This did not happen with the flip of a switch and it took a few years of careful planning and painful lessons for us to get in a position to have this kind of success during the recent snow event.</p>
<p>Our solution is Citrix from stem to stern, a user connects to an AGEE and runs via a Virtual Desktop, either XenAPP or XenDesktop. We use Edgesight to monitor and alert on key metrics as well as to provide reporting and accountability.</p>
<p>There are a large number of resources concerning how to set up XenAPP and XenDesktop including how to work with profiles, how to size and scale your systems and I am not going to recreate the wheel here but I do want to go over some concerns that can potentially be forgotten as you plan a transition to having 10-20 percent of your workforce connecting remotely. Also, most remote access throughout the Federal Government is either VPN or Citrix, I want to contrast the benefits and risks of each technology and point out why I think thin computing may be the best answer when it comes to a large scale remote access solution.</p>
<p>Hopefully your agency has Citrix expertise on hand, if not, please do not be afraid to reach out to Citrix Partners who can work with your incumbent IT Staff or Systems Integrators  such as Perot, Lockheed, IBM, EDS, etc.  These guys are fiends at implementation of Citrix XenAPP and XenDesktop and will help train/transition your staff.</p>
<p><strong>Bandwidth:<br />
</strong>Prior to my latest non-fiber provider I had used both AT&amp;T Uverse and FIOS. Both of these vendors provided 14+ MB download speeds. My current provider gives me about a 10MB download. This is great for surfing the web, delivering rich content on websites and watching movies on Netfix. For remote access solutions, these new high speed broadband connections can sap your agencies bandwidth post-haste. You have to ask yourself, is my agency ready to become an ASP?  I am currently setting up a Citrix SSL VPN for my agency and as part of the testing I went o my local CIFS share and downloaded a 100mb file, my speed actually got up to 5mb per second! I was thrilled to see how fast the file came down. Now, bring on 1000-3000 of my friends, all of us using VPN and what we have is a meltdown as my agencies&#8217; bandwidth rapidly dwindles. While I was able to get up to 5mb down on my VPN connection, my equally productive, Citrix ICA Session hovers between 20K and 60K. Will my YouTube experience be the same? No, but it is good enough and I am consuming at least 125 times less bandwidth.</p>
<p>The table and subsequent chart below were taken from <a href="http://www.bls.gov/oco/cg/cgs041.htm">this website</a> showing the number of government employees at a number of DC area agencies. According to Citrix Online in an article <a href="http://www.citrixonline.com/pr/pressRelease.tmpl?FileID=112210&amp;nrgp=&amp;nryr=2010&amp;SourceTemplate=expertcity%2Fpr%2FpressReleases.tmpl%3Fnrgp%3D%26amp%3Bnryr%3D2010%26amp%3Bnrpf%3D0">here</a>, 61% of all government employees are in a &#8220;telework eligible&#8221; position. So for example in the table below you see that the department of Veterans Affairs has 8000 DC Area employees.</p>
<p>If 61% of the VA Employees are telework eligible and the work at home one day a week, that means 8000 employees times .61 divided by 5 would mean that 976 employees would be teleworking per day.</p>
<div style="margin-left:5pt;">
<table style="border-collapse:collapse;" border="0">
<col style="width:276px;" span="1"></col>
<col style="width:99px;" span="1"></col>
<col style="width:260px;" span="1"></col>
<tbody>
<tr style="height:21px;">
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:none;" valign="bottom"><span style="color:black;"><strong>Agency</strong></span></td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:none;" valign="bottom">
<p style="text-align:center;"><span style="color:black;"><strong>Employees in thousands</strong></span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:none;" valign="bottom">
<p style="text-align:center;"><span style="color:black;"><strong>Metro DC Area employees in thousands</strong></span></p>
</td>
</tr>
<tr style="height:21px;background:white;">
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid #e2e2e2 1pt;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;"><span style="color:#333333;font-family:Tahoma;"><strong>Executive departments</strong></span></td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #aaaaaa 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">1,664</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">238</span></p>
</td>
</tr>
<tr style="height:21px;">
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:solid #e2e2e2 1pt;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;"><span style="color:#333333;font-family:Tahoma;"><strong>Defense, total</strong></span></td>
<td style="background:#eef4ff;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #aaaaaa 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">652</span></p>
</td>
<td style="background:#eef4ff;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">68</span></p>
</td>
</tr>
<tr style="height:21px;background:white;">
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid #e2e2e2 1pt;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;"><span style="color:#333333;font-family:Tahoma;"><strong>Army</strong></span></td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #aaaaaa 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">244</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">20</span></p>
</td>
</tr>
<tr style="height:21px;">
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:solid #e2e2e2 1pt;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;"><span style="color:#333333;font-family:Tahoma;"><strong>Navy</strong></span></td>
<td style="background:#eef4ff;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #aaaaaa 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">175</span></p>
</td>
<td style="background:#eef4ff;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">25</span></p>
</td>
</tr>
<tr style="height:21px;background:white;">
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid #e2e2e2 1pt;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;"><span style="color:#333333;font-family:Tahoma;"><strong>Air Force</strong></span></td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #aaaaaa 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">149</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">6</span></p>
</td>
</tr>
<tr style="height:21px;">
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:solid #e2e2e2 1pt;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;"><span style="color:#333333;font-family:Tahoma;"><strong>Other</strong></span></td>
<td style="background:#eef4ff;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #aaaaaa 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">84</span></p>
</td>
<td style="background:#eef4ff;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">17</span></p>
</td>
</tr>
<tr style="height:21px;background:white;">
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid #e2e2e2 1pt;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;"><span style="color:#333333;font-family:Tahoma;"><strong>Veterans Affairs</strong></span></td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #aaaaaa 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">280</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">8</span></p>
</td>
</tr>
<tr style="height:21px;">
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:solid #e2e2e2 1pt;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;"><span style="color:#333333;font-family:Tahoma;"><strong>Homeland Security</strong></span></td>
<td style="background:#eef4ff;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #aaaaaa 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">171</span></p>
</td>
<td style="background:#eef4ff;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">23</span></p>
</td>
</tr>
<tr style="height:21px;background:white;">
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid #e2e2e2 1pt;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;"><span style="color:#333333;font-family:Tahoma;"><strong>Justice</strong></span></td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #aaaaaa 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">108</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">24</span></p>
</td>
</tr>
<tr style="height:21px;">
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:solid #e2e2e2 1pt;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;"><span style="color:#333333;font-family:Tahoma;"><strong>Treasury</strong></span></td>
<td style="background:#eef4ff;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #aaaaaa 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">88</span></p>
</td>
<td style="background:#eef4ff;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">12</span></p>
</td>
</tr>
<tr style="height:21px;background:white;">
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid #e2e2e2 1pt;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;"><span style="color:#333333;font-family:Tahoma;"><strong>Agriculture</strong></span></td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #aaaaaa 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">82</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">8</span></p>
</td>
</tr>
<tr style="height:21px;">
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:solid #e2e2e2 1pt;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;"><span style="color:#333333;font-family:Tahoma;"><strong>Interior</strong></span></td>
<td style="background:#eef4ff;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #aaaaaa 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">67</span></p>
</td>
<td style="background:#eef4ff;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">7</span></p>
</td>
</tr>
<tr style="height:21px;background:white;">
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid #e2e2e2 1pt;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;"><span style="color:#333333;font-family:Tahoma;"><strong>Health and Human Services</strong></span></td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #aaaaaa 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">64</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">30</span></p>
</td>
</tr>
<tr style="height:21px;">
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:solid #e2e2e2 1pt;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;"><span style="color:#333333;font-family:Tahoma;"><strong>Transportation</strong></span></td>
<td style="background:#eef4ff;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #aaaaaa 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">55</span></p>
</td>
<td style="background:#eef4ff;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">9</span></p>
</td>
</tr>
<tr style="height:21px;background:white;">
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid #e2e2e2 1pt;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;"><span style="color:#333333;font-family:Tahoma;"><strong>Commerce</strong></span></td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #aaaaaa 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">39</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">20</span></p>
</td>
</tr>
<tr style="height:21px;">
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:solid #e2e2e2 1pt;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;"><span style="color:#333333;font-family:Tahoma;"><strong>Labor</strong></span></td>
<td style="background:#eef4ff;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #aaaaaa 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">16</span></p>
</td>
<td style="background:#eef4ff;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">6</span></p>
</td>
</tr>
<tr style="height:21px;background:white;">
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid #e2e2e2 1pt;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;"><span style="color:#333333;font-family:Tahoma;"><strong>Energy</strong></span></td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #aaaaaa 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">15</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">5</span></p>
</td>
</tr>
<tr style="height:21px;">
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:solid #e2e2e2 1pt;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;"><span style="color:#333333;font-family:Tahoma;"><strong>State</strong></span></td>
<td style="background:#eef4ff;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #aaaaaa 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">15</span></p>
</td>
<td style="background:#eef4ff;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">12</span></p>
</td>
</tr>
<tr style="height:24px;background:white;">
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid #e2e2e2 1pt;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;"><span style="color:#333333;font-family:Tahoma;"><strong>Housing and Urban Development</strong></span></td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #aaaaaa 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">9</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">3</span></p>
</td>
</tr>
<tr style="height:21px;">
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:solid #e2e2e2 1pt;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;"><span style="color:#333333;font-family:Tahoma;"><strong>Education</strong></span></td>
<td style="background:#eef4ff;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #aaaaaa 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">4</span></p>
</td>
<td style="background:#eef4ff;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid #aaaaaa 1pt;border-right:solid #e2e2e2 1pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">3</span></p>
</td>
</tr>
</tbody>
</table>
</div>
<p> </p>
<p>To calculate the bandwidth I used 1MB as the reference for VPN, I feel like this is pretty low but I think you would have to at least earmark 1MB per person if you were to scale out a VPN Solution. I used 60KB for ICA, that is generally pretty accurate for a normal ICA Session that does not have heavy graphics. So with that you can see the difference in providing remote access via full VPN vs. ICA. In the case of the VA we can see that around 1GB would be needed to support 976 users via VPN and they would need around 60MB to support the same number of users via ICA. From a bandwidth perspective that is a huge savings.</p>
<div style="margin-left:5pt;">
<table style="border-collapse:collapse;" border="0">
<col style="width:270px;" span="1"></col>
<col style="width:60px;" span="1"></col>
<col style="width:100px;" span="1"></col>
<col style="width:93px;" span="1"></col>
<col style="width:64px;" span="1"></col>
<col style="width:54px;" span="1"></col>
<tbody>
<tr style="height:21px;">
<td style="padding-left:7px;padding-right:7px;border:solid .5pt;" valign="bottom"><span style="color:black;"><strong>Agency</strong></span></td>
<td style="padding-left:7px;padding-right:7px;border-top:solid .5pt;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:center;"><span style="color:black;"><strong>1000&#8242;s empl </strong></span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:solid .5pt;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:center;"><span style="color:black;"><strong>In Metro DC</strong></span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:solid .5pt;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:center;"><span style="color:black;"><strong>20% Teleworkers</strong></span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:solid .5pt;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:center;"><span style="color:black;"><strong> VPN BW<br />
in GB</strong></span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:solid .5pt;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:center;"><span style="color:black;"><strong> ICA BW<br />
In GB</strong></span></p>
</td>
</tr>
<tr style="height:21px;">
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:solid .5pt;border-bottom:solid .5pt;border-right:solid .5pt;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;"><strong>Army</strong></span></td>
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;">244</span></p>
</td>
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;">20</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">2440</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">2.50</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">0.14</span></p>
</td>
</tr>
<tr style="height:21px;">
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:solid .5pt;border-bottom:solid .5pt;border-right:solid .5pt;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;"><strong>Navy</strong></span></td>
<td style="background:#eef4ff;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;">175</span></p>
</td>
<td style="background:#eef4ff;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;">25</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">3050</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">3.12</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">0.18</span></p>
</td>
</tr>
<tr style="height:21px;">
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:solid .5pt;border-bottom:solid .5pt;border-right:solid .5pt;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;"><strong>Air Force</strong></span></td>
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;">149</span></p>
</td>
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;">6</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">732</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">0.75</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">0.04</span></p>
</td>
</tr>
<tr style="height:21px;">
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:solid .5pt;border-bottom:solid .5pt;border-right:solid .5pt;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;"><strong>Other</strong></span></td>
<td style="background:#eef4ff;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;">84</span></p>
</td>
<td style="background:#eef4ff;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;">17</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">2074</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">2.12</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">0.12</span></p>
</td>
</tr>
<tr style="height:21px;">
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:solid .5pt;border-bottom:solid .5pt;border-right:solid .5pt;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;"><strong>Veterans Affairs</strong></span></td>
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;">280</span></p>
</td>
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;">8</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">976</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">1.00</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">0.06</span></p>
</td>
</tr>
<tr style="height:21px;">
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:solid .5pt;border-bottom:solid .5pt;border-right:solid .5pt;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;"><strong>Homeland Security</strong></span></td>
<td style="background:#eef4ff;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;">171</span></p>
</td>
<td style="background:#eef4ff;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;">23</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">2806</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">2.87</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">0.16</span></p>
</td>
</tr>
<tr style="height:21px;">
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:solid .5pt;border-bottom:solid .5pt;border-right:solid .5pt;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;"><strong>Justice</strong></span></td>
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;">108</span></p>
</td>
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;">24</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">2928</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">3.00</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">0.17</span></p>
</td>
</tr>
<tr style="height:21px;">
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:solid .5pt;border-bottom:solid .5pt;border-right:solid .5pt;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;"><strong>Treasury</strong></span></td>
<td style="background:#eef4ff;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;">88</span></p>
</td>
<td style="background:#eef4ff;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;">12</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">1464</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">1.50</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">0.09</span></p>
</td>
</tr>
<tr style="height:21px;">
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:solid .5pt;border-bottom:solid .5pt;border-right:solid .5pt;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;"><strong>Agriculture</strong></span></td>
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;">82</span></p>
</td>
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;">8</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">976</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">1.00</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">0.06</span></p>
</td>
</tr>
<tr style="height:21px;">
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:solid .5pt;border-bottom:solid .5pt;border-right:solid .5pt;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;"><strong>Interior</strong></span></td>
<td style="background:#eef4ff;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;">67</span></p>
</td>
<td style="background:#eef4ff;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;">7</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">854</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">0.87</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">0.05</span></p>
</td>
</tr>
<tr style="height:39px;">
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:solid .5pt;border-bottom:solid .5pt;border-right:solid .5pt;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;"><strong>Health and Human Services</strong></span></td>
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;">64</span></p>
</td>
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;">30</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">3660</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">3.75</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">0.21</span></p>
</td>
</tr>
<tr style="height:21px;">
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:solid .5pt;border-bottom:solid .5pt;border-right:solid .5pt;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;"><strong>Transportation</strong></span></td>
<td style="background:#eef4ff;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;">55</span></p>
</td>
<td style="background:#eef4ff;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;">9</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">1098</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">1.12</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">0.06</span></p>
</td>
</tr>
<tr style="height:21px;">
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:solid .5pt;border-bottom:solid .5pt;border-right:solid .5pt;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;"><strong>Commerce</strong></span></td>
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;">39</span></p>
</td>
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;">20</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">2440</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">2.50</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">0.14</span></p>
</td>
</tr>
<tr style="height:21px;">
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:solid .5pt;border-bottom:solid .5pt;border-right:solid .5pt;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;"><strong>Labor</strong></span></td>
<td style="background:#eef4ff;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;">16</span></p>
</td>
<td style="background:#eef4ff;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;">6</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">732</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">0.75</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">0.04</span></p>
</td>
</tr>
<tr style="height:21px;">
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:solid .5pt;border-bottom:solid .5pt;border-right:solid .5pt;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;"><strong>Energy</strong></span></td>
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;">15</span></p>
</td>
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;">5</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">610</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">0.62</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">0.04</span></p>
</td>
</tr>
<tr style="height:21px;">
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:solid .5pt;border-bottom:solid .5pt;border-right:solid .5pt;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;"><strong>State</strong></span></td>
<td style="background:#eef4ff;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;">15</span></p>
</td>
<td style="background:#eef4ff;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;">12</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">1464</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">1.50</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;font-size:10pt;">0.09</span></p>
</td>
</tr>
<tr style="height:39px;">
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:solid .5pt;border-bottom:solid .5pt;border-right:solid .5pt;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;"><strong>Housing and Urban Development</strong></span></td>
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">9</span></p>
</td>
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">3</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;">366</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;">0.37</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;">0.02</span></p>
</td>
</tr>
<tr style="height:21px;">
<td style="background:white;padding-left:7px;padding-right:7px;border-top:none;border-left:solid .5pt;border-bottom:solid .5pt;border-right:solid .5pt;"><span style="color:#333333;font-family:Tahoma;font-size:10pt;"><strong>Education</strong></span></td>
<td style="background:#eef4ff;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">4</span></p>
</td>
<td style="background:#eef4ff;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:#333333;font-family:Tahoma;">3</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;">366</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;">0.37</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid .5pt;border-right:solid .5pt;" valign="bottom">
<p style="text-align:right;"><span style="color:black;">0.02</span></p>
</td>
</tr>
</tbody>
</table>
</div>
<p> </p>
<p><strong>Bandwidth Cart showing bandwidth requirements for VPN at 1MB vs. ICA at 60KB.</strong></p>
<p><a href="http://jmsazboy.files.wordpress.com/2011/01/chart1.jpg"><img class="alignnone size-full wp-image-259" title="Chart" src="http://jmsazboy.files.wordpress.com/2011/01/chart1.jpg?w=530&#038;h=351" alt="" width="530" height="351" /></a></p>
<p>I am not trying to scare anyone with the bandwidth comparisons rather I am trying to drive home the paradigm shift that must take place in terms of what you deliver externally. You agency must be ready to transition from delivering just web content and maybe Remote Access to a few hundred users to becoming a service provider to several hundred remote users. Do you have the bandwidth to support 20% of your eligible workforce working remotely? I know 60KB looks a lot better than 1MB plus performance of client/server applications are going to be considerably better because transactions can occur on the switched network.</p>
<p>And finally, I want to quickly touch on your switched infrastructure. While you may have a campus of 2500 users they are likely distributed across as many as 10-20 switches and bandwidth is more than enough per person. While the ICA Bandwidth from the XenAPP or XenDesktop machine to the end user may only be 60K, from the XenApp/XenDesktop system to downstream applications, it is full SMB, TCP, SSL, HTTP, RTSP, etc. If you are going from supporting 2500 users across 20 switches to supporting 2500 users on two to four switches you need to make sure that the those switches can handle the sudden influx of usage. You need to treat your &#8220;Remote Campus&#8221; just like any other campus you have and you will need bandwidth similar to that of a core switch.</p>
<p><strong>Security:<br />
</strong>Another big challenge to a large scale remote access solution is security. I think the current status quo is that most VPN users are IT Staff and a few other select users that the agency allows to have VPN Access. Even with today&#8217;s endpoint analysis, ensuring a computer is a Government Asset, has virus software and even encryption software is no guarantee that they will not have some sort of malware. Cyveillance.com states that AV Vendors detect, on average, less than 19% of malware attacks. 0-day malware will almost certainly go undetected on your government issued workstation if it gets on there and the VPN Tunnel becomes a definite INFOSEC concern. This is another good reason to use ICA as it differs in many ways from VPN outside of its lower bandwidth usage.</p>
<p>The ICA Protocol sends screen refreshes over the wire on port 1494 or port 2598. Using the FIPS Compliant AGEE MPX 9700 series you can drastically reduce your attack surface by forcing SSL to the appliance and only allowing ICA protocols to traverse the network. This means no information ever leaves the internal network, only screen refreshes. Agencies can use Smart Access policies to determine whether or not users can print, save data locally or paste text onto their own systems. This, in effect, creates a secure kiosk that keeps data from leaving the network unless it is explicitly allowed. Is there still a role for VPN?, absolutely, for Sys Admins, Network and INFOSEC staff, there will always be a need for VPN but for the general mass populous, Citrix with ICA can deliver a full desktop and run applications on the switched network providing considerably higher level of security along with better overall performance. .</p>
<p><strong>NOTE: </strong>During the snow event our Netscaler 9700 MPX had over 5000 connections on it and the impact on the CPU and memory was less than 5%. The device is new and I believe this is the first real test of the FIPS multicore models that Citrix Netcaler has. I would say this is a pretty stout machine!</p>
<p><strong>Support:<br />
</strong>Okay, so you have your secure Remote Access Solution, now you have to figure out how to support it. At my agency, the &#8220;Remote Access&#8221; campus is the 2nd largest at nearly 4000 users a day and over 10,000 users a month. Most campuses have at least 5-10 level II engineers supporting desktop related issues as well as general user questions. Most Citrix teams are made up of 3-6 engineers that I have seen so this begs the question. Can you support 10,000 users with 3-6 Engineers and still get anything done? Keeping your Level III staff out of the Desktop support business is going to take some careful planning and I think is a step that is often overlooked in the VDI/Virtualization realm. For starters, most of my colleagues have not been Desktop Technicians for 7-10 years. We needed a way to ensure that the end users could continue to call the Service Desk as they always have and get the help they need and avoid introducing a &#8220;blind spot&#8221; into our support strategy. One of my &#8220;Soapbox&#8221; issues with VDI deployments is the lack of consideration given to Desktop support during the implementation. I often wonder if the fact that VDI is so dominated by Architects and Engineers without being sold to the Desktop staff is the reason it has not skyrocketed after being called the next big thing by Gartner and other IT Pundits. Architects&#8217;, Engineers and Sys Admins may not be the only relevant audience in the VDI discussion, in fact, it may be possible that they are not even the MOST relevant audience in the discussion.</p>
<p>(Stop ranting and move on John). Okay for our deployment we realized that first, the users were remote so there WAS no desktop support person to come help them and two, we needed a better and more skilled Level One Service Desk to be able to support the influx of remote users. We engaged in what was, at the time, a unique training regimen for the Service Desk staff. Basically, a remote user who cannot get connected by the person who answers the phone, won&#8217;t be able to work or the call will get escalated to your Level III engineers. This will cause considerable dissatisfaction with the end users as well as Engineers who get overwhelmed with escalations. We have a 90% first call resolution rate as a result of extensive training of our call center. Further, the rate at which the end user can be helped by the first person they talk to on the phone is going to be directly proportional to the success of your remote access endeavor. Our training focused on a number of routine tasks, client installation, routine connectivity issues and credential related issues (reset paswords, etc) but it also focused on what the common calls were. To accomplish this we integrated business intelligence (SSRS) to provide a visual representation of our Service Desk call data.  Keep in mind, regardless of how talented your team is and how well engineered your solution is, the people answering the phone are the &#8220;Virtual face&#8221; of your system and they need to believe in it just as much as you do.</p>
<p>Monitoring the Level one calls concerning Citrix was a huge step in the QA of our system and was another major reason for our growth. By monitoring our calls we were able to build out focused training strategies as well as provide ourselves with situational awareness of our system. What we noticed was that 1-2 percent of all users would call the service desk with any number of standard issues regardless of how stable the system was. That means that if you suddenly have 1500 teleworkers each day, you will receive an additional 15-30 service desk calls that day. Keep this in mind as some call centers are already staffed pretty lean. 30 calls a day is likely another body&#8217;s worth of work. Other benefits of monitoring our level one calls was to check after a change to make sure we did not see a spike in calls. The basic rule was to assign a &#8220;Pit Boss&#8221; each day to monitor our Call dashboard and ensure that everything is running smooth. The standard rule is to look at a call and ask yourself &#8220;could we make a system change to prevent this call?&#8221; If yes, than take it into consideration and if not then don&#8217;t worry about it. As I said, 1-2% would always call no matter what (passwords, User Errors, etc). By monitoring the calls we were able to grow by over 50% over the next two years while reducing our call volume by nearly the same number.</p>
<p>Other important tools we use are Edgesight to look at historical data concerning a users Latency and which systems they logged into, GotoAssist so that the users could support end users out in the field in the same manner as a Desktop technician. Several Custom Powershell scripts to get key metrics from XenAPP and SQL Server Reporting Services, part of Edgesight, to create custom dashboards and integrate other data sources to provide a holistic vision of the entire environment.</p>
<p><strong>Conclusion:<br />
</strong>There are telework think tanks and pundits all over the internet right now. I know the amount of information right now is pretty overwhelming. I am trying to supplement some of that information with some real-world experience of moving from a fledgling Citrix farm to the 2nd largest campus at a large federal agency. As I stated, treat your telework environment as a campus. Find out what support your population has at the desktop and make sure you can get as close to that as possible remotely. Again, the person answering the phone HAS to be able to get them back online or things will go downhill from there. Watch your support calls and take an active interest in your systems impact on your call centers and service desk. Work with them and sell them on the system and be supportive of their concerns. Right now, if we make a mistake, there will be 100 calls to the service desk in less than 30 minutes. Understand the impact of 100 service desk calls in 30 minutes and understand that when Remote Access is down, a whole campus is down.</p>
<p>Thanks for reading.</p>
<p>John</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jmsazboy.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jmsazboy.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jmsazboy.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jmsazboy.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jmsazboy.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jmsazboy.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jmsazboy.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jmsazboy.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jmsazboy.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jmsazboy.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jmsazboy.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jmsazboy.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jmsazboy.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jmsazboy.wordpress.com/256/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xen-trifuge.com&amp;blog=7899546&amp;post=256&amp;subd=jmsazboy&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xen-trifuge.com/2011/01/29/hr-1722-and-the-evolution-of-the-remote-campus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7d875a10f43641d8674e1bc7c1fc8b9d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">John M. Smith</media:title>
		</media:content>

		<media:content url="http://jmsazboy.files.wordpress.com/2011/01/chart1.jpg" medium="image">
			<media:title type="html">Chart</media:title>
		</media:content>
	</item>
		<item>
		<title>Extending the Rudder</title>
		<link>http://xen-trifuge.com/2010/08/19/extending-the-rudder/</link>
		<comments>http://xen-trifuge.com/2010/08/19/extending-the-rudder/#comments</comments>
		<pubDate>Fri, 20 Aug 2010 01:30:04 +0000</pubDate>
		<dc:creator>John M. Smith</dc:creator>
				<category><![CDATA[citrix android]]></category>
		<category><![CDATA[citrix ipad]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Citrix iPAD]]></category>
		<category><![CDATA[Citrix receiver Android]]></category>
		<category><![CDATA[Citrix receiver iPhone]]></category>

		<guid isPermaLink="false">http://jmsazboy.wordpress.com/2010/08/19/extending-the-rudder/</guid>
		<description><![CDATA[The challenges and benefits of mobile devices in the enterprise.  The last 18 months has witnessed a barrage of smart phones and tablets coming onto the market. While these devices score high marks for being &#8220;cool&#8221; I can honestly say, the INFOSEC pessimist in me says &#8220;Malware Vector&#8221; and the enterprise solutions person in me [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xen-trifuge.com&amp;blog=7899546&amp;post=238&amp;subd=jmsazboy&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:center;"><span style="color:#1f497d;font-size:18pt;">The challenges and benefits<br />
</span><span style="color:#1f497d;font-size:18pt;">of mobile devices in the enterprise.<br />
</span></p>
<p style="text-align:left;"> <span style="color:#1f497d;">The last 18 months has witnessed a barrage of smart phones and tablets coming onto the market. While these devices score high marks for being &#8220;cool&#8221; I can honestly say, the INFOSEC pessimist in me says &#8220;Malware Vector&#8221; and the enterprise solutions person in me says I can put enterprise applications in the hands of key C-Level decision makers regardless of where they are. If deployed securely, mobile devices and smart phones could be the culminating of business agility we have all been working toward for years.<br />
</span></p>
<p> <span style="color:#1f497d;">Unfortunately, information security groups are rubbing their temples in the wake of a recent, and rather embarrassing, security breach with Apple&#8217;s iPAD product. A few weeks ago I bought a Chinese knock-off android tablet, after receiving it I connected it to my wireless network, brought up my Syslog server to watch PIX logs and within ten minutes, it was phoning home to a site in Japan! (I knew it!) We have also had stories of some of these smart phones being shipped with malware before they are ever handed to the end users.<br />
</span></p>
<p><span style="color:#1f497d;">In many organizations, prior to connecting to your network remotely, you are forced to undergo rigorous endpoint analysis to ensure that you have a proper and updated virus signature, a host based firewall, an approved build, encryption software, etc. Many INFOSEC groups kicked and fought for these policies in what has been described to me by my colleagues as just short of a bloodbath. For some IT shops, the blood of the remote access policy fight hasn&#8217;t even dried yet and if smart phone vendors think that enterprises will abandoned these polices to accommodate these devices they are delusional. At the same time, securing a smart phone may strip it down to the point that it is really no more valuable than the cell phone they have today.<br />
</span></p>
<p><span style="color:#1f497d;">I read the other day that Juniper is making a VPN client for Smart Phones. While I agree that Juniper VPN is a good product, I think it is risky to grant a VPN tunnel to any of these appliances. Why would a PC have to pass an endpoint scan and a smart phone not? Are they going to build smart phone endpoint scanners/agents?<br />
</span></p>
<p> <span style="color:#1f497d;"><strong>John, if you are so down on smart phones, why do you want to support them?<br />
</strong></span><span style="color:#1f497d;">In our world, the end users do not exist because of us, we exist because of them. The title of this blog post was called &#8220;Extending the Rudder&#8221; and what I mean by that is that key decision makers in a company cannot be given too much agility. I am quite certain that Larry Ellison is not the CEO of oracle because he is the world&#8217;s best DBA. He is in that position because of his ability to steer the company and make critical decisions. Decisions are made through key metrics that are delivered to them via briefings, emails, etc. There is never too many ways to make this information available so long as you can keep it secure.<br />
</span></p>
<p><span style="color:#1f497d;">The mobile platform introduces the ability to take business agility to the next level and effectively &#8220;extend the rudder&#8221; to C-level and/or key decision makers in any organization. This goes beyond helping them look cool on the golf course. Products like </span><a href="http://www.softwarefx.com/mobile/pgmobile/" target="_blank">SoftwareFX</a><span style="color:#1f497d;"> can deliver business intelligence reporting that is custom fit for a particular smart phone or device. The ability to deliver key metrics or enterprise applications to mobile users will make your organization more nimble AND look cool on the golf course.<br />
</span><span style="color:#1f497d;"><strong></strong></span></p>
<p><span style="color:#1f497d;"><strong>Security Breaches:<br />
</strong></span><span style="color:#1f497d;">There was a great article this week from Enterprise Mobile Today on the challenges of supporting mobile devices.  It also included a discussion on the security breach that occurred with Apple&#8217;s iPAD stating &#8220;Although the Valley Wag, the online publication that broke the story, implied that the breach was Apples responsibility, the issue was due to AT&amp;T&#8217;s systems.&#8221;<br />
</span></p>
<p><span style="color:#1f497d;">Guess what, if there is a breach of corporate information on an iPAD issued by your company or agency, or you granted access to enterprise applications to an personally owned iPAD, it&#8217;s <strong>your</strong> responsibility. While Apple has restricted the use of middleware on its iPhone/iPAD applications, the other smart phone vendors may not. At issue here is the willingness to open up the OS on these devices to middleware while at the same time protecting the user and themselves from breaches. I know that Apple has taken a lot of flak for its policies on middleware and there is a big push to get them to back off on it. Either way, so long as these moving parts exists, there is a possible vector for malware, breaches and all around jackassery. There have also been concerns about the security of the Safari browser and opening up your ERP to a mobile device could mean exposing your infrastructure to an OS that currently has no enterprise virus scanning software and, in some cases, has applications installed on it that may carry malware themselves.<br />
</span> </p>
<p><span style="color:#1f497d;"><strong>So how does thin computing get around this?<br />
</strong></span><span style="color:#1f497d;">While I expect a lot of INFOSEC and IT Departments are going to say &#8220;No&#8221; when it comes to permitting the use of smart phones. I believe through thin computing via Citrix receiver and XenAPP or XenDesktop you can easily deliver safe and secure enterprise applications that will not run on the smart phone at all but rather on a locked down XenAPP Server or XenDesktop environment that only sends screen refreshes instead of full session traffic that can be sniffed or interpreted by a bot or malware.<br />
</span></p>
<p><span style="color:#1f497d;">Also noted in the article on Enterprise Mobile Today was the fact that several thousand email addresses were stolen as were some of their contact lists, including those of some high level government officials. Citrix has introduced an email client that has been optimized for mobile users. I highly recommend that you look at the session here: </span><a href="http://www.citrix.com/tv/#videos/2385" target="_blank">http://www.citrix.com/tv/#videos/2385</a><span style="color:#1f497d;"><br />
</span></p>
<p><span style="color:#1f497d;">I think this product is fantastic and shows how organizations are going to have to ready themselves to securely deliver enterprise applications to mobile devices. In this scenario, the users email contacts and personally identifiable information exist on the exchange server and on the XenApp client that is run out of an ICA session. If the phone is lost, stolen, damaged or hacked, the information available on it is of no use as the crown jewels remain safe on the enterprises servers. Two factor authentication that is supported by the Citrix receiver and regular password reset regimen will help secure the end users credentials. All of these factors will allow systems administrators and INFOSEC types to have the freedom to innovate with this new technology.<br />
</span></p>
<p>The drawing below is an example of a VPN tunnel into an internal Network. In most cases, VPN appliances are installed with an &#8220;any any&#8221; rule allowing the clients to connect anywhere in the organization once the log in.</p>
<p> <span style="color:#1f497d;font-size:18pt;"><a href="http://jmsazboy.files.wordpress.com/2010/08/vpn-ipad.png"><img class="alignnone size-full wp-image-247" title="VPN-IPAD" src="http://jmsazboy.files.wordpress.com/2010/08/vpn-ipad.png?w=570&#038;h=427" alt="" width="570" height="427" /></a></span></p>
<p>In this drawing we see how using the Citrix receiver is not a full VPN tunnel but an ICA Session that sends encrypted pixel refreshes to the end user instead of raw data. This means that if there is a zeus bot, or the like, on the phone looking for key html or xml such as &#8220;password&#8221; or &#8220;Card Number&#8221; it will not appear because the only data coming across is screen refreshes. This effectively keeps the data running on a restricted environment via XenAPP or XenDesktop.</p>
<p> <span style="color:#1f497d;font-size:18pt;"><a href="http://jmsazboy.files.wordpress.com/2010/08/ica-ipad.png"><img class="alignnone size-full wp-image-246" title="ICA-IPAD" src="http://jmsazboy.files.wordpress.com/2010/08/ica-ipad.png?w=570&#038;h=377" alt="" width="570" height="377" /></a></span></p>
<p><strong></strong> </p>
<p><strong>Conclusion:<br />
</strong>It appears as though the next technological line in the sand will be these mobile devices. The coming battle for superiority in this space will likely involve small OSes such as the Mac BSD hybrid OS and the Linux hybrid(s) that is on a lot of the &#8216;Droid series phones. These are very streamlined distro&#8217;s that you will not simply be able to install a complex anti-virus suit like McAfee or Symantec.  Also, I believe that the prevalence of these devices will only grow and they are upon us as Sys Admins whether we like it or not. As Citrix is basically present in nearly every large company, Citrix receiver, coupled with Access Gateway and SoftwareFX could put you and your team in a position to be able to accommodate this level of agility. Ensure that your INFOSEC teams understand the difference between an ICA Session and a VPN Tunnel, begin to educate decision makers on why we can make use of this technology for end users who are in the field and need this level of agility. Put yourself in a position to say yes, as it doesn&#8217;t take a great deal of innovation to say &#8220;no&#8221;.</p>
<p>God knows, I am hardly the gadget enthusiast, in fact I remember telling people that a phone was for talking on and nothing more but this new breed of smart phone and affordable tablets has me excited to see what we can do for our users in the field who, ultimately, pay all of our salaries.</p>
<p>Thanks for reading.</p>
<p> John</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jmsazboy.wordpress.com/238/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jmsazboy.wordpress.com/238/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jmsazboy.wordpress.com/238/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jmsazboy.wordpress.com/238/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jmsazboy.wordpress.com/238/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jmsazboy.wordpress.com/238/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jmsazboy.wordpress.com/238/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jmsazboy.wordpress.com/238/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jmsazboy.wordpress.com/238/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jmsazboy.wordpress.com/238/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jmsazboy.wordpress.com/238/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jmsazboy.wordpress.com/238/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jmsazboy.wordpress.com/238/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jmsazboy.wordpress.com/238/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xen-trifuge.com&amp;blog=7899546&amp;post=238&amp;subd=jmsazboy&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xen-trifuge.com/2010/08/19/extending-the-rudder/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7d875a10f43641d8674e1bc7c1fc8b9d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">John M. Smith</media:title>
		</media:content>

		<media:content url="http://jmsazboy.files.wordpress.com/2010/08/vpn-ipad.png" medium="image">
			<media:title type="html">VPN-IPAD</media:title>
		</media:content>

		<media:content url="http://jmsazboy.files.wordpress.com/2010/08/ica-ipad.png" medium="image">
			<media:title type="html">ICA-IPAD</media:title>
		</media:content>
	</item>
		<item>
		<title>Project Poindexter: (Non-Citrix Related) Grabbing Pix URL logs checking them for malware.</title>
		<link>http://xen-trifuge.com/2010/07/11/project-poindexter-grabbing-pix-url-logs-checking-them-for-malware/</link>
		<comments>http://xen-trifuge.com/2010/07/11/project-poindexter-grabbing-pix-url-logs-checking-them-for-malware/#comments</comments>
		<pubDate>Sun, 11 Jul 2010 20:15:21 +0000</pubDate>
		<dc:creator>John M. Smith</dc:creator>
				<category><![CDATA[Advanced Persistent Threat]]></category>
		<category><![CDATA[Information Security]]></category>
		<category><![CDATA[Monitor Malware]]></category>
		<category><![CDATA[Syslog]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Malware]]></category>
		<category><![CDATA[PIX]]></category>
		<category><![CDATA[PIX Logs]]></category>

		<guid isPermaLink="false">http://jmsazboy.wordpress.com/2010/07/11/project-poindexter-grabbing-pix-url-logs-checking-them-for-malware/</guid>
		<description><![CDATA[This is my first non-Citrix related post, I don&#8217;t plan on making it a habit but someone suggested that I post this in case it is valuable to other INFOSEC types.  Let me start off by saying I am not a traditional security guy, I don&#8217;t have an abundance of hacking skills, I am not [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xen-trifuge.com&amp;blog=7899546&amp;post=190&amp;subd=jmsazboy&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This is my first non-Citrix related post, I don&#8217;t plan on making it a habit but someone suggested that I post this in case it is valuable to other INFOSEC types. </p>
<p>Let me start off by saying I am not a traditional security guy, I don&#8217;t have an abundance of hacking skills, I am not a black hat, white hat etc. I did work in Security for awhile as the Event Correlation guy for a year and have been trying to leverage digital epidemiology as a way to secure my systems. As I have stated in previous blogs, we have a better chance of curing the common cold than getting rid of malware and 0-day&#8217;s. In fact, I would say there are two kinds of systems, breached and about to get breached. This is the way you have to approach malware in my opinion. What surprised me with the Aurora breach was that it appears as though the INFOSEC community spends the lion&#8217;s share, if not all, of their time on ingress and completely ignores egress. When I look at the Google breach I see an attack that should have been mitigated within 24 hours.</p>
<p>Over the years I have deployed or viewed a number of event correlation utilities, most of them costing in excess of $250K for a large implementation.  What I generally did not like about shrink wrapped solutions and what I am most concerned about in the IT industry is the de-emphasis on heuristics and a dependance on an automated process to detect a problem.  In my opinion, an &#8220;Event Correlator&#8221; is not an appliance, it is an IT Person looking at a series of logs and events and saying &#8220;Holy shit! What the HELL is that!&#8221;.  The fact is, false positives make a lot of really expensive security software completely useless and a stored procedure or IDS/IPS cannot do as good of a job as a human being who can look at a series of logs and make an interpretation.  What I want to provide here is some of the heavy lifting that can then be use by a human to determin if there is an issue. </p>
<p>The purpose of this post is to show people how I grabbed Syslog data from my pix allowing me to grab the URI Stem of all outgoing sessions and log them into a SQL Server. Afterward, I will be able to run key queries to be able to troll for .exe, .dll, .tgz and any other problem extensions. Also, I can upload the latest malware list data and cross reference it with the information in my database which will allow me to see if any of my systems are phoning home to a botnet master, malware distribution site, etc. This is basically a take on my edgesightunderthehood.com post on monitoring APT with Edgesight.</p>
<p>The first order of business is to get the logs to the syslog server. I start by creating a filter that will grab the logs. (See Below)</p>
<p><img src="http://jmsazboy.files.wordpress.com/2010/07/071110_2012_projectpoin1.png?w=530" alt="" /></p>
<p>The next step is to parse the incoming data into separate columns in my database. This is done by setting up a custom db format for the purpose of these logs. The parse script is provided below:<br />
Also, check all checkboxes below &#8220;Read&#8221; and &#8220;Write&#8221;</p>
<p><img src="http://jmsazboy.files.wordpress.com/2010/07/071110_2012_projectpoin2.png?w=530" alt="" /></p>
<p><strong>Parsing Script: (Cut and paste it to a text file then use that text file in the dialog box above)<br />
</strong><span style="font-size:8pt;">################################<br />
Function Main()<br />
Main = &#8220;OK&#8221;<br />
Dim MyMsg<br />
Dim Source<br />
Dim Destination<br />
Dim Payload<br />
</span></p>
<p><span style="font-size:8pt;">With Fields<br />
Source = &#8220;&#8221;<br />
Destination = &#8220;&#8221;<br />
Payload = &#8220;&#8221;    <br />
</span></p>
<p><span style="font-size:8pt;">MyMsg = .VarCleanMessageText<br />
</span></p>
<p><span style="font-size:8pt;">If ( Instr( MyMsg, &#8220;%PIX&#8221; ) ) Then<br />
SourceBeg = Instr( MyMsg, &#8220;: &#8220;) + 2<br />
SourceEnd = Instr( SourceBeg, MyMsg, &#8220;Accessed&#8221;)<br />
Source = Mid( MyMsg, SourceBeg, SourceEnd &#8211; SourceBeg)<br />
DSTBeg = Instr( MyMsg, &#8220;URL&#8221;) + 3<br />
DSTEnd = Instr( DSTBeg, MyMsg, &#8220;:&#8221;)<br />
Destination = Mid( MyMsg, DSTBeg, DSTEnd &#8211; DSTBeg)<br />
End IF    <br />
.VarCustom01 = Source<br />
.VarCustom02 = Destination<br />
.VarCustom03 = Payload<br />
</span></p>
<p><span style="font-size:8pt;">End With<br />
End Function<br />
##################################</span></p>
<p>The last step is to write the data to SQL but first let&#8217;s do a few tasks to prepare the table.</p>
<ol>
<li>Set up an ODBC connection to a SQL Server and create a database called &#8220;Syslog&#8221; and connect to it with an account that has dbo privilages.</li>
<li>
<div>Create the Custom DB Format for grabbing URL&#8217;s</div>
<p><img src="http://jmsazboy.files.wordpress.com/2010/07/071110_2012_projectpoin3.png?w=530" alt="" /></li>
</ol>
<p>Note that this table will have five columns, msgdatetime, msghostname, msgtext, source, destination and payload. (The last column, payload, is not working yet but I will show you how to get the payload later)</p>
<p>3. Once this is done, create an action called &#8220;Write to SQL&#8221; and select &#8220;PIX_URL&#8221; from the custom data fromat list and name the table &#8220;PIX_URL&#8221; then select &#8220;Create Table&#8221;</p>
<p><img src="http://jmsazboy.files.wordpress.com/2010/07/071110_2012_projectpoin4.png?w=530" alt="" /></p>
<p>Okay, so now that we have the data writing to SQL Server, let&#8217;s look at a month&#8217;s worth of data on one of my systems:</p>
<p>This query will give you the payload and the number of times the payload has been accessed. Using the <em>having </em>function I am going to ask for every uri-stem that has been accessed more than 5 times in the last month.</p>
<p><span style="font-family:Courier New;font-size:9pt;"><span style="color:blue;">select </span><span style="color:fuchsia;">substring</span><span style="color:gray;">(</span>msgtext<span style="color:gray;">,</span>41<span style="color:gray;">,</span> 2048<span style="color:gray;">)</span><span style="color:blue;">as</span> &#8220;Payload&#8221;<span style="color:gray;">, </span><span style="color:fuchsia;">count</span><span style="color:gray;">(</span><span style="color:fuchsia;">substring</span><span style="color:gray;">(</span>msgtext<span style="color:gray;">,</span>41<span style="color:gray;">,</span> 2048<span style="color:gray;">))<br />
</span></span><span style="font-family:Courier New;font-size:9pt;"><span style="color:blue;">from</span> pix_url<br />
</span><span style="font-family:Courier New;font-size:9pt;"><span style="color:blue;">group </span><span style="color:blue;">by </span><span style="color:fuchsia;">substring</span><span style="color:gray;">(</span>msgtext<span style="color:gray;">,</span>41<span style="color:gray;">,</span> 2048<span style="color:gray;">)<br />
</span></span><span style="font-family:Courier New;font-size:9pt;"><span style="color:blue;">having </span><span style="color:fuchsia;">count</span><span style="color:gray;">(</span><span style="color:fuchsia;">substring</span><span style="color:gray;">(</span>msgtext<span style="color:gray;">,</span>41<span style="color:gray;">,</span> 2048<span style="color:gray;">)) </span><span style="color:gray;">&gt;</span> 5<br />
</span><span style="font-family:Courier New;font-size:9pt;"><span style="color:blue;">order </span><span style="color:blue;">by </span><span style="color:fuchsia;">count</span><span style="color:gray;">(</span><span style="color:fuchsia;">substring</span><span style="color:gray;">(</span>msgtext<span style="color:gray;">,</span>41<span style="color:gray;">,</span> 2048<span style="color:gray;">)) </span><span style="color:blue;">desc</span></span> </p>
<p>The idea behind this is that if you note 1000 records to &#8220;123.123.123.123:/botmaster/botnet.exe&#8221; you may want to do something about it. You can also download the malwaredomainlist.com data, import it into SQL and cross reference that data to ensure that you are not communicating with any noted malware sites. Depending on the response of this blog, I may post those instructions as well.</p>
<p> <strong>And here are what the results look like:<br />
</strong></p>
<p><img src="http://jmsazboy.files.wordpress.com/2010/07/071110_2012_projectpoin5.png?w=530" alt="" /></p>
<p><strong>Another query I like to run is one looking for executable files in the URI-stem.<br />
</strong></p>
<p><span style="font-family:Courier New;font-size:9pt;"><span style="color:blue;">select</span> Msghostname <span style="color:blue;">as</span> &#8220;Firewall&#8221;<span style="color:gray;">, </span><span style="color:gray;">Source,</span> Destination<span style="color:gray;">, </span><span style="color:fuchsia;">substring</span><span style="color:gray;">(</span>msgtext<span style="color:gray;">,</span>41<span style="color:gray;">,</span> 2048<span style="color:gray;">) </span><span style="color:blue;">as</span> &#8220;Payload&#8221;<br />
</span><span style="font-family:Courier New;font-size:9pt;"><span style="color:blue;">from</span> pix_url<br />
</span><span style="font-family:Courier New;font-size:9pt;"><span style="color:blue;">where</span> msgtext <span style="color:gray;">like </span><span style="color:red;">&#8216;%.exe%&#8217;<br />
</span></span><span style="font-family:Courier New;font-size:9pt;"><span style="color:blue;">order </span><span style="color:blue;">by</span> msgdatetime <span style="color:blue;">desc<br />
</span></span></p>
<p>This will allow me to troll for executables that my internal users are accessing, as with most versions of malware, this should show itself early on during the breach.</p>
<p>So how do you monitor?</p>
<p>Well, you don&#8217;t have to sit there with query analyzer open all day but you can set up SQL Server Reporting Services to do this chore for you and deliver a dashboard to operations personnel. Here is a quick view of a dashboard that refreshes ever 5 seconds and turns RED when &#8220;.exe&#8221; is in the URI-Stem. In this scenario, you would be able to investigate the executable that is being downloaded by the client and ensure that it is not malware. You can test this yourself once you set it up by going to any site and typing &#8220;/test.exe&#8221; at the end.</p>
<p><img src="http://jmsazboy.files.wordpress.com/2010/07/071110_2012_projectpoin6.png?w=530" alt="" /><span style="color:blue;font-family:Courier New;font-size:9pt;"><br />
</span></p>
<p><strong>Conclusion:<br />
</strong>Again, I am not a traditional security guy so this could be utterly useless, I am not the PIX guy at my job, I AM the PIX guy at home though. Also, I have found it very useful to check for Malware and 0-Day&#8217;s that my anti-virus does not pick up. While I cannot speak with as much authority as a number of CISSP&#8217;s and INFOSEC guru&#8217;s, I can say that the continued ignorance surrounding egress will allow malware to run amuck. As I stated in a previous blog, it is foolish to beat your chest at the millions of packets you keep out while the few that get in can take anything they want, and leave unmolested. Just like a store has to let some people in then focus on ensuring no one leaves with anything they didn&#8217;t pay for, IT Security needs to ease over to this mentality and keep track of what is leaving its networks and where it is being sent. At any rate, if this has value to anyone let me know, I will include the RDL (Report File) online for download if anyone wants to set it up. I know a lot of PIX guys aren&#8217;t necessarily web/database guys so if you have any questions, feel free to ask.</p>
<p>Thanks for reading,</p>
<p>John</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jmsazboy.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jmsazboy.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jmsazboy.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jmsazboy.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jmsazboy.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jmsazboy.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jmsazboy.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jmsazboy.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jmsazboy.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jmsazboy.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jmsazboy.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jmsazboy.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jmsazboy.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jmsazboy.wordpress.com/190/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xen-trifuge.com&amp;blog=7899546&amp;post=190&amp;subd=jmsazboy&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xen-trifuge.com/2010/07/11/project-poindexter-grabbing-pix-url-logs-checking-them-for-malware/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7d875a10f43641d8674e1bc7c1fc8b9d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">John M. Smith</media:title>
		</media:content>

		<media:content url="http://jmsazboy.files.wordpress.com/2010/07/071110_2012_projectpoin1.png" medium="image" />

		<media:content url="http://jmsazboy.files.wordpress.com/2010/07/071110_2012_projectpoin2.png" medium="image" />

		<media:content url="http://jmsazboy.files.wordpress.com/2010/07/071110_2012_projectpoin3.png" medium="image" />

		<media:content url="http://jmsazboy.files.wordpress.com/2010/07/071110_2012_projectpoin4.png" medium="image" />

		<media:content url="http://jmsazboy.files.wordpress.com/2010/07/071110_2012_projectpoin5.png" medium="image" />

		<media:content url="http://jmsazboy.files.wordpress.com/2010/07/071110_2012_projectpoin6.png" medium="image" />
	</item>
		<item>
		<title>Project Poindexter: Endpoint Analysis Log Harvesting</title>
		<link>http://xen-trifuge.com/2010/06/26/project-poindexter-endpoint-analysis-log-harvesting/</link>
		<comments>http://xen-trifuge.com/2010/06/26/project-poindexter-endpoint-analysis-log-harvesting/#comments</comments>
		<pubDate>Sat, 26 Jun 2010 18:14:42 +0000</pubDate>
		<dc:creator>John M. Smith</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[AGEE Endpoint Analysis Logs]]></category>
		<category><![CDATA[AGEE EPA Logs]]></category>
		<category><![CDATA[Citrix Endpoint Analysis]]></category>
		<category><![CDATA[Citrix EPA]]></category>
		<category><![CDATA[Clear2View]]></category>
		<category><![CDATA[Endpoint Analysis Logging]]></category>

		<guid isPermaLink="false">http://jmsazboy.wordpress.com/2010/06/26/project-poindexter-endpoint-analysis-log-harvesting/</guid>
		<description><![CDATA[About four years ago management wanted to know which users were failing their endpoint analysis scans and to what extent we were compliant with endpoint analysis. We spent over $30K on a product called &#8220;Clear2View&#8221; and it did some rudimentary scans logging for us but the data was not very easy to query even though [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xen-trifuge.com&amp;blog=7899546&amp;post=179&amp;subd=jmsazboy&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><span style="font-size:10pt;">About four years ago management wanted to know which users were failing their endpoint analysis scans and to what extent we were compliant with endpoint analysis. We spent over $30K on a product called &#8220;Clear2View&#8221; and it did some rudimentary scans logging for us but the data was not very easy to query even though it was located in a SQL Database and the reporting features were, in my opinion, only so-so. With that, it appears as though Clear2View has gone away and many of us are left wondering how we will get our EPA Scan data on the new AGEE platform. We have been able to get past this dilemma by harvesting the Syslog Data from the AGEE and parsing it into a SQL Server and then integrating it with Business Intelligence.<br />
</span></p>
<p><span style="font-size:10pt;">As with other &#8220;Project Poindexter&#8221; posts, we will cover how to grab EPA Scan results from SYSLOG and write them to a SQL Server then report on them at a cost considerably less than $30K.<br />
</span></p>
<p><span style="font-size:10pt;"><strong>Materials:<br />
</strong>Kiwi Syslog Server (Full version is $260 bucks)<br />
SQL Server w/Reporting Services (You should already have if you have Edgesight)<br />
</span></p>
<p><span style="font-size:10pt;"><strong>Skills:<br />
</strong>Some vbscript or parsing skills, although I will provide the parsing script to you.<br />
The ability to take my SQL Syntax and edit it so that it suites your scans/environment.<br />
The ability to upload an RDL to Reporting Services and map it to a data souce.<br />
<strong><br />
So getting started, here is an Example:<br />
</strong>So, at home with the VPX and some test vm&#8217;s I set up the following scans:<br />
<img src="http://jmsazboy.files.wordpress.com/2010/06/062610_1811_projectpoin1.png?w=530" alt="" /><strong><br />
</strong></span></p>
<p><span style="font-size:10pt;">As you can see, I am testing for the McAfee suite(a canned scan) and to see if the Windows Firewall is running.<br />
</span></p>
<p><span style="font-size:10pt;"><strong>Results: </strong>Here are the results that come into KIWI.<strong><br />
</strong></span></p>
<p><span style="font-size:10pt;">06-26-2010    12:16:05    Local7.Error    192.168.1.75    06/26/2010:11:41:06 GMT ns PPE-0 : SSLVPN CLISEC_EXP_EVAL 104254 : User wireless: &#8211; Client IP 192.168.1.50 &#8211; Vserver 192.168.1.100:443 &#8211; Client security expression CLIENT.SVC(MpsSvc) EXISTS evaluated to FALSE(3)<br />
</span></p>
<p><span style="font-size:10pt;">06-26-2010    12:16:05    Local7.Error    192.168.1.75    06/26/2010:11:41:06 GMT ns PPE-0 : SSLVPN CLISEC_EXP_EVAL 104253 : User wireless: &#8211; Client IP 192.168.1.50 &#8211; Vserver 192.168.1.100:443 &#8211; Client security expression CLIENT.SVC(MCVSRte).VERSION == 9.0.0 -frequency 5 evaluated to FALSE(3)<br />
</span></p>
<p><span style="font-size:10pt;">06-26-2010    12:16:05    Local7.Error    192.168.1.75    06/26/2010:11:41:06 GMT ns PPE-0 : SSLVPN CLISEC_EXP_EVAL 104252 : User wireless: &#8211; Client IP 192.168.1.50 &#8211; Vserver 192.168.1.100:443 &#8211; Client security expression CLIENT.APPLICATION.AV(McafeeVirusScanEnterprise).VERSION == 7.0 -frequency 5 evaluated to FALSE(3)<br />
</span></p>
<p><span style="font-size:10pt;">06-26-2010    12:16:05    Local7.Error    192.168.1.75    06/26/2010:11:41:06 GMT ns PPE-0 : SSLVPN CLISEC_EXP_EVAL 104251 : User wireless: &#8211; Client IP 192.168.1.50 &#8211; Vserver 192.168.1.100:443 &#8211; Client security expression CLIENT.APPLICATION.AV(McafeeVirusScan).VERSION == 7.0 -frequency 5 evaluated to FALSE(3)<br />
</span></p>
<p><span style="font-size:10pt;">06-26-2010    12:16:05    Local7.Error    192.168.1.75    06/26/2010:11:41:06 GMT ns PPE-0 : SSLVPN CLISEC_EXP_EVAL 104250 : User wireless: &#8211; Client IP 192.168.1.50 &#8211; Vserver 192.168.1.100:443 &#8211; Client security expression CLIENT.APPLICATION.AV(McafeeNetshield).VERSION == 7.0 -frequency 5 evaluated to FALSE(3)<br />
</span></p>
<p><span style="font-size:10pt;">So next let&#8217;s take these results and get them parsed then logged to SQL Server:<br />
</span></p>
<p><span style="font-size:10pt;">Create a new Rule called &#8220;EPA Scans&#8221; and create one filter with three actions.<br />
The First Filter is called &#8220;Filter Text &#8211; CLISEC&#8221; and set it up to filter message text for &#8220;CLISEC&#8221;<br />
The first Action is &#8220;DISPLAY&#8221;<br />
The second Action is &#8220;Parse Data&#8221; (Note Check all the boxes for Read and Write and Browse to the location of the Parsing Script which you can get at http://www.ctxsupport.com and go to the &#8220;ACCESS GATEWAY forum)<br />
<img src="http://jmsazboy.files.wordpress.com/2010/06/062610_1811_projectpoin2.png?w=530" alt="" /><br />
</span></p>
<p><span style="font-size:10pt;">The third Action is called &#8220;Write to SQL&#8221; which will require a custom data format so let&#8217;s cover those steps:<br />
</span></p>
<p><span style="font-size:10pt;"><strong>Custom Data Format:<br />
</strong>Create a custom DB Format called EPA_SCANS, it should appear as follows: (Note the Field names AND the <strong>data types</strong> as they are very important)<br />
<img src="http://jmsazboy.files.wordpress.com/2010/06/062610_1811_projectpoin3.png?w=530" alt="" /><br />
Now that you have created your custom DB format go back to your &#8220;Write to SQL&#8221; action<br />
<img src="http://jmsazboy.files.wordpress.com/2010/06/062610_1811_projectpoin4.png?w=530" alt="" /><br />
</span></p>
<p><span style="font-size:10pt;">Make sure that your DNS Connect String is correct and make sure that you name the table EPA_SCANS under database table name and that you use the Custom DB Format EPA_Scans then click on &#8220;Create Table&#8221;<br />
</span></p>
<p><span style="font-size:10pt;">Once this is done you should be all set, log into your VPN/AGEE Address and look for the results by running a simple SQL Query:<br />
</span></p>
<p><span style="font-size:10pt;"><em>select * from epa_scans<br />
order by msgdatetime desc<br />
</em></span></p>
<p><span style="font-size:10pt;"><strong>You should see something like the following:<br />
<img src="http://jmsazboy.files.wordpress.com/2010/06/062610_1811_projectpoin5.png?w=530" alt="" /><br />
</strong></span></p>
<p><span style="font-size:10pt;">Note that in the results I include 7 columns. I always include the entire log in the msgtext column for several reasons, among them Security statutes may dictate that you must have all of the log available and there are instances where parsed logs are not admissible in court. For this endeavor, it is your choice, I have habit of just leaving it in.<br />
</span></p>
<p><span style="font-size:10pt;">Also, my goal of setting up the logging was so that the Service Desk staff could look at the results and tell the end users what the problem is. To deal with that issue let&#8217;s take a look at the actual scans:<br />
</span></p>
<p><span style="font-size:10pt;"><strong>CLIENT.APPLICATION.AV(McafeeNetshield).VERSION == 7.0 -frequency 5 CLIENT.APPLICATION.AV(McafeeVirusScan).VERSION == 7.0 -frequency 5 CLIENT.APPLICATION.AV(McafeeVirusScanEnterprise).VERSION == 7.0 -frequency 5 CLIENT.SVC(MCVSRte).VERSION == 9.0.0 -frequency 5<br />
CLIENT.SVC(MpsSvc) EXISTS<br />
</strong></span></p>
<p><span style="font-size:10pt;">As you can see from the scans above, a Level I engineer may not have a very easy time with this so we are going to change our SQL up a little bit so that we have a more friendly description of the scan so that when someone calls the helpdesk saying they cannot get to a resource due to a failed scan, the person on the phone with them can give them a clear explanation of what the issue is.<br />
</span></p>
<p><span style="font-size:10pt;">So let&#8217;s shake up our SQL just a little:<br />
</span></p>
<p><span style="font-family:Courier New;font-size:8pt;"><span style="color:blue;">select</span> msgdatetime<span style="color:gray;">,</span> userid<span style="color:gray;">,</span> clientip<span style="color:gray;">,</span> scan<span style="color:gray;">=<br />
</span></span><span style="font-family:Courier New;font-size:8pt;">    <span style="color:blue;">case</span> Scan<br />
</span><span style="font-family:Courier New;font-size:8pt;">    <span style="color:blue;">when </span><span style="color:red;">&#8216;CLIENT.SVC(MCVSRte).VERSION == 9.0.0 -frequency 5&#8242; </span><span style="color:blue;">then </span><span style="color:red;">&#8216;Antivirus Service Check&#8217;<br />
 </span></span><span style="font-family:Courier New;font-size:8pt;">   <span style="color:blue;">when </span><span style="color:red;">&#8216;CLIENT.APPLICATION.AV(McafeeVirusScanEnterprise).VERSION == 7.0 -frequency 5 &#8216; </span><span style="color:blue;">then </span><span style="color:red;">&#8216;Antivirus ENT.Version Check&#8217;<br />
</span></span><span style="font-family:Courier New;font-size:8pt;">    <span style="color:blue;">when </span><span style="color:red;">&#8216;CLIENT.APPLICATION.AV(McafeeVirusScan).VERSION == 7.0 -frequency 5&#8242; </span><span style="color:blue;">then </span><span style="color:red;">&#8216;Antivirus Std. Version Check&#8217;<br />
</span></span><span style="font-family:Courier New;font-size:8pt;">    <span style="color:blue;">when </span><span style="color:red;">&#8216;CLIENT.APPLICATION.AV(McafeeNetshield).VERSION == 7.0 -frequency 5&#8242; </span><span style="color:blue;">then </span><span style="color:red;">&#8216;Netshield Version 7 Check&#8217;<br />
</span></span><span style="font-family:Courier New;font-size:8pt;">    <span style="color:blue;">when </span><span style="color:red;">&#8216;CLIENT.SVC(MpsSvc) EXISTS&#8217; </span><span style="color:blue;">then </span><span style="color:red;">&#8216;Check Microsoft Firewall Service&#8217;<br />
</span></span><span style="font-family:Courier New;font-size:8pt;">    <span style="color:blue;">end</span><span style="color:gray;">,<br />
</span></span><span style="font-family:Courier New;font-size:8pt;">    Result<br />
</span><span style="font-family:Courier New;font-size:8pt;">    <span style="color:blue;">from</span> epa_scans<br />
</span><span style="font-size:8pt;"><span style="color:blue;font-family:Courier New;">order </span><span style="font-family:Courier New;"><span style="color:blue;">by</span> msgdatetime <span style="color:blue;">desc</span></span><br />
</span></p>
<p><span style="font-size:10pt;">WordPress has a habit of placing double quotes on single quotes so it is not likely you can just paste this into your query so I will include this in the Access Gateway area of http://ctxsupport.com. At any rate note the following:<br />
We are taking the cryptic &#8220;</span><span style="font-family:Courier New;font-size:8pt;"><span style="color:red;"> CLIENT.APPLICATION.AV(McafeeVirusScanEnterprise).VERSION == 7.0 -frequency 5&#8243; </span>Text and converting it into a more easily interpreted <span style="color:red;">&#8216;Antivirus ENT.Version Check&#8217;</span>Your SQL Query, and eventually your SQL Reporting services reports will appear as follows:<br />
<img src="http://jmsazboy.files.wordpress.com/2010/06/062610_1811_projectpoin6.png?w=530" alt="" /><br />
</span></p>
<p><span style="font-size:10pt;">Also, your SQL Report will appear as follows:<br />
<img src="http://jmsazboy.files.wordpress.com/2010/06/062610_1811_projectpoin7.png?w=530" alt="" /><br />
Note that the failures are RED which will alert your staff and also note how much more logical and more intpretable the SCAN information is. You could also rig up a self service by providing a link on the scan sending the user to the place to either innoculate their system or instructions on how to turn on their Microsoft Firewall.<br />
</span></p>
<p><span style="font-size:10pt;">Again all parsing scripts, RDL&#8217;s and SQL Queries are located <a href="http://www.ctxsupport.com/forums/showthread.php?36-Parsing-Scripts-for-VPN-Data-Mining-on-AGEE&amp;p=41#post41" target="_blank">here</a><br />
</span></p>
<p><span style="font-size:10pt;"><strong>Why is this even important:<br />
</strong>Well, as the security screw gets tighter and tighter more and more restrictions are going to be placed on both internal and remote access systems. It will be a disaster to deploy endpoint analysis on a large scale without being able to at least give the support staff the ability to tell the users why they did not get access to a resource. We plan on taking this to the next level and providing an HTML Injection rule so that when a user goes straight to Web Interface because they failed a scan, there is a popup button that tells them they failed with a URL to the report above letting them know what scan failed, and eventually, a hyperlink to take them to a remediation page (Be it instructions or updated signatures).<br />
</span></p>
<p><span style="font-size:10pt;">Also, I believe, there never was a Clear2View for the AGEE anyway so those of us with the AGEE version were kind of left out of that game. This process sets you up with all the business intelligence you need to support NAC-like endpoint analysis and also allows you to report on the level of compliance for your company or agency. Oh&#8230;and it only costs $260 bucks plus some time (which I understand is expensive)<br />
</span></p>
<p><span style="font-size:10pt;"><strong>IMPORTANT NOTE/DISCLAIMER:<br />
</strong>Obiviously, Citrix will not support this but also, you WILL HAVE to be able to edit the SQL Statement both within the Query Analyzer AND the RDL file otherwiseyour report will not show proper data. You do need to have some SQL proficiency to pull this off but you do not have to be a full fledge DBA. If you are a parnter, this could be a very nice value-add for a customer if you have a few hours left in an engagement. It was not excessively difficult to do.<br />
</span></p>
<p><span style="font-size:10pt;">Also, I don&#8217;t run all of the scans that everyone else may or may not run. There may be an instance where a particular scan does not parse properly, if so, shoot me an email and I will see if I can&#8217;t figure it out.<br />
</span></p>
<p><span style="font-size:10pt;">As with the VPN Logging, I plan on producing a video walkthru of this entire task. I should have some head down time at the begining of Next month to walk through it.<br />
</span></p>
<p><span style="font-size:10pt;">This literally took 45 minutes to set up once I had the Parsing scripts and my SQL Figured out. If you run into a problem, feel free to shoot me an email.<br />
</span></p>
<p><span style="font-size:10pt;">Thanks for reading<br />
</span></p>
<p><span style="font-size:10pt;">John<br />
</span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jmsazboy.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jmsazboy.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jmsazboy.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jmsazboy.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jmsazboy.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jmsazboy.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jmsazboy.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jmsazboy.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jmsazboy.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jmsazboy.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jmsazboy.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jmsazboy.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jmsazboy.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jmsazboy.wordpress.com/179/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xen-trifuge.com&amp;blog=7899546&amp;post=179&amp;subd=jmsazboy&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xen-trifuge.com/2010/06/26/project-poindexter-endpoint-analysis-log-harvesting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7d875a10f43641d8674e1bc7c1fc8b9d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">John M. Smith</media:title>
		</media:content>

		<media:content url="http://jmsazboy.files.wordpress.com/2010/06/062610_1811_projectpoin1.png" medium="image" />

		<media:content url="http://jmsazboy.files.wordpress.com/2010/06/062610_1811_projectpoin2.png" medium="image" />

		<media:content url="http://jmsazboy.files.wordpress.com/2010/06/062610_1811_projectpoin3.png" medium="image" />

		<media:content url="http://jmsazboy.files.wordpress.com/2010/06/062610_1811_projectpoin4.png" medium="image" />

		<media:content url="http://jmsazboy.files.wordpress.com/2010/06/062610_1811_projectpoin5.png" medium="image" />

		<media:content url="http://jmsazboy.files.wordpress.com/2010/06/062610_1811_projectpoin6.png" medium="image" />

		<media:content url="http://jmsazboy.files.wordpress.com/2010/06/062610_1811_projectpoin7.png" medium="image" />
	</item>
		<item>
		<title>Project Poindexter:VPN Logs</title>
		<link>http://xen-trifuge.com/2010/06/16/project-poindexter-2/</link>
		<comments>http://xen-trifuge.com/2010/06/16/project-poindexter-2/#comments</comments>
		<pubDate>Wed, 16 Jun 2010 11:33:10 +0000</pubDate>
		<dc:creator>John M. Smith</dc:creator>
				<category><![CDATA[Citrix Access Gateway Enterprise Edition]]></category>
		<category><![CDATA[Citrix SQL Queries]]></category>
		<category><![CDATA[Digital SCIF]]></category>
		<category><![CDATA[Layered Security]]></category>
		<category><![CDATA[Netscaler]]></category>
		<category><![CDATA[Netscaler Syslog]]></category>
		<category><![CDATA[Netscaler VPX]]></category>
		<category><![CDATA[Secure Compartmentalized Information Facility]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Sensitive Compartmentalized Information Facility]]></category>
		<category><![CDATA[SSL VPN]]></category>

		<guid isPermaLink="false">http://jmsazboy.wordpress.com/2010/06/16/project-poindexter-2/</guid>
		<description><![CDATA[Total Information Awareness with your Netscaler/AGEE Harvesting VPN Logs with the Netscaler: When I first heard about Total Information Awareness I was a little concerned. Like a lot of my current team, I am one of those libertarians who really isn&#8217;t keen on his personal life being correlated and analyzed and a program that is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xen-trifuge.com&amp;blog=7899546&amp;post=160&amp;subd=jmsazboy&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:center;"><strong>Total Information Awareness with your Netscaler/AGEE<br />
</strong></p>
<p><strong>Harvesting VPN Logs with the Netscaler:<br />
</strong>When I first heard about Total Information Awareness I was a little concerned. Like a lot of my current team, I am one of those libertarians who really isn&#8217;t keen on his personal life being correlated and analyzed and a program that is overseen by unelected officials. That said, as an individual responsible for the security and integrity of information systems as well as a person who&#8217;s own personally identifiable information is in the databases of my bank, doctor and employer, I do believe I am entitled to know what is going on and I would like to think the stewards of my information are also informed of what is going on with regards to my own data. For this reason, I decided to start looking into how I could better monitor activity on my Netscaler and I wanted to provide an accompanying guide to my SCIFNET post/video showing how you can compartmentalize sensitive data using the VPX or a regular MPX class Netscaler.</p>
<p>Most engineers are fully aware that the Netscaler platform is capable of sending information to a syslog server. This in and of itself is not that significant as many network/Unix based appliances can syslog. What I want to discuss in this post is how to use a very cheap syslog server to set up a fully functional log consolidation system that includes parsing specific records and writing them to a relational database.</p>
<p>I find a certain amount of frustration with today&#8217;s six figure price tag event correlation systems and if you can only respond to a breach by doing &#8220;Find and Next&#8221; on a 90GB ASCII file, needless to say, that is not the most agile way to respond and not where it needs to be to react to an INFOSEC related incident. As with the Admiral Poindexter&#8217;s vision, proper analysis of events can be an instrumental tool in the defense of your information systems.</p>
<p><strong>Below is an example of a typical VPN log from your Netscaler/AGEE appliance:<br />
</strong><span style="font-size:9pt;"><em>06/15/2010:05:59:38 ns PPE-0 : SSLVPN HTTPREQUEST 94167 : <strong>Context wireless@192.168.1.50</strong> &#8211; SessionId: 5- <strong>www.veoh.com</strong> User wireless : Group(s) SCIF-NET USERS : Vserver 192.168.1.100:443 &#8211; 06/15/2010:05:59:38 <strong>GET /service/getUpdate.xml?clientGUID=01BACADF-CE85-48CD-8270</strong>-B8A183C27464&amp;VEOH_GUIDE_AUTH=am1zYXpib3k6MTI3ODAyODkyMTM1NzpyZWdp &#8211; -</em></span></p>
<p>Using KIWI Syslog server&#8217;s parsing capability, I will actually parse this data and write it into a SQL Server database to allow for very easy queries and eventually dashboards showing accountability and key data.</p>
<p>I have had engineers ask me how to get things like Client IP Address and what they have accessed. I will provide a parsing script that will pull from the example above, the following: (As in the case of the log above)</p>
<p><strong>Context:</strong> wireless@192.168.1.50<br />
<strong>Destination: </strong>www.veoh.com<br />
<strong>Payload: </strong>GET /service/getUpdate.xml?clientGUID=01BACADF-CE85-48CD-8270<br />
*I have also included &#8220;Assigned_IP&#8221; in case any of you assign ip addresses instead of NATing. If you are able to get the Destination of where a user was going, the need to account for every IP Address may become less important but some folks insist on not NATing their users. If so, the parse script will grab their IP&#8217;s as well.</p>
<p><strong>And just to show you that I do have the data you can see in the screen print below of the SQL Query:<img src="http://jmsazboy.files.wordpress.com/2010/06/061610_1130_projectpoin1.png?w=530" alt="" /></strong></p>
<p><strong>Uh, John&#8230;who cares?<br />
</strong>Well, most of the time you really shouldn&#8217;t need to do a lot of tracking of where your users are going but in some higher security environments being able to account for where users have gone could be very important. Say you hosted www.veoh.com (a site I hate but for the purpose of this lab, their malware&#8230;err&#8230;client was installed on the laptop I was testing with) and someone said that the system had been compromised. You could immediately obtain every user ID and IP Address that accessed that site and what the payload that they ran against it was. You would see the XSS or SQL Injection string immediately. You would also note a system that had malware and was trying to get in over one of the SMB &#8220;Whipping boys&#8221; (445, 135-139).</p>
<p><strong>Parsing data vs. just throwing it all into a flat file and waiting for an auditor to ask for it?<br />
</strong>As I stated previously, the ability to have your data in a relational database can give you a number of advantages, not just pretty tables and eventually dashboards but you also open the door to the following:</p>
<ul>
<li>Geospatial analysis of incoming IP Addresses (by cross referencing context with geospatial data from iptolocation.com or other free geospatial ip-to-location data.</li>
<li>An actual count of the number of concurrent users on a system within a block of time including historical reporting and trending.</li>
<li>The number of times a &#8220;Deny&#8221; policy has been tripped and who tripped it. If you are compartmentalizing your data and you want to know who tried to access something they are not allowed to.</li>
<li>Your sensitive data is on wiki leaks and you want to know every user who accessed the resource the data resides on, when and what ports they used?</li>
<li>And lastly, find out who is going &#8221; \\webserver\c$&#8221; to your web server instead of &#8220;http://webserver&#8221;</li>
</ul>
<p><strong>So what do I log?<br />
</strong>Well, I log basically everything but for VPN I log three different events into two different tables, I log all HTTP based traffic, normal UDP/TCP based connections and I also have a separate table for all of my &#8220;DENIED_BY_POLICY&#8221; Events.</p>
<p><strong>Here is an example of an HTTPREQUEST log:</strong><br />
<em>06/15/2010:11:59:58 ns PPE-0 : SSLVPN HTTPREQUEST 110352 : Context wireless@192.168.1.50 &#8211; SessionId: 5- www.veoh.com User wireless : Group(s) SCIF-NET USERS : Vserver 192.168.1.100:443 &#8211; 06/15/2010:11:59:58 GET /service/getUpdate.xml?clientGUID=01BACADF-CE85-48CD-8270-B8A183C27464&amp;VEOH_GUIDE_AUTH=am1zYXpib3k6MTI3ODAyODkyMTM1NzpyZWdp &#8211; -</em></p>
<p><strong>Here is an example of TCP/UDPFlow statistics:</strong><br />
<em>06/15/2010:12:18:16 ns PPE-0 : SSLVPN UDPFLOWSTAT 111065 : Context wireless@192.168.1.50 &#8211; SessionId: 5- User wireless &#8211; Client_ip 192.168.1.50 &#8211; Nat_ip 192.168.1.85 &#8211; Vserver 192.168.1.100:443 &#8211; Source 127.100.0.5:53052 &#8211; Destination 239.255.255.250:1900 &#8211; Start_time &#8220;06/15/2010:12:15:32 &#8221; &#8211; End_time &#8220;06/15/2010:12:18:16 &#8221; &#8211; Duration 00:02:44 &#8211; Total_bytes_send 1729 &#8211; Total_bytes_recv 0 &#8211; Access Allowed &#8211; Group(s) &#8220;SCIF-NET USERS&#8221;</em></p>
<p><strong>Here is an example of a DENIED_BY_POLICY event: (Over HTTP)<br />
</strong><em>06/15/2010:10:17:14 ns PPE-0 : SSLVPN HTTP_RESOURCEACCESS_DENIED 106151 : <strong>Context wireless@192.168.1.50</strong> &#8211; SessionId: 5- User wireless &#8211; Vserver 192.168.1.100:443 &#8211; Total_bytes_send 420 &#8211; Remote_host<strong> pt.veoh.com</strong> &#8211; Denied_url <strong>POST /tracker/update.jsp</strong> &#8211; Denied_by_policy &#8220;<strong>Problem-Site</strong>&#8221; &#8211; Group(s) &#8220;SCIF-NET USERS&#8221;</em></p>
<p><strong>Let&#8217;s talk a little about the &#8220;DENIED_BY_POLICY&#8221; logs<br />
</strong></p>
<p><strong>Here is a Scenario: </strong>I have a problem website that I do not want any of my users to go to so I create a policy called &#8220;Problem-Site&#8221; denying access to the IP of the problem site.</p>
<p><strong>For the log above, I parse the following:<br />
Context: </strong>wireless@192.168.1.50<br />
<strong>Destination:</strong> pt.veoh.com<br />
<strong>Policy: </strong>Problem-Site<br />
<strong>Payload: </strong>POST /tracker/update.jsp</p>
<p><strong>I also log non-http denies as well, these appear like the following:<br />
</strong><em>06/14/2010:21:08:03 ns PPE-0 : SSLVPN NONHTTP_RESOURCEACCESS_DENIED 69761 : Context <strong>wireless@192.168.1.50</strong> &#8211; SessionId: 5- User wireless &#8211; Client_ip 192.168.1.50 &#8211; Nat_ip &#8220;Mapped Ip&#8221; &#8211; Vserver 192.168.1.100:443 &#8211; Source 192.168.1.50:50343 &#8211; <strong>Destination 10.10.10.30:139</strong> &#8211; Total_bytes_send 291 &#8211; Total_bytes_recv 0 &#8211; Denied_by_policy &#8220;<strong>TOP-SECRET-DENY</strong>&#8221; &#8211; Group(s) &#8220;SCIF-NET USERS&#8221;</em></p>
<p><strong>Here is a Scenario: </strong>You read a story in &#8220;wired.com&#8221; about some kid who tried to give a bunch of sensitive data to a hacker or even wiki leaks and you are concerned about your own data being accessed without authorization. You want to monitor all attempts to get unauthorized access and you want to note them, or, since they are in SQL Server w/reporting services, create a dashboard that goes <span style="color:red;">RED</span> when a particular policy is tripped.</p>
<p>Another scenario would be to actually monitor successes and note the &#8220;Context&#8221;, if most users who access data provided by the &#8220;TOP-SECRET-ALLOW&#8221; policy come from a specific network ID, say 10.105.28.0/24 and you start seeing access from 10.111.13.68 then you can see if a user ID has been compromised, you can also query and see how often a user accesses data from which IP Addresses. If someone&#8217;s account is compromised, it would show up as coming from another IP as it is less likely that they are sitting at the user&#8217;s terminal.</p>
<p><strong>In the log above I parse the following:<br />
Context: </strong>wireless@192.168.1.50<br />
<strong>Destination:</strong> 10.10.10.30:139 (note the :139 indicating an attempt to use SMB)<br />
<strong>Policy: </strong>TOP-SECRET-DENY<br />
<strong>Payload: </strong>(Blank if not HTTP)</p>
<p><strong>Below is an example of Reporting Services dashboard that refreshes every minute:(Note, I have a particular Policy that turns red in this dashboard to alert me of an important breach attempt)<br />
</strong></p>
<div>
<table style="border-collapse:collapse;" border="0">
<col style="width:41px;" span="1"></col>
<col style="width:77px;" span="1"></col>
<col style="width:115px;" span="1"></col>
<col style="width:111px;" span="1"></col>
<col style="width:96px;" span="1"></col>
<col style="width:125px;" span="1"></col>
<tbody>
<tr style="background:steelblue;height:21px;">
<td style="border:solid lightgrey 1pt;padding:3px;"><span style="color:white;font-family:Tahoma;"><strong>Time</strong></span></td>
<td style="border-top:solid lightgrey 1pt;border-left:none;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"><span style="color:white;font-family:Tahoma;"><strong>Appliance</strong></span></td>
<td style="border-top:solid lightgrey 1pt;border-left:none;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"><span style="color:white;font-family:Tahoma;"><strong>Context</strong></span></td>
<td style="border-top:solid lightgrey 1pt;border-left:none;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"><span style="color:white;font-family:Tahoma;"><strong>Destination</strong></span></td>
<td style="border-top:solid lightgrey 1pt;border-left:none;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"><span style="color:white;font-family:Tahoma;"><strong>Policy</strong></span></td>
<td style="border-top:solid lightgrey 1pt;border-left:none;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"><span style="color:white;font-family:Tahoma;"><strong>Payload</strong></span></td>
</tr>
<tr style="background:red;height:20px;">
<td style="border-top:none;border-left:solid lightgrey 1pt;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"><span style="color:black;font-family:Arial;font-size:8pt;">12:37</span></td>
<td style="border-top:none;border-left:none;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"><span style="color:black;font-family:Tahoma;font-size:8pt;">192.168.1.75</span></td>
<td style="border-top:none;border-left:none;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"><span style="color:black;font-family:Tahoma;font-size:8pt;">wireless@192.168.1.50 </span></td>
<td style="border-top:none;border-left:none;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"><span style="color:black;font-family:Tahoma;font-size:8pt;">10.10.10.30 :3389</span></td>
<td style="border-top:none;border-left:none;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"><span style="color:black;font-family:Tahoma;font-size:8pt;">TOP-SECRET-DENY</span></td>
<td style="border-top:none;border-left:none;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"> </td>
</tr>
<tr style="background:red;height:20px;">
<td style="border-top:none;border-left:solid lightgrey 1pt;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"><span style="color:black;font-family:Arial;font-size:8pt;">12:37</span></td>
<td style="border-top:none;border-left:none;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"><span style="color:black;font-family:Tahoma;font-size:8pt;">192.168.1.75</span></td>
<td style="border-top:none;border-left:none;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"><span style="color:black;font-family:Tahoma;font-size:8pt;">wireless@192.168.1.50 </span></td>
<td style="border-top:none;border-left:none;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"><span style="color:black;font-family:Tahoma;font-size:8pt;">10.10.10.30 :3389</span></td>
<td style="border-top:none;border-left:none;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"><span style="color:black;font-family:Tahoma;font-size:8pt;">TOP-SECRET-DENY</span></td>
<td style="border-top:none;border-left:none;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"> </td>
</tr>
<tr style="background:red;height:20px;">
<td style="border-top:none;border-left:solid lightgrey 1pt;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"><span style="color:black;font-family:Arial;font-size:8pt;">12:37</span></td>
<td style="border-top:none;border-left:none;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"><span style="color:black;font-family:Tahoma;font-size:8pt;">192.168.1.75</span></td>
<td style="border-top:none;border-left:none;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"><span style="color:black;font-family:Tahoma;font-size:8pt;">wireless@192.168.1.50 </span></td>
<td style="border-top:none;border-left:none;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"><span style="color:black;font-family:Tahoma;font-size:8pt;">10.10.10.30:3389 </span></td>
<td style="border-top:none;border-left:none;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"><span style="color:black;font-family:Tahoma;font-size:8pt;">TOP-SECRET-DENY</span></td>
<td style="border-top:none;border-left:none;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"> </td>
</tr>
<tr style="background:red;height:20px;">
<td style="border-top:none;border-left:solid lightgrey 1pt;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"><span style="color:black;font-family:Arial;font-size:8pt;">12:37</span></td>
<td style="border-top:none;border-left:none;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"><span style="color:black;font-family:Tahoma;font-size:8pt;">192.168.1.75</span></td>
<td style="border-top:none;border-left:none;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"><span style="color:black;font-family:Tahoma;font-size:8pt;">wireless@192.168.1.50 </span></td>
<td style="border-top:none;border-left:none;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"><span style="color:black;font-family:Tahoma;font-size:8pt;">10.10.10.30:3389 </span></td>
<td style="border-top:none;border-left:none;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"><span style="color:black;font-family:Tahoma;font-size:8pt;">TOP-SECRET-DENY</span></td>
<td style="border-top:none;border-left:none;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"><span style="color:black;font-family:Tahoma;font-size:8pt;"><br />
</span> </td>
</tr>
<tr style="height:20px;">
<td style="border-top:none;border-left:solid lightgrey 1pt;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"><span style="color:black;font-family:Arial;font-size:8pt;">12:37</span></td>
<td style="border-top:none;border-left:none;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"><span style="color:black;font-family:Tahoma;font-size:8pt;">192.168.1.75</span></td>
<td style="border-top:none;border-left:none;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"><span style="color:black;font-family:Tahoma;font-size:8pt;">wireless@192.168.1.50 </span></td>
<td style="border-top:none;border-left:none;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"><span style="color:black;font-family:Tahoma;font-size:8pt;">pt.veoh.com </span></td>
<td style="border-top:none;border-left:none;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"><span style="color:black;font-family:Tahoma;font-size:8pt;">Problem-Site</span></td>
<td style="border-top:none;border-left:none;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"><span style="color:black;font-family:Tahoma;font-size:8pt;">POST /tracker/update.jsp </span></td>
</tr>
<tr style="background:red;height:20px;">
<td style="border-top:none;border-left:solid lightgrey 1pt;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"><span style="color:black;font-family:Arial;font-size:8pt;">12:37</span></td>
<td style="border-top:none;border-left:none;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"><span style="color:black;font-family:Tahoma;font-size:8pt;">192.168.1.75</span></td>
<td style="border-top:none;border-left:none;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"><span style="color:black;font-family:Tahoma;font-size:8pt;">wireless@192.168.1.50 </span></td>
<td style="border-top:none;border-left:none;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"><span style="color:black;font-family:Tahoma;font-size:8pt;">10.10.10.30:139 </span></td>
<td style="border-top:none;border-left:none;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"><span style="color:black;font-family:Tahoma;font-size:8pt;">TOP-SECRET-DENY</span></td>
<td style="border-top:none;border-left:none;border-bottom:solid lightgrey 1pt;border-right:solid lightgrey 1pt;padding:3px;"><span style="color:black;font-family:Tahoma;font-size:8pt;"> </span> </td>
</tr>
</tbody>
</table>
</div>
<p style="margin-left:36pt;"> </p>
<p style="margin-left:36pt;"><strong>What You need:</strong></p>
<ul>
<li>You need an incumbent SQL Server Environment, you need Reporting Services if you want dashboards (If you have edgesight you should already have this)</li>
<li>You need to be able to set up an ODBC Connection, remember if it is a 64-bit server/workstation you need to use the ODBC tool in %Systemroot%\sysWOW64</li>
<li>You need to be able to set up a database connection in Reporting Services</li>
<li>$245 bucks for a full version of KIWI, if you buy a Netscaler you can afford a full version of KIWI, I will cover several solutions that will make this the best $245 you have ever spent.</li>
</ul>
<p><strong>How to set it up:<br />
Once you brow beat your cheap boss into spending the $245 on KIWI you perform the following steps:</strong></p>
<p>Go to http://www.ctxsupport.com/forums/showthread.php?36-Parsing-Scripts-for-VPN-Data-Mining-on-AGEE and download all of the files. (Follow the instructions in the post)</p>
<p>Create a Database called Syslog with a username and password that has DBO privileges and create an ODBC Data Source on the server hosting KIWI for the syslog database and name it syslogd.</p>
<p>After renaming Netscaler.txt to Netscaler.ini go to KIWI and import the ini file.</p>
<p><img src="http://jmsazboy.files.wordpress.com/2010/06/061610_1130_projectpoin2.png?w=530" alt="" /></p>
<p>On each rule, go to the &#8220;Write to SQL&#8221; Action and click &#8220;Create Table&#8221;</p>
<p><img src="http://jmsazboy.files.wordpress.com/2010/06/061610_1130_projectpoin3.png?w=530" alt="" /></p>
<p>On each rule, go to the &#8220;Parse Data&#8221; Action and click &#8220;Browse&#8221; to upload the parsing script that goes with each rule. (Check all checkboxes under &#8220;Read and Write&#8221;<img src="http://jmsazboy.files.wordpress.com/2010/06/061610_1130_projectpoin4.png?w=530" alt="" /></p>
<p><strong>Conlcusion:<br />
</strong>Once this is done you will be able to collect a ton of information that is very useful and it beats the hell out of a 90GB ASCII file or just writing everything into a single event correlation system without the ability to query on certain columns. All of the parsing scripts write the entire log to the msgtext column so you still have the original log if there is every any questions. Being able to parse key information in a specific column will give you a considerably higher level of agility when searching for information about a particular user, IP Address, destination or Security Policy.</p>
<p>If there is a worm that is sending a particular payload over http, you are one query away from finding out every infected IP Address. If an auditor asks you how many users have accessed a sensitive server you are a query away from providing that information. I will supplement this post with a video of the entire setup from start to finish on citrix.utipu.com within the next two weeks (Hopefullly).</p>
<p>Also, I tried this in a home based lab (I cannot use my logs from work) so please, if you have any issues getting it to work, let me know so I can set up better instructions. And keep in mind, I have not looked at this with ICAPROXY logs, I am hoping to do that ASAP, there may be a supplement to this that includes a different script and maybe a different table for ICAPROXY logs. I am waiting on an enhancement request before I tackle ICAProxy logs (They will come across as &#8220;SSLVPN&#8221; but the log does look different than standard VPN logs).</p>
<p>And most importantly, I am not a Developer, I am a poor-man&#8217;s DBA and am a marginal scripter at best, if you can write a better parsing script please let me know!!</p>
<p>Thanks for reading</p>
<p>John Smith</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jmsazboy.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jmsazboy.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jmsazboy.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jmsazboy.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jmsazboy.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jmsazboy.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jmsazboy.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jmsazboy.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jmsazboy.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jmsazboy.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jmsazboy.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jmsazboy.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jmsazboy.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jmsazboy.wordpress.com/160/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xen-trifuge.com&amp;blog=7899546&amp;post=160&amp;subd=jmsazboy&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xen-trifuge.com/2010/06/16/project-poindexter-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7d875a10f43641d8674e1bc7c1fc8b9d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">John M. Smith</media:title>
		</media:content>

		<media:content url="http://jmsazboy.files.wordpress.com/2010/06/061610_1130_projectpoin1.png" medium="image" />

		<media:content url="http://jmsazboy.files.wordpress.com/2010/06/061610_1130_projectpoin2.png" medium="image" />

		<media:content url="http://jmsazboy.files.wordpress.com/2010/06/061610_1130_projectpoin3.png" medium="image" />

		<media:content url="http://jmsazboy.files.wordpress.com/2010/06/061610_1130_projectpoin4.png" medium="image" />
	</item>
		<item>
		<title>Calling all Govies, Seemless ICAProxy with SmartCards and AGEE</title>
		<link>http://xen-trifuge.com/2010/05/09/calling-all-govies-seemless-icaproxy-with-smartcards-and-agee/</link>
		<comments>http://xen-trifuge.com/2010/05/09/calling-all-govies-seemless-icaproxy-with-smartcards-and-agee/#comments</comments>
		<pubDate>Sun, 09 May 2010 17:30:54 +0000</pubDate>
		<dc:creator>John M. Smith</dc:creator>
				<category><![CDATA[CAC Card Citrix Access Gateway]]></category>
		<category><![CDATA[HSPD-12 Citrix]]></category>
		<category><![CDATA[SmartCard Citrix Access Gateway]]></category>

		<guid isPermaLink="false">http://jmsazboy.wordpress.com/2010/05/09/calling-all-govies-seemless-icaproxy-with-smartcards-and-agee/</guid>
		<description><![CDATA[With the release of the Web Interface 5.3 version from Citrix we now finally have what appears to be seamless SmartCard Access for AGEE customers who want to maintain their current level of ICAProxy without the need to turn on VPN. This is significant because of the looming compliance with HSPD-12 which is being met [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xen-trifuge.com&amp;blog=7899546&amp;post=145&amp;subd=jmsazboy&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><span style="font-size:10pt;">With the release of the Web Interface 5.3 version from Citrix we now finally have what appears to be seamless SmartCard Access for AGEE customers who want to maintain their current level of ICAProxy without the need to turn on VPN. This is significant because of the looming compliance with HSPD-12 which is being met by many Federal Agencies through the use of Smart or CAC cards.<br />
</span></p>
<p><span style="font-size:10pt;"><strong>What this means?<br />
</strong>This means that you can have your end user base authenticate to the Access Gateway with their smart card and they should have all of their applications presented to them in the same manor they have today when they log in with AD credentials.  I just finished testing mine and going through a dry run on my AGEE with the smart card and it works very well. <br />
</span></p>
<p><span style="font-size:10pt;"><strong>What do I need?:<br />
</strong>You need to upgrade your Access Gateway Enterprise to 9.2 in addition to installing/upgrading your web interface to 5.3. There are some detailed directions located here: http://support.citrix.com/article/CTX124603<br />
</span></p>
<p><span style="font-size:10pt;">What I do not like about the solution is the assumption that every Citrix engineer is a Domain Administrator, using the article above you will be required to manually set this up for every AD Computer Object. Well, my farm will be well in excess of 100 servers and since we do not have domain admin access we will need to tie up an AD engineer for an entire day just to get the constrained delegation set up. What I like about this solution, however, is that I do not need to use the middleware. Currently we are using Active Identity as our middleware and it ties up about 30 megs per session on my XenAPP boxes. This, on a scale of 1000&#8242;s of users can equate into a sizable hardware savings and may make the time spent on the initial configuration worth it.<br />
</span></p>
<p><span style="font-size:10pt;">There is more to come on this subject this week as I blog from Synergy this week, if you are a Fed and are at Synergy please find me if you have any question, I am a big ugly guy with black glasses. If you have any questions on how we got ours to work please send me an email at zek3@cdc.gov and I will call you and we can work through it together. You CAN do this without setting up VPN now and you don&#8217;t appear to need ISA Server or have to lose your EPA Scans by setting up an SSL Bridge.  This is great news for a lot of us Feds who have been dealing with the HSPD-12 spector for some time now. <br />
</span></p>
<p><span style="font-size:10pt;">More to come! Stay tuned this week as I blog from Synergy.</span></p>
<p><span style="font-size:10pt;">Sorry for the short post, I plan to cover how you can log these users and write their usernames and IP&#8217;s into a SQL database for reporting and referencing.  </span></p>
<p><span style="font-size:10pt;">John Smith<br />
</span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jmsazboy.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jmsazboy.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jmsazboy.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jmsazboy.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jmsazboy.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jmsazboy.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jmsazboy.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jmsazboy.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jmsazboy.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jmsazboy.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jmsazboy.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jmsazboy.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jmsazboy.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jmsazboy.wordpress.com/145/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xen-trifuge.com&amp;blog=7899546&amp;post=145&amp;subd=jmsazboy&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xen-trifuge.com/2010/05/09/calling-all-govies-seemless-icaproxy-with-smartcards-and-agee/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7d875a10f43641d8674e1bc7c1fc8b9d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">John M. Smith</media:title>
		</media:content>
	</item>
		<item>
		<title>The Digital SCIF:  Compartmentalizing Sensitive data with Access Gateway Enterprise Edition (SCIFNET)</title>
		<link>http://xen-trifuge.com/2010/01/03/compartmentalizing-sensitive-data-with-access-gateway-enterprise-edition-scifnet/</link>
		<comments>http://xen-trifuge.com/2010/01/03/compartmentalizing-sensitive-data-with-access-gateway-enterprise-edition-scifnet/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 23:30:40 +0000</pubDate>
		<dc:creator>John M. Smith</dc:creator>
				<category><![CDATA[Citrix Access Gateway Enterprise Edition]]></category>
		<category><![CDATA[Digital SCIF]]></category>
		<category><![CDATA[Netscaler]]></category>
		<category><![CDATA[Netscaler VPX]]></category>
		<category><![CDATA[Secure Compartmentalized Information Facility]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Sensitive Compartmentalized Information Facility]]></category>
		<category><![CDATA[SSL VPN]]></category>

		<guid isPermaLink="false">http://jmsazboy.wordpress.com/2010/01/03/compartmentalizing-sensitive-data-with-access-gateway-enterprise-edition-scifnet/</guid>
		<description><![CDATA[  A little over six months ago Citrix released the Netscaler VPX virtual appliance and I was immediately thrilled with the potential to create my own virtual lab using XenServer and internal Xen networks on the hypervisor for downstream hosts. What I noticed was that I could locate resources inside a hypervisor&#8217;s black network and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xen-trifuge.com&amp;blog=7899546&amp;post=114&amp;subd=jmsazboy&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p> </p>
<p>A little over six months ago Citrix released the Netscaler VPX virtual appliance and I was immediately thrilled with the potential to create my own virtual lab using XenServer and internal Xen networks on the hypervisor for downstream hosts. What I noticed was that I could locate resources inside a hypervisor&#8217;s black network and make them available externally via a VIP or a secure tunnel via a VPN connection. This lead me to believe that a resource that is, for all intents and purposes, off the public internal network can live safely on this network and never be exposed to the corporate network giving administrators another layer to further compartmentalized sensitive data off of an internal network. The compartmentalizing of sensitive data made me think of a military/DOD term called &#8220;skiff&#8221; or more appropriately Sensitive Compartmentalized Information Facility or a more appropriate acronym, SCIF. With a SCIF, all access, work and manipulation associated with specific sensitive information occurs within the confines of a specific building. What I am proposing is that you can use an Access Gateway Enterprise Edition to grant access to specific resources following this same model providing secure access, accountability and ensure that the only way to get to that data is via a gauntlet of two-factor authentication, application firewalls and endpoint analysis prior to the 2<sup>nd</sup> level of policy based access to internal resources that are only accessed via this secure tunnel.</p>
<p><strong>SCIFNET: (&#8220;skiff-net&#8221;)<br />
</strong></p>
<p>Placing a VPN in front of resources is not necessarily new, while VPN&#8217;s are most commonly used for remote access, there are instances where an administrator will use a VPN to secure a wireless network or to provide secure access to sensitive information. What I will describe in this is the next level where not only access is restricted but how the AGEE can integrate with the existing identity management framework as well as provide extensive logging and policy based access providing a least privileged model on a per resource basis.</p>
<p><strong>Why put my data in a SCIF?<br />
</strong></p>
<p>Currently your internal network is protected either by a NATed firewall, internal ACL&#8217;s etc. More mature networks have already layered their services by specific networks placing Oracle servers in one Network, Web Servers in another, SQL Servers in still another network, etc. As the security screws get tightened year after year we find that segmenting our services to particular networks may not be enough. Imagine if a database resided on a server that was completely invisible to the internal network that did not even have a default gateway assigned to it? No MAC Address to show up in ARP tables? No ports exposed via a NESSUS/SATAN/SARA scan?</p>
<p>In the &#8220;glass-half-empty&#8221; world of IT Security there are two types of systems, compromised and being-compromised. In 2004, during a particularly heated security discussion I suggested that the only way we could truly secure our systems was to unplug them from the network. With the SCIFNET solution I am proposing, you create an internal Network on your XenServer or ESX Server that does not reside on the internal network. This means that all communications occurs on the bus of the Hypervisor which has gigabit level speeds available on it.</p>
<p>So your SQL Server and Web Server are living inside a hypervisor with no Default Gateway and no ability to route to your internal Network? Great job…now how do you make it available? Well, in an earlier blog I discussed my time working as a County health inspector and when I inspected a convenient store in a particularly bad neighborhood, the shop owner would open a barred window and ask the customer what they wanted, he would take the money and go and get the merchandise and the entire transaction occurred outside his store. In this scenario, his exposure and risk was limited as the person was never allowed to enter the store and potentially rob him or attempt to leave with merchandise he/she did not pay for. SCIFNET works in a similar fashion where by the user connects to an Access Gateway who has a leg in both Networks but unlike a door, it is more like a barred window granting access to internal resources. But even better than my shop owner, I will log each access, I will account for how long they used the resource and I will log all un-authorized access attempts to this resource as well. By inserting a VPX in front of the resource, I am able to provide barred window access to sensitive resources that includes the highest level of accountability and record keeping.</p>
<p><strong>Barred Window Access:<br />
</strong></p>
<p>The Netscaler VPX provides for several secure access solutions to ensure anyone entering the secured network passes several forms of authentication, endpoint analysis and application firewall rules. Through each of these, before they even begin to attempt to access internal resources, they are met with a myriad of rules and scans to ensure they are allowed to even attempt access to sensitive data. While I may locate a resource on an internal Network on my hypervisor, I can offer it to the end user in a variety of ways among them via VPN or via AAA Authentication to a VIP. So while my web-server/db-server combo may exist on a completely invisible network inside a hypervisor, I am able to deliver it by creating a VIP on the VPX and offering that VIP to users on the internal Network. I can add a layer of security by forcing AAA Authentication to that VIP as of version 9.x of the Netscaler. If you need to grant non http access to a server that has either sensitive documents or a back end database you can offer a VPN tunnel into the internal network on the hypervisor. With split tunnel turned off, you can ensure that the client is only able to access internal resources while connected to the VPN and keep any outside connections from getting in.</p>
<p><strong>Authentication:<br />
</strong></p>
<p>As with the hardware appliance, the VPX allows for two factor authentication using smart cards(HSPD-12), SecurID, LDAP(AD/NDS/eDirectory) and local Authentication. All AAA logs can be sent to an event correlation engine for parsing and accountability to ensure that access attempts are accounted for and breach attempts can be reported and acted on immediately(Custom solution, email me if you are interested in it). Currently, I tested two factor authentication with AD Credentials and SecurID tokens and have used Smart Cards (CAC) Cards in a single authentication mode without any issues.</p>
<p><strong>Endpoint Analysis:<br />
</strong></p>
<p>In addition to authenticating users who wish to access sensitive data, you can also set minimum standards of the systems accessing the data. Using the VPX, you can ensure that systems accessing the SCIF have adequate virus signatures, host based firewalls and encryption software. Using Endpoint Analysis, you can ensure that any system meets a pre-selected set of requirements prior to accessing the systems inside. This will ensure that an infected system or a system that possesses an outdated virus signature is not allowed access. You may also only want a select group of systems accessing the SCIF, by putting a watermark in the registry. By scanning for this specific watermark, you can further restrict the number of systems that are allowed access in addition to the number of users.</p>
<p><strong>Application Firewall:<br />
</strong></p>
<p>Not everyone purchases this feature, in fact Citrix does not bundle this with the Express edition of the VPX but you can get a 90 day platinum edition that has it. What the application firewall does is allow your front end SSL VPN solution to be protected by a layer 4-7 firewall. By enforcing a &#8220;START URL&#8221; rule you can ensure that anyone who attempts to access the system by IP is dropped meaning any worm that is on the loose or person looking for port 443 or port 80 over an IP will not be able to access the authentication page. This same solution provides for Buffer Overflow, SQL Injection, Cross-Site Scripting and Custom based URL filter protection. An individual would need to know the exact URL to connect to before they even get a chance to Authenticate and be scanned.</p>
<p style="text-align:center;"><strong>Accessing Sensitive Resources:<br />
</strong></p>
<p style="text-align:center;"> </p>
<p>Okay, you have typed in the correct URL, you have all of the necessary virus updates and watermarks to pass endpoint analysis and you have passed the two factor authentication, now you are free to access whatever you want inside the SCIF correct? No, in fact you have only entered the building, now the actual compartmentalized access control begins to take shape. While most SSL VPN Solutions will offer a similar gauntlet to logging in, once you are in the door, you can attempt to get to any IP address thereafter. The 2<sup>nd</sup> part of this posting has to do with what can be done after you have authenticated to ensure a user just doesn&#8217;t wander around the network looking for vulnerable systems. There are 3 parts to setting this up, Active Directory groups, Authorization Policies and the resources themselves.</p>
<p><strong>Resources:<br />
</strong></p>
<p>Resources are defined by IP Address, Network ID and Port. For example, we have a database server that we want to allow a non-web based front end application to connect to. You create an internal Network on the XenServer where you want that resource to go than place the Virtual Machine on the XenServer and assign it to that network. The resource is accessed via the VPX who has a leg in both networks and bridges you from your internal network to the resource. Resources are defined to the AGEE via the Authorization Policy as an IP Address, Network and port. So my SQL Server that I have placed in 10.10.10.0/24 (Already configured) with an IP Address of 10.10.10.15 will be the resource I grant access to.</p>
<p><strong>Authorization Policies:<br />
</strong></p>
<p>This is the hierarchy for setting up access, <strong>AD Groups are assigned Authorization policies and Authorization policies have resources instantiated as rules</strong>. Using the resource above I would create an Authorization policy called &#8220;Sensitive DB&#8221; and assign the network ID or IP Address and port to that specific policy. You can assign more than one resource to an authorization policy. Once this is done, you can assign the policy to a group which brings us to the Active Directory integration with the AGEE.</p>
<p><strong>Active Directory Group Extraction:<br />
</strong></p>
<p>On the AGEE you will create a group that matches, exactly, the name of the group in Active Directory. This process is LDAP extraction so the same should work for eDirectory/NDS, iPlanet/SunOne and openLDAP. So let&#8217;s say for the example above we create an AD Group called &#8220;SensativeDB&#8221;. I create that exact same group on the Netscaler and so log as the user authenticates via Active Directory, the AGEE will check for matching LDAP groups. By assigning an Authorization Policy to a specific group, you can ensure that your access control to the sensitive information is still managed by the incumbent identity management framework and you also ensure that only users in specific groups are given access to sensitive data. The AGEE will act as the doorman ensuring that no one gets access to any area&#8217;s they are not supposed to.</p>
<p><strong>Can I add access to resources outside of the SCIF?<br />
</strong></p>
<p>Yes, if an outside resource on a different network needed to be made available to you while you were working inside the SCIF than you could accomplish this using the AGEE by setting up a VIP. If you were connected via VPN to the SCIF network (say 10.10.10.0/24) and there was some reference data located on another network than you could create a VIP on the 10.10.10.0/24 network and present external data to the inside with the same security gauntlet that you would present VIP&#8217;s to the internal Network. Say you had a group of contractors that you wanted to restrict to a SCIFNET but they also needed access to a web-based time keeping application, you could create an internal VIP and present it to the users inside the SCIF without exposing the entire internal network.</p>
<p><strong>Integrating SCIFNET with VDI:<br />
</strong></p>
<p>Initially, I wanted a similar situation as with a SCIF where a person walks into a room and accesses a secure terminal and from there you can access sensitive data on a network. In this manor, I can ensure that the end user is accessing data from what amounts to a glorified dumb terminal. Placing the VDI environment inside the SCIF created some federated services challenges that I have not mastered yet. Namely, you need AD to use XenDesktop and this meant poking a hole to allow for that AD integration. Also, with Endpoint Analysis and the &#8220;Barred Window&#8221; access offered by AGEE I felt the risk was mitigated. With Split Tunneling off and only allowing VPN traffic once the user connects to the AGEE I felt like we would be pretty safe. Also, you can still use VDI just one on your incumbent internal network instead of inside the SCIF. Otherwise, you need to set up a completely new AD Infrastructure inside the SCIF. I am not well versed enough with ADFS or some of the Simplified.com solutions to be able to adequately address this in this paper.</p>
<p><strong>Can this be done without using a black network or VM&#8217;s:<br />
</strong></p>
<p>It is likely more experienced readers have already made the connection to this and realized that yes it can be done. For Federal Government Sites, I would recommend putting a Netscaler 9010 with a FIPS module on the Network than set up an entire switched network that is NOT on the internal network but bridged by the AGEE software on the Netscaler. You can still deliver &#8220;barred window&#8221; access to the physical resources and you do not have the risk of the hypervisor itself becoming compromised. In production, it may be a lot harder to get the VPX based solution approved by security personnel but physically segmenting your resources may be easier to get approved and while I have not seen it in my environment I am quite sure a similar solution currently exists using either PIX or IOS based ACL&#8217;s.</p>
<p><strong>Logging and Accountability:<br />
</strong></p>
<p>What I like the most about using the AGEE for compartmentalized access is the logging. While a PIX or IOS based ACL will give you an offending IP. Currently, my VPN logs, once parsed and written to SQL, have the userID in addition to the port, source and destination IP Address. This means that I can type the IP Address of a resource into my SQL Reporting Services website and get the date, time, external IP, port and username of every single user who has accessed that resource. Additionally, the AGEE logs policy hits weather they are ALLOWED or DENIED. Once finished parsing, I can, on an hourly, daily or monthly basis check for users who trip the &#8220;DENIED&#8221; policy. Since I already have the username in my logs, I don&#8217;t have to hunt down who had what IP Address. This places me in a position to be more proactive, if I see a large number of ACCESS DENIED logs, I can go in and immediately kill a user&#8217;s VPN Session post haste. This also provides the opportunity to log access by user ID. The Digital Epidemiology portion is a whitepaper itself but having a user ID tied to each log makes incident response much faster.</p>
<p><strong>Example:<br />
</strong></p>
<p>You have a key resource at 10.10.10.21 that must have a blanket &#8220;Deny&#8221; applied to it and is only available via exclusive &#8220;Allows&#8221;. For this you can create an Authorization policy called &#8220;TopSecret&#8221; and you create a rule for DESTIP==10.10.10.21 with an Action of DENY. You bind this policy to your AD Group and you set it higher than any other policy. This will ensure that if they attempt to get to that server, they will be denied access. What I like about the AGEE logs is that I get a username and the policy that was violated as well as the sourced IP Address. Effective parsing of these log files will allow for you to use event correlation to find out who has attempted to make unauthorized access.</p>
<p> <strong>Example Log file from blocked access:<br />
</strong></p>
<p><span style="font-size:10pt;"><span style="color:red;">15:16:39</span> 192.168.1.55     01/03/2010:20:15:40 GMT ns PPE-0 : SSLVPN <span style="color:red;">NONHTTP_RESOURCEACCESS_DENIED</span> 1250215 : Context <span style="color:red;">jsmith@192.168.1.100</span> &#8211; SessionId: 15- User jsmith &#8211; Client_ip 192.168.1.100 &#8211; Nat_ip &#8220;Mapped Ip&#8221; &#8211; Vserver 192.168.1.50:443 &#8211; Source 192.168.1.100:13874 &#8211; <span style="color:red;">Destination 10.10.10.21:3389</span> &#8211; Total_bytes_send 298 &#8211; Total_bytes_recv 0 &#8211; <span style="color:red;">Denied_by_policy &#8220;TopSecret</span>&#8221; &#8211; Group(s) &#8220;CITGO VPN Testers&#8221;<br />
</span></p>
<p>While many segmented networks will have PIX logs that will give you this information, what I like about these logs is that I can parse them into a database and put each item marked <span style="color:red;">red</span> into a column for date/time, action, context, policy so in my database a query would return the following:</p>
<div style="margin-left:4pt;">
<table style="border-collapse:collapse;" border="0">
<col span="1"></col>
<col span="1"></col>
<col span="1"></col>
<col span="1"></col>
<col span="1"></col>
<tbody>
<tr style="height:20px;">
<td style="padding-left:7px;padding-right:7px;border:none;" valign="bottom"><span style="color:black;">Time</span></td>
<td style="padding-left:7px;padding-right:7px;border:none;" valign="bottom"><span style="color:black;">Context</span></td>
<td style="padding-left:7px;padding-right:7px;border:none;" valign="bottom"><span style="color:black;">Destination</span></td>
<td style="padding-left:7px;padding-right:7px;border:none;" colspan="2" valign="bottom"><span style="color:black;">Policy</span></td>
<td style="padding-left:7px;padding-right:7px;border:none;" valign="bottom"><span style="color:black;">Action</span></td>
</tr>
<tr style="height:20px;">
<td style="padding-left:7px;padding-right:7px;border:none;" valign="bottom">
<p style="text-align:right;"><span style="color:black;">15:16:39</span></p>
</td>
<td style="padding-left:7px;padding-right:7px;border:none;" valign="bottom"><a href="mailto:jsmith@192.168.1.100"><span style="color:blue;text-decoration:underline;">jsmith@192.168.1.100</span></a></td>
<td style="padding-left:7px;padding-right:7px;border:none;" valign="bottom"><span style="color:black;">10.10.10.21:3389</span></td>
<td style="padding-left:7px;padding-right:7px;border:none;" colspan="2" valign="bottom"><span style="color:black;">TopSecret</span></td>
<td style="padding-left:7px;padding-right:7px;border:none;" valign="bottom"><span style="color:black;">DENIED</span></td>
</tr>
</tbody>
</table>
</div>
<p> </p>
<p>In this scenario, I can immediately ask jsmith why he/she is trying to access this system. I have a record of the breach attempt and can even configure KIWI to alert me via Email at the exact time the breach occurs.</p>
<p>Likewise, with the AGEE I have a record of the successful attempts as well.</p>
<p><span style="font-size:10pt;"><span style="color:red;">17:13:10    </span> 192.168.1.55    01/03/2010:22:12:10 GMT ns PPE-0 : SSLVPN <span style="color:red;">TCPCONNSTAT</span> 1299232 : Context <span style="color:red;">jsmith@192.168.1.100</span> &#8211; SessionId: 16- User jsmith &#8211; Client_ip 192.168.1.100 &#8211; Nat_ip 10.10.10.4 &#8211; Vserver 192.168.1.50:443 &#8211; Source 192.168.1.100:36933 &#8211; <span style="color:red;">Destination 10.10.10.21:3389</span> &#8211; Start_time &#8220;01/03/2010:22:12:10 GMT&#8221; &#8211; End_time &#8220;01/03/2010:22:12:10 GMT&#8221; &#8211; Duration 00:00:00 &#8211; Total_bytes_send 48 &#8211; Total_bytes_recv 19 &#8211; Total_compressedbytes_send 63 &#8211; Total_compressedbytes_recv 39 &#8211; Compression_ratio_send 0.00% &#8211; Compression_ratio_recv 0.00% &#8211; <span style="color:red;">Access Allowed</span> &#8211; Group(s) &#8220;CITGO VPN Testers&#8221;<br />
</span></p>
<p><span style="font-size:12pt;">Note that you do not get a policy named with the log, however all Deny&#8217;s should have the policy that denied them. </span></p>
<p><strong></strong> </p>
<p><strong>Conclusion:</strong><br />
I plan to include some videos on how to accomplish this, it is relatively simple. This is also not a new concept and networks use IOS based ACL&#8217;s to accomplish this but I believe the AGEE be it as a Virtual appliance or physical hardware, provides a much easier solution than an enterprise NAC endeavor. In fact, I have heard some horror stories regarding NAC deployments. In the interim, while NAC continues to mature and organizations ease into their NAC solutions, SCIFNet allows you to perform the same security levels without taunting specter of an enterprise NAC deployment. Compartmentalize sensitive data and place an AGEE in front of it and you have all of the same benefits of Network Access Control at a fraction of the price and overhead.</p>
<p> To see a video of SCIFNET put to use with a VPX and an internal XenServer Network click here:<br />
<a href="http://citrix.utipu.com/app/tip/id/21155/">http://citrix.utipu.com/app/tip/id/21155/</a></p>
<p>Thanks for reading</p>
<p> John</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jmsazboy.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jmsazboy.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jmsazboy.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jmsazboy.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jmsazboy.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jmsazboy.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jmsazboy.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jmsazboy.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jmsazboy.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jmsazboy.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jmsazboy.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jmsazboy.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jmsazboy.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jmsazboy.wordpress.com/114/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xen-trifuge.com&amp;blog=7899546&amp;post=114&amp;subd=jmsazboy&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xen-trifuge.com/2010/01/03/compartmentalizing-sensitive-data-with-access-gateway-enterprise-edition-scifnet/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7d875a10f43641d8674e1bc7c1fc8b9d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">John M. Smith</media:title>
		</media:content>
	</item>
		<item>
		<title>Edgeisight Under the Hood: Part 2 (Will be moved to Edgesightunderthehood.com)</title>
		<link>http://xen-trifuge.com/2009/12/15/edgeisight-under-the-hood-part-2/</link>
		<comments>http://xen-trifuge.com/2009/12/15/edgeisight-under-the-hood-part-2/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 01:58:57 +0000</pubDate>
		<dc:creator>John M. Smith</dc:creator>
				<category><![CDATA[Citrix SQL Queries]]></category>
		<category><![CDATA[custom edgesight reports]]></category>
		<category><![CDATA[Edge Sight]]></category>
		<category><![CDATA[EdgeSight]]></category>
		<category><![CDATA[Edgesight Custom Queries]]></category>
		<category><![CDATA[Edgesight Custom Reports]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jmsazboy.wordpress.com/2009/12/15/edgeisight-under-the-hood-part-2/</guid>
		<description><![CDATA[Okay, so in this blog posting I want to continue covering a few more views in Edgesight that I like to run ad hoc queries against.  Today&#8217;s view is called   vw_es_archive_application_network_performance.  This view provides information network delay, server delay, xenapp server, process name and downstream hosts that your XenApp servers communicate with.  I have used this table to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xen-trifuge.com&amp;blog=7899546&amp;post=103&amp;subd=jmsazboy&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Okay, so in this blog posting I want to continue covering a few more views in Edgesight that I like to run ad hoc queries against.  Today&#8217;s view is called   <em>vw_es_archive_application_network_performance.  </em>This view provides information network delay, server delay, xenapp server, process name and downstream hosts that your XenApp servers communicate with.  I have used this table to check delays of the executables such as winlogon.exe to check delay between this process and our domain controllers.  I will cover checking delays by process name, xen_app server and downstream host.  </p>
<p> The first part will be to demonstrate how to find Network and Server delay of specific downstream hosts as well as how to measure the average XenAPP Servers delay.  Then in the second part I want to answer one of the questions from the first posting.  </p>
<p> <strong>Down Stream Delay:<br />
</strong>I actually got to present on Edgesight during Synergy 2008 and one of the key points that I tried to drive home is how Edgesight helps you with the never ending B.S. Witch hunts that always seem to occur when someone&#8217;s application is &#8220;running slow on Citrix&#8221;.  I would say that less than 30 % of what I actually investigate ends up being an actual XenAPP issue.  I will go over a few ad hoc queries that will give you the average delay of your down stream hosts and will give you the average delay experienced by each XenAPP Server allowing you to see if you have a specific XenAPP box that may be having some issues.   </p>
<p>The first ad hoc query has to do with downstream hosts, this will return the downstream host and the Network/Server delay.  I have set this query to filter any downstream host that does not have at least 100 records and a server delay of at least 300 miliseconds.  You can edit/remove the &#8220;Having&#8221; clause to suit your environment.        </p>
<p>select distinct hostname, sum(network_delay_sum)/sum(record_count) as &#8220;Network Delay&#8221;, sum(server_delay_sum)/sum(record_count) as &#8220;Server Delay&#8221;<br />
from vw_es_archive_application_network_performance<br />
group by hostname<br />
having sum(record_count) &gt; 100<br />
and sum(server_delay_sum)/sum(record_count) &gt; 300<br />
order by sum(server_delay_sum)/sum(record_count) desc </p>
<p><strong> </strong></p>
<p><strong>In English:</strong> &#8220;Give me the Network and Server delay of every downstream host that has at least 100 records (packets?) and a server latency of at least 300ms&#8221; </p>
<p> <strong>XenAPP Server Delay:</strong> <br />
It is a good idea to monitor your XenAPP Server delay, this will tell you if there is a particular XenAPP Server that is having a layer 1 or layer 2 issue.  This is a quick query that will show you the average delay of your XenAPP Servers.   </p>
<p>select distinct machine_name, sum(network_delay_sum)/sum(record_count) as &#8220;Network Delay&#8221;, sum(server_delay_sum)/sum(record_count) as &#8220;Server Delay&#8221;<br />
from vw_es_archive_application_network_performance<br />
group by machine_name<br />
order by sum(server_delay_sum)/sum(record_count) desc  </p>
<p><strong> </strong></p>
<p><strong>Note: </strong>You will also see<em> &#8220;Edgesight for Endpoints&#8221;</em> client data in this table as well.  </p>
<p><strong> </strong></p>
<p><strong>Executable  Delay:<br />
</strong>This query shows the delay associated  individual executables.  You may check outlook.exe to see if you have a delay in a downstream Exchange server or, in my case, check winlogon.exe for delays to domain controllers.  </p>
<p> select distinct exe_name, sum(network_delay_sum)/sum(record_count) as &#8220;Network Delay&#8221;, sum(server_delay_sum)/sum(record_count) as &#8220;Server Delay&#8221;<br />
from vw_es_archive_application_network_performance<br />
group by exe_name<br />
order by sum(server_delay_sum)/sum(record_count) desc  </p>
<p><strong>Session Statistics:<br />
</strong>Last week I got a a question about session counts and I wanted to answer it in this post, here was the question: </p>
<p> &#8221;I’m looking for a custom report showing the application usage (Published Apps, not processes) on a hourly, daily and monthly base and a custom report showing the concurrent sessions on a hourly, daily and monthly base.&#8221;  </p>
<p>The view I used for this was vw_ctrx_archive_client_start_perf<em> </em>declare @end varchar<br />
declare @today datetime<br />
declare @app varchar<br />
set @today = convert(varchar,getdate(),111)<br />
set @begin = &#8217;00&#8242;<br />
set @end = &#8217;23&#8242;<br />
set @app = &#8216;%Outlook%&#8217;<br />
select convert(varchar(2),dateadd(hh,-4,time_stamp), 108)+&#8217;:00&#8242; as &#8220;Time&#8221;, count(distinct sessid)<br />
from vw_ctrx_archive_client_start_perf<br />
where convert(varchar(10),dateadd(hh,-4,time_stamp), 111) = @today-1<br />
and published_application like &#8216;%&#8217;+@app+&#8217;%&#8217;<br />
group by convert(varchar(2),dateadd(hh,-4,time_stamp), 108)+&#8217;:00&#8242;<br />
order by convert(varchar(2),dateadd(hh,-4,time_stamp), 108)+&#8217;:00&#8242;<strong> </strong></p>
<p><strong> </strong><strong>In English: </strong>Give me every application on an hourly basis for a specific application.  On this report substitute %APPNAME% for whichever app you want to see.  Note that this is an hourly report so the time format is set to 108.   </p>
<p><strong> </strong><strong>Daily Application Usage:<br />
</strong>In the same view I change the query above just a little to accommodate a query by day.</p>
<p>declare @begin varchar<br />
declare @end varchar<br />
declare @today datetime<br />
declare @app varchar<br />
set @today = convert(varchar,getdate(),111)<br />
set @app = &#8216;%Outlook%&#8217;<br />
select convert(varchar(10),dateadd(hh,-4,time_stamp), 111) as &#8220;Date&#8221;, count(distinct sessid)<br />
from vw_ctrx_archive_client_start_perf<br />
where convert(varchar(10),dateadd(hh,-4,time_stamp), 111) &gt; @today-30<br />
and published_application like <a href="mailto:'%'+@app+'%'">&#8216;%&#8217;+@app+&#8217;%&#8217;</a><br />
group by convert(varchar(10),dateadd(hh,-4,time_stamp), 111)<br />
order by convert(varchar(10),dateadd(hh,-4,time_stamp), 111)</p>
<p><strong> </strong><strong>Monthly Application Usage:<br />
</strong>Depending on how long you have your retention set (min is 30 days) this query may or may not work for you but this is the number of unique sessions per application for a month.</p>
<p>declare @begin varchar<br />
declare @end varchar<br />
declare @today datetime<br />
declare @app varchar<br />
set @today = convert(varchar,getdate(),111)<br />
set @app = &#8216;%Outlook%&#8217;<br />
select convert(varchar(7),dateadd(hh,-4,time_stamp), 111) as &#8220;Date&#8221;, count(distinct sessid)<br />
from vw_ctrx_archive_client_start_perf<br />
where convert(varchar(10),dateadd(hh,-4,time_stamp), 111) &gt; @today-30<br />
and published_application like <a href="mailto:'%'+@app+'%'">&#8216;%&#8217;+@app+&#8217;%&#8217;</a><br />
group by convert(varchar(7),dateadd(hh,-4,time_stamp), 111)<br />
order by convert(varchar(7),dateadd(hh,-4,time_stamp), 111)<strong><br />
</strong></p>
<p><strong>Application Matrix:<br />
</strong>SQL Server Reporting Services will let you create a matrix, these two queries are for daily and monthly which will let you sort as follows:</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="106" valign="top"> </td>
<td width="106" valign="top">Date 1</td>
<td width="106" valign="top">Date2</td>
<td width="106" valign="top">Date3</td>
<td width="106" valign="top">Date4</td>
<td width="106" valign="top">Date5</td>
</tr>
<tr>
<td width="106" valign="top">Outlook</td>
<td width="106" valign="top">Count1</td>
<td width="106" valign="top">Count2</td>
<td width="106" valign="top">Count3</td>
<td width="106" valign="top">Count4</td>
<td width="106" valign="top">Count5</td>
</tr>
<tr>
<td width="106" valign="top">Word</td>
<td width="106" valign="top">Count1</td>
<td width="106" valign="top">Count2</td>
<td width="106" valign="top">Count3</td>
<td width="106" valign="top">Count4</td>
<td width="106" valign="top">Count5</td>
</tr>
<tr>
<td width="106" valign="top">Oracle Financials</td>
<td width="106" valign="top">Count1</td>
<td width="106" valign="top">Count2</td>
<td width="106" valign="top">Count3</td>
<td width="106" valign="top">Count4</td>
<td width="106" valign="top">Count5</td>
</tr>
<tr>
<td width="106" valign="top">Statistical APP</td>
<td width="106" valign="top">Count1</td>
<td width="106" valign="top">Count2</td>
<td width="106" valign="top">Count3</td>
<td width="106" valign="top">Count4</td>
<td width="106" valign="top">Count5</td>
</tr>
<tr>
<td width="106" valign="top">Custom APP-A</td>
<td width="106" valign="top">Count1</td>
<td width="106" valign="top">Count2</td>
<td width="106" valign="top">Count3</td>
<td width="106" valign="top">Count4</td>
<td width="106" valign="top">Count5</td>
</tr>
</tbody>
</table>
<p> </p>
<p>  This has been the report method that has made my management the happiest so I use the Matrix tool with SSRS as often as possible.  Remember, if you have Edgesight, you have SSRS and setting up reports is no harder than an Access Database.</p>
<p>Here are the queries</p>
<p><strong> </strong></p>
<p><strong>First The Daily Matrix:</strong></p>
<p>declare @begin varchar<br />
declare @end varchar<br />
declare @today datetime<br />
declare @app varchar<br />
set @today = convert(varchar,getdate(),111)<br />
select convert(varchar(10),dateadd(hh,-4,time_stamp), 111) as &#8220;Date&#8221;, published_application, count(distinct sessid)<br />
from vw_ctrx_archive_client_start_perf<br />
where convert(varchar(10),dateadd(hh,-4,time_stamp), 111) &gt; @today-30<br />
group by convert(varchar(10),dateadd(hh,-4,time_stamp), 111), published_application<br />
order by convert(varchar(10),dateadd(hh,-4,time_stamp), 111), count(distinct sessid) desc<strong> </strong></p>
<p><strong>Then the Monthly Matrix:<br />
</strong>declare @today datetime<br />
set @today = convert(varchar,getdate(),111)<br />
select convert(varchar(7),dateadd(hh,-4,time_stamp), 111) as &#8220;Date&#8221;, published_application, count(distinct sessid)<br />
from vw_ctrx_archive_client_start_perf<br />
where convert(varchar(10),dateadd(hh,-4,time_stamp), 111) &gt; @today-30<br />
group by convert(varchar(7),dateadd(hh,-4,time_stamp), 111), published_application<br />
order by convert(varchar(7),dateadd(hh,-4,time_stamp), 111), count(distinct sessid) desc<strong> </strong></p>
<p><strong> Concurrent Session Statistics:<br />
</strong>A colleague of mine, Alain Assaf, set up a system that gives you this info every five minutes and is almost in real time, go to wagthereal.wordpress.com to see it.  Keep in mind that Edgesight is not real time data so if you set up a private dashboard for it, you may have to wait for it to refresh. </p>
<p>The vw_ctrx_archive_client_start_perf view appears to give us only start times of specific published applications.  Perhaps the most used view of any of my reports is vw_ctrx_archive_ica_roundtrip_perf.  For this set of queries, I will count concurrent sessions but I will also go into ICA Delay&#8217;s for clients in my last post on Edgesight Under the Hood:</p>
<p>I will try to answer the users question on concurrent sessions with three pretty basic queries for hourly, daily and monthly usage:</p>
<p><strong>Hourly Users:<br />
</strong>declare @begin varchar<br />
declare @end varchar<br />
declare @today datetime<br />
declare @app varchar<br />
set @today = convert(varchar,getdate(),111)<br />
set @begin = &#8217;00&#8242;<br />
set @end = &#8217;23&#8242;<br />
select convert(varchar(2),dateadd(hh,-4,time_stamp), 108)+&#8217;:00&#8242; as &#8220;Time&#8221;, count(distinct [user])<br />
from vw_ctrx_archive_ica_roundtrip_perf<br />
where convert(varchar(10),dateadd(hh,-4,time_stamp), 111) = @today-3<br />
group by convert(varchar(2),dateadd(hh,-4,time_stamp), 108)+&#8217;:00&#8242;<br />
order by convert(varchar(2),dateadd(hh,-4,time_stamp), 108)+&#8217;:00&#8242;</p>
<p><strong> </strong></p>
<p><strong>Daily Users:<br />
</strong>declare @begin varchar<br />
declare @end varchar<br />
declare @today datetime<br />
declare @app varchar<br />
set @today = convert(varchar,getdate(),111)<br />
select convert(varchar(10),dateadd(hh,-4,time_stamp), 111) as &#8220;Date&#8221;, count(distinct [user])<br />
from vw_ctrx_archive_ica_roundtrip_perf<br />
where convert(varchar(10),dateadd(hh,-4,time_stamp), 111) &gt; @today-30<br />
group by convert(varchar(10),dateadd(hh,-4,time_stamp), 111)<br />
order by convert(varchar(10),dateadd(hh,-4,time_stamp), 111)<strong> </strong></p>
<p><strong> </strong><strong>Monthly Users:</strong></p>
<p>declare @begin varchar<br />
declare @end varchar<br />
declare @today datetime<br />
declare @app varchar<br />
set @today = convert(varchar,getdate(),111)<br />
select convert(varchar(7),dateadd(hh,-4,time_stamp), 111) as &#8220;Date&#8221;, count(distinct [user])<br />
from vw_ctrx_archive_ica_roundtrip_perf<br />
where convert(varchar(10),dateadd(hh,-4,time_stamp), 111) &gt; @today-30<br />
group by convert(varchar(7),dateadd(hh,-4,time_stamp), 111)<br />
order by convert(varchar(7),dateadd(hh,-4,time_stamp), 111)<strong>  </strong></p>
<p><strong> Conclusion:  <br />
</strong>For the most part, I have vetted all of these queries, you may get varying results, if so, check for payload errors, licensing, etc.  I would really like to see some better documentation on the data model, most of these were basically done by running the query and checking it against the EdgeSight canned reports to see if my SWAG about how they did their calculations was correct.  All of the queries I ran here I checked and looked to be accurate.  If you are going to bet the farm on any of these queries to the brass in your organization, vet my numbers&#8230;.</p>
<p>My next post will deal with ICA latency and delay issues for individual users and servers.</p>
<p>Thanks for reading!</p>
<p>John</p>
<p><strong> </strong>      </p>
<p><a></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jmsazboy.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jmsazboy.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jmsazboy.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jmsazboy.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jmsazboy.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jmsazboy.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jmsazboy.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jmsazboy.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jmsazboy.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jmsazboy.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jmsazboy.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jmsazboy.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jmsazboy.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jmsazboy.wordpress.com/103/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xen-trifuge.com&amp;blog=7899546&amp;post=103&amp;subd=jmsazboy&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xen-trifuge.com/2009/12/15/edgeisight-under-the-hood-part-2/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7d875a10f43641d8674e1bc7c1fc8b9d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">John M. Smith</media:title>
		</media:content>
	</item>
		<item>
		<title>Digital Epidemiology: Edgesight Under the hood (Will be moved to EdgesightUndertheHood.com)</title>
		<link>http://xen-trifuge.com/2009/12/06/89/</link>
		<comments>http://xen-trifuge.com/2009/12/06/89/#comments</comments>
		<pubDate>Sun, 06 Dec 2009 18:50:46 +0000</pubDate>
		<dc:creator>John M. Smith</dc:creator>
				<category><![CDATA[Citrix SQL Queries]]></category>
		<category><![CDATA[custom edgesight reports]]></category>
		<category><![CDATA[Edge Sight]]></category>
		<category><![CDATA[EdgeSight]]></category>
		<category><![CDATA[Edgesight Custom Queries]]></category>
		<category><![CDATA[Edgesight Custom Reports]]></category>

		<guid isPermaLink="false">http://jmsazboy.wordpress.com/2009/12/06/89/</guid>
		<description><![CDATA[Okay, so no flat files, parsing or kiwi syslogging today.  Today I want to talk about Edgesight 5.x.  If any of you have attempted to reverse engineer Edgesight yet you have probably noticed that the tables are a lost cause.  All of the key data that you will want to try to harvest is located [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xen-trifuge.com&amp;blog=7899546&amp;post=89&amp;subd=jmsazboy&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:left;">Okay, so no flat files, parsing or kiwi syslogging today.  Today I want to talk about Edgesight 5.x.  If any of you have attempted to reverse engineer Edgesight yet you have probably noticed that the tables are a lost cause.  All of the key data that you will want to try to harvest is located in the &#8220;Views&#8221;.  I Want to do a few blog posts on each of my favorite views and how you can pull statistics from them instantly via query analyzer.  I will start by saying Citrix has created an outstanding front end delivered via the web interface.  I am in no way knocking that interface, there are just times when the canned reports just don&#8217;t do it for you.  Until the engineers at Citrix get their hands on a Crystal Ball, there will always be a use for good ole-fashion ad hoc queries.  I am going to go over a few key queries from the vw_ctrx_archive_ica_roundtrip_perf  view from your Edgesight Database and how you can open query analyzer and gather these statistics post haste, or, if you are adept with Reporting Services, set up reports for yourself.  I have pitched to the Synergy 2010 group that they let me host a breakout covering how to integrate some of what I do with SQL Server Reporting Services, I think I can cover a lot in a 90 minute session and let engineers take something away from the session that they can use in their own environments. So, as I stated, the view of the day is  &#8221;vw_ctrx_archive_ica_roundtrip_perf&#8221; so open your SQL Server Management Studio and log into the SQL Server hosting your database with an account that has &#8220;Datareader&#8221; privilages.  If you admin account does not work, your Edgesight service account will likely suffice if your organization allows services accounts to be  used in that mannor.          </p>
<p style="text-align:left;"><strong>@Today:<br />
</strong>The @Today variable is for the existing day.  That means that if you want to check between yesterday and the day before you would change<em> &#8220;convert(varchar(10),dateadd(hh,-4,time_stamp),111) &gt; @today-2&#8243;</em> to &#8220;<em>convert(varchar(10),dateadd(hh,-4,time_stamp),111) between @today-2 and @today-1&#8243;</em>      </p>
<p> <strong>Find the number of ICA SEssions by server by time of day<br />
</strong><strong>About this query: <br />
</strong>In this query we declare 3 variables, two of which you must edit.  The <strong>@begin</strong> and <strong>@end</strong> variables must have the time of day that you want to search.  So, if you wanted to know the number of unique users for each server between 8AM and 2PM, you would enter &#8217;08&#8242; for @begin and &#8217;14&#8242; for @end.           </p>
<p style="text-align:left;">
<blockquote><p><span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">declare</span> @begin <span style="color:blue;">varchar<br />
</span></span><span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">declare</span> @end <span style="color:blue;">varchar<br />
</span></span><span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">declare</span> @today <span style="color:blue;">datetime<br />
</span></span><span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">set</span> @today <span style="color:gray;">= </span><span style="color:fuchsia;">convert</span><span style="color:gray;">(</span><span style="color:blue;">varchar</span><span style="color:gray;">,</span><span style="color:fuchsia;">getdate</span><span style="color:gray;">(),</span>111<span style="color:gray;">)<br />
</span></span><span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">set</span> @begin <span style="color:gray;">= </span><span style="color:red;">&#8217;14&#8242;<br />
</span></span><span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">set</span> @end <span style="color:gray;">= </span><span style="color:red;">&#8217;23&#8242;<br />
</span></span><span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">select</span> machine_name<span style="color:gray;">, </span><span style="color:fuchsia;">count</span><span style="color:gray;">(</span><span style="color:blue;">distinct</span> [user]<span style="color:gray;">)<br />
</span></span><span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">from</span> vw_ctrx_archive_ica_roundtrip_perf<br />
</span><span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">where</span><span style="color:fuchsia;">convert</span><span style="color:gray;">(</span><span style="color:blue;">varchar</span><span style="color:gray;">(</span>2<span style="color:gray;">),</span><span style="color:fuchsia;">dateadd</span><span style="color:gray;">(</span>hh<span style="color:gray;">,-</span>4<span style="color:gray;">,</span>time_stamp<span style="color:gray;">),</span>108<span style="color:gray;">) </span><span style="color:gray;">between</span> @begin <span style="color:gray;">and</span> @end<br />
</span><span style="font-family:Courier New;font-size:10pt;"><span style="color:gray;">and </span><span style="color:fuchsia;">convert</span><span style="color:gray;">(</span><span style="color:blue;">varchar</span><span style="color:gray;">(</span>10<span style="color:gray;">),</span><span style="color:fuchsia;">dateadd</span><span style="color:gray;">(</span>hh<span style="color:gray;">,-</span>4<span style="color:gray;">,</span>time_stamp<span style="color:gray;">),</span>111<span style="color:gray;">) </span><span style="color:gray;">&gt;</span> @today<span style="color:gray;">-</span>2<br />
</span><span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">group </span><span style="color:blue;">by</span> machine_name<br />
</span><span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">order </span><span style="color:blue;">by </span><span style="color:fuchsia;">count</span><span style="color:gray;">(</span><span style="color:blue;">distinct</span> [user]<span style="color:gray;">) </span><span style="color:blue;">desc<br />
</span></span><span style="font-family:Courier New;font-size:10pt;"> </span>        </p></blockquote>
<p> <span style="font-family:Courier New;font-size:10pt;"><span style="color:#000000;"><strong>Find ICA Lantency by user by day<br />
<strong><strong>About this query:</strong></strong><br />
This query will show you the ICA Latency for each user and sort it by the user with the worst latency.  If you wanted to check sessions on a specific server, you would add the following above the &#8220;Group By&#8221; statement:  <em>&#8216;and machine_name = &#8216;%netbiosNameOfXenAPPServer%&#8217;</em></strong></span></span>        </p>
<blockquote><p> <span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">declare</span> @today <span style="color:blue;">datetime<br />
</span></span><span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">set</span> @today <span style="color:gray;">= </span><span style="color:fuchsia;">convert</span><span style="color:gray;">(</span><span style="color:blue;">varchar</span><span style="color:gray;">,</span><span style="color:fuchsia;">getdate</span><span style="color:gray;">(),</span>111<span style="color:gray;">)<br />
</span></span><span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">select</span> [user]<span style="color:gray;">, </span><span style="color:fuchsia;">sum</span><span style="color:gray;">(</span>network_latency_sum<span style="color:gray;">)/</span><span style="color:fuchsia;">sum</span><span style="color:gray;">(</span>network_latency_cnt<span style="color:gray;">) </span><span style="color:blue;">as</span> &#8220;Latency&#8221;<br />
</span><span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">from</span> vw_ctrx_archive_ica_roundtrip_perf<br />
</span><span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">where </span><span style="color:fuchsia;">convert</span><span style="color:gray;">(</span><span style="color:blue;">varchar</span><span style="color:gray;">(</span>10<span style="color:gray;">),</span><span style="color:fuchsia;">dateadd</span><span style="color:gray;">(</span>hh<span style="color:gray;">,-</span>4<span style="color:gray;">,</span>time_stamp<span style="color:gray;">),</span>111<span style="color:gray;">) </span><span style="color:gray;">&gt;</span> @today<span style="color:gray;">-</span>1<br />
</span><span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">group </span><span style="color:blue;">by</span> [user]<br />
</span><span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">order </span><span style="color:blue;">by </span><span style="color:fuchsia;">sum</span><span style="color:gray;">(</span>network_latency_sum<span style="color:gray;">)/</span><span style="color:fuchsia;">sum</span><span style="color:gray;">(</span>network_latency_cnt<span style="color:gray;">) </span><span style="color:blue;">desc</span></span>          </p></blockquote>
<p style="text-align:left;">
<p style="text-align:justify;">
<blockquote><p>        </p></blockquote>
<p><span style="font-family:Courier New;font-size:10pt;"><span style="color:gray;"><strong><span style="color:#000000;">ICA Latency by Server:</span></strong></span><span style="color:gray;"><span style="color:#000000;"> <br />
About this query:<br />
This query will show you the latency by server for a given day.  This can be handy if you want to keep tabs on server health.  If you note high latency for a particular server for a specific day you may need to look and see if there was a user connection that skewed the results or if all sessions on that server had issues.  </span></span></span>         </p>
<blockquote><p> <span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">declare</span> @today <span style="color:blue;">datetime<br />
</span></span><span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">set</span> @today <span style="color:gray;">= </span><span style="color:fuchsia;">convert</span><span style="color:gray;">(</span><span style="color:blue;">varchar</span><span style="color:gray;">,</span><span style="color:fuchsia;">getdate</span><span style="color:gray;">(),</span>111<span style="color:gray;">)<br />
</span></span><span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">select</span> machine_name<span style="color:gray;">, </span><span style="color:fuchsia;">sum</span><span style="color:gray;">(</span>network_latency_sum<span style="color:gray;">)/</span><span style="color:fuchsia;">sum</span><span style="color:gray;">(</span>network_latency_cnt<span style="color:gray;">) </span><span style="color:blue;">as</span> &#8220;Latency&#8221;<br />
</span><span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">from</span> vw_ctrx_archive_ica_roundtrip_perf<br />
</span><span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">where </span><span style="color:fuchsia;">convert</span><span style="color:gray;">(</span><span style="color:blue;">varchar</span><span style="color:gray;">(</span>10<span style="color:gray;">),</span><span style="color:fuchsia;">dateadd</span><span style="color:gray;">(</span>hh<span style="color:gray;">,-</span>4<span style="color:gray;">,</span>time_stamp<span style="color:gray;">),</span>111<span style="color:gray;">) </span><span style="color:gray;">&gt;</span> @today<span style="color:gray;">-</span>1<br />
</span><span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">group </span><span style="color:blue;">by</span> machine_name<br />
</span><span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">order </span><span style="color:blue;">by </span><span style="color:fuchsia;">sum</span><span style="color:gray;">(</span>network_latency_sum<span style="color:gray;">)/</span><span style="color:fuchsia;">sum</span><span style="color:gray;">(</span>network_latency_cnt<span style="color:gray;">) </span><span style="color:blue;">desc<br />
</span></span>         </p></blockquote>
<p><span style="font-family:Courier New;font-size:10pt;"><span style="color:gray;"><strong><span style="color:#000000;">Find total sessions by server by farm:<br />
About this Query:<br />
If you have more than one farm, than you can specify the farm name in this query to get the number of connections per server by farm name.  For users in very large environments with multiple farms may find it handy to query by farm name.  </span></strong></span></span>          </p>
<p style="text-align:justify;">
<blockquote><p> <span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">declare</span> @today <span style="color:blue;">datetime<br />
</span></span><span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">set</span> @today <span style="color:gray;">= </span><span style="color:fuchsia;">convert</span><span style="color:gray;">(</span><span style="color:blue;">varchar</span><span style="color:gray;">,</span><span style="color:fuchsia;">getdate</span><span style="color:gray;">(),</span>111<span style="color:gray;">)<br />
</span></span><span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">select</span> machine_name<span style="color:gray;">, </span><span style="color:fuchsia;">count</span><span style="color:gray;">(</span><span style="color:blue;">distinct</span> [user]<span style="color:gray;">)<br />
</span></span><span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">from</span> vw_ctrx_archive_ica_roundtrip_perf<br />
</span><span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">where </span><span style="color:fuchsia;">convert</span><span style="color:gray;">(</span><span style="color:blue;">varchar</span><span style="color:gray;">(</span>10<span style="color:gray;">),</span><span style="color:fuchsia;">dateadd</span><span style="color:gray;">(</span>hh<span style="color:gray;">,-</span>4<span style="color:gray;">,</span>time_stamp<span style="color:gray;">),</span>111<span style="color:gray;">)</span><span style="color:gray;">=</span> @today<span style="color:gray;">-</span>3<br />
</span><span style="font-family:Courier New;font-size:10pt;"><span style="color:gray;">and</span> xen_farm_name <span style="color:gray;">= </span><span style="color:red;">&#8216;%FarmName%&#8217;<br />
</span></span><span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">group </span><span style="color:blue;">by</span> machine_name<br />
</span><span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">order </span><span style="color:blue;">by </span><span style="color:fuchsia;">count</span><span style="color:gray;">(</span><span style="color:blue;">distinct</span> [user]<span style="color:gray;">) </span><span style="color:blue;">desc<br />
</span></span>       </p></blockquote>
<p><strong>Conclusion:<br />
</strong>There are at least four views that I like to work with directly, I also integrate all of my queries, including the variables, into SQL Server Reporting Services letting me customize my reports for my specific needs.  The eventual goal is to provide our operations and support team with a proactive list of users with high latency so that we can call them and let them know that we noticed they were having issues.  My next post will cover how to look at problematic downstream hosts that cause you to get a bunch of calls saying it&#8217;s Citrix&#8217;s fault!!  I apologize for the lack of examples, I am limited to w hat I can show in my environment.  As I stated, I am hoping to show all of this integration, including custom SQL Reports,  at Synergy 2010.         </p>
<p> If you have a specific query that you want, post it as a comment and I will reply with the SQL Query that gets you as close as I can.       </p>
<p>Thanks for reading!        </p>
<p>John</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jmsazboy.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jmsazboy.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jmsazboy.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jmsazboy.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jmsazboy.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jmsazboy.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jmsazboy.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jmsazboy.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jmsazboy.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jmsazboy.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jmsazboy.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jmsazboy.wordpress.com/89/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jmsazboy.wordpress.com/89/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jmsazboy.wordpress.com/89/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xen-trifuge.com&amp;blog=7899546&amp;post=89&amp;subd=jmsazboy&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xen-trifuge.com/2009/12/06/89/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7d875a10f43641d8674e1bc7c1fc8b9d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">John M. Smith</media:title>
		</media:content>
	</item>
		<item>
		<title>Xen and the art of Digital Epidemiology</title>
		<link>http://xen-trifuge.com/2009/11/27/83/</link>
		<comments>http://xen-trifuge.com/2009/11/27/83/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 15:32:08 +0000</pubDate>
		<dc:creator>John M. Smith</dc:creator>
				<category><![CDATA[Application Firewall]]></category>
		<category><![CDATA[Netscaler]]></category>
		<category><![CDATA[Secure Ticket Authority]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jmsazboy.wordpress.com/2009/11/27/83/</guid>
		<description><![CDATA[In 2003 I started steering my career toward Citrix/VMWare/Virtualization and at the time, aside from being laughed at for running this fledgling product called ESX Server 1.51, most of my environment was Windows based. There were plenty of shrink-wrapped tools to let me consolidate my events and the only Unix I had to worry about [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xen-trifuge.com&amp;blog=7899546&amp;post=83&amp;subd=jmsazboy&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In 2003 I started steering my career toward Citrix/VMWare/Virtualization and at the time, aside from being laughed at for running this fledgling product called ESX Server 1.51, most of my environment was Windows based. There were plenty of shrink-wrapped tools to let me consolidate my events and the only Unix I had to worry about was the Linux Kernel on the ESX Server. Now my environment has included a series of new regulatory framework (Sarbanes, CISP, and currently FIPS 140-2). What used to be a Secure Gateway with a single web interface server and my back end XenAPP farm now includes a Gartner leading VPN Appliance, Access Gateway Enterprise Edition, Load balanced(GSLB) web interface servers, an application firewall and XenApp servers hosted on Linux based XenServer and VMWare. So now, when I hear, &#8220;A user called and said their XenAPP Session was laggy where the hell do I begin? How do I get a holistic vision of all of the security, performance and stability issues that could come up in this new environment.</p>
<p>As a security engineer in 2004, I started calling event correlation digital epidemiology. Epidemiology is defined as <em>&#8220;<span style="color:#333333;">the branch of medicine dealing with the incidence and prevalence of disease in large populations and with detection of the source and cause of epidemics of infectious disease&#8221;<br />
</span></em></p>
<p>I think that this same principal can be applied to system errors, computer based viruses and overall trends. At the root of this is the ability to collate logs from heterogeneous sources into one centralized database. During this series, I hope to go over how to do this without going to your boss and asking for half a million dollars for an event correlation package.</p>
<p>I currently perform the following with a $245 copy of KIWI Syslog Server:(Integrated with SQL Server Reporting Services)</p>
<ul>
<li>Log all Application Firewall Alerts to a SQL Server and present them via an Operations dashboard This includes violation (SQL Injection, XSS, etc), Offending IP and Time of day.</li>
<li>Pull STA Logs and provide a dashboard matrix with the number of users, total number of helpdesk calls, percentage of calls (over 2.5% means we have a problem) and the last ten calls (Our operations staff can see that &#8220;PROTOCOL DRIVER ERROR&#8221; and react before we start getting calls. )</li>
<li>I am alerted when key VIP Personnel are having trouble with their SecurID or AD Credentials.</li>
<li>I can track the prevalence of any error, I can tell when it started and how often it occurs.</li>
<li>My service desk has a tracker application that they can consult when a user cannot connect telling them if their account is locked out, Key fob is expired or if they just fat fingered their password. This has turned a 20 minute call into a 3 minute call.</li>
<li>I have a dashboard that tells me the &#8220;QFARM /Load&#8221; data for every server refreshing every 5 minutes and it turns Yellow at 7500 and red at 8500 letting us know when a server may be about to waffle.</li>
</ul>
<p>For this part of Digital Epidemiologist series I will go over parsing and logging STA Logs, why it was important to me and what you can do with them after getting them into a SQL Server.</p>
<p><strong>Abstract:<br />
</strong></p>
<p>A few y ears ago, I was asked &#8220;What is the current number of external vs internal users&#8221;. This involved a very long, complicated query against RMSummaryDatabase that worked okay but was time consuming. One thing we did realize was that every user who accessed our platform externally came through our CAG/AGEE. This meant that they were issued a ticket by the STA Servers. So we configured logging on the STA Servers and realized a few more things. We also got the application that they launched as well as the IP Address of the server they logged into. So now, if a user says they had a bad Citrix experience, we know where they logged in and what applications they used. While Edgesight does most of our user experience troubleshooting for us, it does not upload in real-time and our STA Solution does. We know right then and there.</p>
<p>By integrating this with SQL Server Reporting Services, we have a poor man&#8217;s Thomas Koetzing solution where we can search the utilization of certain applications, users and servers.</p>
<p>For this post we will learn how to set up STA Logging, how to use EPILOG from Intersect Alliance to write the data to a KIWI Syslog Server and then we will learn how to parse and write that to a SQL Server and use some of the queries I have included to gain valuable data that can eventually be used in a SQL Server Reporting Services report.</p>
<p><strong>Setting up STA Logging:<br />
</strong></p>
<p>Go to %systemroot%\program files\Citrix\system32 and add the following to the ctxsta.config file:</p>
<p><strong>LogLevel=3</strong><br />
MaxLogCount=10<br />
MaxLogSize=55 <strong>(Make sure this size is sufficient).</strong></p>
<p>LogDir=W:\Program Files\Citrix\logs\</p>
<p>In the LogDir folder you will note that the log files created will be named sta2009MMDD.log</p>
<p><strong>What exactly is in the logs:</strong><br />
The logs will show up in the following format: (We are interested in the items in bold where a parse script will pipe them into a database for us. )</p>
<p><span style="font-size:8pt;">INFORMATION 2009/11/22:22:29:32 CSG1305 <strong>Request Ticket &#8211; Successful</strong>. ED0C6898ECA0064389FDD6ABE49A03B9 V4 CGPAddress = 192.168.1.47:2598:localhost:1494 Refreshable = false XData = &lt;?xml version=&#8221;1.0&#8243;?&gt;&lt;!&#8211;DOCTYPE CtxConnInfoProtocol SYSTEM &#8220;CtxConnInfo.dtd&#8221;&#8211;&gt;&lt;CtxConnInfo version=&#8221;1.0&#8243;&gt;<strong>&lt;ServerAddress&gt;192.168.1.47:1494&lt;/ServerAddress&gt;&lt;UserName&gt;JSMITH&lt;/UserName&gt;</strong>&lt;UserDomain&gt;cdc&lt;/UserDomain&gt;<strong>&lt;ApplicationName&gt;Outlook 2007&lt;/ApplicationName&gt;</strong>&lt;Protocol&gt;ICA&lt;/Protocol&gt;&lt;/CtxConnInfo&gt; <strong>ICAAddress = 192.168.1.47:1494</strong><br />
</span></p>
<p><strong>Okay, so I have logs in a flat file&#8230;.big deal!<br />
</strong></p>
<p>The next step involves integrating them with a free open source product called &#8220;Epilog&#8221; by this totally kick ass company called intersect alliance (www.intersectalliance.com). We will configure epilog to send these flat files to a KIWI syslog server.</p>
<p>So we will go to the <a href="http://www.intersectalliance.com/projects/EpilogWindows/index.html">Intersect Alliance Download site</a> to get epilog and run through the installation process. Once that is completed you will want to configure your epilog agent to &#8220;tail-and-send&#8221; your STA Log Files. We will do this by telling it where to get the log file and who to send it to.</p>
<p>After the installation go to START-&gt;Programs-&gt;Intersect Alliance-&gt; Snare/Epilog for Windows</p>
<p><img src="http://jmsazboy.files.wordpress.com/2009/11/112709_1531_1.png?w=530" alt="" /></p>
<p><span style="font-size:9pt;"><strong>Under &#8220;LOG CONFIGURATION&#8221; For STA logs we will use the log type of &#8220;Generic&#8221; and we will type in the location of the log files and we will tell Epilog to use the format of STA20%-*.log<br />
</strong></span></p>
<p><span style="font-size:9pt;"><strong>After configuring the location of logs and type of logs you will want to go to &#8220;Network Configuration&#8221; and type in the IP Address of your Syslog Server and select port 514 (Syslog users UDP 514).<br />
</strong></span></p>
<p><span style="font-size:9pt;"><strong>Once done, go to &#8220;Latest Events&#8221; and see if you see your syslog data there.<br />
</strong></span></p>
<p style="text-align:center;"><img src="http://jmsazboy.files.wordpress.com/2009/11/112709_1531_2.png?w=530" alt="" /><strong><br />
</strong></p>
<p><strong>Section III:</strong> KIWI SYSLOG SERVER</p>
<p>I assume that most Citrix engineers have access to a SQL Server and since Epilog is free, the only thing in this solution that costs money is KIWI Syslog Server. A whopping $245 in fact. Over the years a number of event correlation solutions have come along, in fact I was at one company where we spent over $600K on a solution that had a nice dashboard and logged files to a flat file database (WTF? Are you kidding me?!). The KIWI Syslog Server will allow you to set up ten custom database connectors and that should be plenty for any CItrix administrator who is integrating XenServer, XenAPP/Windows servers, Netscaler/AGEE, CAG 2000 and Application firewall logs into one centralized database. While you need to have some intermediate SQL Skills, you do not need to be a superstar and the benefits of digital epidemiology are enormous. My hope is to continue blog posts on how I use this solution and hopefully you will see benefits beyond looking at your STA logs.</p>
<p>The first thing we need to do is add a rule called &#8220;STA-Logs&#8221; and filter for strings that will let KIWI know that the syslog update is an STA Log. We do so by adding two filters. The first one is stating &#8220;GenericLog&#8221;</p>
<p><img src="http://jmsazboy.files.wordpress.com/2009/11/112709_1531_3.png?w=530" alt="" /></p>
<p>The second filter is &#8220;&lt;Username&gt;&#8221;. The two of these filters will match STA syslog messages.</p>
<p><img src="http://jmsazboy.files.wordpress.com/2009/11/112709_1531_4.png?w=530" alt="" /><strong><br />
</strong></p>
<p>Now that we have created our filters, it&#8217;s time to perform actions. There are two actions we want to perform. We want to parse the script (pull all of the data that was bolded from the log text above) and write that data to a table in a database. You add actions by right-clicking action and selecting &#8220;Add Action&#8221;</p>
<p>So our first &#8220;Action&#8221; is to set up a &#8220;Run Script&#8221; action. I have named mine &#8220;Parse Script&#8221;.</p>
<p>Here is the script I use to parse the data (Thank you Mark Schill (<a href="http://www.cmschill.net/">http://www.cmschill.net/</a>) for showing me how to do this.)</p>
<p><span style="font-family:Arial;font-size:10pt;"><strong>The Script: (This will scrub the raw data into the parts you want, click &#8220;Edit Script&#8221; and paste).<br />
</strong></span></p>
<p><span style="font-family:Arial;font-size:10pt;"><strong>##############################</strong><br />
Function Main()<br />
</span></p>
<p><span style="font-family:Arial;font-size:10pt;">Main = &#8220;OK&#8221;<br />
</span></p>
<p><span style="font-family:Arial;font-size:10pt;">Dim MyMsg<br />
</span></p>
<p><span style="font-family:Arial;font-size:10pt;">Dim Status<br />
</span></p>
<p><span style="font-family:Arial;font-size:10pt;">Dim UserName<br />
</span></p>
<p><span style="font-family:Arial;font-size:10pt;">Dim Application<br />
</span></p>
<p><span style="font-family:Arial;font-size:10pt;">Dim ServerIP<br />
</span></p>
<p><span style="font-family:Arial;font-size:10pt;">With Fields<br />
</span></p>
<p><span style="font-family:Arial;font-size:10pt;">Status = &#8220;&#8221;<br />
</span></p>
<p><span style="font-family:Arial;font-size:10pt;">UserName = &#8220;&#8221;<br />
</span></p>
<p><span style="font-family:Arial;font-size:10pt;">Application = &#8220;&#8221;<br />
</span></p>
<p><span style="font-family:Arial;font-size:10pt;">ServerIP = &#8220;&#8221;    <br />
</span></p>
<p><span style="font-family:Arial;font-size:10pt;">MyMsg = .VarCleanMessageText<br />
</span></p>
<p><span style="font-family:Arial;font-size:10pt;">If ( Instr( MyMsg, &#8220;CtxConnInfo.dtd&#8221; ) ) Then<br />
</span></p>
<p><span style="font-family:Arial;font-size:10pt;">Status = &#8220;Successful&#8221;<br />
</span></p>
<p><span style="font-family:Arial;font-size:10pt;">UserBeg = Instr( MyMsg, &#8220;&lt;UserName&gt;&#8221;) + 10<br />
</span></p>
<p><span style="font-family:Arial;font-size:10pt;">UserEnd = Instr( UserBeg, MyMsg, &#8220;&lt;&#8221;)<br />
</span></p>
<p><span style="font-family:Arial;font-size:10pt;">UserName = Mid( MyMsg, UserBeg, UserEnd &#8211; UserBeg)<br />
</span></p>
<p><span style="font-family:Arial;font-size:10pt;">AppBeg = Instr( MyMsg, &#8220;&lt;ApplicationName&gt;&#8221;) + 17<br />
</span></p>
<p><span style="font-family:Arial;font-size:10pt;">AppEnd = Instr( AppBeg, MyMsg, &#8220;&lt;&#8221;)<br />
</span></p>
<p><span style="font-family:Arial;font-size:10pt;">Application = Mid( MyMsg, AppBeg, AppEnd &#8211; AppBeg)<br />
</span></p>
<p>    <br />
 </p>
<p><span style="font-family:Arial;font-size:10pt;">SrvBeg = Instr( MyMsg, &#8220;&lt;ServerAddress&gt;&#8221;) + 15<br />
</span></p>
<p><span style="font-family:Arial;font-size:10pt;">SrvEnd = Instr( SrvBeg, MyMsg, &#8220;&lt;/&#8221;)<br />
</span></p>
<p><span style="font-family:Arial;font-size:10pt;">ServerIP = Mid( MyMsg, SrvBeg, SrvEnd &#8211; SrvBeg)<br />
</span></p>
<p><span style="font-family:Arial;font-size:10pt;">End If<br />
</span></p>
<p><span style="font-family:Arial;font-size:10pt;">.VarCustom01 = Status<br />
</span></p>
<p><span style="font-family:Arial;font-size:10pt;">.VarCustom02 = UserName<br />
</span></p>
<p><span style="font-family:Arial;font-size:10pt;">.VarCustom03 = Application<br />
</span></p>
<p><span style="font-family:Arial;font-size:10pt;">.VarCustom04 = ServerIP<br />
</span></p>
<p><span style="font-family:Arial;font-size:10pt;">End With<br />
</span></p>
<p><span style="font-family:Arial;font-size:10pt;">##############################<br />
</span></p>
<p><span style="font-family:Arial;font-size:10pt;">Now that we can parse the data we need to create a table in a database with the appropriate columns.<br />
</span></p>
<p><span style="font-family:Arial;font-size:10pt;">The next step is to create the field format and create the table. Make sure the account in the connect string has DBO privileges to the database. Set up the custom field format with the following fields. Ensure that the type is SQL Database.<br />
</span></p>
<p><img src="http://jmsazboy.files.wordpress.com/2009/11/112709_1531_5.png?w=530" alt="" /><span style="font-family:Arial;font-size:10pt;"><br />
</span></p>
<p><span style="font-family:Arial;font-size:10pt;">As you see below, you will need to set up an ODBC Connection for your Syslog Database and you will need to provide a connect string here (yes&#8230;in clear text so make sure you know who can log onto the syslog server). When you are all set click &#8220;Create Table&#8221; and click &#8220;Apply&#8221;<br />
</span></p>
<p><img src="http://jmsazboy.files.wordpress.com/2009/11/112709_1531_6.png?w=530" alt="" /><span style="font-family:Arial;font-size:10pt;"><br />
</span></p>
<p><span style="font-family:Arial;font-size:10pt;">Hopefully once this is done, you will start filling up your table with STA Log entries with the data from the parse script.<br />
</span></p>
<p><span style="font-family:Arial;font-size:10pt;">I have included some helpful queries that have been very useful to me: You may also want to integrate this data with SQL Server Reporting Services and with that, you can build a poor man&#8217;s Thomas Koetzing tool.<br />
</span></p>
<p><span style="font-family:Arial;font-size:10pt;"><strong>Helpful SQL Queries: (Edit @BEG and @END values)<br />
</strong></span></p>
<p><strong> </strong></p>
<p><strong>How many users for each day:(Unique users per day)</strong></p>
<p>declare @BEG datetime<br />
declare @END datetime<br />
set @BEG = &#8217;2009-11-01&#8242;<br />
set @END = &#8217;2009-11-30&#8242;<br />
select convert(varchar(10),msgdatetime, 111), count(distinct username)<br />
from sta_logs<br />
where msgdatetime between @beg and @end<br />
group by convert(varchar(10),msgdatetime, 111)<br />
order by convert(varchar(10),msgdatetime, 111)</p>
<p><strong>Top 100 Applications for this month:</strong></p>
<p>declare @BEG datetime<br />
declare @END datetime<br />
set @BEG = &#8217;2009-11-01&#8242;<br />
set @END = &#8217;2009-11-30&#8242;<br />
select top 100 [application], count(application)<br />
from sta_logs<br />
where msgdatetime between @beg and @end<br />
group by application<br />
order by count(application) desc<strong></strong></p>
<p><strong>Usage by the hour: (Unique users for each hour)</strong></p>
<p>declare @BEG datetime<br />
declare @END datetime<br />
set @BEG = &#8217;2009-11-01&#8242;<br />
set @END = &#8217;2009-11-02&#8242;<br />
select convert(varchar(2),msgdatetime,108)+&#8217;:00&#8242;, count(distinct username)<br />
from sta_logs<br />
where msgdatetime between @beg and @end<br />
group by convert(varchar(2),msgdatetime,108)+&#8217;:00&#8242;<br />
order by convert(varchar(2),msgdatetime,108)+&#8217;:00&#8242;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jmsazboy.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jmsazboy.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jmsazboy.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jmsazboy.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jmsazboy.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jmsazboy.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jmsazboy.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jmsazboy.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jmsazboy.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jmsazboy.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jmsazboy.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jmsazboy.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jmsazboy.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jmsazboy.wordpress.com/83/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=xen-trifuge.com&amp;blog=7899546&amp;post=83&amp;subd=jmsazboy&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://xen-trifuge.com/2009/11/27/83/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7d875a10f43641d8674e1bc7c1fc8b9d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">John M. Smith</media:title>
		</media:content>

		<media:content url="http://jmsazboy.files.wordpress.com/2009/11/112709_1531_1.png" medium="image" />

		<media:content url="http://jmsazboy.files.wordpress.com/2009/11/112709_1531_2.png" medium="image" />

		<media:content url="http://jmsazboy.files.wordpress.com/2009/11/112709_1531_3.png" medium="image" />

		<media:content url="http://jmsazboy.files.wordpress.com/2009/11/112709_1531_4.png" medium="image" />

		<media:content url="http://jmsazboy.files.wordpress.com/2009/11/112709_1531_5.png" medium="image" />

		<media:content url="http://jmsazboy.files.wordpress.com/2009/11/112709_1531_6.png" medium="image" />
	</item>
	</channel>
</rss>
