{"id":573,"date":"2010-06-04T17:08:36","date_gmt":"2010-06-04T21:08:36","guid":{"rendered":"http:\/\/www.braindeadprojects.com\/blog\/?p=573"},"modified":"2010-06-06T23:42:10","modified_gmt":"2010-06-07T03:42:10","slug":"netflowlive","status":"publish","type":"post","link":"http:\/\/www.braindeadprojects.com\/blog\/what\/netflowlive\/","title":{"rendered":"NetflowLive!"},"content":{"rendered":"<p>The good news is this &#8211; we&#8217;re now up to 30 subscribers on the neighborhood wifi.<\/p>\n<figure id=\"attachment_624\" aria-describedby=\"caption-attachment-624\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/30.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-624\" title=\"Now up to 30 users\" src=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/30-300x81.png\" alt=\"\" width=\"300\" height=\"81\" srcset=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/30-300x81.png 300w, http:\/\/www.braindeadprojects.com\/blog\/wp-content\/30.png 656w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-624\" class=\"wp-caption-text\">Currently 30 subscribers on the wireless<\/figcaption><\/figure>\n<p>With an average of 1.75 users online at any given moment:<\/p>\n<figure id=\"attachment_626\" aria-describedby=\"caption-attachment-626\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/onlines.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-626\" title=\"Users online at any given moment\" src=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/onlines-300x81.png\" alt=\"\" width=\"300\" height=\"81\" srcset=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/onlines-300x81.png 300w, http:\/\/www.braindeadprojects.com\/blog\/wp-content\/onlines.png 656w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-626\" class=\"wp-caption-text\">Users online at any given moment.<\/figcaption><\/figure>\n<p>I&#8217;ve also started working on writing a <a href=\"http:\/\/en.wikipedia.org\/wiki\/Netflow\">Netflow<\/a> analyzer application, based off a similar application I wrote for work.\u00a0 At the current time, this version\u00a0 only streams real-time connection endpoints and DNS statistics (last resolved sites, most resolved sites), as well as detects TCP SYN scans. Each flow record is also colorized (similar to what you would see in <a href=\"http:\/\/www.wireshark.org\/\" target=\"_blank\">Wireshark<\/a>), to further categorize the type of connection.<\/p>\n<p>Instead of calling the <a href=\"http:\/\/php.net\/manual\/en\/function.gethostbyaddr.php\" target=\"_blank\"><em>gethostbyaddr()<\/em> function<\/a> on a destination IP\u00a0 (which simply pulls a PTR record, and in the world of vhosts is a poor representation of where a user is actually connecting),\u00a0 subscriber DNS queries are syslogged offsite and parsed.\u00a0 The Netflow Live application I&#8217;m building uses those parsed and stored queries to give a fairly accurate determination of what site is being visited when.<\/p>\n<p>Visited URLs could also be determined and logged\u00a0 if a transparent <a href=\"www.squid-cache.org\/\">Squid proxy<\/a> was utilized on the Access Points. I have <strong>NO<\/strong> intention of doing this, however. I&#8217;m only concerned with endpoints and protocols being used. The number one protocol in use on the network:\u00a0 <a href=\"http:\/\/en.wikipedia.org\/wiki\/Hypertext_Transfer_Protocol\" target=\"_blank\">HTTP<\/a> (Shocking!)<\/p>\n<figure id=\"attachment_574\" aria-describedby=\"caption-attachment-574\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/netflow3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-574\" title=\"Netflow\" src=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/netflow3-300x208.png\" alt=\"\" width=\"300\" height=\"208\" srcset=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/netflow3-300x208.png 300w, http:\/\/www.braindeadprojects.com\/blog\/wp-content\/netflow3.png 1020w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-574\" class=\"wp-caption-text\">Netflow Live (streaming recent connections)<\/figcaption><\/figure>\n<p>For those of you unfamiliar with <a href=\"http:\/\/en.wikipedia.org\/wiki\/Netflow\">Netflow<\/a>, it&#8217;s a solution put forth by <a href=\"http:\/\/www.cisco.com\" target=\"_blank\">Cisco<\/a> for IP traffic profiling. The two main elements are an exporter (usually a router) and a collector (which the exporter sends flow data to). Netflow <strong><em>does not include data\u00a0 payloads<\/em> <\/strong>, ONLY a log of the endpoints used in each connection. (Think of it this way: When you make a long distance phone-call, you receive a monthly bill that details your phone number called another phone number at a specific time, for a specific duration. The phone company doesn&#8217;t actually have record of the conversation, however).<\/p>\n<p>The data collected <em><strong>does<\/strong> <\/em>include IP source and destination addresses, Transport layer source and destination ports, byte countes, packet counts, TCP flags, and MAC addresses. (Below is all the fields actually captured)<\/p>\n<p style=\"text-align: center;\">\n<figure id=\"attachment_640\" aria-describedby=\"caption-attachment-640\" style=\"width: 460px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/mysql.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-640\" title=\"mysql\" src=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/mysql.png\" alt=\"\" width=\"460\" height=\"272\" srcset=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/mysql.png 766w, http:\/\/www.braindeadprojects.com\/blog\/wp-content\/mysql-300x177.png 300w\" sizes=\"(max-width: 460px) 100vw, 460px\" \/><\/a><figcaption id=\"caption-attachment-640\" class=\"wp-caption-text\">This is all the data that&#39;s actually stored from each connection.<\/figcaption><\/figure>\n<p>So what does this allow? Utilizing Netflow, I can determine subscribers on the network with certain <a href=\"http:\/\/www.symantec.com\/connect\/articles\/detecting-worms-and-abnormal-activities-netflow-part-1\">network signatures for viruses<\/a>, detect some <a href=\"http:\/\/en.wikipedia.org\/wiki\/Dos_attack\" target=\"_blank\">DoS attacks<\/a> and <a href=\"http:\/\/en.wikipedia.org\/wiki\/Port_scanner#SYN_scanning\" target=\"_self\">SYN scans<\/a>, and graph the most commonly used protocols on the network.<\/p>\n<p>I can also shape traffic based on determinations made by looking at the data. Is someone experiencing bad <a href=\"http:\/\/www.skype.com\" target=\"_blank\">Skype<\/a> calls due to someone streaming video over HTTP? I can use the netflow data to reshape things as needed.<\/p>\n<p>So what&#8217;s in the works? Using NetGeo data, I plan on mapping connection endpoints on a US world map, allowing a visual display of where in the world most connections are destined.<\/p>\n<p style=\"text-align: center;\">\n<figure id=\"attachment_637\" aria-describedby=\"caption-attachment-637\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/orion-netflow.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-637\" title=\"orion-netflow\" src=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/orion-netflow-300x95.png\" alt=\"\" width=\"300\" height=\"95\" srcset=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/orion-netflow-300x95.png 300w, http:\/\/www.braindeadprojects.com\/blog\/wp-content\/orion-netflow.png 956w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-637\" class=\"wp-caption-text\">Orion Netflow offers the same functionality I&#39;m going for - but at a hefty pricetag.<\/figcaption><\/figure>\n<p>But next up:\u00a0 I\u00a0 need to fix the\u00a0 bug preventing a software reboot of the access points &#8211; hopefully I can get to that this weekend.<\/p>\n<p><strong>Update\u00a0 6\/9\/2010<\/strong>:<\/p>\n<p><a href=\"http:\/\/www.braindeadprojects.com\/blog\/what\/netflowlive\/#comments\">Jake Wilson pointed out<\/a> the free NetFlow analyzer <em>Scrutinizer<\/em> by <a href=\"http:\/\/plixer.com\">Plixer<\/a>. I&#8217;ve not had a chance to look it over yet &#8211; but check out <a href=\"http:\/\/www.youtube.com\/watch?v=ilxknbKJ0Pc\">this video<\/a> about the product.\u00a0 I first came across that video a month or two ago&#8230; it was like staring at the sun, initially I couldn&#8217;t tell if I liked it or not &#8211; but I watched it like 20 times that day.\u00a0 GREAT work guys, catchy AND entertaining.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The good news is this &#8211; we&#8217;re now up to 30 subscribers on the neighborhood wifi. With an average of 1.75 users online at any given moment: I&#8217;ve also started working on writing a Netflow analyzer application, based off a similar application I wrote for work.\u00a0 At the current time, this version\u00a0 only streams real-time &hellip; <a href=\"http:\/\/www.braindeadprojects.com\/blog\/what\/netflowlive\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">NetflowLive!<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-573","post","type-post","status-publish","format-standard","hentry","category-what"],"_links":{"self":[{"href":"http:\/\/www.braindeadprojects.com\/blog\/wp-json\/wp\/v2\/posts\/573"}],"collection":[{"href":"http:\/\/www.braindeadprojects.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.braindeadprojects.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.braindeadprojects.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.braindeadprojects.com\/blog\/wp-json\/wp\/v2\/comments?post=573"}],"version-history":[{"count":52,"href":"http:\/\/www.braindeadprojects.com\/blog\/wp-json\/wp\/v2\/posts\/573\/revisions"}],"predecessor-version":[{"id":664,"href":"http:\/\/www.braindeadprojects.com\/blog\/wp-json\/wp\/v2\/posts\/573\/revisions\/664"}],"wp:attachment":[{"href":"http:\/\/www.braindeadprojects.com\/blog\/wp-json\/wp\/v2\/media?parent=573"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.braindeadprojects.com\/blog\/wp-json\/wp\/v2\/categories?post=573"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.braindeadprojects.com\/blog\/wp-json\/wp\/v2\/tags?post=573"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}