<?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/"
	>

<channel>
	<title>mattscott.org &#187; Computers</title>
	<atom:link href="http://www.mattscott.org/index.php/category/computers/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mattscott.org</link>
	<description>Matt's Blog</description>
	<lastBuildDate>Thu, 19 Nov 2009 03:10:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>AT&amp;T Uverse vs. Aastra 55i</title>
		<link>http://www.mattscott.org/index.php/2009/10/04/att-uverse-vs-aastra-55i/</link>
		<comments>http://www.mattscott.org/index.php/2009/10/04/att-uverse-vs-aastra-55i/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 01:35:33 +0000</pubDate>
		<dc:creator>Matt Scott</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[VOIP]]></category>

		<guid isPermaLink="false">http://www.mattscott.org/?p=24</guid>
		<description><![CDATA[Several months ago we switched from AT&#38;T DSL to AT&#38;T Uverse at my home. It offered "cable" TV and quick Internet for a price that worked or us. Uverse also offers its own VoIP service but we declined that part of the service in favor of using a 3CX remote extension using a Sipura SPA3000 [...]]]></description>
			<content:encoded><![CDATA[<div>Several months ago we switched from AT&amp;T DSL to AT&amp;T Uverse at my home. It offered "cable" TV and quick Internet for a price that worked or us. Uverse also offers its own VoIP service but we declined that part of the service in favor of using a 3CX remote extension using a Sipura SPA3000 that I bought a few years back.In my experience so far, Uverse is not a Voip-friendly provider unless you use their service. For one, you are stuck with their gateway box. Yes, you can use the "DMZPlus" mode to add your own firewall into the mix but it's far from perfect. I did manage to get my SPA3000 to work. The Aastra 5xi series of phones doesn't have as many NAT traversal options however so it wasn't quite as easy.</p>
<p><a href="http://4.bp.blogspot.com/_0z2lr3fiXjQ/SlFC0e1jrlI/AAAAAAAAAAM/CDKl2MwFz28/s1600-h/globalsip.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5355134901318561362" style="margin: 0pt 10px 10px 0pt; width: 400px; float: left; height: 336px; cursor: pointer;" src="http://4.bp.blogspot.com/_0z2lr3fiXjQ/SlFC0e1jrlI/AAAAAAAAAAM/CDKl2MwFz28/s400/globalsip.jpg" border="0" alt="" /></a>First I went to the Global SIP screen and set things up in the usual way so that the phone had the information needed to register to the PBX, etc.</p>
<p>This would work great if the phone could route directly to the PBX and back again but with Network Address Translation occurring on my end throws a monkey wrench into the works when it comes to SIP and RTP.</p>
</div>
<div>
<div style="text-align: left;"><a href="http://4.bp.blogspot.com/_0z2lr3fiXjQ/SlFHaWmjGNI/AAAAAAAAAAc/MWbeHMWOtAk/s1600-h/nat.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5355139949989664978" style="margin: 0pt 10px 10px 0pt; width: 400px; float: left; height: 292px; cursor: pointer;" src="http://4.bp.blogspot.com/_0z2lr3fiXjQ/SlFHaWmjGNI/AAAAAAAAAAc/MWbeHMWOtAk/s400/nat.jpg" border="0" alt="" /></a></div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">So next I looked on the Network settings. This is where all of the NAT options live. With typical cable or DSL service, I'd just set a STUN server, maybe check the Rport box and go. In the case of the Uverse 2Wire Residential Gateway, however no combination of these options that I tried worked.</div>
<div style="text-align: left;">
<p>So in the end it seemed necessary to take a look at the available settings on the 2Wire device and see what my options were. There weren't many.</p>
<p>I ended up explicitly allowing the UDP ports that the phone uses. On the Uverse gateway. Here are the steps:</p>
<p>First I went to the Firewall tab and then Firewall Settings. I selected the phone from the Computer drop down and selected "Allow individual application(s)" like so.</p>
<p><a href="http://4.bp.blogspot.com/_0z2lr3fiXjQ/SlFWGH4ox2I/AAAAAAAAAAk/xByHxGHiHgA/s1600-h/1.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5355156095116035938" style="width: 400px; height: 295px; cursor: pointer;" src="http://4.bp.blogspot.com/_0z2lr3fiXjQ/SlFWGH4ox2I/AAAAAAAAAAk/xByHxGHiHgA/s400/1.jpg" border="0" alt="" /></a></p>
<p>Next, I clicked Add a new user-defined application and created a user-defined app as below.<br />
<a href="http://3.bp.blogspot.com/_0z2lr3fiXjQ/SlFarkaVknI/AAAAAAAAAAs/CqVVKxjDZX0/s1600-h/2.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5355161136475247218" style="width: 310px; height: 400px; cursor: pointer;" src="http://3.bp.blogspot.com/_0z2lr3fiXjQ/SlFarkaVknI/AAAAAAAAAAs/CqVVKxjDZX0/s400/2.jpg" border="0" alt="" /></a></p>
<p>The phone sends and receives RTP traffic on ports beginning with UDP 3000. I opened up ten ports allowing for five simultaneous calls. This seemed like more than enough for my purposes.</p>
<p>When I was done I clicked "Add Definition" and then the new user-defined app was ready to go. I Selected it on the following page, clicked Add, and then Done. After that the phone worked great.</p>
<p>What I did find odd is that I didn't need to define a stun server on this phone to get it to work in this situation. The 2Wire residential gateway must do some sort of manipulation of SIP packets because from what I could tell all of the fields looked correct with the appropriate public IPs in the right places.</p>
</div>
<div style="text-align: left;">It's unfortunate that the phone couldn't be made to work without making changes to the firewall. But something with the way that the 2Wire handles RTP seems to make it necessary.</p>
<p>Enjoy!</p>
<p>Matt</p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.mattscott.org/index.php/2009/10/04/att-uverse-vs-aastra-55i/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>802.1x Certificate-based Computer Authentication in a Windows Domain</title>
		<link>http://www.mattscott.org/index.php/2008/08/09/8021x-certificate-based-computer-authentication-in-a-windows-domain/</link>
		<comments>http://www.mattscott.org/index.php/2008/08/09/8021x-certificate-based-computer-authentication-in-a-windows-domain/#comments</comments>
		<pubDate>Sat, 09 Aug 2008 16:58:44 +0000</pubDate>
		<dc:creator>Matt Scott</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.mattscott.org/index.php/2008/03/27/8021x-certificate-based-computer-authentication-in-a-windows-domain/</guid>
		<description><![CDATA[I have a customer that has felt it necessary to secure the network ports in their conference rooms. The goal was to make it impossible for untrusted computers to access the LAN and if possible dump them on to a VLAN that would allow them only Internet access. Rather than detail the whole project I'll [...]]]></description>
			<content:encoded><![CDATA[<p>I have a customer that has felt it necessary to secure the network ports in their conference rooms.  The goal was to make it impossible for untrusted computers to access the LAN and if possible dump them on to a VLAN that would allow them only Internet access.  Rather than detail the whole project I'll just provide a couple of links that helped me out and explain a couple of difficulties I faced.  I am still working on the guest vlan portion of the project and will update the config below when that portion of the project is complete.</p>
<p><strong>Switch Configuration</strong></p>
<p>We used a Dell PowerConnect 6248 switch in this case.  During R&amp;D for this project I also made 802.1x authentication work on a PowerConnect 6024 and a Cisco Catalyst 2950 series.  I actually made things work with the Catalyst first by following this article <a title="802.1x Switch Configuration" href="http://www.cisco.com/en/US/docs/switches/lan/catalyst2950/software/release/12.1_9_ea1/configuration/guide/Sw8021x.html" target="_blank">http://www.cisco.com/en/US/docs/switches/lan/catalyst2950/software/release/12.1_9_ea1/configuration/guide/Sw8021x.html</a>.  The important bits of the config for the PowerConnect 6248 are as follows:</p>
<p><code><br />
*snip*<br />
! This enables dot1x globally<br />
dot1x system-auth-control<br />
! This sets up the radius server.  192.168.1.5 is a Windows Server 2003 server running IAS<br />
aaa authentication dot1x default radius<br />
radius-server key "abcdefg"<br />
radius-server host 192.168.1.5<br />
exit<br />
!<br />
! This port requires authorization.  This is the default.<br />
interface ethernet 1/g1<br />
exit<br />
!<br />
!This port is forced into an authorized state.<br />
interface ethernet 1/g2<br />
dot1x port-control force-authorized<br />
exit</code></p>
<p><strong>Windows Client and Server Configuration</strong></p>
<p>To configure the clients and server I used this article:  <a title="Defending your internal network with 802.1x..." href="http://alextch.members.winisp.net/802.1x/Defending%20your%20internal%20network%20with%20802.1x%20and%20Microsoft%20PKI.htm" target="_blank">http://alextch.members.winisp.net/802.1x/Defending%20your%20internal%20network%20with%20802.1x%20and%20Microsoft%20PKI.htm</a>.</p>
<p>This article pretty much got me where  I needed to be but here's a couple of things to note.</p>
<ol>
<li> You have to make the registry change found on Page 13.  There doesn't seem to be any way around it.  If you find one, let me know.  The plan is to make the change in a logon script.</li>
<li>How your computer names are stored in the certificate issued to the clients is important.  The default settings had been changed on the system in this case and this caused some problems.<em> </em>I successfully used a Subject Name Format of None and checked DNS name.  I also used a subject name format of Fully Distinguished Name with nothing checked underneath.  I do not fully understand these options so YMMV.</li>
</ol>
<p>Keeping that in mind you shouldn't have any problems implementing this using the two articles that I linked to.  I may eventually get really motivated and take screen shots.</p>
<p><strong>UPDATE!</strong></p>
<p>I spent manyl hours over the last couple of weeks trying to get this to work well in production.  We were seeing very odd behavior.  At times ports that had been moved to the guest vlan would mysteriously be moved vlan 1 once the host was disconnected and would stay their for long periods of time.  Vlan 1 does not normally contain any ports with this configuration.  At once point we had two ports stay in vlan for more than eighteen hours.  It was weird to say the least.</p>
<p>We tried my Catalyst 2950 in the customer's production environment and it worked perfectly and exactly as I would expect it to.  We finally gave up on the PowerConnect and my customer decided to just buy some used 24 port Catalyst 2950s.</p>
<p>What we ended up doing was creating a trunk port on the PowerConnect 6248 that supplied both the guest and trusted vlans to a trunk port on the catalyst.  Since my Catalyst is not layer 3 capable the PowerConnect still handled routing, DHCP relay, and ACLs.  The Catalyst was just responsible for 802.1x.</p>
<p>When I get my switch back I'll post the important bits of the config.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mattscott.org/index.php/2008/08/09/8021x-certificate-based-computer-authentication-in-a-windows-domain/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Automatic Proxy Detection/wpad.dat</title>
		<link>http://www.mattscott.org/index.php/2008/05/28/automatic-proxy-detectionwpaddat/</link>
		<comments>http://www.mattscott.org/index.php/2008/05/28/automatic-proxy-detectionwpaddat/#comments</comments>
		<pubDate>Thu, 29 May 2008 01:50:12 +0000</pubDate>
		<dc:creator>Matt Scott</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://www.mattscott.org/?p=6</guid>
		<description><![CDATA[I recently had the opportunity to setup Automatic Proxy Detection for a customer. I'd never taken the time to figure it out before. It worked in both IE and Firefox and was kinda neat. It turns out that when you start your web browser and you have automatic proxy detection enabled it attempts to find [...]]]></description>
			<content:encoded><![CDATA[<p>I recently had the opportunity to setup Automatic Proxy Detection for a customer.  I'd never taken the time to figure it out before.  It worked in both IE and Firefox and was kinda neat.</p>
<p>It turns out that when you start your web browser and you have automatic proxy detection enabled it attempts to find a file at the URL http://wpad.<em>yourdomain.tld</em>/wpad.dat.  In my case it would try for http://wpad.mattscott.org/wpad.dat.  If that file is found it runs the javascript in it and sets the proxy settings to however they are defined in the wpad.dat file.  Here's what we did.  I'm using example.com as my domain to protect the guilty.</p>
<h2>Create a DNS Record</h2>
<p>We created a CNAME for <strong>wpad.example.com</strong> that pointed to a web server.  In this case a Microsoft Small Business Server 2003 running IIS.  An A record would work okay too but given the fact that this will probably never be a server's primary name record a CNAME made sense to me.</p>
<h2>Create wpad.dat</h2>
<p>Now you need to create your wpad.dat file.  We found several examples on the web.  Here's an example.  Google can help you find more:</p>
<p><em>function FindProxyForURL(url, host) </em></p>
<p><em>{ </em></p>
<p><em> if (shExpMatch( host, "<a href="http://192.168.111./" target="_blank">192.168.1.</a>*" )</em></p>
<p><em> ||  shExpMatch( host, "127.*" )</em></p>
<p><em> ||  shExpMatch( host, "localhost" )</em></p>
<p><em> ||  shExpMatch( host, "*.<a href="http://barn-net1.koops.com/" target="_blank">example.com</a>" )</em></p>
<p><em> ||  isPlainHostName( host )</em></p>
<p><em> ||  dnsDomainIs( host, ".<a href="http://barn-net1.koops.com/" target="_blank">example.com</a>" )) {</em></p>
<p><em> return "DIRECT"; </em></p>
<p><em> }</em></p>
<p><em> </em></p>
<p><em> return "PROXY <a href="http://koops.com.web02.mxlogic.net:8080/" target="_blank">proxy.example.org:8080</a>;"; </em></p>
<p><em>}</em><br />
The first section inside the if block tells the browser to connect to the destination server directly if one of those conditions are met.  You'd normally do this to bypass your proxy for a host on the local LAN.  The second section is where you define the proxy for use with everything else.  It's just a javascript function so you could probably go pretty crazy with the thing if you wanted to.</p>
<p>Once you've created your file copy it to the root of your web server.  One thing that we noticed was that IIS wouldn't server the file initially because it didn't have a mime type for a .dat file.  So we added a mime type of application/x-ns-proxy-autoconf for .dat files and we were good to go.</p>
<h2>Create a DHCP Scope Option</h2>
<p>The last thing we did was create an option in our DHCP scope to define where your wpad.dat file is.  I don't believe his isn't strictly necessary since a machine should generally attempt to connect to a host called wpad in its own domain.  I see it as a good idea though because you might run into issues if you ever have guest machines on your network or if you are using some sort of split DNS tunneling over a VPN client or something like that.  It was a recommended step so we did it in DHCP on a Windows Small Business Server 2003.</p>
<p style="margin-bottom: 0.0001pt;"><strong><span style="font-size: 8.5pt;">Create an Option 252 Entry in DHCP</span></strong></p>
<p style="margin-bottom: 0.0001pt; line-height: 140%;"><span style="font-size: 8.5pt; line-height: 140%;">To create an Option 252 entry in DHCP, do the following.</span></p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="padding: 0in 9pt 0in 12.6pt;" valign="top">
<p style="margin-bottom: 0.0001pt; text-align: right; line-height: 140%;" align="right"><span style="font-size: 8.5pt; line-height: 140%;">1.</span></p>
</td>
<td style="padding: 0in;" valign="top">
<p style="margin-bottom: 0.0001pt; line-height: 140%;"><span style="font-size: 8.5pt; line-height: 140%;">Click <strong>Start</strong>, point to <strong>Programs</strong>, point   to <strong>Administrative Tools</strong>, and then click <strong>DHCP</strong>. </span></p>
</td>
</tr>
<tr>
<td style="padding: 0in 9pt 0in 12.6pt;" valign="top">
<p style="margin-bottom: 0.0001pt; text-align: right; line-height: 140%;" align="right"><span style="font-size: 8.5pt; line-height: 140%;">2.</span></p>
</td>
<td style="padding: 0in;" valign="top">
<p style="margin-bottom: 0.0001pt; line-height: 140%;"><span style="font-size: 8.5pt; line-height: 140%;">In the console tree, right-click the applicable DHCP   server, click <strong>Set Predefined Options</strong>, and then click <strong>Add</strong>. </span></p>
</td>
</tr>
<tr>
<td style="padding: 0in 9pt 0in 12.6pt;" valign="top">
<p style="margin-bottom: 0.0001pt; text-align: right; line-height: 140%;" align="right"><span style="font-size: 8.5pt; line-height: 140%;">3.</span></p>
</td>
<td style="padding: 0in;" valign="top">
<p style="margin-bottom: 0.0001pt; line-height: 140%;"><span style="font-size: 8.5pt; line-height: 140%;">In <strong>Name</strong>, type <strong>WPAD</strong>. </span></p>
</td>
</tr>
<tr>
<td style="padding: 0in 9pt 0in 12.6pt;" valign="top">
<p style="margin-bottom: 0.0001pt; text-align: right; line-height: 140%;" align="right"><span style="font-size: 8.5pt; line-height: 140%;">4.</span></p>
</td>
<td style="padding: 0in;" valign="top">
<p style="margin-bottom: 0.0001pt; line-height: 140%;"><span style="font-size: 8.5pt; line-height: 140%;">In <strong>Code</strong>, type <strong>252</strong>. </span></p>
</td>
</tr>
<tr>
<td style="padding: 0in 9pt 0in 12.6pt;" valign="top">
<p style="margin-bottom: 0.0001pt; text-align: right; line-height: 140%;" align="right"><span style="font-size: 8.5pt; line-height: 140%;">5.</span></p>
</td>
<td style="padding: 0in;" valign="top">
<p style="margin-bottom: 0.0001pt; line-height: 140%;"><span style="font-size: 8.5pt; line-height: 140%;">In <strong>Data type</strong>, select <strong>String</strong>, and then   click <strong>OK</strong>. </span></p>
</td>
</tr>
<tr>
<td style="padding: 0in 9pt 0in 12.6pt;" valign="top">
<p style="margin-bottom: 0.0001pt; text-align: right; line-height: 140%;" align="right"><span style="font-size: 8.5pt; line-height: 140%;">6.</span></p>
</td>
<td style="padding: 0in;" valign="top">
<p style="margin-bottom: 0.0001pt; line-height: 140%;"><span style="font-size: 8.5pt; line-height: 140%;">In <strong>String</strong>, type <strong>http://<em>Computer_Name</em>:<em>Port</em>/wpad.dat</strong> where:</span></p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="padding: 0in;" valign="top">
<p style="margin-bottom: 0.0001pt; line-height: 115%;"><span style="font-size: 14.5pt; line-height: 115%; color: #a6a6a6;">•</span></p>
</td>
<td style="padding: 0in 0in 0in 6pt;">
<p style="margin-bottom: 0.0001pt; line-height: 140%;"><em><span style="font-size: 8.5pt; line-height: 140%;">Computer_Name</span></em><span style="font-size: 8.5pt; line-height: 140%;"> is the fully qualified domain name of the web server computer.</span></p>
</td>
</tr>
<tr>
<td style="padding: 0in;" valign="top">
<p style="margin-bottom: 0.0001pt; line-height: 115%;"><span style="font-size: 14.5pt; line-height: 115%; color: #a6a6a6;">•</span></p>
</td>
<td style="padding: 0in 0in 0in 6pt;">
<p style="margin-bottom: 0.0001pt; line-height: 140%;"><em><span style="font-size: 8.5pt; line-height: 140%;">Port</span></em><span style="font-size: 8.5pt; line-height: 140%;"> is the port     number on which automatic discovery </span></p>
</td>
</tr>
<tr>
<td style="padding: 0in;" valign="top">
<p style="margin-bottom: 0.0001pt; line-height: 115%;"><span style="font-size: 14.5pt; line-height: 115%; color: #a6a6a6;">•</span></p>
</td>
<td style="padding: 0in 0in 0in 6pt;">
<p style="margin-bottom: 0.0001pt; line-height: 140%;"><em><span style="font-size: 8.5pt; line-height: 140%;">\</span></em><span style="font-size: 8.5pt; line-height: 140%;">information is     published. You can specify any port number. By default it uses port 80.</span></p>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td style="padding: 0in 9pt 0in 12.6pt;" valign="top">
<p style="margin-bottom: 0.0001pt; text-align: right; line-height: 140%;" align="right"><span style="font-size: 8.5pt; line-height: 140%;">7.</span></p>
</td>
<td style="padding: 0in;" valign="top">
<p style="margin-bottom: 0.0001pt; line-height: 140%;"><span style="font-size: 8.5pt; line-height: 140%;">To add the option to the scope right-click <strong>Scope options</strong>,under the scope you want to add it to  and then click <strong>Configure   options</strong>. </span></p>
</td>
</tr>
<tr>
<td style="padding: 0in 9pt 0in 12.6pt;" valign="top">
<p style="margin-bottom: 0.0001pt; text-align: right; line-height: 140%;" align="right"><span style="font-size: 8.5pt; line-height: 140%;">8.</span></p>
</td>
<td style="padding: 0in;" valign="top">
<p style="margin-bottom: 0.0001pt; line-height: 140%;"><span style="font-size: 8.5pt; line-height: 140%;">Confirm that the <strong>Option 252</strong> check box is   selected.</span></p>
</td>
</tr>
</tbody>
</table>
<p>Unless I left something out, that about does it.  All you should have to do is to check the Automatic Proxy Detection box in your browser and you should be good to go.  In Internet Explorer you can sort of push this setting down via GPO.  Of course it's one of those whacked out policies that users can mess with if they know how.  In Firefox I am not aware of a way to automate this but I'm sure somebody's written something.</p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mattscott.org/index.php/2008/05/28/automatic-proxy-detectionwpaddat/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
