<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-34960427</id><updated>2011-11-27T20:20:11.411-04:00</updated><category term='linux'/><category term='virtualization'/><category term='router'/><category term='mono windows aspx'/><category term='samba pdc'/><category term='diy'/><category term='funny'/><category term='biquad'/><category term='dd-wrt'/><category term='wifi'/><category term='security'/><category term='trixbox'/><category term='nagios'/><category term='christmas'/><category term='voip'/><category term='ssh'/><category term='skype'/><category term='NAS'/><category term='mythtv'/><category term='pbxinaflash'/><category term='vonage'/><category term='gui'/><category term='xorp'/><category term='htpc'/><category term='cisco alternatives'/><category term='cisco'/><category term='bluetooth'/><category term='asterisk'/><category term='zenoss'/><category term='blackberry'/><category term='antenna'/><category term='Exchange Server Alternatives'/><category term='wireless'/><category term='spam'/><category term='mac'/><category term='server monitoring'/><category term='openvpn'/><category term='samba'/><category term='email'/><category term='vpn'/><category term='freebsd'/><category term='mono servers windows'/><category term='qmail'/><category term='livecd'/><category term='just plain cool'/><category term='backup'/><title type='text'>Poor Man's Tech</title><subtitle type='html'>The adventures of a seriously cheap guy who wants safe, stable, secure technology for nothing (or as close to nothing as he can get).</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://poormanstech.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>74</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-34960427.post-3563968974784947145</id><published>2008-03-04T12:46:00.003-04:00</published><updated>2008-03-04T12:51:41.224-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='trixbox'/><category scheme='http://www.blogger.com/atom/ns#' term='pbxinaflash'/><category scheme='http://www.blogger.com/atom/ns#' term='voip'/><title type='text'>PBX in a Flash vs. trixbox</title><content type='html'>As promised, I have spent some time comparing the various benefits of PBX-in-a-Flash over trixbox. In a nutshell, my conclusion is relatively straightforward.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's worth switching.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Why, you may ask? Well, the reasons are many and varied, but here are the high points:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1) Upgrades. If you've spent any time poring over the various email lists for trixbox, you will quickly come to realize that the general consensus with respect to upgrading trixbox is as follows: if it ain't broke, don't fix it. Upgrading trixbox can be a nightmare (something I've personally experienced), and the simplest solution is to either (a) live with an older version; or (b) do a clean install. Upgrading PBIAF, though, is really, really simple, and it actually works. Everything is web-based, wizard driven, and painless. In fact, the default installation regularly checks for both core and module upgrades, and offers to do it for you.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2) Extending functionality. PBIAF has a rapidly growing set of modules that are simple to install, and add nice functionality to the base system. Wait, you say -- so does trixbox! Well, yes, it does, but when it comes to installing and upgrading these modules, PBIAF is the hands down winner.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For these two reasons alone, it's worth the upgrade. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Highly recommended.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-3563968974784947145?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/3563968974784947145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/3563968974784947145'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2008/03/pbx-in-flash-vs-trixbox.html' title='PBX in a Flash vs. trixbox'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-389945863056947314</id><published>2008-02-21T16:12:00.001-04:00</published><updated>2008-02-21T16:12:36.881-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='trixbox'/><category scheme='http://www.blogger.com/atom/ns#' term='pbxinaflash'/><category scheme='http://www.blogger.com/atom/ns#' term='voip'/><title type='text'>PBX in a Flash</title><content type='html'>Last week I downloaded and installed the new &lt;a href="http://pbxinaflash.net/"&gt;PBX in a Flash&lt;/a&gt; alternative to &lt;a href="http://trixbox.org/"&gt;Trixbox&lt;/a&gt;. I have had excellent luck with Trixbox, and no real complaints, but I like to keep abreast of things, had some time on my hand, and thought I'd give it a whirl.&lt;br /&gt;&lt;br /&gt;I am impressed.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Installation was simple, and it has all the functionality of Trixbox, and then some. Like Trixbox, it uses FreePBX for the actual management of the PBX, but unlike Trixbox, it runs on CentOS 5, and lacks the annoying "feature" of having all Zap functionality die if you happen to be running on a non-multicore CPU.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There are a host of modules already available, including some nifty text-to speech features, but I haven't had an opportunity to test those as of yet. I plan on doing so next week, just to see how things work.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One added bonus -- for some reason, PBX-in-a-Flash actually fixed one annoying problem I had with Trixbox: on my outbound trunk using Vonage, I often had problems with IVRs (when I was dialing the phone company to complain about another billing error, for example). The whole "press one for sales, two for tech support" etc. didn't work a lot of the time. Now it does.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;That alone was worth making the switch.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-389945863056947314?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/389945863056947314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/389945863056947314'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2008/02/pbx-in-flash.html' title='PBX in a Flash'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-15448503444876929</id><published>2007-12-18T10:30:00.002-04:00</published><updated>2008-11-20T13:02:31.697-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='openvpn'/><title type='text'>Browse securely with OpenVPN</title><content type='html'>Sometimes you find yourself in a situation where you are forced to connect to the outside world through a decidedly insecure connection. Perhaps you are in an airport, using free Wifi, or a hotel room. Or, maybe you happen to be on the Rogers network, and you've read about the &lt;a href="http://lauren.vortex.com/archive/000337.html"&gt;tendency of that ISP to watch what you are doing on line&lt;/a&gt;. Whatever the case may be, you are in a situation where security is somewhat less than ideal. If you have access to a machine on a secure connection somewhere else in the world, and that machine has either a static IP address or is configured through a free service such as &lt;a href="http://dyndns.org/"&gt;dyndns.org&lt;/a&gt;, you can set things up so that all your Internet traffic is encrypted, and passes through the known, secure machine before coming to your local machine.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is not difficult to set up.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;First, you have to have OpenVPN server set up on the remote machine. We have &lt;a href="http://poormanstech.blogspot.com/2006/09/openvpn-server-configuration.html"&gt;covered this before&lt;/a&gt;, so if you don't have it in place, then go install and configure it. The instructions here are virtually identical to those we set up before, with one important difference -- we are going to tell OpenVPN to redirect all traffic through itself, so nothing going to your local machine (which I'll call a laptop) or leaving it will pass unencrypted. You are browsing so that all traffic is SSL encrypted.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You will recall that OpenVPN server is conrtolled using a file in /usr/local/etc/openvpn (at least on FreeBSD). Copy that file to one called "openvpnredir.conf" and edit it. We are going to change two things: the port that OpenVPN listens to, and we are going to add a directive that tells OpenVPN to redirect all traffic through its secure connection. Here is the file, with the changes higlighted in red.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;# Specify device&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;dev tun&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;"&gt;port 1195&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Server and client IP and Pool&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;server 10.9.0.0 255.255.255.0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ifconfig-pool-persist ipp2.txt&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Certificates for VPN Authentication&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ca /usr/local/etc/openvpn/ca.crt&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;cert /usr/local/etc/openvpn/server.crt&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;key /usr/local/etc/openvpn/server.key&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;dh /usr/local/etc/openvpn/dh1024.pem&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Routes to push to the client&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;# in the next line 192.168.xxx.0 should be the ip range of your internal network&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;push "route 192.168.xxx.0 255.255.255.0 default" &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;"&gt;# route all traffic through vpn&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-family:courier new;"&gt;push "redirect-gateway def1"&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Use compression on the VPN link&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;comp-lzo&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;# change the ip address in the next line to whatever dns you want to use&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;push "dhcp-option DNS &lt;span style="color: rgb(255, 0, 0);"&gt;192.168.0.100&lt;/span&gt;"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Make the link more resistant to connection&lt;br /&gt;failures keepalive 10 60&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ping-timer-rem&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;persist-tun&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;persist-key&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Run OpenVPN as a daemon and drop privileges to user/group nobody user nobody&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;group nobody&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;daemon&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As you can see, the changes are minimal. Now, on the client side, find the configuration file you use to set up a VPN connection. On Macs, it's in ~/Library/openvpn. On Windows, it's usually in C:/Program Files/OpenVPN/config.&lt;br /&gt;&lt;br /&gt;Duplicate that file, and change the name to something meaningful (i.e. Redir OpenVPN, or whatever), and then change the line that reads "port 1194" to "port 1195".&lt;br /&gt;&lt;br /&gt;Now, you should have a new vpn connection available to you, and all traffic will go through the VPN server.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-15448503444876929?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/15448503444876929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/15448503444876929'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2007/12/browse-securely-with-openvpn.html' title='Browse securely with OpenVPN'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-6834729893719127851</id><published>2007-12-17T09:46:00.000-04:00</published><updated>2007-12-17T09:58:49.936-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='trixbox'/><category scheme='http://www.blogger.com/atom/ns#' term='pbxinaflash'/><category scheme='http://www.blogger.com/atom/ns#' term='voip'/><title type='text'>Trixbox phones home?</title><content type='html'>&lt;a href="http://www.nerdvittles.com/"&gt;Nerdvittles&lt;/a&gt; has an interesting post today -- apparently, &lt;a href="http://nerdvittles.com/index.php?p=198"&gt;trixbox phones home&lt;/a&gt; at 3:41 AM each day and gets a list of shell commands to run:&lt;br /&gt;&lt;blockquote&gt;You may have read that a user discovered last week that current trixbox systems as recently as today include a remotely-configurable BOT, a software program that can execute certain commands locally once it receives its instructions. Reportedly, trixbox’s registry.pl “phones home” to Fonality via the Internet at 3:41 a.m. each morning to get a list of Linux commands to run. It then executes those Linux commands on your server while you’re sleeping. If the assertions of &lt;a href="http://www.trixbox.org/"&gt;trixbox&lt;/a&gt; end users are true and we have no reason to believe otherwise, the existence of this remotely-configurable BOT had never been disclosed to unsuspecting users whether they were individuals or corporations. In fact, it doesn’t appear that even trixbox resellers were aware of the existence of the remotely-configurable BOT.&lt;/blockquote&gt;This is interesting, and disturbing. To be fair, the folks at &lt;a href="http://www.nerdvittles.com/"&gt;Nerdvittles&lt;/a&gt; suggest that they "don’t for a minute believe that Chris Lyman and other senior management of Fonality knew about this in advance", but they certainly know about it now!&lt;br /&gt;&lt;br /&gt;This is cause for concern. Since the ability to remotely execute shell commands exists, it's only a matter of time before someone else figures out how to exploit it.&lt;br /&gt;&lt;br /&gt;Maybe it's time to accelerate my testing of &lt;a href="http://pbxinaflash.net/"&gt;pbx-in-a-flash&lt;/a&gt;....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-6834729893719127851?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/6834729893719127851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/6834729893719127851'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2007/12/trixbox-phones-home.html' title='Trixbox phones home?'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-2099612589853278776</id><published>2007-11-12T09:03:00.000-04:00</published><updated>2008-12-11T22:06:32.716-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='trixbox'/><category scheme='http://www.blogger.com/atom/ns#' term='voip'/><category scheme='http://www.blogger.com/atom/ns#' term='asterisk'/><title type='text'>Use the Linksys SPA922 as a Remote Extension</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-kZJYT_l1kw/RzhQU131K8I/AAAAAAAAAXc/HMhY-_AqTnE/s1600-h/SPA922.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://3.bp.blogspot.com/_-kZJYT_l1kw/RzhQU131K8I/AAAAAAAAAXc/HMhY-_AqTnE/s200/SPA922.jpg" alt="" id="BLOGGER_PHOTO_ID_5131940094377536450" border="0" /&gt;&lt;/a&gt;&lt;a href="http://poormanstech.blogspot.com/2007/10/trixbox-and-linksys-spa922.html"&gt;Last time&lt;/a&gt; I mentioned that I had used the Linksys SPA922 IP Phone as the "handset of choice" for phones. I also indicated that I wanted to have one as a remote extension -- i.e., it has a standard extension number, is part of the PBX system, can make and receive calls, etc., but is physically outside of the network.&lt;div&gt; &lt;/div&gt;&lt;div&gt;This turned out to be relatively easy, once I figured out the firewall settings.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Setting up a remote extension using Asterisk/Trixbox is not that difficult, and consists of three basic steps:&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1) Create the extension in Trixbox&lt;/div&gt;&lt;div&gt;2) Make some firewall modifications on the trixbox end&lt;/div&gt;&lt;div&gt;3) Plug in and configure the remote extension itself (i.e. the physical phone)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;These steps are explained in more detail below:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Create the Extension in Trixbox&lt;/span&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;First we need to have an extension to play with, so we'll log onto our Trixbox installation using our favourite web browser, and choose "FreePBX" from the "Asterisk" menu. This pops up a new browser window (or tab) and allows us to create a new extension, among other things. Choose "Setup" from the top menu, then "Extensions" from the menu on the left, and create a new SIP extension. Fill in values similar to the ones below, substituting where appropriate for your information. For example, a "secret" of "verysecret" is probably not a good idea.&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Make certain that you have "nat" set to "yes".&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_-kZJYT_l1kw/RzhTbF31K9I/AAAAAAAAAXk/qrtHdA-uvx0/s400/remoteexttb.gif" alt="" id="BLOGGER_PHOTO_ID_5131943500286602194" border="0" /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;The only other thing we need to take care of within Trixbox is a tiny modification to the sip_nat.conf file. Again, we can do this using our web browser. Close the browser window with FreePBX running, and you should be back in the Trixbox admin window. Choose "Config Edit" from the "Asterisk" menu, and then scroll down until you find "sip_nat.conf". In a default installation, it is empty. Put in values like the following:&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;extern_ip=xxx.xxx.xxx.xxx&lt;/div&gt;&lt;div&gt;localnet=192.168.0.0/255.255.255.0&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;The first line, extern_ip, is the external (public facing) ip address of your Trixbox. Note that you probably don't have one, so instead put the public IP of whatever router, gateway, etc. you use to get access to the outside world.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;The second line, localnet, describes the subnet that your Trixbox installation lives on.&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Now, reload your configurations in Trixbox, and we are ready to configure our firewall.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Firewall Modifications&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"&gt;We need to make some modifications on the Trixbox end of the network (i.e. not at home, if that's where your remote extension is, but on the the end of the connection where your Trixbox PBX lives). Specific modifications will vary depending on what you are using for a router/gateway, but in general there are only a few things to change. I am using a Linksys machine as the external gateway, so I made changes as follows:&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-kZJYT_l1kw/RzhWAl31K-I/AAAAAAAAAXs/Zmdf6HQCyHA/s1600-h/ls.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_-kZJYT_l1kw/RzhWAl31K-I/AAAAAAAAAXs/Zmdf6HQCyHA/s400/ls.gif" alt="" id="BLOGGER_PHOTO_ID_5131946343554952162" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;In essence, forward the following to your Trixbox machine:&lt;br /&gt;&lt;br /&gt;5004-5082 udp&lt;br /&gt;16384-16482 udp&lt;br /&gt;10001 - 20001 udp&lt;br /&gt;4569 udp (optional, and only for IAX2 units; ignore if you are just using sip)&lt;br /&gt;&lt;br /&gt;Make these changes, and we are ready to set up the phone itself.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Configure the SPA922 IP Phone&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;As before, I simply unpacked the phone, found a place for it on my desk at home, and plugged it in. After a few seconds, it found itself an IP address and did its best to find dial tone. Naturally, it failed, but I did appreciate the effort.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;All configuration on the SPA922 can be done with a web browser... but you need to know what IP address to connect to. After it has powered up, click on the "menu" button on the handset. It looks like a dog-eared piece of paper, just below the voice mail button. Now use the navigation button (big circle with four arrows) to scroll down to Network, and click the select soft button (leftmost, just below the LCD. Its label is part of the LCD). You'll see your phone's IP address displayed on the LCD. Mine was set to 192.168.2.149.&lt;br /&gt;&lt;br /&gt;So, fire up your web browser, and go to http://192.168.2.149, or whatever IP address your phone has. You'll see the Linksys screen. Click on "Admin Login" in the upper right hand corner, then "Advanced." Note that by default the phone ships with no password for the admin tool; please remember to change that at some point (like right now).&lt;br /&gt;&lt;br /&gt;Click on the Ext1 tab, and scroll down to NAT Settings. Set NAT Mapping Enable and NAT Keepalive Enable to "YES". Scroll down to SIP Settings. Set SIP Port and Ext SIP port both to 5062.&lt;br /&gt;&lt;br /&gt;Next scroll down to the "Proxy and Registration" section. Set "Proxy" and "Outbound Proxy" to the external IP address used by your Trixbox machine. Set "Use Outbound Proxy" and "Use OB in Dialog" to "Yes".&lt;br /&gt;&lt;br /&gt;Scroll down to Subscriber information, and set User ID to the extension number for your phone, and password to whatever "secret" you set up in Trixbox for this extension.&lt;br /&gt;&lt;br /&gt;Now scroll down to Audio Configuration. Set DTMF Tx Method to "Inband+INFO". (Note: I had to do this to get most IVRs to work, i.e. when I call someone and have to press 1 for this, 2 for that, and so forth. YMMV).&lt;br /&gt;&lt;br /&gt;Click on "Submit all Changes."&lt;br /&gt;&lt;br /&gt;Now, go to the SIP tab. Scroll down to RTP Parameters. Set RTP port min to 16384. Set RTP port max to 16482. Now, scroll down to NAT Support Parameters. Set Handle VIA received, Insert VIA received, Substitute VIA address, Handle VIA rport, and Insert VIA rport all to "Yes."&lt;br /&gt;&lt;br /&gt;Save your changes, and in a few moments, you should be able to make calls!&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-2099612589853278776?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/2099612589853278776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/2099612589853278776'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2007/11/use-linkssys-spa922-as-remote-extension.html' title='Use the Linksys SPA922 as a Remote Extension'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_-kZJYT_l1kw/RzhQU131K8I/AAAAAAAAAXc/HMhY-_AqTnE/s72-c/SPA922.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-7408146860841474256</id><published>2007-10-21T12:09:00.000-03:00</published><updated>2008-12-11T22:06:32.903-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='trixbox'/><category scheme='http://www.blogger.com/atom/ns#' term='voip'/><category scheme='http://www.blogger.com/atom/ns#' term='asterisk'/><title type='text'>Alternative to Trixbox coming soon</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-kZJYT_l1kw/Rxtr8CBjYaI/AAAAAAAAAXU/VfMYRcM00eA/s1600-h/PBXinaFlash.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://1.bp.blogspot.com/_-kZJYT_l1kw/Rxtr8CBjYaI/AAAAAAAAAXU/VfMYRcM00eA/s200/PBXinaFlash.jpg" alt="" id="BLOGGER_PHOTO_ID_5123807680143778210" border="0" /&gt;&lt;/a&gt;The folks over at &lt;a href="http://www.nerdvittles.com/"&gt;nerdvittles.com&lt;/a&gt; have an interesting project in the works -- PBX in a Flash. Apparently they (and others) are getting a bit fed up with the direction that &lt;a href="http://www.trixbox.org/"&gt;Trixbox&lt;/a&gt; is taking; on the nerdvittles site, the authors put it this way: "suffice it to say that it’s just gotten a little too proprietary, too closed, and too commercial for our open source, puritanical tastes."&lt;br /&gt;&lt;br /&gt;So they decided to take matters into their own hands, and are working on something called "PBX in a Flash". From the site:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Our up front promise is to keep the project open, participatory, reliable, and fun. After all, that’s what the Asterisk revolution was and is all about. The plan is to provide a free ISO-based offering for home or office use that will run on a dedicated Linux machine. There also will be a VMware image that will run on a Windows desktop. And, for the Mac desktop, we’ll provide both a VMware and a Parallels image.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;I'll be interested to see where this goes, and intend to give it a try.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-7408146860841474256?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/7408146860841474256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/7408146860841474256'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2007/10/alternative-to-trixbox-coming-soon.html' title='Alternative to Trixbox coming soon'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_-kZJYT_l1kw/Rxtr8CBjYaI/AAAAAAAAAXU/VfMYRcM00eA/s72-c/PBXinaFlash.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-8396889467796774708</id><published>2007-10-21T11:43:00.000-03:00</published><updated>2008-12-11T22:06:33.043-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='trixbox'/><category scheme='http://www.blogger.com/atom/ns#' term='asterisk'/><title type='text'>Trixbox and the Linksys SPA922</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-kZJYT_l1kw/Rxtl2SBjYZI/AAAAAAAAAXM/FXXHFeOKiP8/s1600-h/SPA921LARGE.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://2.bp.blogspot.com/_-kZJYT_l1kw/Rxtl2SBjYZI/AAAAAAAAAXM/FXXHFeOKiP8/s200/SPA921LARGE.jpg" alt="" id="BLOGGER_PHOTO_ID_5123800984289763730" border="0" /&gt;&lt;/a&gt;I got tired of trying to figure out how to wire my office such that we could continue to use the analog phones we have with the &lt;a href="http://www.trixbox.org/"&gt;Trixbox&lt;/a&gt; setup I recently installed. Accordingly, I bit the bullet and ordered some &lt;a href="http://www.linksys.com/servlet/Satellite?c=L_Product_C2&amp;amp;childpagename=US%2FLayout&amp;amp;pagename=Linksys%2FCommon%2FVisitorWrapper&amp;amp;cid=1138743798705"&gt;Linksys SPA922&lt;/a&gt; phones as a trial run. These are true IP phones, meaning that all they need hooked up to them is an ethernet cable (and a power adapter, if you are too cheap to purchase the Power over Ethernet adapter).&lt;br /&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;These are wonderful phones.&lt;br /&gt;&lt;br /&gt;Setting it up on the internal network was absolutely trivial. Unpack it, hook up the handset, run an ethernet cable to it, and tell it what extension id and password you want, and you are finished. In fact, it's so easy to set up that I really can't see the point of posting the details here.... the quick start guide that comes with the phone is self explanatory, and so simple my 10 year old daughter could probably figure it out.&lt;br /&gt;&lt;br /&gt;As a bonus, the various "star key" combinations are pre-configured to work with Asterisk, so I didn't even have to set those up. Right off the bat the call forward, do-not-disturb, and voice mail keys worked.&lt;br /&gt;&lt;br /&gt;Great phone.&lt;br /&gt;&lt;br /&gt;Next, I'm going to try to hook one of these up as a remote extension, and have an office phone at home as well. My understanding is that this would be easier with an IAX2 phone, but I don't have one of those, so I'll figure out how to do this with what I have at my disposal.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-8396889467796774708?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/8396889467796774708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/8396889467796774708'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2007/10/trixbox-and-linksys-spa922.html' title='Trixbox and the Linksys SPA922'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_-kZJYT_l1kw/Rxtl2SBjYZI/AAAAAAAAAXM/FXXHFeOKiP8/s72-c/SPA921LARGE.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-3852744509723148458</id><published>2007-10-18T19:14:00.000-03:00</published><updated>2007-10-21T10:28:06.183-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vonage'/><category scheme='http://www.blogger.com/atom/ns#' term='asterisk'/><title type='text'>Using the Vonage SoftPhone with Asterisk</title><content type='html'>As promised, here are some more details about setting up an Asterisk system for a small office/home office. Last time we got a single hard line up and running, and this time we are going to add true VOIP functionality to our system.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;You may have been reading about Vonage in the news a bit lately. Yes, they are under some serious attacks by the established telcos, but they offer a wonderful service -- easily the best quality VOIP I have tried. More to the point for this exercise, Vonage offers a service that interfaces nicely with Aterisk -- the softphone.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://www.vonage.ca/"&gt;Vonage&lt;/a&gt; offers a &lt;a href="http://www.vonage.ca/features.php?feature=softphone"&gt;softphone&lt;/a&gt; option for existing customers -- in Canada, at least, it's an add on to an existing service, and costs around $15.00/month. I understand it is less expensive elsewhere, but even at $15.00, it's fairly cheap.&lt;div&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;I wanted to have my outgoing calls on the office network not be limited to the number of hard lines from our local telco; voip is, of course, a wonderful alternative to this, and (at least around here) Vonage's offering is every bit as good as a telco. At least none of my customer's have noticed the difference...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Here's how to set up the Vonage softpone as a trunk (inbound and outbound) on Asterisk (specifically on Trixbox).&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;1) Add a trunk. In FreePBX, choose Setup -&gt; Trunks -&gt; Add Trunk. Name the trunk whatever your softphone number is, i.e. 19995551212.&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;2) Outbound caller id - this appears to no have effect, but I set mine up anyway, i.e.  "Caller id Inc" &lt;19995551212&gt;&lt;br /&gt;3) For "Peer Details" I used this:&lt;br /&gt;&lt;br /&gt;allow=all&lt;br /&gt;auth=md5&lt;br /&gt;canreinvite=yes&lt;br /&gt;defaultexpirey=120&lt;br /&gt;dtmfmode=rfc2833&lt;br /&gt;fromdomain=sphone.vopr.vonage.net&lt;br /&gt;fromuser=[vonage phone number]&lt;br /&gt;host=sphone.vopr.vonage.net&lt;br /&gt;insecure=very&lt;br /&gt;nat=yes&lt;br /&gt;port=5061&lt;br /&gt;secret=[secretgiventomebyvonage]&lt;br /&gt;type=friend&lt;br /&gt;username=[vonage phone number]&lt;br /&gt;&lt;br /&gt;Note that "secret" and "username" must be changed to whatever you got from Vonage. Also, the "square brackets" are not part of the peer details.&lt;br /&gt;&lt;br /&gt;4) Under User Context, I entered this:&lt;br /&gt;&lt;br /&gt;auth=md5&lt;br /&gt;canreinvite=no&lt;br /&gt;context=from-pstn&lt;br /&gt;dtmfmode=inband&lt;br /&gt;fromdomain=sphone.vopr.vonage.net&lt;br /&gt;fromuser=[vonage phone number]&lt;br /&gt;host=sphone.vopr.vonage.net&lt;br /&gt;insecure=very&lt;br /&gt;nat=yes&lt;br /&gt;port=5061&lt;br /&gt;secret=[vonage password]&lt;br /&gt;type=friend&lt;br /&gt;username=[vonage phone number]&lt;br /&gt;&lt;br /&gt;5) For register string, I used this:&lt;br /&gt;&lt;br /&gt;[phone]:[secret]@sphone.vopr.vonage.net:5061&lt;br /&gt;&lt;br /&gt;For example, if your phone number is 1-999-555-1212 and your secret is abcd1234, you would enter:&lt;br /&gt;&lt;br /&gt;19995551212:abcd1234@sphone.vopr.vonage.net:5061&lt;br /&gt;&lt;br /&gt;Save, and your trunk is now active. Next, we need to add outbound routes.&lt;br /&gt;&lt;br /&gt;Last time around, we added a context for dialing out by pressing 9. We are going to modify that so that by default, all outbound calls first go out through vonage, and if that fails or is too busy, then use the hard line. This is trival.&lt;br /&gt;&lt;br /&gt;Modify your outbound route "0 9_Outside". Scroll down to Trunk Sequence, and use the drop down menus to select the first as being vonage, and the second as your hard line. Save, and you are done.&lt;br /&gt;&lt;br /&gt;That was easy.&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-3852744509723148458?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/3852744509723148458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/3852744509723148458'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2007/10/using-vonage-softphone-with-asterisk.html' title='Using the Vonage SoftPhone with Asterisk'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-8200616184913358246</id><published>2007-10-16T14:14:00.000-03:00</published><updated>2008-12-11T22:06:35.526-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asterisk'/><title type='text'>Asterisk, Trixbox, and the Linksys SPA 3102</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-kZJYT_l1kw/RvvgyhB16uI/AAAAAAAAAWU/_hLVYbDj8XQ/s1600-h/tb.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://1.bp.blogspot.com/_-kZJYT_l1kw/RvvgyhB16uI/AAAAAAAAAWU/_hLVYbDj8XQ/s320/tb.gif" alt="" id="BLOGGER_PHOTO_ID_5114928960273509090" border="0" /&gt;&lt;/a&gt;I have finally completed my Asterisk installation, and have it working. Surprisingly, it was fairly painless. As I had indicated in an earlier post, I intended to get it working using a single incoming analog line, a Linksys Sipura 3000, and a fairly elderly PC. Much to my surprise, I was able to procure a 1.8 GHz Pentium IV machine for less than $200.00, and it works very, very well.&lt;br /&gt;&lt;br /&gt;The Linksys Sipura 3000 had been replaced by the SPA 3102 by the time I got around to ordering one, so I bought one from &lt;a href="http://www.voipdepot.ca/"&gt;http://www.voipdepot.ca&lt;/a&gt; (cheaper shipping, and overnight at that!) It arrived, and here's what I did:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Install Trixbox&lt;/span&gt;&lt;br /&gt;This is trival. I downloaded the version 2.2.4 ISO from &lt;a href="http://www.trixbox.org"&gt;http://www.trixbox.org&lt;/a&gt;, burned a CD and inserted it into the drive on the PC I am using as a PBX. I rebooted, answered a few (obvious) questions, and let it do its thing. Two additional automatic reboots later, Trixbox was installed. &lt;span class="on down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;br /&gt;By default, the Trixbox install uses DHCP to get an IP address, and that's no good, so I logged in as root and set the IP address to a static one, so I'd know how to get there. Do this by typing "netconfig" at the prompt, as root, and give it an IP address. Now, reboot one final time.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Configure Trixbox&lt;/span&gt;&lt;br /&gt;All configuration is done from a web browser. Assuming you chose 192.168.0.76 as the IP address for your Trixbox machine in the previous step, just fire up your favourite web browser and go there (http://192.168.0.76). We need to get to admin mode, so click on the "[ switch ]" link in the upper right hand corner. You will be prompted for a password. The default username/password combination is "maint/password". We'll change that later.&lt;br /&gt;&lt;br /&gt;Now, Choose "FreePBX" from the "Asterisk" menu, and we are ready to start. A new browser window (or tab, depending on your browser) will open. Click on "Tools" in the top menu, and then "Modules" from the menu on the left. Click on "Check for updates online." Click on "Download all". Install all modules.&lt;br /&gt;&lt;br /&gt;Now, we need to set up some trunks. In my situation, I have one hard line coming in (a physical telco line) and I'm using Vonage's softphone for an addtional, pure VOIP line. We'll do the hard line first. It's connected using the SPA 3102.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SPA 3102&lt;/span&gt;&lt;br /&gt;This is fairly easy to set up. Plug it in, and connect to it using a crossover cable and a PC/Mac/whatever. Go to its built in web browser, and give it a static IP address. I chose 192.168.0.234. The web based admin is typical Linksys -- easy to use. Assuming the IP address you chose is the same as mine, go here: http://192.168.0.234/admin/&lt;br /&gt;&lt;br /&gt;Note that there are no passwords set on the SPA 3102 by default. You'll probably want to change that.&lt;br /&gt;&lt;br /&gt;I made the following changes to the SPA 3102's default configuration:&lt;br /&gt;&lt;br /&gt;1) Remove all "Vertical Service Activation Codes" under Voice/Regional. They conflict with the codes we will use in Asterisk.&lt;br /&gt;2) Under Line 1, Proxy/Registration, I set the Proxy to 192.168.0.76 (the IP  of the trixbox machine)&lt;br /&gt;3) On the same screen, I set DTMF Tx Method to Inband+Info&lt;br /&gt;4) On the same screen, I set up the info for the extension we're going to set up in Asterisk shortly -- Display Name = your name, password to whatever  you want for a password, User ID = the extension number you are going to assign to the phone hooked up to the SPA 3102.&lt;br /&gt;&lt;br /&gt;All done.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Setting up Trunks&lt;/span&gt;&lt;br /&gt;Now, let's set up a trunk for this in Asterisk. Back on the FreePBX window in your browser, click on "Setup" on the top menu, then "Trunks" on the left menu. There is a ZAP trunk there, but we'll ignore it. Add a SIP trunk.&lt;br /&gt;&lt;br /&gt;Fill in the values as follows, modifying for your particular information as required:&lt;br /&gt;&lt;br /&gt;Outbound caller id: &lt;company&gt; "19995551212"&lt;br /&gt;This is your caller id information.&lt;br /&gt;&lt;br /&gt;Maximum channels: 1&lt;br /&gt;Trunk Name: SPA3102&lt;br /&gt;Peer Details:&lt;br /&gt;&lt;pre&gt;allow=ulaw&lt;br /&gt;canreinvite=no&lt;br /&gt;context=from-pstn&lt;br /&gt;disallow=all&lt;br /&gt;host=192.168.0.234&lt;br /&gt;insecure=very&lt;br /&gt;nat=yes&lt;br /&gt;port=5060&lt;br /&gt;qualify=yes&lt;br /&gt;type=peer&lt;/pre&gt;&lt;br /&gt;User Context: SPA3102_In&lt;br /&gt;&lt;pre&gt;allow=ulaw&lt;br /&gt;canreinvite=no&lt;br /&gt;context=from-pstn&lt;br /&gt;disallow=all&lt;br /&gt;host=192.168.0.76&lt;br /&gt;insecure=very&lt;br /&gt;nat=yes&lt;br /&gt;port=5060&lt;br /&gt;type=user&lt;/pre&gt;&lt;br /&gt;Now save the info. Okay, we have a trunk. Let's add a method of dialing out to the outside world.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Adding Outbound Routes&lt;/span&gt;&lt;br /&gt;Click on "Setup" in the top menu, then Outbound Routes in the left. You probably have a route called "9_Outside", so let's use that. If not, add one and name it 9_Outside.&lt;br /&gt;&lt;br /&gt;All we have to do here is specify a dial patter. I want to use "dial 9 for an outside line", so I have this in the dial pattern box:&lt;br /&gt;&lt;pre&gt;9|.&lt;/pre&gt;That was easy. Now pick SIP/SPA3102 as your trunk, and save your changes.&lt;br /&gt;&lt;br /&gt;Next, we need to have a method of receiving calls, so let's add an extension.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Adding an Extension&lt;/span&gt;&lt;br /&gt;This is trivial. Click "Setup" in the top menu, then "Extensions" in the left menu. Add an extension. Add a SIP extension. All you really need is the extension number, but voice mail is nice, so scroll down and add that info. Be sure to specify a password for voice mail, and for the extension! If you added extension info to the SPA3102 when you set that up, you might as well enter the same information here....&lt;br /&gt;&lt;br /&gt;Save, and you are good do go. Now let's add an inbound route, so we can receive calls.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Adding Inbound Routes&lt;/span&gt;&lt;br /&gt;This is fairly easy as well. Just click on "Setup" in the top menu, then "Inbound Routes" in the left menu. Add a route. We are just going to have one for now, and it will handle all calls. Just add a route with the DID info (and everything else) set to defaults (empty) and then under "Set Destination" (at the bottom of the screen) choose "Core" and select the extension you set up a few moments ago.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Change the Passwords!&lt;/span&gt;&lt;br /&gt;You really should change the passwords for Trixbox. You will notice a couple of rather profound warnings in the web based admin tool, with links to how to go about changing them. I strongly recommend you do so.&lt;br /&gt;&lt;br /&gt;Next time, I'll give details on how to hook Vonage's softphone up , as well as the Linksys SPA922 IP Phone. We'll configure it for use within the network, as well as an external (remote) extension.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-8200616184913358246?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/8200616184913358246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/8200616184913358246'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2007/10/asterisk-trixbox-and-linksys-spa-3102.html' title='Asterisk, Trixbox, and the Linksys SPA 3102'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_-kZJYT_l1kw/RvvgyhB16uI/AAAAAAAAAWU/_hLVYbDj8XQ/s72-c/tb.gif' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-281980176442319220</id><published>2007-09-19T13:14:00.000-03:00</published><updated>2007-09-20T12:22:44.416-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>Excellent IPTables firewall script</title><content type='html'>Last time I talked a bit about using pf as a firewall, on the various BSDs. Naturally, there are far more installations of Linux out there than there are of FreeBSD, OpenBSD, etc. The current firewall of choice on the linux platform is iptables. One of the best open source firewall configurations I've found using iptables is &lt;a href="http://rocky.molphys.leidenuniv.nl/"&gt;Arno's IPtables Firewall Script&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;There are a few things that you want to keep in mind when you pick a firewall technology:&lt;br /&gt;&lt;br /&gt;1) The firewall should be &lt;a href="http://en.wikipedia.org/wiki/Stateful_firewall"&gt;stateful&lt;/a&gt; - e.g. the firewall is programmed to distinguish legitimate packets for different types of connections. Only packets matching a known connection state will be allowed by the firewall; others will be rejected.&lt;br /&gt;2) The firewall should be easy to configure&lt;br /&gt;3) The firewall should allow you to easily determine what's going on when you look at the log files.&lt;br /&gt;&lt;br /&gt;Arno's script does all of these things, and more.  Give it a look.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-281980176442319220?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/281980176442319220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/281980176442319220'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2007/09/excellent-iptables-firewall-script.html' title='Excellent IPTables firewall script'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-6197868074038950635</id><published>2007-09-14T09:36:00.001-03:00</published><updated>2008-12-11T22:06:35.806-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='freebsd'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>Using pf as a Firewall</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-kZJYT_l1kw/RurTvQ0sA2I/AAAAAAAAAWM/jdZo1rmpAFQ/s1600-h/bsd.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://2.bp.blogspot.com/_-kZJYT_l1kw/RurTvQ0sA2I/AAAAAAAAAWM/jdZo1rmpAFQ/s200/bsd.jpg" alt="" id="BLOGGER_PHOTO_ID_5110129536128516962" border="0" /&gt;&lt;/a&gt;I've long been a fan of FreeBSD (although I also use a Mac, Linux, and Windows machine -- right tool for the job, and all that), and one of the things I like best about the various BSDs is the ease with which you can set up a stateful packet-filtering firewall. To put it simply, &lt;a href="http://www.openbsd.org/faq/pf/"&gt;pf&lt;/a&gt; rocks.&lt;br /&gt;&lt;br /&gt;Setting it up for the first time, though, can be a bit of a chore. If you are interested in giving pf a look, here's how you do it on FreeBSD.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;Recompile your kernel&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;For the sake of argument, let's assume that we are going to be setting up a machine called "zeus" as a gateway server with a few simple services running on it. We first need to compile the pf stuff into the kernel, and then install our new kernel. First, get to the right directory:&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;[tcs@zeus] ~&gt; su -&lt;br /&gt;Password:&lt;br /&gt;1:28PM  up 60 days,  3:54, 1 user, load averages: 0.03, 0.01, 0.00&lt;br /&gt;[root@zeus] ~# cd /usr/src/sys/i386/conf/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now, copy the file GENERIC to some new file (I'm calling my zeus):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt; &lt;span style="font-family:courier new;"&gt;[root@zeus] ~# cp GENERIC ZEUS&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;Edit the file ZEUS and add the following lines just below "options     ADAPTIVE_GIANT":&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;#PF Support&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;device          pf                      #PF OpenBSD packet-filter firewall&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;device          pflog                   #logging support interface for PF&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;device          pfsync                  #synchronization interface for PF&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#ALTQ Support&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;options         ALTQ&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;options         ALTQ_CBQ        # Class Bases Queueing&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;options         ALTQ_RED        # Random Early Drop&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;options         ALTQ_RIO        # RED In/Out&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;options         ALTQ_HFSC       # Hierarchical Packet Scheduler&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;options         ALTQ_CDNR       # Traffic conditioner&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;options         ALTQ_PRIQ       # Priority Queueing&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now, we need to compile and install the kernel. Go to the /usr/src directory and execute this command:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;make buildkernel KERNCONF=ZEUS&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Wait (quite a while). When it's done, type this:&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;make installkernel KERNCONF=ZEUS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Wait a bit longer. Reboot. If it comes up, congrats -- you have a new kernel.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Enable PF in rc.conf&lt;/span&gt;&lt;br /&gt;We need to tell the OS that we want to use pf. Enter the following in /etc/rc.conf&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;pf_enable="YES"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;pf_rules="/etc/pf.conf"         # rules definition file for pf&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;pf_flags=""                     # additional flags for pfctl startup&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;pflog_enable="YES"              # start pflogd(8)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;pflog_logfile="/var/log/pflog"  # where pflogd should store the logfile&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;pflog_flags=""                  # additional flags for pflogd startup&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Set up the firewall: pf.conf&lt;/span&gt;&lt;br /&gt;The default rules for pf.conf are very, very detailed. We are going to ignore them, and make our own. First, back up the /etc/pf.conf file that is (probably) there by default:&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;cd /etc&lt;br /&gt;mv pf.conf pf.conf.dist&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Now, edit a new file called pf.conf and enter the file below (each service is mentioned in the comments preceding it):&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;# define our interfaces. Find yours by typing ifconfig as root&lt;br /&gt;lo="lo0"&lt;br /&gt;ext_if="fxp1"          #your external nic&lt;br /&gt;ext_gw="19x.xx.xx.254" #change this to the ip of your gateway router&lt;br /&gt;int_if="fxp0"          #your internal nic&lt;br /&gt;oip1="19x.xxx.xxx.222" #change this to your external ip address&lt;br /&gt;&lt;br /&gt;#clean everything up (reset to defaults)&lt;br /&gt;scrub in&lt;br /&gt;&lt;br /&gt;# nat for internal clients&lt;br /&gt;nat on $int_if from 192.168.0.0/24 to any -&gt; ($int_if)&lt;br /&gt;&lt;br /&gt;# Pass/block rules&lt;br /&gt;&lt;br /&gt;block in&lt;br /&gt;&lt;br /&gt;pass quick on { $lo $int_if } all&lt;br /&gt;&lt;br /&gt;# we shouldn't have to do this, but seem to have to on freebsd&lt;br /&gt;pass out on $lo all&lt;br /&gt;&lt;br /&gt;# allow ssh to local machine&lt;br /&gt;pass in on $ext_if proto tcp to ($ext_if) port ssh keep state&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Save, and you are ready to give things a try!&lt;br /&gt;&lt;br /&gt;Helpful hints:&lt;br /&gt;&lt;br /&gt;To enable the firewall rules:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;pfctl -f /etc/pf.conf&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To enable pf:&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;pfctl -e&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To disable pf:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;pfctl -d&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-6197868074038950635?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/6197868074038950635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/6197868074038950635'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2007/09/using-pf-as-firewall.html' title='Using pf as a Firewall'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_-kZJYT_l1kw/RurTvQ0sA2I/AAAAAAAAAWM/jdZo1rmpAFQ/s72-c/bsd.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-8963509946483365863</id><published>2007-09-07T13:59:00.000-03:00</published><updated>2008-12-11T22:06:36.054-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ssh'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>Secure your ssh with PKI</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-kZJYT_l1kw/RuGMat7gUNI/AAAAAAAAAWE/dLaiBaa02wU/s1600-h/26openssh.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://2.bp.blogspot.com/_-kZJYT_l1kw/RuGMat7gUNI/AAAAAAAAAWE/dLaiBaa02wU/s200/26openssh.png" alt="" id="BLOGGER_PHOTO_ID_5107517843048517842" border="0" /&gt;&lt;/a&gt;It shocks me how many otherwise intelligent people leave port 22 wide open on their machines. In case you didn't know, this is the default port for ssh -- an widely used method of making connections to a machine from remote locations.&lt;div&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;a href="http://www.openssh.org/"&gt;ssh&lt;/a&gt; is a wonderful system. The default install on virtually every unix like system out there (including Linux, the various BSDs, and Mac OS X) is inherently insecure, and subject to brute force attacks. We see these on our servers virtually every day. A &lt;a href="http://en.wikipedia.org/wiki/Brute_force_attack"&gt;brute force attack&lt;/a&gt; is shockingly simple to implement -- the attacker simply runs a script that tries many, many username/password combinations until they get in. Once they have an account, it's only a hop, skip and jump to root access.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Then bad things happen.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;There are a number of ways to make it tougher for attackers, of course. First, configure your firewall to only allow incoming ssh requests from known, safe IP addresses. Additionally, you should implement PKI security on your ssh system. This is, fortunately, very simple to do.&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;The process is simple:&lt;/div&gt;&lt;div&gt;&lt;ol id=""&gt;&lt;li&gt;Generate your public/private key pair&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Install the keys on the machines you are going to use to access the server&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Modify your ssh server's config file to require known keys&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Restart your server&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;We are going to generate RSA keys for our client. The public key will live on the remote server, and both keys will live on the client machine. For simplicity, we will generate our keys on the server, and then transfer them to our client machine. Log onto the server as the account you want to generate keys for, and then execute these commands:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div face="courier new"&gt; &lt;/div&gt;&lt;div face="courier new"&gt; &lt;/div&gt;&lt;div style="font-family: courier new;font-family:courier new;" &gt;&lt;span style="font-size:85%;"&gt;server$ cd ~&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: courier new;font-family:courier new;" &gt;&lt;span style="font-size:85%;"&gt;server$ mkdir .ssh&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: courier new;font-family:courier new;" &gt;&lt;span style="font-size:85%;"&gt;server$ chmod 700 .ssh&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: courier new;font-family:courier new;" &gt;&lt;span style="font-size:85%;"&gt;server$ ssh-keygen -q -f ~/.ssh/id_rsa -t rsa&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: courier new;font-family:courier new;" &gt;&lt;span style="font-size:85%;"&gt;Enter passphrase (empty for no passphrase):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;Enter same passphrpase again:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Entering a passphrase is optional.... but do it anyway. &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Now lock down the file permissions...&lt;br /&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: courier new;"&gt; &lt;/div&gt;&lt;div style="font-family: courier new;"&gt; &lt;/div&gt;&lt;div&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;chmod go-w ~/.ssh&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Now copy the contents of .ssh directory to your client machine. Use a USB key or some other secure method, just to be safe. &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Now we need to modify the /etc/ssh/sshd_config file for our ssh server. Mine looks like this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;Protocol 2&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;ListenAddress 192.168.5.100&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;HostKey /etc/ssh/ssh_host_rsa_key&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;SyslogFacility AUTHPRIV&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;&lt;br /&gt;AuthorizedKeysFile      .ssh/id_rsa.pub&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;HostbasedAuthentication no&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;PasswordAuthentication no&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);font-family:courier new;" &gt;&lt;br /&gt;ChallengeResponseAuthentication no&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;UsePAM yes&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;X11Forwarding yes&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;Subsystem       sftp    /usr/libexec/openssh/sftp-server&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;AllowUsers tcs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;This is a bare minimum. Note the items in red:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;your public key must exist in /home/yourhomedirectory/.ssh/id_rsa.pub&lt;/li&gt;&lt;li&gt;ChallengeResponseAuthentication disables simple username/passwords to log on&lt;/li&gt;&lt;li&gt;AllowUsers is another safety check -- only users who exist here will be able to log in regardless as to what keys they have.&lt;/li&gt;&lt;/ul&gt;Now, restart your sshd server, and give it a try.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-8963509946483365863?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/8963509946483365863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/8963509946483365863'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2007/09/secure-your-ssh-with-pki.html' title='Secure your ssh with PKI'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_-kZJYT_l1kw/RuGMat7gUNI/AAAAAAAAAWE/dLaiBaa02wU/s72-c/26openssh.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-3664311109452377934</id><published>2007-09-05T10:18:00.000-03:00</published><updated>2008-12-11T22:06:36.200-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='qmail'/><category scheme='http://www.blogger.com/atom/ns#' term='email'/><category scheme='http://www.blogger.com/atom/ns#' term='spam'/><title type='text'>Anti-spam for qmail: spamdyke</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-kZJYT_l1kw/Rt6vld7gUMI/AAAAAAAAAV8/5GQpTlZJJ88/s1600-h/sd.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://2.bp.blogspot.com/_-kZJYT_l1kw/Rt6vld7gUMI/AAAAAAAAAV8/5GQpTlZJJ88/s320/sd.png" alt="" id="BLOGGER_PHOTO_ID_5106712085708951746" border="0" /&gt;&lt;/a&gt;I have long been a fan of qmail. Yes, I know that it is long in the tooth, and there are a great number of fans of postfix and so forth out there, but say what you will about &lt;a href="http://www.qmail.org/"&gt;qmail&lt;/a&gt; -- it's solid as a rock, and incredibly fast. I am a big fan of it.&lt;br /&gt;&lt;br /&gt;A few years ago I became a fan of the "cookbook" found on &lt;a href="http://www.qmailrocks.org/"&gt;www.qmailrocks.org&lt;/a&gt;, but it is, sadly, a bit out of date. Nevertheless, careful perusal of various mailing lists and so forth has allowed me to keep up to date with my qmail installs and things are running along smoothly.&lt;br /&gt;&lt;br /&gt;Recently, I found another weapon to use in the ongoing battle with spam: spamdyke (&lt;a href="http://www.spamdyke.org/"&gt;http://www.spamdyke.org&lt;/a&gt;). This is a great tool for a number of reasons:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;it works&lt;/li&gt;&lt;li&gt;it does not require patching qmail&lt;/li&gt;&lt;li&gt;it's free&lt;/li&gt;&lt;li&gt;it brings a lot of functionality to the table that is just not in the standard qmail install (patched, qmailrocks version, etc.)&lt;/li&gt;&lt;/ul&gt;From the site:&lt;br /&gt;&lt;blockquote&gt;spamdyke is a filter for monitoring and intercepting SMTP connections between a remote host and a qmail server. When a connection is established from a spam source (as determined by the active filters), spamdyke will reject the email -- qmail never sees it.&lt;br /&gt;Beyond filtering, spamdyke offers a number of other features:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;spamdyke supports SMTP AUTH and will even provide SMTP AUTH to an unpatched qmail server.&lt;/li&gt;&lt;li&gt;spamdyke supports TLS and will even provide TLS to an unpatched qmail server.&lt;/li&gt;&lt;li&gt;spamdyke provides much better, much more complete logging than qmail, using syslogd.&lt;/li&gt;&lt;li&gt;spamdyke can log all SMTP traffic to aid troubleshooting.&lt;/li&gt;&lt;li&gt;Best of all, using spamdyke does not require patching or recompiling qmail!&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;Installation is trivial, and it works out of the box, as it were.&lt;br /&gt;&lt;br /&gt;Some other qmail related links that might be of help to you if you are looking for a solid, easy to maintain system:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;FreeBSD Rocks! (&lt;a href="http://www.freebsdrocks.net/"&gt;http://www.freebsdrocks.net&lt;/a&gt;) - a step by step to installing qmail on FreeBSD. This is an excellent successor to qmailrocks.&lt;/li&gt;&lt;li&gt;Setting up mailhubs  (&lt;a href="http://qmail.jms1.net/mailhub.shtml"&gt;http://qmail.jms1.net/mailhub.shtml&lt;/a&gt;) - how to set up multiple incoming servers all delivering mail to a centralized mailbox machine. Excellent way to share the load on busy sites.&lt;/li&gt;&lt;/ul&gt;There are many other resources out there, and most of them are linked on the main qmail site (&lt;a href="http://www.qmail.org/"&gt;http://www.qmail.org&lt;/a&gt;).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-3664311109452377934?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/3664311109452377934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/3664311109452377934'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2007/09/anti-spam-for-qmail-spamdyke.html' title='Anti-spam for qmail: spamdyke'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_-kZJYT_l1kw/Rt6vld7gUMI/AAAAAAAAAV8/5GQpTlZJJ88/s72-c/sd.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-7483218521631533133</id><published>2007-09-04T10:06:00.000-03:00</published><updated>2008-12-11T22:06:36.591-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><title type='text'>Another alternative to Parallels: Q</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-kZJYT_l1kw/Rt1ZhN7gULI/AAAAAAAAAV0/-H16Rg9XHZQ/s1600-h/q_logo.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://4.bp.blogspot.com/_-kZJYT_l1kw/Rt1ZhN7gULI/AAAAAAAAAV0/-H16Rg9XHZQ/s200/q_logo.png" alt="" id="BLOGGER_PHOTO_ID_5106335979717808306" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;A few days ago I was extolling the virtues of VirtualBox, an alternative virtualization package for Mac OS X that allows me to run FreeBSD, Windows, Linux &amp;amp; so forth on my Mac, without the need to reboot. Well, I just stumbled across another one with the rather memorable name of "Q". You can find it here: &lt;a href="http://www.kju-app.org/kju/"&gt;http://www.kju-app.org/kju/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I have not tried this package  yet, but it looks promising. From their website:&lt;br /&gt;&lt;blockquote&gt;Run Windows, Linux and a lot more Systems on your Mac. Q is a feature packed cocoa port of QEMU: Switch fast between guest PCs. Save and restart guest PCs at any stage. Easily exchange Files between Host and Guest. Q makes use of OS X most advanced technologies like openGL, quartz and coreaudio to accelerate your experience with your guest PC. Please remember: At the present state, QEMU is still considered ALPHA software.&lt;/blockquote&gt;&lt;br /&gt;Note the reference to the package being alpha software. I'm not quite ready to install it on the machine that I make my living with, but I'll keep an eye on it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-7483218521631533133?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/7483218521631533133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/7483218521631533133'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2007/09/another-alternative-to-parallels-q.html' title='Another alternative to Parallels: Q'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_-kZJYT_l1kw/Rt1ZhN7gULI/AAAAAAAAAV0/-H16Rg9XHZQ/s72-c/q_logo.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-1094453240855118815</id><published>2007-09-04T09:30:00.000-03:00</published><updated>2008-12-11T22:06:36.889-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bluetooth'/><category scheme='http://www.blogger.com/atom/ns#' term='blackberry'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><title type='text'>Use your Blackberry as a bluetooth modem on your Mac</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-kZJYT_l1kw/Rt1RK97gUJI/AAAAAAAAAVk/-xMqX7VJFC4/s1600-h/blackberry.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://3.bp.blogspot.com/_-kZJYT_l1kw/Rt1RK97gUJI/AAAAAAAAAVk/-xMqX7VJFC4/s200/blackberry.jpg" alt="" id="BLOGGER_PHOTO_ID_5106326801372696722" border="0" /&gt;&lt;/a&gt;As I mentioned a few days ago, I recently purchased a MacBook. I have been extremely happy with this machine in most respects. The only thing I miss is the ability to use it my Blackberry as a Bluetooth modem. Since I live in Canada, where the data charges are absolutely unreasonable (can you say $10.00/meg after the first meg of traffic??) this has not been a huge problem, but there is a certain sense of security knowing that if I absolutely have to, I can connect to the Internet and get to my servers wherever there happens to be cellular coverage.&lt;br /&gt;&lt;br /&gt;Fortunately, I have successfully figured out how to do this. I found my information &lt;a href="http://www.askdavetaylor.com/blackberry_pearl_as_bluetooth_modem_with_mac.html"&gt;here&lt;/a&gt; and &lt;a href="http://www.blackberryforums.com/blackberry-guides/2019-user-howto-use-blackberry-modem-laptop.html"&gt;here&lt;/a&gt;, although neither post was 100% accurate for my setup. Thus, I decided to share my findings here.&lt;br /&gt;&lt;br /&gt;My setup:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;MacBook (2GHz Core 2 Duo)&lt;/li&gt;&lt;li&gt;Mac OS X 10.4.10&lt;/li&gt;&lt;li&gt;BlackBerry Pearl (8100)&lt;/li&gt;&lt;li&gt;Rogers cellular network&lt;/li&gt;&lt;/ul&gt;The first step is to download the &lt;a href="http://www.fibble.org/BlackBerry%208100" target="_blank"&gt;Blackberry 8100 modem script&lt;/a&gt;. Save this to your desktop. If your Mac helpfully appends a .txt extension to the file, rename it so the .txt is missing. Move this file to your Library/Modem Scripts folder. Next, pair the Blackberry with your Mac. This is fairly simple.&lt;br /&gt;&lt;br /&gt;First, make sure your Mac is "Discoverable" in the Bluetooth system preferences panel. Then, open the "Options" feature on your Blackberry (in the default interface, it looks like a wrench). Scroll down to Bluetooth, and click on it. Click the menu button (to the left of the scroll ball) and click "Add Device." Your Mac will show up. Choose it. In a few seconds, your Mac will generate a passkey and put it on your screen. Enter that into your Blackberry. The next screen on your Mac will give you two choices -- "Use with Address Book" and  "Access the Internet with your phone's data connection". Make sure both are checked, and that you choose "Use a direct, higher speed connection..."&lt;br /&gt;&lt;br /&gt;Next, your Mac will ask you for details about your setup. You'll get this screen:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-kZJYT_l1kw/Rt1UD97gUKI/AAAAAAAAAVs/sfxcubkGoK8/s1600-h/pic.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_-kZJYT_l1kw/Rt1UD97gUKI/AAAAAAAAAVs/sfxcubkGoK8/s320/pic.jpg" alt="" id="BLOGGER_PHOTO_ID_5106329979648495778" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Your Username is "wapuser1", your password is "wap"  and your GPRS CID String is "internet.com" (no quotes on anything). Note that these settings are for Rogers Canada. Your mileage may vary.&lt;br /&gt;&lt;br /&gt;Make sure you leave "Show modem status in menu bar" checked. Click continue, and you're done.&lt;br /&gt;&lt;br /&gt;To connect to the Internet, just click on the phone icon in your menu bar and choose "Connect." To disconnect, go to the same menu and click disconnect.&lt;br /&gt;&lt;br /&gt;NOTE: data charges in Canada are very, very high. Make sure you don't overdo it and get a massive phone bill at the end of the month.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-1094453240855118815?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/1094453240855118815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/1094453240855118815'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2007/09/use-your-blackberry-as-bluetooth-modem.html' title='Use your Blackberry as a bluetooth modem on your Mac'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_-kZJYT_l1kw/Rt1RK97gUJI/AAAAAAAAAVk/-xMqX7VJFC4/s72-c/blackberry.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-4389565868084462453</id><published>2007-09-01T11:01:00.000-03:00</published><updated>2008-12-11T22:06:37.152-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NAS'/><category scheme='http://www.blogger.com/atom/ns#' term='diy'/><title type='text'>DIY Network Attached Storage</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-kZJYT_l1kw/RtgGKd7gUII/AAAAAAAAAVc/ikCzJtwITGk/s1600-h/logo2.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://4.bp.blogspot.com/_-kZJYT_l1kw/RtgGKd7gUII/AAAAAAAAAVc/ikCzJtwITGk/s200/logo2.png" alt="" id="BLOGGER_PHOTO_ID_5104836954527125634" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;After a (rather busy) summer, I have finally elected to return to my "do it yourself network attached storage" project. I've done some reasearch, and picked my operating system -- FreeNAS (&lt;a href="http://www.freenas.org/"&gt;http://www.freenas.org&lt;/a&gt;). Their site describes it thusly: "FreeNAS is a free NAS (&lt;a href="http://en.wikipedia.org/wiki/Network-attached_storage"&gt;Network-Attached Storage)&lt;/a&gt; server, supporting: CIFS (samba), FTP, NFS, AFP, RSYNC, iSCSI protocols, S.M.A.R.T., local user authentication, Software RAID (0,1,5) with a Full WEB configuration interface."&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There are a number of things I really like about this implementation. First, it's tiny -- and I mean really, really small. A full implementation takes about 30 megs for the operating system, leaving the rest of your disk space available for storage. Secondly, it's based on FreeBSD, so you &lt;span class="Apple-style-span" style="font-style: italic;"&gt;know&lt;/span&gt; it's going to be rock solid, and require very little maintenance. Finally, in a heterogeneous network, this is ideal -- it talks to everybody. We have Macs, linux work stations, and windows all trying to play nicely together. This solution is perfect for our needs.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Give it a look.  It's stable as a rock, and works like a charm.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-4389565868084462453?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/4389565868084462453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/4389565868084462453'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2007/08/diy-network-attached-storage.html' title='DIY Network Attached Storage'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_-kZJYT_l1kw/RtgGKd7gUII/AAAAAAAAAVc/ikCzJtwITGk/s72-c/logo2.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-1254082193581781693</id><published>2007-08-28T14:41:00.000-03:00</published><updated>2008-12-11T22:06:37.801-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><title type='text'>Windows on a Mac - Alternatives to Parallels</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-kZJYT_l1kw/RtRgOt7gUFI/AAAAAAAAAVE/ki0HllaGcIM/s1600-h/parallels_desktop_for_mac.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://1.bp.blogspot.com/_-kZJYT_l1kw/RtRgOt7gUFI/AAAAAAAAAVE/ki0HllaGcIM/s200/parallels_desktop_for_mac.jpg" alt="" id="BLOGGER_PHOTO_ID_5103810083681226834" border="0" /&gt;&lt;/a&gt;I recently purchased a MacBook (Core 2 Duo) and bumped the RAM up to 4 gigs (yes, you can do that if you elect to purchase your memory from somewhere other than the Apple store). With all this extra memory and a number of unused licenses for Windows XP, I thought I'd download a trial copy of &lt;a href="http://www.parallels.com/"&gt;Parallels&lt;/a&gt; and give it a go. Parallels has this nifty little feature called the "transporter" that claims to be able to migrate an entire Windows install from some other machine on your local network and automagically install it on your Mac.&lt;br /&gt;&lt;br /&gt;Sounds good, I think. I'll give it a shot.&lt;br /&gt;&lt;br /&gt;So, I download and install the software, and run the installer. First, the transporter simply failed, several times over, so I gave up on that, and decided to do a simple clean install. This worked better, for awhile, but hung at "33 minutes left to install" and stayed there. Overnight.&lt;br /&gt;&lt;br /&gt;Now, I'm sure this is an odd case, as lots and lots of people are successfully using the software, but I have a fairly low tolerance for software that does not work as advertised the first time (or the third -- I gave it three tries). So, I started looking to see what else was available.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-kZJYT_l1kw/RtRhoN7gUHI/AAAAAAAAAVU/tPD5dN01sNM/s1600-h/bc.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://3.bp.blogspot.com/_-kZJYT_l1kw/RtRhoN7gUHI/AAAAAAAAAVU/tPD5dN01sNM/s200/bc.gif" alt="" id="BLOGGER_PHOTO_ID_5103811621279518834" border="0" /&gt;&lt;/a&gt;The first thing that came up, of course, was &lt;a href="http://www.apple.com/bootcamp"&gt;Apple's Bootcamp&lt;/a&gt;. It looked promising, and I gave it a try. It works exceptionally well. The disadvantage, of course, is that it's a dual boot solution. You are either on Windows, or on the Mac, and never the twain shall meet. Not exactly what I was looking for. I'll give it this, though; it's fast. Since Bootcamp gives all the hardware directly to Windows, this isn't surprising, but it's arguably the best experience I've ever had with Windows on a laptop. Plus, Apple thoughtfully gives you a driver disk that enables things like the iSight video, the Bluetooth tools, the Airport wireless, and so on. Extremely well done. I just don't want to boot into Windows to do whatever trivial task I have to do that requires it. I want to have Windows run at the same time as Mac OSX.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-kZJYT_l1kw/RtRgYt7gUGI/AAAAAAAAAVM/vJVzBo_nDUk/s1600-h/vbox_logo2_gradient.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://1.bp.blogspot.com/_-kZJYT_l1kw/RtRgYt7gUGI/AAAAAAAAAVM/vJVzBo_nDUk/s200/vbox_logo2_gradient.png" alt="" id="BLOGGER_PHOTO_ID_5103810255479918690" border="0" /&gt;&lt;/a&gt;Then I stumbled across &lt;a href="http://www.virtualbox.org/"&gt;VirtualBox&lt;/a&gt;. The site describes it thusly: " innotek VirtualBox is a family of powerful x86 &lt;a class="wiki" href="http://www.virtualbox.org/wiki/Virtualization"&gt;virtualization&lt;/a&gt; products for enterprise as well as home use. Not only is VirtualBox an extremely feature rich, high performance product for enterprise customers, it is also the only professional solution that is freely available as Open Source Software under the terms of the GNU General Public License (GPL). See "&lt;a class="wiki" href="http://www.virtualbox.org/wiki/VirtualBox"&gt;About VirtualBox&lt;/a&gt;" for an introduction; see "&lt;a class="wiki" href="http://www.virtualbox.org/wiki/innotek"&gt;innotek&lt;/a&gt;" for more about our company."&lt;br /&gt;&lt;br /&gt;It's open source, it's free, and it exists for Mac OSX. This is exactly what I was looking for. I'm surprised I had not heard of this product before, as it exists for a lot of different platforms. I downloaded it, installed Windows, and was off to the races.&lt;br /&gt;&lt;br /&gt;There are some differences between Parallels and VirtualBox. First, the desktop integration with Parallels is much smoother -- Windows does not live in its own window, as it were. At least that's what it says on their website; I never actually got that far. In VirtualBox, the entire Windows desktop exists by itself. I can copy and paste between Mac and Windows apps, though, so that's not such a big deal. The other thing to note is that it does not support the various resolutions of my monitor (neither the LCD panel that's part of the MacBook, nor the external Compaq 19" widescreen I have hooked up). I get 800x600, or 1024x768, and that's it.&lt;br /&gt;&lt;br /&gt;Other than that, it works great. I highly recommend it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-1254082193581781693?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/1254082193581781693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/1254082193581781693'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2007/08/windows-on-mac-alternatives-to.html' title='Windows on a Mac - Alternatives to Parallels'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_-kZJYT_l1kw/RtRgOt7gUFI/AAAAAAAAAVE/ki0HllaGcIM/s72-c/parallels_desktop_for_mac.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-5160577682108641498</id><published>2007-08-05T07:01:00.000-03:00</published><updated>2008-12-11T22:06:37.953-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wifi'/><category scheme='http://www.blogger.com/atom/ns#' term='antenna'/><title type='text'>Photos of Wifi Antenna</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-kZJYT_l1kw/RmXdiHX8GeI/AAAAAAAAAU0/Isi3KwC8UeI/s1600-h/photo2.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://4.bp.blogspot.com/_-kZJYT_l1kw/RmXdiHX8GeI/AAAAAAAAAU0/Isi3KwC8UeI/s200/photo2.jpg" alt="" id="BLOGGER_PHOTO_ID_5072704133467478498" border="0" /&gt;&lt;/a&gt;Someone was asking for photos of the &lt;a href="http://poormanstech.blogspot.com/2006/10/making-double-biquad.html"&gt;Wifi antenna&lt;/a&gt; I built late last year. Apparently the instructions on how the "tupperware" part was used were a bit unclear. I hope a photograph is more helpful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-5160577682108641498?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/5160577682108641498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/5160577682108641498'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2007/08/photos-of-wifi-antenna.html' title='Photos of Wifi Antenna'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_-kZJYT_l1kw/RmXdiHX8GeI/AAAAAAAAAU0/Isi3KwC8UeI/s72-c/photo2.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-7406400563481598082</id><published>2007-06-02T15:11:00.000-03:00</published><updated>2007-06-03T16:38:04.475-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NAS'/><category scheme='http://www.blogger.com/atom/ns#' term='diy'/><title type='text'>Build your own NAS device</title><content type='html'>I believe it is a universal truth that data will always expand to fill all available media -- even if you do nothing with that data. At least, that always seems the case with us.&lt;br /&gt;&lt;br /&gt;We have been considering picking up a few Network Attached Storage (NAS) devices for awhile now, so as to increase storage capacity without adding significantly to the space and power consumption in our server facility.&lt;br /&gt;&lt;br /&gt;Naturally, this seems to me to be an excellent opportunity to repurpose some old hardware and build my own NAS device.&lt;br /&gt;&lt;br /&gt;Before you go too far down this road, though, consider the fact that there are quite a few not-too-expensive NAS devices out there that will work quite well for small office/home office environments. A quick visit to &lt;a href="http://www.tigerdirect.ca/applications/category/category_slc.asp?CatId=207&amp;"&gt;tigerdirect.ca&lt;/a&gt;, for instance, shows that you can find  a decent sized NAS for well under $500.00 without too much effort. However, serious NAS devices with RAID configurations, redundancy, and 1 TB+ disk space are still very pricey -- so much so that it is probably cheaper to build your own.&lt;br /&gt;&lt;br /&gt;I'm going to start the research now, and keep you posted. Here are my goals:&lt;br /&gt;&lt;br /&gt;1) Must support Windows/Mac clients&lt;br /&gt;2) Must be fault tolerant (i.e. RAID)&lt;br /&gt;3) Small form factor&lt;br /&gt;4) 1TB+ storage capacity&lt;br /&gt;5) minimum power consumption/heat generation&lt;br /&gt;&lt;br /&gt;I'll keep you posted.&lt;br /&gt;&lt;br /&gt;Update: &lt;a href="http://www.tigerdirect.ca/applications/SearchTools/item-details.asp?EdpNo=2448914&amp;amp;CatId=1508"&gt;This&lt;/a&gt; looks like a nice case for the price....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-7406400563481598082?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/7406400563481598082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/7406400563481598082'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2007/06/free-storage-area-network-software.html' title='Build your own NAS device'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-3344485283035066666</id><published>2007-05-28T11:59:00.000-03:00</published><updated>2007-06-04T09:20:39.640-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mono windows aspx'/><title type='text'>Installing Mono on CentOS 5</title><content type='html'>There are a variety of ways to install Mono. I elected to use CentOS version 5 as the base operating system, and since this is basically RedHat Enterprise Server with some simple re-branding, it seemed that the best way to do this was via the Yum package manager. Well, this sounds great in theory, but it broke. It turns out that binaries created for CentOS 4 are not exactly compatible with CentOS 5.&lt;br /&gt;&lt;br /&gt;Who knew?&lt;br /&gt;&lt;br /&gt;So, it's back to an installation from source. Fortunately, this is not terribly difficult. Here is the basic system/software I was installing on:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;CentOS 5&lt;/li&gt;&lt;li&gt;Dual Core Pentium IV processor (3 GHz)&lt;/li&gt;&lt;li&gt;Apache 2.0.59&lt;/li&gt;&lt;li&gt;Mono 1.2.4&lt;/li&gt;&lt;/ul&gt;Apache is installed from source -- I can't help it. I like to know exactly what's installed, and how it's configured; I still don't trust RPMs.&lt;br /&gt;&lt;br /&gt;I elected to install Mono in /opt. The directory didn't exist, so I first created it. I logged in, su-d to root, and created the directory:&lt;br /&gt;&lt;br /&gt;[root@luther]# cd /&lt;br /&gt;[root@luther]# mkdir opt&lt;br /&gt;&lt;br /&gt;Then I changed to the newly created directory, and downloaded the necessary files. In order to serve .aspx files, we need the mono base, the XSP server, and mod_mono. I got all those files using the trust wget application:&lt;br /&gt;&lt;br /&gt;[root@luther]# cd opt&lt;br /&gt;[root@luther]# wget http://go-mono.com/sources/mono/mono-1.2.4.tar.bz2&lt;br /&gt;[root@luther]# wget http://go-mono.com/sources/xsp/xsp-1.2.4.tar.bz2&lt;br /&gt;[root@luther]# wget http://go-mono.com/sources/mod_mono/mod_mono-1.2.4.tar.bz2&lt;br /&gt;&lt;br /&gt;Now, upack everything:&lt;br /&gt;&lt;br /&gt;[root@luther]# tar jxvmfp *.bz2&lt;br /&gt;&lt;br /&gt;Change to the newly created mono-1.2.4 directory, and configure mono. Notice the parameter I passed the configure program; it tells it to install mono in /opt/mono. I then make, and make install the application.&lt;br /&gt;&lt;br /&gt;[root@luther]# cd mono-1.2.4&lt;br /&gt;[root@luther]# ./configure --prefix=/opt/mono&lt;br /&gt;[root@luther]# make ; make install&lt;br /&gt;&lt;br /&gt;Wait a bit, and voila -- you have the mono base installed. Now let's do the same thing for Xsp. Xsp is the web server for mono -- it handles the compilation and delivery of .aspx files. This is pretty simple as well:&lt;br /&gt;&lt;br /&gt;[root@luther]# cd ../xsp-1.2.4&lt;br /&gt;[root@luther]# ./configure --prefix=/opt/mono&lt;br /&gt;[root@luther]# make ; make install&lt;br /&gt;&lt;br /&gt;If "configure" or "make" complains about not finding something, try executing this:&lt;br /&gt;&lt;br /&gt;[root@luther]# export PATH=/opt/mono/bin:$PATH&lt;br /&gt;&lt;br /&gt;Then run the above commands again.&lt;br /&gt;&lt;br /&gt;Now, on to mod_mono:&lt;br /&gt;&lt;br /&gt;[root@luther]# cd ../mod_mono-1.2.4&lt;br /&gt;[root@luther]# ./configure --prefix=/opt/mono \&lt;br /&gt;--with-mono-prefix=/opt/mono \&lt;br /&gt;--with-apr-config=/usr/local/apache2/bin/apr-config&lt;br /&gt;[root@luther]# make ; make install&lt;br /&gt;&lt;br /&gt;When this is done, if you go to /usr/local/apache2/modules (or wherever you told it apache lives) and look at the files there, you should see these: mod_mono.so (a symlink) and mod_mono.so.0.0.0. These are the modules (well, there's only really one -- mod_mono.so is a pointer to mod_mono.so.0.0.0) that apache needs to invoke xsp and deliver .aspx files.&lt;br /&gt;&lt;br /&gt;Now we need to configure apache.&lt;br /&gt;&lt;br /&gt;Open the apache configuration file with your fvourite editor (we'll use vi):&lt;br /&gt;&lt;br /&gt;[root@luther]# vi /usr/local/apache2/conf/httpd.conf&lt;br /&gt;&lt;br /&gt;Go to the bottom of that file, and append this text:&lt;br /&gt;&lt;br /&gt;&amp;lt;IfModule !mod_mono.c&amp;gt;&lt;br /&gt;LoadModule mono_module /usr/local/apache2/modules/mod_mono.so&lt;br /&gt;AddType application/x-asp-net .aspx&lt;br /&gt;AddType application/x-asp-net .asmx&lt;br /&gt;AddType application/x-asp-net .ashx&lt;br /&gt;AddType application/x-asp-net .asax&lt;br /&gt;AddType application/x-asp-net .ascx&lt;br /&gt;AddType application/x-asp-net .soap&lt;br /&gt;AddType application/x-asp-net .rem&lt;br /&gt;AddType application/x-asp-net .axd&lt;br /&gt;AddType application/x-asp-net .cs&lt;br /&gt;AddType application/x-asp-net .config&lt;br /&gt;AddType application/x-asp-net .Config&lt;br /&gt;AddType application/x-asp-net .dll&lt;br /&gt;AddType application/x-asp-net .asp&lt;br /&gt;DirectoryIndex index.aspx&lt;br /&gt;DirectoryIndex Default.aspx&lt;br /&gt;DirectoryIndex default.aspx&lt;br /&gt;&amp;lt;/IfModule&amp;gt;&lt;br /&gt;&lt;br /&gt;Now, we'll configure a virtual host to serve up the test suite that ships with mono. In the virtual host section of your file, put in something like this:&lt;br /&gt;&lt;br /&gt;&amp;lt;VirtualHost 198.xxx.xxx.xxx:80&amp;gt;&lt;br /&gt;DocumentRoot /home/httpd/aspx/html&lt;br /&gt;ServerName aspx.yoursite.com&lt;br /&gt;Alias /demo /opt/mono/lib/xsp/test&lt;br /&gt;MonoApplications "/demo:/opt/mono/lib/xsp/test"&lt;br /&gt;MonoServerPath /opt/mono/lib/mono/1.0/mod-mono-server.exe&lt;br /&gt;&amp;lt;Directory /opt/mono/lib/xps/test&amp;gt;&lt;br /&gt;         SetHandler mono&lt;br /&gt;&amp;lt;/Directory&amp;gt;&lt;br /&gt;&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;&lt;br /&gt;Note that you should specify your actual DocumentRoot and IP address to whatever you are using. This tells Apache that everything served under http://aspx.yoursite.com/demo is actually found in /opt/mono/lib/xsp/test, and handled by mono.&lt;br /&gt;&lt;br /&gt;Restart apache, and go to http://aspx.yoursite.com/demo/index.aspx&lt;br /&gt;&lt;br /&gt;You should see the full mono test suite.&lt;br /&gt;&lt;br /&gt;Cool, eh?&lt;br /&gt;&lt;br /&gt;Note that with this configuration, I can also put aspx files right in the document root for my virtual host, and they will be handled by mono as well. For example, I put this in the root level of the web server and called it test.aspx:&lt;br /&gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;lt;% Response.Write("Hello World!"); %&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;And it compiled and worked just fine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-3344485283035066666?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/3344485283035066666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/3344485283035066666'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2007/05/installing-mono.html' title='Installing Mono on CentOS 5'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-2375442854973642443</id><published>2007-05-07T09:33:00.000-03:00</published><updated>2008-12-11T22:06:38.163-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mono servers windows'/><title type='text'>Support .NET on your server without Windows</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-kZJYT_l1kw/Rj9vygGd5II/AAAAAAAAAUk/ZILfLom6vnY/s1600-h/Mono-gorilla.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://1.bp.blogspot.com/_-kZJYT_l1kw/Rj9vygGd5II/AAAAAAAAAUk/ZILfLom6vnY/s200/Mono-gorilla.JPG" alt="" id="BLOGGER_PHOTO_ID_5061887419588928642" border="0" /&gt;&lt;/a&gt;I've been watching the Mono project for quite some time. My company hosts most of the web applications we build for our clients, and although we don't do a lot of work in .NET (or the classic .asp version), we routinely come across someone who wants to host his or her site with us, but has everything built in ASP or ASP.NET pages.&lt;br /&gt;&lt;br /&gt;What a pain.&lt;br /&gt;&lt;br /&gt;We actually ran a few Windows based servers for awhile, but spent so much time patching and maintaining them that it turned out to be somewhat less than cost effective. Please note that I am not slamming Microsoft -- this is purely a matter of playing to our strengths, and we really, really like Linux, FreeBSD, and their various variants.&lt;br /&gt;&lt;br /&gt;Along comes the &lt;a href="http://www.mono-project.com/Main_Page"&gt;Mono Project&lt;/a&gt;. This open source system promises a lot:&lt;br /&gt;&lt;blockquote&gt;Mono provides the necessary software to develop and run &lt;b&gt;.NET&lt;/b&gt; client and server applications on &lt;b&gt;Linux&lt;/b&gt;, &lt;b&gt;Solaris&lt;/b&gt;, &lt;b&gt;Mac OS X&lt;/b&gt;, &lt;b&gt;Windows&lt;/b&gt;, and &lt;b&gt;Unix&lt;/b&gt;.  Sponsored by &lt;a href="http://www.novell.com/" class="external" title="http://www.novell.com" rel="nofollow"&gt;Novell&lt;/a&gt;&lt;span class="urlexpansion"&gt; (&lt;i&gt;http://www.novell.com&lt;/i&gt;)&lt;/span&gt;, the Mono open source project has an active and enthusiastic contributing community and is positioned to become the leading choice for development of Linux applications.&lt;/blockquote&gt;Well, that looks most encouraging. I am spending a few nights in the server room this week as we upgrade our fibre connection and add some additional redundancy, so think I'll take one of the servers we are replacing and "repurpose" it to try out this software.&lt;br /&gt;&lt;br /&gt;I'll keep you posted.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-2375442854973642443?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/2375442854973642443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/2375442854973642443'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2007/05/support-net-on-your-server-without.html' title='Support .NET on your server without Windows'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_-kZJYT_l1kw/Rj9vygGd5II/AAAAAAAAAUk/ZILfLom6vnY/s72-c/Mono-gorilla.JPG' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-4584735063768304860</id><published>2007-03-10T06:47:00.000-04:00</published><updated>2008-12-11T22:06:38.356-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xorp'/><category scheme='http://www.blogger.com/atom/ns#' term='router'/><title type='text'>Open Source Routers - XORP</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-kZJYT_l1kw/RfKPSMFWlaI/AAAAAAAAAUQ/3QfvTjZZQwA/s1600-h/xorp-logo-medium.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://3.bp.blogspot.com/_-kZJYT_l1kw/RfKPSMFWlaI/AAAAAAAAAUQ/3QfvTjZZQwA/s200/xorp-logo-medium.jpg" alt="" id="BLOGGER_PHOTO_ID_5040248475625100706" border="0" /&gt;&lt;/a&gt;&lt;a href="http://poormanstech.blogspot.com/2007/02/evaluating-open-source-routers.html"&gt;Last time&lt;/a&gt; I did some research into various open source routers. I've explored three in some detail, but should probably preface my remarks by stating that I am not a network engineer. Like the guy who figures that, given enough time and adequate tools, he can probably do the maintenance on his car himself, I know enough to get by, provided there is adequate documentation available (and by adequate documentation, I include Google, of course).&lt;br /&gt;&lt;br /&gt;Nevertheless, I figure there's no harm in trying this stuff out on elderly hardware, and seeing how things turn out.&lt;br /&gt;&lt;br /&gt;The three I looked at in detail were &lt;a href="http://www.xorp.org/"&gt;XORP&lt;/a&gt;, &lt;a href="http://www.vyatta.com/"&gt;Vyatta&lt;/a&gt;, and &lt;a href="http://www.freesco.org/"&gt;Freesco&lt;/a&gt;. Today I want to look at XORP.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;XORP&lt;/span&gt;&lt;br /&gt;Of the three products I looked at in some detail, XORP (the eXtensible Opensource Router Project) looks and feels the most like a traditional FOSS product. It also has a great license -- the BSD style, which is extremely flexible. At the time of this writing, it's up to version 1.4 RC (that's release candidate for you non-techie types out there). The first page of the site says that...&lt;br /&gt;&lt;blockquote&gt;  Initial funding to develop XORP is provided by &lt;a href="http://www.intel.com/"&gt;Intel&lt;/a&gt; and the &lt;a href="http://www.nsf.gov/"&gt;National Science Foundation&lt;/a&gt;. Further funding has been provided by &lt;a href="http://www.microsoft.com/"&gt;Microsoft Corporation&lt;/a&gt; and &lt;a href="http://www.vyatta.com/"&gt;Vyatta&lt;/a&gt;. We are extremely grateful for their support.&lt;/blockquote&gt;Well, isn't that civic minded of the folks at Vyatta? This led me to suspect that there is probably significant crossover in some of the code between Vyatta and Xorp. I have not verified this.&lt;br /&gt;&lt;br /&gt;The folks at XORP conveniently offer a LiveCD download, so I was able to get this thing up and running in no time.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Functionality&lt;/span&gt;&lt;br /&gt;The functionality currently in place with XORP  is listed (in great detail) on their website, &lt;a href="http://www.xorp.org/status.html"&gt;here&lt;/a&gt;. There is also an extremely helpful (and well written) user manual available. As you can see if you go through the list, it offers a reasonably rich feature set. Unlike some of its commercial cousins, though, don't expect a slick gui or web based interface -- this is about as minimalist as you can get. Be certain to download and print the (160+) page manual. You're going to need it.&lt;br /&gt;&lt;br /&gt;Overall, though, this is an extremely powerful and well developed product. I was in particular impressed with the LiveCD product -- you could use this to set up a CDROM based firewall, an emergency router, etc. with minimal effort. And the LiveCD takes great pains to try to figure out how and where it can load/save configuration files (it seems devoted to floppy discs, though; it would be nice if it tried looking for memory sticks first).&lt;br /&gt;&lt;br /&gt;This is a great product. I'm almost certainly going to configure some failover hardware using the LiveCD version of XORP.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-4584735063768304860?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/4584735063768304860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/4584735063768304860'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2007/03/open-source-routers-xorp.html' title='Open Source Routers - XORP'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_-kZJYT_l1kw/RfKPSMFWlaI/AAAAAAAAAUQ/3QfvTjZZQwA/s72-c/xorp-logo-medium.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-755203310078662578</id><published>2007-02-17T15:14:00.000-04:00</published><updated>2008-12-11T22:06:38.983-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cisco'/><category scheme='http://www.blogger.com/atom/ns#' term='cisco alternatives'/><category scheme='http://www.blogger.com/atom/ns#' term='router'/><title type='text'>Evaluating Open Source Routers</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-kZJYT_l1kw/RdhIk-t4eMI/AAAAAAAAATo/vnP4ORuzYFU/s1600-h/router.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://2.bp.blogspot.com/_-kZJYT_l1kw/RdhIk-t4eMI/AAAAAAAAATo/vnP4ORuzYFU/s200/router.jpg" alt="" id="BLOGGER_PHOTO_ID_5032852383734462658" border="0" /&gt;&lt;/a&gt;Recently a friend of mine realized that his entire internal network depended on an ancient Cisco 2500 series router (a 2511, I believe). This particular router is older than all of my children -- and I have four!&lt;br /&gt;&lt;br /&gt;He is currently evaluating a number of alternative Cisco products, any one of which would do the trick for him. He needs to manage a full class C subnet, and a few additional static IPs. I think he is looking at the 1800 series from Cisco right now, and I'm sure they will be more than fine.&lt;br /&gt;&lt;br /&gt;Of course, the cheapest one being offered to him by his ISP is more than $2,400 CDN, and that strikes me as outrageous.&lt;br /&gt;&lt;br /&gt;Accordingly, I began looking around to see what alternatives to Cisco their might be in the FOSS world, and I have found a few. I've yet to investigate any of these thoroughly, so if someone has had some experience in this area and would like to share their wisdom, please feel free to comment.&lt;br /&gt;&lt;br /&gt;Here's what I've found so far:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.xorp.org/"&gt;XORP&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.freesco.org/"&gt;FREESCO Project&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.vyatta.com/"&gt;Vyatta OFR&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;I'm sure there are many others, and I will continue to look around for these. I'll keep you posted.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-755203310078662578?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/755203310078662578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/755203310078662578'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2007/02/evaluating-open-source-routers.html' title='Evaluating Open Source Routers'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_-kZJYT_l1kw/RdhIk-t4eMI/AAAAAAAAATo/vnP4ORuzYFU/s72-c/router.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-7850988426813025026</id><published>2007-02-08T23:15:00.000-04:00</published><updated>2007-02-10T12:25:53.805-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='samba pdc'/><category scheme='http://www.blogger.com/atom/ns#' term='samba'/><title type='text'>Making Samba your Primary Domain Controller - Part Quarto</title><content type='html'>&lt;a href="http://poormanstech.blogspot.com/2007/02/making-samba-your-primary-domain.html"&gt;Last time&lt;/a&gt; we went over installing Samba on both Linux and FreeBSD. It was pretty simple. Configuring Samba, though, can be a bit tougher. I ran into a number of difficulties, all to do with the (rather cryptic) smb.conf configuration.&lt;br /&gt;&lt;br /&gt;Samba is controlled by a single file -- smb.conf. Depending on which operating system you favour, you'll find it in either /etc/smb.conf (most Linux distros), /etc/samba/smb.conf, or /usr/local/etc/smb.conf (FreeBSD).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Configuring smb.conf&lt;/span&gt;&lt;br /&gt;Remember that our goal is to use Samba as a primary domain controller. Below is a minimalist smb.conf configuration that will achieve this goal (at least in theory). We have a machine named Aragorn, in a Windows domain named middleearth. We are telling Samba to set up profiles for NT/2000/XP users, and specifying who is a domain admin. We're also telling Samba how to add users to the system.  Note that in smb.conf, a comment is either a '#', or a semi-colon (';'). Anything preceded by either of those symbols is ignored. I strongly encourage you to put lots and lots of comments in. It will make life much easier if you have to go in and make a change.&lt;br /&gt;&lt;br /&gt;&lt;pre class="code"&gt;[global]&lt;br /&gt;; name our machine and workgroup&lt;br /&gt;netbios name = aragorn&lt;br /&gt;workgroup = middleearth&lt;br /&gt;encrypt passwords = yes&lt;br /&gt;&lt;br /&gt;; tell samba we are a PDC&lt;br /&gt;domain master = yes&lt;br /&gt;local master = yes&lt;br /&gt;preferred master = yes&lt;br /&gt;os level = 65&lt;br /&gt;&lt;br /&gt;; we'll probably come back to these settings,&lt;br /&gt;; but they'll do for now&lt;br /&gt;security = user&lt;br /&gt;domain logons = yes&lt;br /&gt;&lt;br /&gt;; logon path tells Samba where to put Windows NT/2000/XP&lt;br /&gt;; roaming profiles&lt;br /&gt;logon path = \\%L\profiles\%u\%m&lt;br /&gt;logon script = logon.bat&lt;br /&gt;&lt;br /&gt;logon drive = O:&lt;br /&gt;; logon home is used to specify home directory and&lt;br /&gt;; Windows 95/98/Me roaming profile location&lt;br /&gt;;logon home = \\%L\%u\.win_profile\%m&lt;br /&gt;&lt;br /&gt;time server = yes&lt;br /&gt;&lt;br /&gt;; Use the names of all users in the Windows NT/2000/XP&lt;br /&gt;; Administrators group who log on to the domain&lt;br /&gt;domain admin group = root tcs susand&lt;br /&gt;&lt;br /&gt;; this works on Centos Linux -- YMMV&lt;br /&gt;add user script = /usr/sbin/useradd -d /dev/null -g 100 -s /bin/false -M %u&lt;br /&gt;&lt;br /&gt;; share a directory for everyone&lt;br /&gt;[public]&lt;br /&gt; path = /samba/shares/public&lt;br /&gt; public = yes&lt;br /&gt; only guest = yes&lt;br /&gt; writable = yes&lt;br /&gt; printable = no&lt;br /&gt;&lt;br /&gt;; make one private to tcs&lt;br /&gt;[tcs]&lt;br /&gt; comment = tcs's stuff&lt;br /&gt; path = /samba/shares/private/tcs&lt;br /&gt; valid users = tcs&lt;br /&gt; public = no&lt;br /&gt; writable = yes&lt;br /&gt; printable = no&lt;br /&gt; create mask = 0765&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;This might seem a bit cryptic, but it actually makes sense. There are some oddities specific to this file, though, so let's go through this section a bit. First, note that we begin with a [global] tag. As you might expect, this simply states that everything that comes after this tag prior to the next one is "global" in nature. We begin in this section by setting the NetBIOS name of the Samba server. The NetBIOS name is used in UNCs that appear later in &lt;em class="filename"&gt;smb.conf&lt;/em&gt;. The next two lines are a bit odd. We appear to be naming a workgroup -- but although it reads "workgroup", we are actually setting the name of our domain. For a workgroup, using encrypted passwords is optional; when using a domain, they are required, so we'll encrypt our passwords.&lt;br /&gt;&lt;br /&gt;The next four lines set up our Samba machine to handle browsing services. This line:&lt;br /&gt;&lt;span style="font-family:monospace;"&gt;&lt;/span&gt;&lt;tt class="literal"&gt;&lt;/tt&gt;&lt;blockquote&gt;domain master = yes &lt;/blockquote&gt;&lt;span style="font-style: italic;"&gt;looks &lt;/span&gt;like it is telling Samba to act as a PDC. After all, it has the word "master" and the word "primary" -- sounds important. In fact, all this line does is tell Samba to act as a domain "master browser," which handles browsing services for the domain across multiple subnets (in conjunction with the built in WINS service, which we'll get to in awhile), if necessary. These lines,&lt;br /&gt;&lt;tt class="literal"&gt;&lt;/tt&gt;&lt;blockquote&gt;local master = yes&lt;br /&gt;preferred master = yes&lt;br /&gt;os level = 65 &lt;/blockquote&gt; simply tell Samba to participate in browser elections and allow itself to win. To be safe, the "preferred master" and "os level" lines are there so as to ensure that Samba wins the elections.&lt;br /&gt;&lt;p&gt;&lt;a name="INDEX-22"&gt;&lt;/a&gt;&lt;/p&gt;This section,&lt;br /&gt;&lt;blockquote&gt;security = user&lt;br /&gt;domain logons = yes&lt;/blockquote&gt;tells Samba to handle the actual domain logons. We set security to "user" so that Samba will require a username and password (always a good thing).  This is actually the default setting for Samba, and the only reason we're including it explicitly is to avoid confusion.&lt;br /&gt;&lt;br /&gt;"domain logons" is what tells Samba we want this server to handle domain logons (finally!).  To support roaming profiles inWindows NT/2000/XP clients, we have to supply Samba with a "logon path":&lt;br /&gt;&lt;blockquote&gt;logon path = \\%L\profiles\%u\%m&lt;br /&gt;logon script = logon.bat&lt;br /&gt;&lt;/blockquote&gt;&lt;pre class="code"&gt;&lt;/pre&gt;The value following "logon path" refers to a share held on the Samba server where the profiles are kept. The variables %L and %u are replaced with the name of the server and the username of the logged on user, respectively (this is done automatically, by Samba, while it runs. Don't try to manually edit the file to put in your own values -- just use %L and %u).&lt;br /&gt;&lt;br /&gt;If you put those entries into your smb.conf (and make the changes appropriate for our system, of course), you will have a functional, if bare bones, PDC running. Next time I'll go through fine tuning this and adding some additional bells and whistles.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-7850988426813025026?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/7850988426813025026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/7850988426813025026'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2007/02/making-samba-your-primary-domain_08.html' title='Making Samba your Primary Domain Controller - Part Quarto'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-739564240923577286</id><published>2007-02-03T18:22:00.000-04:00</published><updated>2007-02-10T12:25:39.690-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='samba pdc'/><category scheme='http://www.blogger.com/atom/ns#' term='samba'/><title type='text'>Making Samba your Primary Domain Controller - Part Trois</title><content type='html'>&lt;a href="http://poormanstech.blogspot.com/2007/01/making-samba-your-primary-domain_30.html"&gt;Last time&lt;/a&gt; around we went over the basic choices for hardware/operating system for a Samba installation. In case you're curious, here is the hardware I'm using. Yes, it's elderly, but remember this is a test, and if this particular system ever sees use, it'll be on a home network. For a production environment, I'll use something newer, faster, and with a warranty.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Compaq  Proliant 800 (tower)&lt;/li&gt;&lt;li&gt;Dual PIII 800Mhz processors&lt;/li&gt;&lt;li&gt;1 gig RAM&lt;/li&gt;&lt;li&gt;120 gigs storage (SCSI drives, hardware RAID)&lt;/li&gt;&lt;li&gt;additional 300 gigs storage (IDE drive)&lt;/li&gt;&lt;li&gt;FreeBSD 6.2&lt;/li&gt;&lt;li&gt;Samba 3.0.24d&lt;/li&gt;&lt;/ul&gt;Although hardly cutting edge in terms of hardware, this is more than adequate for a small network with few users. Naturally, if this ever went into production, it would require a failover machine of some sort. There are many solutions, and I'll eventually get around to writing about that particular topic as well.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Installation of Samba on FreeBSD&lt;/span&gt;&lt;br /&gt;This is trivial. First, update "ports". To do this, as root, change to the ports directory:&lt;br /&gt;cd /usr/ports&lt;br /&gt;Assuming you have your ports configuration file in your home directory, and it's named "ports-supfile", execute this command:&lt;br /&gt;&lt;blockquote&gt;cvsup -g -L 2 ~/ports-supfile&lt;/blockquote&gt;Wait a bit. If it's been quite some time since you last updated ports, what a while. When it's done, execute these commands:&lt;br /&gt;&lt;blockquote&gt;cd net/samba3&lt;br /&gt;make&lt;br /&gt;make install clean&lt;/blockquote&gt;I strongly encourage you to get a cup of coffee at this point. Or possibly take a nice, long nap. My installation took several hours. This is because it had to download the necessary components (including the ldap client) and compile everything. Of course, I was also rebuilding world at the same time (BSD aficionados will understand that reference) so I suppose it was my own fault.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Installation on Linux&lt;/span&gt;&lt;br /&gt;For my CentOS installation of Samba, things were equally uncomplicated. CentOS, like many distros, uses the yum package manager. As root, I simply executed a search for the appropriate packages:&lt;br /&gt;&lt;blockquote&gt;yum search samba&lt;/blockquote&gt;and got this result:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;samba.i386                               3.0.10-1.4E.9          base&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Matched from:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;samba&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;The Samba SMB server.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Samba is the protocol by which a lot of PC...&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Yep, that's the one I'm looking for. Like ports, yum takes care of all the dependencies and so forth, so a simple...&lt;br /&gt;&lt;blockquote&gt;yum install samba&lt;/blockquote&gt;...takes care of everything. Samba is now installed.&lt;br /&gt;&lt;br /&gt;Purists will insist that Samba should be installed from source, and I suspect they are right. In fact, with very few exceptions, I usually install everything from source so I can fine tune it for my own needs. If you feel that this is the route for you with respect to Samba, then details for the various configurations options for doing so are available at &lt;a href="http://us4.samba.org/samba/docs/man/Samba-HOWTO-Collection/install.html"&gt;http://www.samba.org&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Next time I'll get to the specifics of configuring smb.conf and adding users.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-739564240923577286?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/739564240923577286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/739564240923577286'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2007/02/making-samba-your-primary-domain.html' title='Making Samba your Primary Domain Controller - Part Trois'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-4830086894516464011</id><published>2007-02-01T21:03:00.000-04:00</published><updated>2007-02-10T12:25:24.550-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='samba pdc'/><category scheme='http://www.blogger.com/atom/ns#' term='samba'/><title type='text'>Making Samba your Primary Domain Controller - Part Deux</title><content type='html'>&lt;span&gt;As promised, here is the continuation of my post on &lt;a href="http://poormanstech.blogspot.com/2007/01/making-samba-your-primary-domain.html"&gt;making Samba your Primary Domain Controller&lt;/a&gt;. Before you actually begin the installation, it's a good idea to try and work out some of the gritty details. How many users will there be? What operating system should you use? For example, if you have several hundred potential users, putting everything on that dusty old Pentium II with a single 10BaseT card in it is probably not such a great idea -- particularly if it's your  phone that rings when network problems crop up.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Hardware Recommendations&lt;/span&gt;&lt;br /&gt;Hardware requirements, as always, depend on the load to be handled. Since this is our single point of entry into network services, if the PDC goes down, then users can't access the network. This is bad. However, if you are going to have a relatively small number of users, re-purposing older gear might be a viable option for you. If this is the case for you, then you might want to keep a few rules of thumb in mind:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Processor&lt;/span&gt;: A pair of Celerons or Durons will hold up better under load than a single Pentium class processor. If you have an old 2 way (or 4 way, or whatever) machine kicking around, give it a hard look. It might be a viable candidate for this.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Memory&lt;/span&gt;: Processor speed is only one factor to bear in mind; memory is equally important. Max out your RAM.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Disk&lt;/span&gt;: The disk subsystem also plays a major role. Samba acts as a file server. File servers read from and write to the disk, and they do it a lot. Get the fastest drive you can afford. You won't regret it.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Network interface card&lt;/span&gt;: do you have an old 10 Base T card in there? Get rid of it, and spend a few bucks on at least a 100BaseT card. You won't regret it at all.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Operating System requirements&lt;/span&gt;&lt;br /&gt;Samba runs on just about anything, including your toaster. It's supported on Linux, Unix, BSD, Mac OSX, Netware, AmigaDOS... well, you get the idea. This is largely a matter of taste. I've always been a fan of BSDs, so I chose &lt;a href="http://www.freebsd.org/"&gt;FreeBSD.&lt;/a&gt; For fun, I did a simultaneous installation on &lt;a href="http://www.centos.org/"&gt;CentOS&lt;/a&gt; as well.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Installation&lt;/span&gt;&lt;br /&gt;First check to see if you have it installed already. Note these innocuous words of wisdom directly from the Samba site (emphasis added):&lt;br /&gt;&lt;blockquote&gt;As always with Linux, there are two ways to install an application: RPM, or compile from source. (OK, there are three: Debian's apt-get. As I don't speak Debian, I'll leave that to the Debian Linux gurus.) RPM is easier, compile from source gives more control. &lt;span style="font-weight: bold;"&gt;Whichever method you choose, be sure to remove any existing Samba installations first&lt;/span&gt;.&lt;/blockquote&gt;Please, make certain you do not have Samba installed. If you do, remove it. If you happen to be running some version of Linux (an RPM based distro such as RedHat, CentOS, etc.) you can check by executing this command as root:&lt;br /&gt;&lt;blockquote&gt;rpm -qa | grep amba&lt;/blockquote&gt;Yes, I left the "S" off, and no, that's not a typo. Sometimes it's installed as Samba-XX.rpm, and sometimes as samba-xx.rpm.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Which Version?&lt;/span&gt;&lt;br /&gt;Samba 3.0 adds native connectivity with Microsoft's Active Directory, support for Microsoft's version of Kerberos, SAM (Security Accounts Manager) replication, and lots of other nifty features. It's the way to go. Older versions also support PDC functionality, but hey, that's yesterday's news. The latest version is faster, more stable, and more functional. It's a no brainer.&lt;br /&gt;&lt;br /&gt;Next time, I'll take you through the actual installation and smb.conf configuration.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-4830086894516464011?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/4830086894516464011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/4830086894516464011'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2007/01/making-samba-your-primary-domain_30.html' title='Making Samba your Primary Domain Controller - Part Deux'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-1603210558447841985</id><published>2007-01-28T07:35:00.000-04:00</published><updated>2008-12-11T22:06:39.388-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='samba pdc'/><category scheme='http://www.blogger.com/atom/ns#' term='samba'/><title type='text'>Making Samba your Primary Domain Controller - Part One</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-kZJYT_l1kw/RbX5oEFZuPI/AAAAAAAAARY/hWRfw-02Ssg/s1600-h/logon-screenshot-one.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://1.bp.blogspot.com/_-kZJYT_l1kw/RbX5oEFZuPI/AAAAAAAAARY/hWRfw-02Ssg/s200/logon-screenshot-one.png" alt="" id="BLOGGER_PHOTO_ID_5023195426088138994" border="0" /&gt;&lt;/a&gt;My &lt;a href="http://poormanstech.blogspot.com/2006/11/replacing-windows-fileserver.html"&gt;Samba installation&lt;/a&gt; went so well that I've decided to improve our network at the office a bit. We are a small company, but there are enough of us to make a primary domain controller a good idea. I did a bit of browsing around the 'net to see how this is done in Samba, only to discover that all of the necessary instructions seem to be for Samba 2; I'm using Samba 3. "Oh well," I say to myself, "how much different can it be?"&lt;br /&gt;&lt;br /&gt;Before we get into the ugly details, a bit of background is in order. First, what is a Primary Domain Controller (PDC)?&lt;br /&gt;&lt;p&gt;  &lt;span style="font-weight: bold;"&gt;Domain Controller&lt;/span&gt;&lt;br /&gt;A PDC is actually a pretty good idea. The goal is to store a user's log on information in one place, and allow them to access different services in the domain without needing multiple authentications. Samba makes an excellent PDC. It supports roaming profiles, domain logon from all Windows clients, Windows system policies, name services, master browser, and user-level security for Windows 9x/ME clients (assuming you actually have any of those; do you? Shame on you).&lt;/p&gt;&lt;p&gt;What does this mean? Well, if a Windows user logs on from any machine on your network, their profile goes with them, and they'll have access to only those things that they ought to have access to, and their desktop will look just like they expect it to. This is generally a good thing, and saves lots of pointless calls for help to the sysadmin.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-kZJYT_l1kw/RbFXEARt4_I/AAAAAAAAAQw/KVPhQ5BQpf4/s1600-h/logo.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://1.bp.blogspot.com/_-kZJYT_l1kw/RbFXEARt4_I/AAAAAAAAAQw/KVPhQ5BQpf4/s200/logo.gif" alt="" id="BLOGGER_PHOTO_ID_5021890785800217586" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;This is of less value to a Mac, BSD, or Linux user, but let's face it -- Windows dominates in the business world, and will for some time to come. If this is the case on your network, then Samba as a PDC might serve very well for you.&lt;br /&gt;&lt;br /&gt;A word of caution: just as was the case with &lt;a href="http://www.imdb.com/title/tt0091203/"&gt;Connor McLeod&lt;/a&gt;, "in the end, there can only be one." &lt;span style="font-weight: bold;"&gt;Don't&lt;/span&gt; try this if you have a PDC on your network already. Bad things will happen. Your network might blow up. Ethernet cables will melt. Your hair will fall out. Avoid the heartache, and instead try this on a test network, get it working fine, and then use your shiny new Samba PDC as a drop in replacement for whatever you're using now.&lt;br /&gt;&lt;br /&gt;So how do you do this? From what I can find on the 'net it looks fairly painless. The steps are as follows:&lt;br /&gt;&lt;br /&gt;1) Install Samba.&lt;br /&gt;2) Edit smb.conf, the Samba configuration file.&lt;br /&gt;3) Add machines and users.&lt;br /&gt;&lt;br /&gt;I did see some references to Windows XP being a pain, and the Professional edition requiring a registry patch to work with Samba, but those were email messages made some time ago. From the silence on the topic for the past couple of years, I can only conclude one of two things: either Samba is not being used as a PDC by anyone now, or it works fine. I'm hoping for the latter.&lt;br /&gt;&lt;br /&gt;I should also note that you can use your Samba PDC in a variety of other ways, although I have not personally tried some of these. For example, I f&lt;a href="http://www.wlug.org.nz/ActiveDirectorySamba"&gt;ound reference to using Samba&lt;/a&gt; as a member of an &lt;a href="http://en.wikipedia.org/wiki/Active_Directory_Service"&gt;Active Directory&lt;/a&gt; domain (&lt;span style="font-weight: bold;"&gt;update&lt;/span&gt;: this is natively supported in Samba 3.0x), and there are a number of other suggestions in this article. A lot of information is dated, and needs to be tested, but I plan on trying a few different things.&lt;br /&gt;&lt;br /&gt;In part II, I'll cover the installation and configuration.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-1603210558447841985?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/1603210558447841985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/1603210558447841985'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2007/01/making-samba-your-primary-domain.html' title='Making Samba your Primary Domain Controller - Part One'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_-kZJYT_l1kw/RbX5oEFZuPI/AAAAAAAAARY/hWRfw-02Ssg/s72-c/logon-screenshot-one.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-3411403690838386556</id><published>2007-01-20T08:25:00.000-04:00</published><updated>2008-12-11T22:06:39.939-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='server monitoring'/><category scheme='http://www.blogger.com/atom/ns#' term='zenoss'/><category scheme='http://www.blogger.com/atom/ns#' term='nagios'/><title type='text'>Alternatives to Nagios</title><content type='html'>I've never been a fan of putting all my eggs in one basket. Although, by all accounts, Nagios looks like it will be an adequate solution to network monitoring, there are alternatives. Here are the ones I've come across for my "just in case this doesn't work" list:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;OpenNMS&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-kZJYT_l1kw/RbIPRARt5AI/AAAAAAAAARA/YIRXfjZSPoI/s1600-h/wiki-logo.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://2.bp.blogspot.com/_-kZJYT_l1kw/RbIPRARt5AI/AAAAAAAAARA/YIRXfjZSPoI/s400/wiki-logo.png" alt="" id="BLOGGER_PHOTO_ID_5022093319278027778" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;One that I've seen quite a few times in my research is called &lt;a href="http://opennms.org/"&gt;OpenNMS&lt;/a&gt;. The website states that&lt;br /&gt;&lt;blockquote&gt;OpenNMS is the world's first &lt;a href="http://opennms.org/index.php/Enterprise_grade" title="Enterprise grade"&gt;enterprise grade&lt;/a&gt; network management platform developed under the &lt;a href="http://www.opensource.org/" class="external text" title="http://www.opensource.org/" rel="nofollow"&gt;open source&lt;/a&gt; model. It consists of a community supported open-source project as well as a commercial &lt;a href="http://www.opennms.com/" class="external text" title="http://www.opennms.com" rel="nofollow"&gt;services, training and support&lt;/a&gt; organization.&lt;br /&gt;&lt;/blockquote&gt;World's first, eh? And what's your criteria for establishing whether something "enterprise grade" or not? Ah, well. Cynicism is unbecoming, and the product looks decent enough, whether or not it's the "world's first."&lt;br /&gt;&lt;br /&gt;I do have a few concerns about this product, though, that encouraged me to move it to the "just in case" list. I came across this on a mailing list:&lt;br /&gt;&lt;blockquote&gt;The big thing that makes OpenNMS a non-starter for me was the inability to create dependencies between services. It's a pain to do in Nagios but it's there and that is a critical tool for enterprise level operations.&lt;/blockquote&gt;Yeah, that would be a bit of a show stopper, unless you're doing nothing more sophisticated than running a plain vanilla server install with a few simple services -- and who does that anymore?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Zenoss&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-kZJYT_l1kw/RbIPWQRt5BI/AAAAAAAAARI/DPg7jcS88XY/s1600-h/z.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://3.bp.blogspot.com/_-kZJYT_l1kw/RbIPWQRt5BI/AAAAAAAAARI/DPg7jcS88XY/s400/z.gif" alt="" id="BLOGGER_PHOTO_ID_5022093409472341010" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;This one seems relatively new, but has been getting a fair bit of buzz. &lt;a href="http://www.zenoss.com/"&gt;Zenoss&lt;/a&gt;, according to the website, is as follows:&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt; Zenoss Core is an enterprise-grade network and systems monitoring product that delivers the functionality IT operations teams need to effectively manage the health and performance of their entire infrastructure through a single, integrated package... Zenoss has changed the game by offering a complete, easy-to-use solution as a free..., downloadable, open source software product.&lt;/blockquote&gt; &lt;p&gt;&lt;/p&gt;Okay, so far, so good. I perused the website fairly extensively, and have to admit that it looks like a very slick package -- arguably more feature complete and functional than Nagios. There is a fully functional demo available, so I can check things out without having to do a local install, and see if it's more hype than reality... and this appears not to be the case. This is encouraging. Plus, the app appears to be written in &lt;a href="http://www.python.org/"&gt;Python&lt;/a&gt;, so it'll be portable and easy to modify and extend, should the need arise.&lt;br /&gt;&lt;br /&gt;I may in fact do a double install -- both Nagios and Zenoss, just to see which one is more appropriate for my needs.&lt;br /&gt;&lt;br /&gt;Zenoss seems very impressive.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-3411403690838386556?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/3411403690838386556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/3411403690838386556'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2007/01/alternatives-to-nagios.html' title='Alternatives to Nagios'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_-kZJYT_l1kw/RbIPRARt5AI/AAAAAAAAARA/YIRXfjZSPoI/s72-c/wiki-logo.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-660157079132063919</id><published>2007-01-19T13:09:00.000-04:00</published><updated>2008-12-11T22:06:40.929-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='server monitoring'/><category scheme='http://www.blogger.com/atom/ns#' term='nagios'/><title type='text'>Server Monitoring: Nagios</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-kZJYT_l1kw/RbD7wgRt40I/AAAAAAAAAOw/Sl77ZXiruAA/s1600-h/smalllogo7.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://2.bp.blogspot.com/_-kZJYT_l1kw/RbD7wgRt40I/AAAAAAAAAOw/Sl77ZXiruAA/s200/smalllogo7.gif" alt="" id="BLOGGER_PHOTO_ID_5021790395234640706" border="0" /&gt;&lt;/a&gt;As I mentioned last time, I am looking for an easy, free, stable, and highly functional network monitoring system. Nagios is my first venture into this investigation. &lt;a href="http://www.nagios.org/"&gt;Nagios&lt;/a&gt;&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt; has been around for awhile, and I believe that I evaluated it a few years ago before throwing my hands up in frustration and doing a quick and dirty solution myself. In all fairness, I was incredibly busy at the time, and probably didn't give it a fair shake.&lt;br /&gt;&lt;br /&gt;According to the website, it will do exactly what I want:&lt;br /&gt;&lt;blockquote&gt;Nagios is a host and service monitor designed to inform you of network problems before your clients, end-users or managers do. It has been designed to run under the Linux operating system, but works fine under most *NIX variants as well. The monitoring daemon runs intermittent checks on hosts and services you specify using external "plugins" which return status information to Nagios. When problems are encountered, the daemon can send notifications out to administrative contacts in a variety of different ways (email, instant message, SMS, etc.). Current status information, historical logs, and reports can all be accessed via a web browser.&lt;/blockquote&gt;Well, I've never been much of one for believing in the whole truth in advertising thing, so I decided to give it a go on my own, and see how it works.&lt;br /&gt;&lt;br /&gt;The network I decided to test it on consists of six machines. In addition, I have two development servers in an external data center that were doing nothing but humming, so I elected to include them in the tests. The machines are a mixture of FreeBSD and a couple of different Linux distros (CentOS and Debian).&lt;br /&gt;&lt;br /&gt;Prior to actually installing this package, I did a bit of reading on their website. They have a number of helpful screenshots; here are a few that were of interest to me.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-kZJYT_l1kw/RbEACARt41I/AAAAAAAAAO8/ywniv9P8gqI/s1600-h/status-detail.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_-kZJYT_l1kw/RbEACARt41I/AAAAAAAAAO8/ywniv9P8gqI/s320/status-detail.jpg" alt="" id="BLOGGER_PHOTO_ID_5021795093928862546" border="0" /&gt;&lt;/a&gt;This is the status detail screen (and it would appear that someone is having a bad day with this particular network!). It looks quite helpful, and provides a good "dashboard" view of the various processes on a given machine.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-kZJYT_l1kw/RbEAlARt42I/AAAAAAAAAPI/71uvbw_a2Qw/s1600-h/statusmap.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_-kZJYT_l1kw/RbEAlARt42I/AAAAAAAAAPI/71uvbw_a2Qw/s320/statusmap.jpg" alt="" id="BLOGGER_PHOTO_ID_5021795695224284002" border="0" /&gt;&lt;/a&gt;Now this is interesting -- a status map of a network segment. I'm not sure how you define the map (but suspect it is painful), but it is an interesting method of graphically representing the layout of various workstations and servers.  Nice touch.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-kZJYT_l1kw/RbEBGARt43I/AAAAAAAAAPQ/vYrGx5mPKlM/s1600-h/status-overview.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_-kZJYT_l1kw/RbEBGARt43I/AAAAAAAAAPQ/vYrGx5mPKlM/s320/status-overview.jpg" alt="" id="BLOGGER_PHOTO_ID_5021796262159967090" border="0" /&gt;&lt;/a&gt;This gives the bird's eye view of all monitored services. Simple, and effective. It seems that you can group services together, which would be very helpful.&lt;br /&gt;&lt;br /&gt;After I finished amusing myself with screenshots and the propoganda on their site, I went over to the &lt;a href="http://en.wikipedia.org/wiki/Nagios"&gt;Wikipedia&lt;/a&gt; entry to see what it had to say. It's a short article, and simply lists the services it monitors, has pointers to helpful install guides, and mentions that it came out in 2002, when it used to be called NetSaint. The talk page had this obscure comment:&lt;br /&gt;&lt;blockquote&gt;I would say this is a very handy application when argumented with Cacti. I just set up one and its really cool to see it in action.&lt;/blockquote&gt;I presume "argumented" was supposed to be "augmented", but there you go. But was is this "Cacti"? I'll have to find out.&lt;br /&gt;&lt;br /&gt;I'm going to try a test install of this on the weekend. I'll keep you posted.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-660157079132063919?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/660157079132063919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/660157079132063919'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2007/01/server-monitoring-nagios.html' title='Server Monitoring: Nagios'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_-kZJYT_l1kw/RbD7wgRt40I/AAAAAAAAAOw/Sl77ZXiruAA/s72-c/smalllogo7.gif' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-7803806170886463295</id><published>2007-01-14T15:19:00.000-04:00</published><updated>2007-01-14T16:25:58.572-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='server monitoring'/><title type='text'>Automated Server Monitoring</title><content type='html'>I have been looking for a decent, non resource intensive server monitoring program. There are a number of them out there (many written in Perl, and getting a bit long in the tooth) but it has been some time since I explored this in any detail. Actually, I think it's been several years since I did this. I'm getting old.&lt;br /&gt;&lt;br /&gt;Last time around, I wound up trying and abandoning a number of solutions, and writing a simple Java process that polled a list of servers &amp;amp; ports, and sent an SMS, email, and page when it was unable to connect to something on its watch list.&lt;br /&gt;&lt;br /&gt;Talk about rudimentary.&lt;br /&gt;&lt;br /&gt;As I recall, there were a few packages that did what I wanted, but they ate CPU cycles like they were going out of style, which was unacceptable. I hope things have improved over time.&lt;br /&gt;&lt;br /&gt;Ideally, the monitoring software will track cpu usage, system temperature, disk space, maintain a list of processes to watch and keep up, memory usage, track logins, and so forth. It should also support a "dashboard" of services, statistics, and allow for historical reporting.&lt;br /&gt;&lt;br /&gt;I've compiled a short list (which will no doubt grow as I get into the research) of projects to try out, and I'm going to start with &lt;a href="http://nagios.org/"&gt;Nagios&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I'll keep you posted.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-7803806170886463295?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/7803806170886463295'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/7803806170886463295'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2007/01/automated-server-monitoring.html' title='Automated Server Monitoring'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-5812998258336943463</id><published>2007-01-09T22:11:00.000-04:00</published><updated>2008-12-11T22:06:41.187-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asterisk'/><title type='text'>Trixbox 2.0</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-kZJYT_l1kw/RaRMh0BPuII/AAAAAAAAANE/fjiGIo7OJnE/s1600-h/logo.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://1.bp.blogspot.com/_-kZJYT_l1kw/RaRMh0BPuII/AAAAAAAAANE/fjiGIo7OJnE/s320/logo.gif" alt="" id="BLOGGER_PHOTO_ID_5018220028580837506" border="0" /&gt;&lt;/a&gt;While browsing around today I noticed a post on distrowatch.org, indicating that &lt;a href="http://www.trixbox.org"&gt;Trixbox&lt;/a&gt; 2.0 was released a few days ago. The press release is available &lt;a href="http://www.trixbox.org/modules/smartsection/item.php?itemid=48"&gt;here&lt;/a&gt;.  According to the press release, Trixbox is a &lt;a href="http://www.centos.org/"&gt;CentOS&lt;/a&gt; based distribution that includes a completely functional, ready to customize install of &lt;a href="http://www.asterisk.org/"&gt;Asterisk&lt;/a&gt;. It can be installed in less than 15 minutes, supports multiple languages and provides increased reliability and stability, flexible user customization, and support for a wide-range of hardware vendors.&lt;br /&gt;&lt;br /&gt;Given that I am planning to do an @home install of Asterisk, this seems like a logical approach. I am still waiting to order the necessary hardware to complete my installation of Asterisk at home, but could use one of the many "softphones" to play with this.&lt;br /&gt;&lt;br /&gt;I have managed to cobble together some hardware from spare parts, and will attempt an install of this over the next few days. It is entirely possible that my wife may throw me out for cutting of her phone for hours at a time... but hey, she has a cell phone ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-5812998258336943463?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/5812998258336943463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/5812998258336943463'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2007/01/trixbox-20.html' title='Trixbox 2.0'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_-kZJYT_l1kw/RaRMh0BPuII/AAAAAAAAANE/fjiGIo7OJnE/s72-c/logo.gif' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-3140612051889973754</id><published>2007-01-08T13:06:00.001-04:00</published><updated>2008-12-11T22:06:41.437-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange Server Alternatives'/><title type='text'>Exchange Server Alternatives - Scalix</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-kZJYT_l1kw/RaJ8eEBPuEI/AAAAAAAAAMU/oh7LLSUHeuA/s1600-h/scalix.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://4.bp.blogspot.com/_-kZJYT_l1kw/RaJ8eEBPuEI/AAAAAAAAAMU/oh7LLSUHeuA/s400/scalix.gif" alt="" id="BLOGGER_PHOTO_ID_5017709790761039938" border="0" /&gt;&lt;/a&gt;I've made some additional progress in the ongoing saga to find an alternative to Microsoft Exchange. As promised, I've done some research into (and actually played with) &lt;a href="http://www.scalix.com/"&gt;Scalix&lt;/a&gt;. I came at this one with some skepticism, largely because of the great deal of online attention focussed on its competitors, most notably &lt;a href="http://www.open-xchange.com/EN/developer/"&gt;Open-Xchange&lt;/a&gt;. I was pleasantly surprised -- this is a very good alternative to OX.&lt;br /&gt;&lt;br /&gt;Like most of the packages I've explored so far, Scalix comes in both "free" and "commercial" flavours. Unlike its competitors, it's not as feature-crippled in the for-free version. Of the most interest to me at this point is the fact that it offers complete Outlook connectivity without a fee. Admittedly, the free version only offers this for a limited number of users, but you can upgrade to the commercial version at any time without a complete reinstall required. This is quite attractive.&lt;br /&gt;&lt;br /&gt;It took me some time to figure out what all of the various offerings on their web site were -- and to distinguish between the various versions. Things get much simpler if you simply go to the download page and give it a read -- I recommend skipping much of the marketing hype and going directly there.&lt;br /&gt;&lt;br /&gt;I have found Outlook support on everything I've looked at so far to be... well... okay. Not great, but acceptable. So when I saw this on the Scalix site:&lt;br /&gt;&lt;span class="Body"&gt;&lt;blockquote&gt; Scalix offers the Linux industry’s most transparent Outlook support because it is a mature native MAPI implementation. Scalix’s Outlook support has been enhanced further with Scalix 11, with indexed search and improved mobile performance. &lt;/blockquote&gt;I was skeptical, to say the least. I am pleased to report that there is sometimes truth in marketing. Support for Outlook (a client which I personally do not like or use, I might add, but many people I work with require it) is exceptionally good in this package. In addition, the package offers &lt;/span&gt;&lt;span class="Body"&gt;support for Google Desktop and MSN Search, McAfee VirusScan, Symantec Norton Utilities and Captaris RightFax Outlook Extension. &lt;/span&gt;&lt;span class="Body"&gt;Well done.&lt;br /&gt;&lt;br /&gt;I plan on doing some extensive testing on this in the coming days, but right now this package wins, hands down.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-3140612051889973754?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/3140612051889973754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/3140612051889973754'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2007/01/exchange-server-alternatives-scalix.html' title='Exchange Server Alternatives - Scalix'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_-kZJYT_l1kw/RaJ8eEBPuEI/AAAAAAAAAMU/oh7LLSUHeuA/s72-c/scalix.gif' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-254540915755977528</id><published>2006-12-30T09:35:00.000-04:00</published><updated>2006-12-31T12:32:20.933-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange Server Alternatives'/><title type='text'>Exchange Server Alternatives: Results So Far Part Deux</title><content type='html'>&lt;a href="http://poormanstech.blogspot.com/2006/12/exchange-server-alternative-results-so.html"&gt;Yesterday&lt;/a&gt; I finished looking at the features of &lt;a href="http://www.open-xchange.com/EN/"&gt;Open-Xchange&lt;/a&gt;, and today I have been looking at &lt;a href="http://www.zimbra.com/"&gt;Zimbra's&lt;/a&gt; functionality.  Zimbra helpfully gives us a chart comparing the various features of its five different edition. So as to compare apples to apples as far as possible, I am looking at the "Open Source Edition", i.e. the one that has no dollar signs attached to it.&lt;br /&gt;&lt;br /&gt;Zimbra seems to spend a great deal of time boasting about it's &lt;a href="http://en.wikipedia.org/wiki/Ajax_%28programming%29"&gt;Ajaxified&lt;/a&gt; (yes, I know it's not a word, but it's getting a lot of usage) email &amp; calendar features. &lt;a href="http://en.wikipedia.org/wiki/Ajax_%28programming%29"&gt;Ajax&lt;/a&gt;, or Asynchronous &lt;a href="http://en.wikipedia.org/wiki/JavaScript"&gt;Javascript&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/XML"&gt;XML&lt;/a&gt;, is an old technology that became incredibly trendy (and very useful) in late 2005 and 2006. It permits a web page to send a request to and receive a response from a remote server without reloading the entire page. This makes a web application appear to function much faster, as less data has to move around the Internet, and you only have to load the part of the page that has changed rather than all the HTML and images for the entire page. It's quite a useful technology, and we implement it on the vast majority of the web applications we build.&lt;br /&gt;&lt;br /&gt;The feature set of the free edition of Zimbra is rather more limited than that of Open-Xchange. First, there is no &lt;a href="http://www.microsoft.com/Outlook"&gt;Outlook&lt;/a&gt; connectivity; you have to spend money for that. Second, there is no inline display of HTML attachments for email. Third, there is no easy online backup/restore (which just seems insane to me, but there you go). In fact, in order to connect with Outlook and MAPI clients, you need to purchase the full "Network Professional Edition" -- presumably the most expensive, with an annual licensing fee, or a monthly subscription fee. How much does it cost? Well, that's a bit difficult to figure out without talking to a sales rep -- always a bad sign --but you do get a bit of information on the site:&lt;br /&gt;&lt;blockquote&gt;Licenses are sold in blocks of 25 and priced on a sliding scale based on the size of your installation and business segment. For example, 75 Professional Edition mailboxes for a business are priced at $28/user/year; a non-profit for the same will be discounted 50%.&lt;/blockquote&gt;There is a bit more info on the site regarding pricing for the various editions. For example: for the Network Professional Edition for a business, the first 25 pack is set at $35/user/year. Assuming that you have a minimum of 25 users, then the annual cost is $875.00. This is all well and good, but 10 minutes on &lt;a href="http://www.froogle.com/"&gt;Froogle&lt;/a&gt; shows that I can get Exchange itself with an equivalent number of client access licenses for the same money or less -- and it's not an annual subscription.&lt;br /&gt;&lt;br /&gt;So what's the point?&lt;br /&gt;&lt;br /&gt;Next, I'm going to give &lt;a href="http://www.scalix.com/"&gt;Scalix&lt;/a&gt; a look.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-254540915755977528?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/254540915755977528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/254540915755977528'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/12/exchange-server-alternatives-results-so.html' title='Exchange Server Alternatives: Results So Far Part Deux'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-307456517177702573</id><published>2006-12-29T11:12:00.000-04:00</published><updated>2006-12-29T21:40:48.784-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange Server Alternatives'/><title type='text'>Exchange Server Alternative: Results so far</title><content type='html'>So I've been working away, trying to identify the best alternative to Microsoft Exchange Server for my organization. I had initially narrowed the field down to two: Zimbra, and Open-Xchange. I've spent a few hours today going through the latter, and a fairly thorough review of the &lt;a href="http://www.open-xchange.com/EN/"&gt;Open-Xchange site&lt;/a&gt; suggests that it supports the following:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Messaging (email)&lt;/li&gt;&lt;li&gt;Shared Calendars&lt;/li&gt;&lt;li&gt;Shared Tasks&lt;/li&gt;&lt;li&gt;Shared Contacts&lt;/li&gt;&lt;li&gt;Document sharing&lt;/li&gt;&lt;li&gt;Project portals (not entirely certain what this is, but if it is what I think it is, it looks promising)&lt;/li&gt;&lt;li&gt;User forums, bulliten boards&lt;/li&gt;&lt;li&gt;Knowledge base (sort of like a faq on steroids)&lt;/li&gt;&lt;li&gt;Bookmark repository (our own private del.icio.us?)&lt;/li&gt;&lt;li&gt;Support for Outlook (through a nifty api called the &lt;a href="http://www.open-xchange.com/oxcms/opencms/ox_com/EN/product/oxtender.html"&gt;oxtender&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Support for Palm&lt;/li&gt;&lt;li&gt;Support for Samba&lt;/li&gt;&lt;li&gt;Support for SyncML&lt;/li&gt;&lt;li&gt;Advanced user management&lt;/li&gt;&lt;li&gt;Advanced messaging archival/reporting/retrieval&lt;/li&gt;&lt;/ul&gt;Wow. That exceeds my initial requirements list, and then some. There are, to be fair, a few missing elements -- spam &amp;amp; virus prevention are must haves, and network faxing would be nice. If my cursory read of the architecture is accurate, then I suspect none of these are going to be problematic (in fact, I might be able to stick my my existing smtp transport layer, and have to do nothing in this regard). This is an extremely well thought out package. I plan on reviewing Zimbra's featureset next, and then doing a test install of each package.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-307456517177702573?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/307456517177702573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/307456517177702573'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/12/exchange-server-alternative-results-so.html' title='Exchange Server Alternative: Results so far'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-6019737901823517029</id><published>2006-12-28T14:05:00.000-04:00</published><updated>2006-12-28T14:26:39.284-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange Server Alternatives'/><title type='text'>Exchange Server Alternative: Requirements</title><content type='html'>Quite often when dealing with a client -- particularly a new one -- I spend a great deal of time simply educating them on the need for sufficient planning prior to actually beginning a project. Like most IT firms, we call this the requirements phase, and out of it comes (naturally enough) the requirements document. Smaller clients often put up some resistance to this, and, much like an eager new developer, just want to jump right in and begin work. There are a number of rather serious problems with this approach. I find analogy usually helps in cases like this.&lt;br /&gt;&lt;blockquote&gt;"Would you build a house without a blueprint?"&lt;br /&gt;"Well... No..."&lt;br /&gt;&lt;/blockquote&gt;Well, they say that confession is good for the soul, and it is time to come clean. Perhaps it is the unusual feeling of relaxation that comes during the holiday season, or perhaps it is simple laziness, but whatever the case, I have not put sufficient planning into my "let's find a free, or at any rate reasonably inexpensive alternative to Microsoft Exchange Server" project.&lt;br /&gt;&lt;br /&gt;I haven't even clearly articulated my objectives to myself, let alone in this particular forum.&lt;br /&gt;&lt;br /&gt;Accordingly, I am making an early resolution this year: find out exactly what Exchange does, which of those features are going to be a requirement for my project, and enumerate other features that would be nice to have, but don't exist yet. Once an appropriate platform is chosen and installed, perhaps we can even complete add ons for whichever platform we choose, and release those for the benefit of others.&lt;br /&gt;&lt;br /&gt;A quick read through the &lt;a href="http://www.microsoft.com/exchange/evaluation/features/default.mspx"&gt;product features list on Microsoft's site&lt;/a&gt; lists these as must haves:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;shared calendars&lt;/li&gt;&lt;li&gt;shared address books&lt;/li&gt;&lt;li&gt;easy integration with Microsoft Outlook&lt;/li&gt;&lt;li&gt;anti-spam&lt;/li&gt;&lt;li&gt;anti-virus&lt;/li&gt;&lt;li&gt;messaging records management&lt;/li&gt;&lt;li&gt;webmail access&lt;/li&gt;&lt;li&gt;pop3, pop3s, imap, imaps protocol support&lt;/li&gt;&lt;li&gt;smtp and smtps protocol support&lt;/li&gt;&lt;li&gt;flexible and sophisticated calendaring functionality&lt;/li&gt;&lt;li&gt;integration with popular PDAs for to-dos, calendars, etc.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Yes, those are what a child of the eighties would call "&lt;a href="http://www.wordwebonline.com/en/NOBRAINER"&gt;no brainers&lt;/a&gt;", but there you go. If you don't write it down, it didn't happen.&lt;br /&gt;&lt;br /&gt;As I work through my research, I'll construct a "nice-to-have" list as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-6019737901823517029?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/6019737901823517029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/6019737901823517029'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/12/exchange-server-alternative.html' title='Exchange Server Alternative: Requirements'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-5747531359101923084</id><published>2006-12-27T09:21:00.001-04:00</published><updated>2008-12-11T22:06:41.760-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange Server Alternatives'/><title type='text'>Exchange Server Alternatives: Update</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-kZJYT_l1kw/RZJ1KpksubI/AAAAAAAAALk/XDo3nHZc39o/s1600-h/zox.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://3.bp.blogspot.com/_-kZJYT_l1kw/RZJ1KpksubI/AAAAAAAAALk/XDo3nHZc39o/s200/zox.jpg" alt="" id="BLOGGER_PHOTO_ID_5013198161035704754" border="0" /&gt;&lt;/a&gt;I have been conducting some research into which platform will be the most appropriate to put in a system that will &lt;a href="http://poormanstech.blogspot.com/2006/12/exchanger-server-alternatives.html"&gt;provide much the same functionality&lt;/a&gt; as &lt;a href="http://www.microsoft.com/exchange/"&gt;Microsoft Exchange&lt;/a&gt;, without the cost and security vulnerabilities (which may or not be mythical; there is no question as to the cost - it's very real). This is the first of my DIY projects that I approach with some reluctance, as I personally do not use or like Outlook. However, many of my clients, contractors, etc. do, and I can understand their desire to have this functionality in place. So far, it looks like there are two viable alternatives that will do what I want, without serious limitations: &lt;a href="http://www.zimbra.com/"&gt;Zimbra&lt;/a&gt;, and &lt;a href="http://www.open-xchange.com/EN/developer/"&gt;Open-Xchange&lt;/a&gt;. Both work within a browser, and permit use from other applications (most notably &lt;a href="http://office.microsoft.com/en-us/outlook/default.aspx"&gt;Microsoft Outlook&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;I have a lot more work to do before I make my final determination, including setting up a test environment, some additional research, and serious testing, but I believe I have narrowed it down to these two.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-5747531359101923084?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/5747531359101923084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/5747531359101923084'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/12/exchange-server-alternatives-update.html' title='Exchange Server Alternatives: Update'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_-kZJYT_l1kw/RZJ1KpksubI/AAAAAAAAALk/XDo3nHZc39o/s72-c/zox.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-6716627791883943285</id><published>2006-12-24T08:27:00.000-04:00</published><updated>2006-12-24T12:41:29.117-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exchange Server Alternatives'/><title type='text'>Exchange Server Alternatives</title><content type='html'>We have been under some pressure from both clients and selected staff (curse them) who really, really want to have an Exchange server installed for our office. Although I have resisted for quite awhile, and continue to use  a rock sold &lt;a href="http://www.qmailrocks.org/"&gt;qmail&lt;/a&gt; installation for our email services, there are, I admit, some benefits to having Microsoft Exchange installed -- shared calendars, shared address books, and so forth. However, &lt;a href="http://www.microsoft.com/exchange/"&gt;Microsoft Exchange&lt;/a&gt; is a pricey little thing, and I have heard countless horror stories about security.&lt;br /&gt;&lt;br /&gt;Naturally, I am looking for a free, stable, secure alternative right now.&lt;br /&gt;&lt;br /&gt;So far, I have come up with this list of possible alternatives:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;eGroupware &lt;/span&gt;- a PHP based groupware solution, intended to be used with a web browser. Not a true replacement for exchange server.&lt;a href="http://www.egroupware.org/"&gt; http://www.egroupware.org&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Group-Office&lt;/span&gt; - like eGroupware, this is a PHP based groupware solution, intended to be used with a web browser. Not a true replacement for exchange server.&lt;a href="http://www.group-office.com/"&gt; http://www.group-office.com&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Open-Xchange&lt;/span&gt; - Hmmm... now this is more like it. Integrated SMTP &amp; messaging server, integration with Samba, and "OXTenders", for connections with various non-browser applications. This sounds more like what I am looking for. &lt;a href="http://www.open-xchange.com/EN/developer/"&gt;http://www.open-xchange.com/EN/developer/&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Kolab &lt;/span&gt;- From their site: "Kolab is a Groupware Solution for Emails, Appointments, Contacts and more. It supports &lt;strong style="font-weight: normal;"&gt;mixed client environments (Outlook/KDE)&lt;/strong&gt;  because of an &lt;strong style="font-weight: normal;"&gt;open storage format&lt;/strong&gt;. Any email client speaking standard protocols can be served. For the full Kolab experience you need a  &lt;em&gt;&lt;a href="http://www.kolab.org/about-kolab-server.html"&gt;Kolab Server&lt;/a&gt;&lt;/em&gt; and &lt;em&gt;&lt;a href="http://www.kolab.org/about-kolab-clients.html"&gt;Kolab Clients&lt;/a&gt;&lt;/em&gt;. " A quick overview of the required software suggests that although this will connect with Exchange, it requires a "proprietary, [connector] with gratis 30 day evaluation", called "Toltec connector 2". Hey, I don't want to spend any money if I don't have to...&lt;a href="http://www.kolab.com/"&gt; http://www.kolab.com&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;OGo - OpenGroupware&lt;/span&gt;&lt;a href="http://www.opengroupware.org/"&gt; http://www.opengroupware.org&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Zimbra&lt;/span&gt;&lt;a href="http://www.zimbra.com/"&gt; http://www.zimbra.com&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Open Source Outlook MAPI Connector&lt;/span&gt;&lt;a href="http://www.openconnector.org/"&gt; http://www.openconnector.org&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Update&lt;/span&gt;: A visitor suggests Scalix (www.scalix.com), which looks very promising. It comes in two flavours - commercial, and "community edition." The latter is free, but limited to 25 users. I will include it in my research, though.&lt;br /&gt;&lt;br /&gt;I have not done a great deal of research into any of these, but plan to do so over the holidays. I'll keep you posted.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-6716627791883943285?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/6716627791883943285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/6716627791883943285'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/12/exchanger-server-alternatives.html' title='Exchange Server Alternatives'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-2013910054791925211</id><published>2006-12-23T23:17:00.000-04:00</published><updated>2006-12-23T23:21:12.906-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='livecd'/><category scheme='http://www.blogger.com/atom/ns#' term='asterisk'/><title type='text'>Asterisk via Live CD</title><content type='html'>While waiting for my various components to arrive for the Asterisk install, I decided to see if I could simply play around with soft phone technology, experiment, and so forth. I didn't actually accomplish anything so far, but I did stumble across this &lt;a href="http://www.automated.it/asterisk/"&gt;Live CD Asterisk&lt;/a&gt; product.  In case you are unfamiliar with the concept, a Live CD is a rather nifty  little thing -- it's a complete, task specific operating system on some bootable media (typically a CD ROM or DVD ROM, but you can use it on a compact flash card, USB key, etc. -- anything that has sufficient storage space and can boot your PC). This is a complete, fully functional Asterisk install on a CD ROM. I actually downloaded it, burned it, and used it to boot my PC. It worked -- at least I think it did. Once again, I'm waiting for some gear to arrive to be able to complete the install and see how it works.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-2013910054791925211?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/2013910054791925211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/2013910054791925211'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/12/asterisk-via-live-cd.html' title='Asterisk via Live CD'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-1182069227269327021</id><published>2006-12-09T10:34:00.000-04:00</published><updated>2008-12-11T22:06:41.837-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asterisk'/><category scheme='http://www.blogger.com/atom/ns#' term='diy'/><title type='text'>Asterisk Update</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-kZJYT_l1kw/RXsEn63CihI/AAAAAAAAAHo/pKcmbD0TLDY/s1600-h/a.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://3.bp.blogspot.com/_-kZJYT_l1kw/RXsEn63CihI/AAAAAAAAAHo/pKcmbD0TLDY/s200/a.png" alt="" id="BLOGGER_PHOTO_ID_5006600494613957138" border="0" /&gt;&lt;/a&gt;It's been awhile since I have been able to post here -- November and December are typically very busy for me, and I have little time for extracurricular activities. However, I have managed to do some work on the &lt;a href="http://poormanstech.blogspot.com/2006/11/asterisk-voip-for-handyman.html"&gt;Asterisk install&lt;/a&gt;. I've installed the base code on my &lt;a href="http://poormanstech.blogspot.com/2006/11/automatic-backups-with-rdiff-backup.html"&gt;backup server&lt;/a&gt;, which is now running the latest build of &lt;a href="http://www.centos.org"&gt;CentOS&lt;/a&gt;. It went smoothly, largely because I am unable to test anything as of yet -- I have not picked up the hardware necessary to complete the installation. I've decided to go with the &lt;a href="http://www.canadianvoipstore.com/product_info.php?cPath=96_124&amp;products_id=203&amp;amp;osCsid=6417ddd36d27c6d36a73accfa0b509b5"&gt;Linksys Sipura SPA 3000&lt;/a&gt; for my hardware requirements, for a couple of reasons. First, the box running Asterisk is a bit elderly, and having the FXO/FXS in a stand alone box will reduce the processor requirements; and second, the price is much better this way. I can pick the box up for as little as $115.00 CDN.&lt;br /&gt;&lt;br /&gt;I hope to order one this month, and begin testing the application.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-1182069227269327021?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/1182069227269327021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/1182069227269327021'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/12/asterisk-update.html' title='Asterisk Update'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_-kZJYT_l1kw/RXsEn63CihI/AAAAAAAAAHo/pKcmbD0TLDY/s72-c/a.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-8909203236262776752</id><published>2006-11-28T07:42:00.000-04:00</published><updated>2006-11-28T07:45:02.608-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='just plain cool'/><title type='text'>A bit off topic</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger2/5163/4267/1600/last_2.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://photos1.blogger.com/blogger2/5163/4267/200/last_2.jpg" alt="" border="0" /&gt;&lt;/a&gt;This really isn't about saving money or cheap technology... but it's such a good effort by someone in Japan that I couldn't resist. This gentleman &lt;a href="http://www.conf.co.jp/new_folder/gallery/g5cube.html"&gt;guts his Mac Cube and gives it a new enclosure&lt;/a&gt;, echoing a miniature version of the Aluminum Grilled Power Mac G5 in Cube Form.&lt;br /&gt;&lt;br /&gt;I wonder if I could get him to cut the holes for my &lt;a href="http://poormanstech.blogspot.com/2006/11/slotted-waveguide-antenna-for-80211x.html"&gt;cheese grater antenna&lt;/a&gt;...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-8909203236262776752?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/8909203236262776752'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/8909203236262776752'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/11/bit-off-topic.html' title='A bit off topic'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-509962662178305719</id><published>2006-11-25T18:22:00.000-04:00</published><updated>2006-11-26T08:15:08.017-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>Internet Cafe Security</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/x/blogger2/5163/4267/1600/607383/internet-cafe-l.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://photos1.blogger.com/x/blogger2/5163/4267/200/862534/internet-cafe-l.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;a href="http://cups.cs.cmu.edu/soups/2006/posters/herley-poster_abstract.pdf"&gt;This PDF&lt;/a&gt; discusses a simple (and free) way to foil &lt;a href="http://en.wikipedia.org/wiki/Keystroke_logging"&gt;keyloggers &lt;/a&gt;on public terminals such as those found in Internet Cafes. It's common for thieves to install malicious software such as keyloggers in an effort to steal personal information, passwords and so forth from those who  use the systems.&lt;br /&gt;&lt;br /&gt;Since I hate reading PDFs in web browsers, I copy the relevant bits here:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Rather than hide the password our approach is to  embed it in a sequence of random characters. So we  seek a way of entering random keys so that they will  be seen by the keylogger, but will not affect normal login.  The trick lies in the fact that keyloggers employ  very low level OS calls. The keylogger sees everything,  but it doesn’t understand what it sees. The browser  also sees everything, but it doesn’t use everything that  it sees: it does not know what to do with keys that are  typed anywhere other than the text entry fields, and lets  them fall on the floor. The keylogger has no easy way  to determine which keys are used by the browser and  which fall on the floor. It is very easy to record all of  the keys or mouse events (this is true both for Windows  and Linux based systems). It is also very easy to  determine which application had focus at the time of  the event (e.g. this key went to the browser). But it is  very hard to determine what the application did with  those events.  Between successive keys of the password we will enter  random keys. In the spirit of chaffing and winnowing, the string that the keylogger receives will contain  the password, but embedded in so much random junk  that discovering it is infeasible. Observe that we are not  exploiting a particular feature of any particular browser:  this trick works with all versions of Internet Explorer,  Netscape Navigator and Mozilla Firefox. We are exploiting  the difficulty from the OS layer of determining  how the GUI of an an application handles events.  It involves typing random characters between successive  characters of the password, and changing focus to  and from the password field using the mouse. Instead  of the password &lt;span style="font-style: italic;"&gt;snoopy2 &lt;/span&gt;the keylogger now gets:&lt;br /&gt;&lt;blockquote&gt; hotmail.comspqmlainsdgsosdgfsodgfdpuouuyhdg2 &lt;/blockquote&gt;Here a total of 26 random characters have been inserted  among the 7 characters of the actual password. In general  a total of n extra characters in a length k password  will yield so many possible passwords that attack is infeasible  (recall the password that can only be tested by  attempting login). There are various attacks on this  method as we explain below. However, none of the keyloggers  reviewed ... appear to have to functionality  to defeat this simple trick.&lt;/blockquote&gt;Simple, neat trick.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-509962662178305719?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/509962662178305719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/509962662178305719'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/11/internet-cafe-security.html' title='Internet Cafe Security'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-2341428830700423866</id><published>2006-11-25T18:14:00.000-04:00</published><updated>2006-11-25T19:14:27.885-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='funny'/><category scheme='http://www.blogger.com/atom/ns#' term='christmas'/><category scheme='http://www.blogger.com/atom/ns#' term='diy'/><title type='text'>Computer Part Wreath</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/x/blogger2/5163/4267/1600/501122/wreath.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://photos1.blogger.com/x/blogger2/5163/4267/200/832741/wreath.jpg" alt="" border="0" /&gt;&lt;/a&gt;This is too funny -- &lt;a href="http://www.getcrafty.com/blogs.php?user=violet13&amp;amp;entry=6429"&gt;this site&lt;/a&gt; shows a Christmas wreath made from left over/spare/elderly computer parts, wired to a frame. There are no details of construction -- just the picture. But seriously, how hard could it be? And who among us does not have a few dozen spare printed circuit boards laying around?&lt;br /&gt;&lt;br /&gt;I think I'll give this a try and impress my wife. She laments the fact that I see Christmas decorations as both pointless and wasteful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-2341428830700423866?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/2341428830700423866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/2341428830700423866'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/11/computer-part-wreath.html' title='Computer Part Wreath'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-7440907323607734772</id><published>2006-11-24T22:56:00.000-04:00</published><updated>2006-11-24T23:03:47.194-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='htpc'/><category scheme='http://www.blogger.com/atom/ns#' term='diy'/><title type='text'>DIY Home Theatre PC - Update</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/x/blogger2/5163/4267/1600/358317/htpc_xcubecase.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://photos1.blogger.com/x/blogger2/5163/4267/200/109685/htpc_xcubecase.jpg" alt="" border="0" /&gt;&lt;/a&gt;I've done some looking around, and found that there are quite a few varying opinions on building a Digital Home Theatre System.&lt;br /&gt;&lt;br /&gt;On a side note, I should probably come up with something simpler to call it. "Digital Home Theatre System" is too cumbersome, and DHTS sounds wrong somehow.  Well, it's a PC, and it's a home theatre... how about Home Theatre PC, or HTPC for short?&lt;br /&gt;&lt;br /&gt;This &lt;a href="http://www.pcstats.com/articleview.cfm?articleID=1820"&gt;article over at PCStats.com&lt;/a&gt; outlines their approach to building a system (which, I might add, they call their HTPC. I confess; I stole the acronym). It's quite good, right up until the point where they elect to install Windows as their operating system. There's nothing wrong with Windox XP (even the media center edition is fine for most people). I just don't want to (a) pay for it; (b) steal it; or (c) keep it patched and up to date. This is a TV system I'm building. I don't particularly want to have to reboot my television.&lt;br /&gt;&lt;br /&gt;The information provided, though, is quite helpful.&lt;br /&gt;&lt;br /&gt;I'll keep researching.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-7440907323607734772?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/7440907323607734772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/7440907323607734772'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/11/diy-home-theatre-pc-update.html' title='DIY Home Theatre PC - Update'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-367093239094671544</id><published>2006-11-24T09:39:00.000-04:00</published><updated>2006-11-24T23:08:05.565-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='skype'/><category scheme='http://www.blogger.com/atom/ns#' term='voip'/><category scheme='http://www.blogger.com/atom/ns#' term='diy'/><title type='text'>Replace your phone service with Skype</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/x/blogger2/5163/4267/1600/606716/skylpe.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://photos1.blogger.com/x/blogger2/5163/4267/200/279197/skylpe.png" alt="" border="0" /&gt;&lt;/a&gt;The folks over at &lt;a href="http://www.linuxjournal.com/"&gt;Linuxjournal.com&lt;/a&gt; have a &lt;a href="http://www.linuxjournal.com/article/8592"&gt;nifty how-to guide&lt;/a&gt; for replacing your PSTN phone service (that's Public Switched Telephone Network, for people like me, who are still new to this whole VOIP thing) with a &lt;a href="http://www.skype.com/"&gt;Skype &lt;/a&gt;based solution.&lt;br /&gt;&lt;br /&gt;This is rather slick...&lt;br /&gt;&lt;br /&gt;The author claims that his "solution was to build a Skype server that provides 24/7 phone service with the minimum of hassle and fuss. By dumping your regular phone company and taking back control of your home phone wiring using a Skype server, you will have not only a phone system with nearly the same capabilities as before-indeed, in some ways better-you will also save a bundle of money! In my case, I save a little less than $700 US each year (this year, next year, and the year after that, and so on), or about 82% off of my old phone bill."&lt;br /&gt;&lt;br /&gt;Hmmm... 82% is a lot of dough.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update:&lt;/span&gt;&lt;br /&gt;Darn. The SkypeIn service (details on the &lt;a href="http://www.skype.com/"&gt;Skype website&lt;/a&gt;) is not yet available in Canada. Well, it is, but my next door neighbours would have to call a number in some other country to get me... and that's not going to happen.&lt;br /&gt;&lt;br /&gt;Oh well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-367093239094671544?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/367093239094671544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/367093239094671544'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/11/replace-your-phone-service-with-skype.html' title='Replace your phone service with Skype'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-6744841291272718134</id><published>2006-11-23T13:02:00.000-04:00</published><updated>2006-11-23T13:11:14.523-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='htpc'/><category scheme='http://www.blogger.com/atom/ns#' term='diy'/><title type='text'>Freevo - the MythTV Alternative?</title><content type='html'>So I've been doing some more reading into my Digital home theatre project (it seems I've been doing a lot of reading lately). I came across an alternative to MythTV: &lt;a href="http://freevo.sourceforge.net/"&gt;Freevo&lt;/a&gt;. As the name suggests, this is intended to be a free (as in you put hours of work into something and place no actual monetary value on your time) alternative to TiVo.&lt;br /&gt;&lt;br /&gt;It looks interesting. I'm not sure if there is any general consensus  as to which is better, but it is probably worth some additional  investigation.&lt;br /&gt;&lt;br /&gt;I did find a bunch of &lt;a href="http://digg.com/linux_unix/Freevo_-_Because_small_is_beautiful"&gt;comments on someone's digg post&lt;/a&gt; that argue both sides of the fence, which wasn't very helpful. I wanted to post a screenshot, but the ones on Freevo's site don't seem to work (which isn't very encouraging).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-6744841291272718134?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/6744841291272718134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/6744841291272718134'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/11/freevo-mythtv-alternative.html' title='Freevo - the MythTV Alternative?'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-7765146500741990619</id><published>2006-11-22T13:40:00.000-04:00</published><updated>2006-11-22T13:55:11.529-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='htpc'/><category scheme='http://www.blogger.com/atom/ns#' term='mythtv'/><title type='text'>Why MythTV?</title><content type='html'>I've been doing some more reading, and it seems that MythTV is a logical choice for the Home Theatre PC I want to put together. Here are some of the features offered by MythTV:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Basic 'live-tv' functionality. Pause/Fast Forward/Rewind "live" TV.&lt;/li&gt;&lt;li&gt;Support for multiple tuner cards and multiple simultaneous recordings.&lt;/li&gt;&lt;li&gt;Distributed architecture allowing multiple recording machines and multiple playback machines on the same network, completely transparent to the user.&lt;/li&gt;&lt;li&gt;Compresses video in software using rtjpeg (from Nuppelvideo) or mpeg4 (from libavcodec). Full support for Hardware MPEG-2 encoder cards (Hauppauge PVR-250 / PVR-350). Preliminary support for DVB cards and the new pcHDTV tuner card.&lt;/li&gt;&lt;li&gt;Support for the (very nice looking) hardware MPEG-2 decoder and TV out present on the Hauppauge PVR-350.&lt;/li&gt;&lt;li&gt;Completely automatic commercial detection/skipping&lt;/li&gt;&lt;li&gt;Grabs program information using xmltv.&lt;/li&gt;&lt;li&gt;A fully themeable menu to tie it all together.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Here's what it looks like (the above info and the below screenshot are taken from the &lt;a href="http://www.mythtv.org/"&gt;MythTV website&lt;/a&gt;):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger2/5163/4267/1600/bluetvmenu.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger2/5163/4267/320/bluetvmenu.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;All in all, this looks like a pretty good system. Of course, my wife will insist that it's aesthetically pleasing as well, and that could be more of a challenge...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-7765146500741990619?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/7765146500741990619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/7765146500741990619'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/11/why-mythtv.html' title='Why MythTV?'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-2102731342673981070</id><published>2006-11-22T07:53:00.000-04:00</published><updated>2006-11-22T08:00:34.177-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='htpc'/><category scheme='http://www.blogger.com/atom/ns#' term='mythtv'/><category scheme='http://www.blogger.com/atom/ns#' term='diy'/><title type='text'>DIY Home Theater</title><content type='html'>Last night I realized that I am using a VCR that is older than my oldest child, and she hits the double digits next year.&lt;br /&gt;&lt;br /&gt;I'm getting old.&lt;br /&gt;&lt;br /&gt;Rather than wallow in self pity, though,  I decided to focus my energy into something productive. It's time to do away with the elderly analog VCR and try building a Home Theater PC. I've been thinking about this for quite some time, and believe it's time to give it a go.&lt;br /&gt;&lt;br /&gt;Although I don't have the specifics worked out, I am certain that &lt;a href="http://www.mythtv.org"&gt;MythTV &lt;/a&gt;will be a component of the final mix. This is a free, Tivo-like package that does not require a subscription.&lt;br /&gt;&lt;br /&gt;Besides, I think that getting my Asterisk system working is going to take awhile. I need to have a success of some sort in the meantime.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-2102731342673981070?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/2102731342673981070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/2102731342673981070'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/11/diy-home-theater.html' title='DIY Home Theater'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-5524986902003557449</id><published>2006-11-21T14:33:00.000-04:00</published><updated>2006-11-21T14:36:48.942-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='voip'/><category scheme='http://www.blogger.com/atom/ns#' term='gui'/><category scheme='http://www.blogger.com/atom/ns#' term='asterisk'/><title type='text'>Interesting Add On for Asterisk</title><content type='html'>While planning for my Asterisk install, it occurred to me that someone has almost certainly already built and released an open source project for web based administration of the server. While I have by no means completed my research into this topic, I did stumble across a very nice package called &lt;a href="http://www.voiceone.it/"&gt;VoiceOne&lt;/a&gt;. This seems to be almost exactly what I will need.&lt;br /&gt;&lt;br /&gt;Here is a sample screenshot of the application. It looks very promising.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/x/blogger2/5163/4267/1600/851834/4_configurator.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/x/blogger2/5163/4267/320/575669/4_configurator.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-5524986902003557449?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/5524986902003557449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/5524986902003557449'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/11/interesting-add-on-for-asterisk.html' title='Interesting Add On for Asterisk'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-5514360526907424612</id><published>2006-11-21T07:54:00.000-04:00</published><updated>2006-11-21T09:43:44.402-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='voip'/><category scheme='http://www.blogger.com/atom/ns#' term='asterisk'/><title type='text'>Asterisk update</title><content type='html'>I've been doing some more reading about the hardware requirements and options for setting up an Asterisk PBX, and came across this information:&lt;br /&gt;&lt;br /&gt;"If you build an Asterisk system without the need for PCI cards, you have a much greater set of choices for what kind of computer to run Asterisk on. If things are configured correctly, the ATAs are handling all of the load for coding/decoding digitized streams of voice to/from analog. You have a better chance of being able to successfully share a computer for asterisk and some other tasks. There are some great choices in small form factor computers. It's even possible to run Asterisk on a Linksys WRT54GS, but that box is a bit too underpowered for a full featured Asterisk configuration. Linksys also sells ATAs with firmware from Sipura. Now it's been announced that Linksys is buying Sipura. I haven't seen any reports on hacking the version of the WRT54G with the embedded ATA yet, but I'm hoping we might see some pretty cool things soon."&lt;br /&gt;&lt;br /&gt;Please note that I fixed some spelling errors in this prior to putting it here. I can't help it; the English prof in me takes precedence over the nerd from time to time. Anyway, it sounds a lot like the external box (i.e. &lt;span class="arialgrey12px"&gt;the Linksys - Sipura SPA-3000&lt;/span&gt;) might be a better solution given that I'm using older hardware for my home installation of Asterisk. After a bit of browsing, I found an &lt;a href="http://www.canadianvoipstore.com/product_info.php?cPath=96_124&amp;products_id=203&amp;amp;osCsid=6417ddd36d27c6d36a73accfa0b509b5"&gt;excellent price on one here&lt;/a&gt;, in Canada. I'm tempted to try this using my Linksys WRT54GS router, but since that's currently &lt;a href="http://poormanstech.blogspot.com/2006/10/making-double-biquad.html"&gt;connecting my antenna to the Internet&lt;/a&gt;, I might be asking it to do more than it can.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-5514360526907424612?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/5514360526907424612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/5514360526907424612'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/11/asterisk-update.html' title='Asterisk update'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-3081421378647634996</id><published>2006-11-20T15:17:00.000-04:00</published><updated>2006-11-20T15:36:07.428-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='backup'/><title type='text'>Automatic Backups with rdiff-backup</title><content type='html'>I finally got around to finishing my backup scripts. My goal was to have off site backup of machines on my internal network to a remote location, through a secure tunnel established with &lt;a href="http://www.openvpn.net/"&gt;OpenVPN&lt;/a&gt;. I elected to go with &lt;a href="http://www.nongnu.org/rdiff-backup/"&gt;rdiff-backup&lt;/a&gt;, as it permits nifty features like point-in-time recovery (i.e. restore this file/directory/whatever as it was on a certain date at a certain time). I set up a machine in the same physical location as the servers I wanted to back up as a primary backup server (so as to permit speedy recovery without having to go through the tunnel), and then backed up once a day off site to the remote machine.&lt;br /&gt;&lt;br /&gt;It turned out to be pretty easy.&lt;br /&gt;&lt;br /&gt;The first step was to allow automatic backups without human intervention. The way that rdiff-backup works is actually pretty cool. You establish a connection to the remote server using some login facility such as telnet, rlogin, or ssh (I went with ssh for obvious reasons -- it's the most secure), and then execute the rdiff-backup program on the remote machine, telling it to send the files across the network to wherever you want them backed up. This means that rdiff-backup has to be installed on both the "server" and the "clients". Installation is a snap.&lt;br /&gt;&lt;br /&gt;The next step is to create a "backupuser" account on all machines, and use Public Key Infrastructure (PKI) to permit secure unattended logins.&lt;br /&gt;&lt;br /&gt;This is relatively simple. First, create the account on all machines (i.e. adduser command). Next, generate a public/private keypair for the account as follows:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;trolius&gt; ssh-keygen2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Generating 2048-bit dsa key pair&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   1 oOo.oOo.o&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Key generated.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;2048-bit dsa, user@Local, Wed Mar 22 2002 00:13:43 +0200&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Passphrase : &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Again :&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Private key saved to  /home/backupuser/.ssh/id_dsa_2048_a&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Public key saved to   /home/backupuser/.ssh/id_dsa_2048_a.pub&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Note that you might get slightly different feedback depending on your version of OpenSSH. Next, rename the generate private and public keys to whatever your OpenSSH requires them to be (hint: read /etc/ssh/sshd_config for a clue). Copy the keys to the remote machines, and log into each once so that you can say "yes" when prompted as to whether or not you want to accept the keys.&lt;br /&gt;&lt;br /&gt;Finally, back everything up! These commands will do it for you:&lt;br /&gt;&lt;pre&gt;/usr/local/bin/rdiff-backup \&lt;br /&gt; backupuser@192.168.0.16::/home/httpd \&lt;br /&gt; /backup/luther/httpd&lt;br /&gt;&lt;/pre&gt;Note that the slashes (\) are there to keep the command from going out of the text area on the blog; you can use them or not, as you wish, when you type the actual commands. This command backs up /home/httpd on "luther" to /backup/luther/httpd on the machine which originated the command (i.e. the one that is receiving the backup).&lt;br /&gt;&lt;pre&gt;rdiff-backup -r 3D /backup/luther/httpd/somedir/ \&lt;br /&gt;/home/backupuser/tmp/&lt;/pre&gt;This will restore the entire "somedir" directory to the local directory /home/backupuser/tmp/ as it was three days ago. The "r" stands for "restore as of". You can use a variety of formats to specify date, time, etc. Other acceptable time strings include 5m4s (5 minutes and 4 seconds) and 2002-03-05 (March 5th, 2002).&lt;br /&gt;&lt;br /&gt;I ran the backups once, to ensure that everything is backed up, and then added each command as a crontab in /etc/crontab to run it hourly on the "primary" backup server. I then added similar entries on the crontab of the remote backup server, to run once a day at 4:00 AM.&lt;br /&gt;&lt;br /&gt;Couldn't be simpler, and I can sleep better at night knowing my data is stored redundantly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-3081421378647634996?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/3081421378647634996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/3081421378647634996'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/11/automatic-backups-with-rdiff-backup.html' title='Automatic Backups with rdiff-backup'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-1426237530745155323</id><published>2006-11-20T13:38:00.000-04:00</published><updated>2006-11-20T14:14:33.094-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='voip'/><category scheme='http://www.blogger.com/atom/ns#' term='asterisk'/><title type='text'>Planning the Asterisk Install</title><content type='html'>After reviewing the basic instructions &lt;a href="http://www.voip-info.org/wiki/index.php?page=Asterisk+hardware+home+analog"&gt;found here&lt;/a&gt;,  it would appear that I need to purchase PCI  cards with Foreign eXchange Station (FXS) ports, and with Foreign Exchange Office ports. Telephones are connected to the FXS ports, and phone lines are connected to the FXO ports.&lt;br /&gt;&lt;br /&gt;Apparently bad things happen if you get this wrong. FXS ports provide power and generate ring signals, while FXO ports receive power and ring signals. I'll have to be careful with that.&lt;br /&gt;&lt;br /&gt;I'm also going to need an Analog Telephone Adaptor, or ATA, that acts as a gateway between my digital network (the Asterisk box) and plain old analog phones and phone lines. Fortunately, the most common ATAs offer FXS ports, so there is less hardware to buy (and money to spend).&lt;br /&gt;&lt;br /&gt;Apparently there has been considerable success using the TDM400P with a couple of daughter cards for a self contained PC to handle everything. Or, we could go with the Sipura 3000 (a stand alone box that you connect your Asterisk machine to via ethernet). I guess it all comes down to price.&lt;br /&gt;&lt;br /&gt;Pricing out the first option, the Digium TDM400P, doesn't look too bad. I found a decent price here, at &lt;a href="http://www.voipdepot.ca/index.php?main_page=product_info&amp;amp;products_id=55"&gt;voipdepot.ca&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;My, what a wonderful new crop of acronyms to learn. I connect from the CO to my FXO, then go through my ATA to FXS to connect to a phone and get dial tone. What fun.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-1426237530745155323?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/1426237530745155323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/1426237530745155323'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/11/planning-asterisk-install.html' title='Planning the Asterisk Install'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-5085308258885232142</id><published>2006-11-19T08:43:00.000-04:00</published><updated>2006-11-19T15:50:50.113-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='voip'/><category scheme='http://www.blogger.com/atom/ns#' term='asterisk'/><category scheme='http://www.blogger.com/atom/ns#' term='diy'/><title type='text'>Why install Asterisk at home?</title><content type='html'>I've had a number of people ask me why I would be interested in installing &lt;a href="http://asterisk.org/"&gt;Asterisk PBX&lt;/a&gt; at home. Well, there are a number of reasons. First, I pay for voice mail and a few other features on my home phones, and it costs me a bit of cash every month. The &lt;a href="http://en.wikipedia.org/wiki/Pbx"&gt;PBX &lt;/a&gt;will pay for itself inside of a year. The main reason, though, is functionality. Here are some of the features that are of interest to me:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; Sophisticated Voice Mail system - This can provide a mail box per person, that can be deliver notification by e-mail. Web based access to your voice mail is also available. &lt;/li&gt;&lt;li&gt; Interactive Voice Response IVR system - You can present callers with a menu, which can be particularly useful if you have more people in the house than you have incoming phone lines. "Press 1 for Him, Press 2 for Her, Press 3 for Kid No. 1, Press 4 for Kid No. 2"... &lt;/li&gt;&lt;li&gt; Control over which phones ring, and at what times. &lt;/li&gt;&lt;li&gt;Functions as an Intercom - Place in house calls. &lt;/li&gt;&lt;li&gt;Call routing - Route incoming calls by Caller ID. &lt;/li&gt;&lt;li&gt;Multi-line functionality - if you need more than 2 incoming lines, you will quickly discover that phones that handle more than two lines are much more expensive than 1 or 2 line phones, and there isn't very much selection available.&lt;br /&gt;&lt;/li&gt;&lt;li&gt; Call Detail Reports  - for attempting to gain some control over costs, and/or teenagers, etc.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Check your voice mail over the web.&lt;/li&gt;&lt;li&gt;Email notification of voice mail.&lt;/li&gt;&lt;/ul&gt;There are many more features, but even this brief overview shows the kind of control you can have.&lt;br /&gt;&lt;br /&gt;Plus, it's cool. And although I do hate to admit it, there is a fairly wide "geek" streak in me. It rears its ugly head sometimes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-5085308258885232142?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/5085308258885232142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/5085308258885232142'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/11/why-install-asterisk-at-home.html' title='Why install Asterisk at home?'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-9129394153661899349</id><published>2006-11-18T07:44:00.000-04:00</published><updated>2006-11-18T10:47:17.253-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='voip'/><category scheme='http://www.blogger.com/atom/ns#' term='asterisk'/><category scheme='http://www.blogger.com/atom/ns#' term='diy'/><title type='text'>Progress with Asterisk</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/x/blogger2/5163/4267/1600/968890/a.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://photos1.blogger.com/x/blogger2/5163/4267/200/53893/a.png" alt="Asterisk logo" title="Asterisk Logo" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I've made some progress with my &lt;a href="http://www.asterisk.org"&gt;Asterisk &lt;/a&gt;PBX planning. As I indicated earlier, I had to do a re-install of the operating system on my backup server (From &lt;a href="http://www.freebsd.org/"&gt;FreeBSD &lt;/a&gt;to &lt;a href="http://www.centos.org/"&gt;CentOS&lt;/a&gt;) first, and I've managed to get that out of the way. I've also developed a strong appreciation and respect for the "yum" package manager. It's very good, and as easy to use as ports on FreeBSD.&lt;br /&gt;&lt;br /&gt;Anyway, I've begun the work necessary to build a simple PBX system at home, using Asterisk. I figure I'll practice at home, and if it works well, eventually migrate my business onto the same system. At this point, it's largely reading and research, as I have to (gasp) actually purchase some hardware in order to make this work.&lt;br /&gt;&lt;br /&gt;Apparently, I'm going to need a PSTN interface card.&lt;br /&gt;&lt;br /&gt;For those not in the know (like me, up until recently), PSTN stands for Public Switched Telephone Network. Also, POTS is Plain Old Telephone Service. And in case you were wondering, PBX stands for Private Branch eXchange. Wikipedia has some great info on the &lt;a href="http://en.wikipedia.org/wiki/Pbx"&gt;history of the PBX&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I'm sorry for the digression.&lt;br /&gt;&lt;br /&gt;A PSTN interface card is the basic device that permits you to connect analog or digital phone lines (the ones that you use at work or at home to connect regular phones to) to your PBX. Once you've done that you have access to all the nifty features that Asterisk offers, such as call parking, voice mail, and so forth.&lt;br /&gt;&lt;br /&gt;There is a &lt;a href="http://www.voip-info.org/wiki/view/Asterisk+hardware"&gt;helpful site found here&lt;/a&gt; that details all of the various cards known to work well with Asterisk. I'm going to have to do some serious price comparison for awhile, and find one known to work well with my system.&lt;br /&gt;&lt;br /&gt;This is going to take awhile.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-9129394153661899349?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/9129394153661899349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/9129394153661899349'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/11/progress-with-asterisk.html' title='Progress with Asterisk'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-403155088837644765</id><published>2006-11-16T20:38:00.000-04:00</published><updated>2006-11-21T15:10:47.482-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wireless'/><category scheme='http://www.blogger.com/atom/ns#' term='wifi'/><category scheme='http://www.blogger.com/atom/ns#' term='antenna'/><title type='text'>No go on the cheese grater</title><content type='html'>After some careful consideration, I've decided to give the slotted wave guide antenna a miss. I only have 10 fingers, and I'm particularly attached to them. I spoke with a friend who does metal work, and asked him if he thought I could do it... and I think he's still laughing.&lt;br /&gt;&lt;br /&gt;Oh well...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-403155088837644765?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/403155088837644765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/403155088837644765'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/11/no-go-on-cheese-grater.html' title='No go on the cheese grater'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-1681478165039867750</id><published>2006-11-16T17:50:00.000-04:00</published><updated>2006-11-16T17:53:20.144-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='voip'/><category scheme='http://www.blogger.com/atom/ns#' term='asterisk'/><title type='text'>Asterisk - VOIP for the handyman</title><content type='html'>While configuring my backup server, it occurred to me that this would be an ideal time to try working with Asterisk, the free VOIP solution available for Linux. Naturally, this entails re-doing much of what I have already done with Samba, as I chose FreeBSD as my operating system. I'll have to strip it and go with CentOS instead. Sigh.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.asterisk.org/"&gt;Asterisk site&lt;/a&gt; claims that Asterisk is a complete PBX in software. It runs on Linux, BSD and MacOSX and provides all of the features you would expect from a PBX and more. Asterisk does voice over IP in many protocols, and can interoperate with almost all standards-based telephony equipment using relatively inexpensive hardware. However, my research has indicated that it runs best on Linux, so Linux it is.&lt;br /&gt;&lt;br /&gt;I'll keep you posted. And this time I'll take notes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-1681478165039867750?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/1681478165039867750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/1681478165039867750'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/11/asterisk-voip-for-handyman.html' title='Asterisk - VOIP for the handyman'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-7099640841193325748</id><published>2006-11-12T18:02:00.000-04:00</published><updated>2006-11-12T22:54:38.737-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wireless'/><category scheme='http://www.blogger.com/atom/ns#' term='wifi'/><category scheme='http://www.blogger.com/atom/ns#' term='diy'/><category scheme='http://www.blogger.com/atom/ns#' term='antenna'/><title type='text'>Slotted Waveguide Antenna for 802.11x</title><content type='html'>&lt;a href="http://www.trevormarshall.com/waveguides.htm"&gt;This looks interesting&lt;/a&gt;... This is a slotted waveguide antenna, which is an alternative to the double-biquad on a satellite dish I put together last month. According to Trevor Marshall's site, this is a rather good design for Wifi network reception. I wonder how hard it would be to make one of these...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.trevormarshall.com/slotted1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 205px; height: 528px;" src="http://www.trevormarshall.com/slotted1.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.trevormarshall.com/waveguides.htm"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-7099640841193325748?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/7099640841193325748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/7099640841193325748'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/11/slotted-waveguide-antenna-for-80211x.html' title='Slotted Waveguide Antenna for 802.11x'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-6965200653333773067</id><published>2006-11-12T15:20:00.002-04:00</published><updated>2006-11-13T16:10:27.635-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wireless'/><category scheme='http://www.blogger.com/atom/ns#' term='wifi'/><category scheme='http://www.blogger.com/atom/ns#' term='dd-wrt'/><title type='text'>Making your own portable internet</title><content type='html'>As promised, here are the details for making your own, I'll-only-pay-for-this-once "portable Internet." The goal here is simple: we are going to take a standard wireless router and use the "antennna-side" to connect to an existing wireless network as a client, and then use the "wired ports-side" on that hub to connect our machine(s) to the Internet.&lt;br /&gt;&lt;br /&gt;This is really a trivial exercise. There are only two things you'll need:&lt;br /&gt;&lt;br /&gt;1) A wireless base station that supports dd-wrt;&lt;br /&gt;2) A copy of &lt;a href="http://www.dd-wrt.com/"&gt;dd-wrt&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The first is strictly a matter of preference and budget. I went with the readily available Linksys WRT54G model. You can find them &lt;a href="http://www.staples.ca/ENG/Catalog/cat_sku.asp?webid=511830&amp;AffixedCode=WW"&gt;all over the place&lt;/a&gt;, but whatever you do, make certain that you look at the serial number prior to buying it. The newest releases are not able to run any version of dd-wrt, as Linksys (in their infinite wisdom) has somewhat crippled them by reducing the amount of flash memory they have. Ensure that you have nothing later than version 7.0 by comparing the serial number on the outside of the box against &lt;a href="http://en.wikipedia.org/wiki/Linksys_WRT54G"&gt;this chart on Wikipedia&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you want to spend a bit more, but get a machine with some additional horsepower, then the kind folks at dd-wrt recommend the &lt;a href="http://www.cdw.ca/shop/products/specs.aspx?EDC=1010097"&gt;Buffalo Airstation WHR-HP-G54&lt;/a&gt;. It costs a few dollars more, but it's worth it. Not only is it more aesthetically pleasing, but it also has loads of memory, and (so I am told) a better range than the Linksys models. I didn't do this. I wish I had.&lt;br /&gt;&lt;br /&gt;Once you have your wireless router, simply &lt;a href="http://www.dd-wrt.com/dd-wrtv2/downloads.php"&gt;download the appropriate version of dd-wrt by going here&lt;/a&gt;. Installation is trivial; just follow the &lt;a href="http://www.dd-wrt.com/wiki/index.php/Index:Install"&gt;instructions here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Once you have that done, this is a trivial exercise.&lt;br /&gt;&lt;br /&gt;1) Run an ethernet cable from one of the router ports on the back of your wireless hub to the ethernet port of your pc/mac/laptop/whatever.&lt;br /&gt;&lt;br /&gt;2) Start up a web browser on your computer.&lt;br /&gt;&lt;br /&gt;3) Access the following URL http://192.168.1.1&lt;br /&gt;&lt;br /&gt;4) Click on the "Status" tab. When prompted, type in the username/password to get into the admin tool (by default, these are set to root/admin. Please change them).  Then click on the "Wireless" subtab.&lt;br /&gt;&lt;br /&gt;5) Scroll down till you see "Wireless Nodes". Click on "Site Survey".&lt;br /&gt;&lt;br /&gt;7) A window opens showing all available networks. Pick one that you can legally connect to, and click "Join".  When a button allowing you to continue shows up, click it.&lt;br /&gt;&lt;br /&gt;8) Next you are bounced to the "Basic Settings" for wireless config page. Ensure that "Client" is chosen in the drop down menu, and click "Save Settings".&lt;br /&gt;&lt;br /&gt;You are done. Wasn't that easy? For future connects, you simply have to repeat steps 3 through 8 to pick the network you want to connect to. It only takes a few seconds. Personally, I find performing a 10 second routine is preferable to giving someone $50/month.... but that's just my opinion.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-6965200653333773067?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/6965200653333773067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/6965200653333773067'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/11/making-your-own-portable-internet_1693.html' title='Making your own portable internet'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-116325141665132211</id><published>2006-11-11T09:09:00.000-04:00</published><updated>2007-05-07T09:28:24.940-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wireless'/><category scheme='http://www.blogger.com/atom/ns#' term='wifi'/><title type='text'>Rogers Portable Internet</title><content type='html'>I live in a fairly rural part of Canada, and this means that we sometimes lag behind other parts of the world for the latest technical advances to become available. We were late getting digital cell phone coverage, Vonage service, Cable modems (although we did have DSL coverage long before the rest of the country for some strange reason).&lt;br /&gt;&lt;br /&gt;However, this should not not be any kind of barrier to the truly dedicated. After all, my goal is to get much of this kind of functionality for free, or at least as close to free as I can get. Besides, you will often see larger corporations doing little more than charging you a monthly fee for something you could get for free yourself.&lt;br /&gt;&lt;br /&gt;&lt;strike&gt;Take Rogers in Canada, for instance. They now offer the "&lt;a href="http://www.shoprogers.com/store/cable/InternetContent/portable.asp"&gt;Portable Internet&lt;/a&gt;". This is a Wifi adaptor that connects to your computer, and then searches for and connects to available Wifi networks&lt;/strike&gt;. &lt;em&gt;As some readers have helpfully pointed out, Rogers portable internet is not a Wifi service at all. Mea culpa, and my apologies to Rogers. However, you can still use this post and its followup to connect to free Wifi networks if you happen to have any nearby.&lt;/em&gt; This is a great idea, and Rogers helpfully supplies you with coverage maps showing where the "hot spots" are throughout the country. &lt;strike&gt;What they neglect to tell you is that in a lot of cases the "coverage area" is not supplied by Rogers at all. In fact, all they are really doing is renting you a piece of hardware for what seems to me to be a very high price (at the time of this writing, you pay approximately $100 for the "modem" and $50/month for the service). Given the fact that all they really need to do is ship you the "modem", and someone else is providing the actual connectivity, this is a bit outrageous.&lt;/strike&gt;&lt;br /&gt;&lt;br /&gt;In fact, you can give yourself &lt;strike&gt;exactly the same service as Rogers&lt;/strike&gt; excellent access to available free Wifi Networks in your area for a one time fee of about $50.00. It involves purchasing the &lt;a href="http://en.wikipedia.org/wiki/Wrt54g"&gt;appropriate wireless router&lt;/a&gt; and installing &lt;a href="http://www.dd-wrt.com/"&gt;dd-wrt&lt;/a&gt; on it.&lt;br /&gt;&lt;br /&gt;I'm going to post detailed instructions for doing so here. &lt;strike&gt;I like Rogers' network, and in fact subscribe to a number of their services... but this $50/month for the right to use someone else's network strikes me as usurious.&lt;/strike&gt;&lt;br /&gt;&lt;br /&gt;Stay tuned...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-116325141665132211?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/116325141665132211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/116325141665132211'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/11/rogers-portable-internet.html' title='Rogers Portable Internet'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-116308254740801179</id><published>2006-11-09T10:27:00.000-04:00</published><updated>2006-11-12T22:44:06.084-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wireless'/><category scheme='http://www.blogger.com/atom/ns#' term='wifi'/><category scheme='http://www.blogger.com/atom/ns#' term='antenna'/><title type='text'>Antenna Update</title><content type='html'>My &lt;a href="http://poormanstech.blogspot.com/2006/10/making-double-biquad.html"&gt;double biquad antenna&lt;/a&gt; got a real test last night. We had seriously heavy rainfall, and I am told that water absorbs radio frequency in the 2.4 GHz range (the range used by WiFi). I am pleased to report that it worked flawlessly throughout the entire storm.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-116308254740801179?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/116308254740801179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/116308254740801179'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/11/antenna-update.html' title='Antenna Update'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-116300655051390410</id><published>2006-11-08T13:20:00.000-04:00</published><updated>2006-11-12T22:42:36.444-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='samba'/><title type='text'>Yes, it was the caffeine</title><content type='html'>It turns out that caffeine deprivation is not a good thing. Following copious quantities of Jamaican Blue Mountain bean,  I successfully mounted Trolius (my new Samba server) on the network as a master browser. It worked, and I have no idea what I did differently. This is why I usually write things down as I do them.&lt;br /&gt;&lt;br /&gt;The next step is to relocate this machine to a remove location, connect to the network at the office using OpenVPN, and start experimenting with rdiff-backup. Hopefully I'll have some time to do that over the weekend.&lt;br /&gt;&lt;br /&gt;It's good to be back to coffee. I don't think I'll try giving it up again...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-116300655051390410?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/116300655051390410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/116300655051390410'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/11/yes-it-was-caffeine.html' title='Yes, it was the caffeine'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-116292998913726538</id><published>2006-11-07T15:53:00.000-04:00</published><updated>2006-11-12T22:44:20.823-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='samba'/><title type='text'>Irritations with Samba</title><content type='html'>I've been drinking less coffee lately, and that might go a long way towards explaining why I had such trouble trying to configure Samba last night. This should have been a trivial exercise, but my forehead is sore from banging it against the wall so much.&lt;br /&gt;&lt;br /&gt;As a side note,  I  need to get softer walls.&lt;br /&gt;&lt;br /&gt;The installation of  Samba on FreeBSD is trivial. Just type:&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;cd /usr/ports/net/samba&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;make install clean&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Wait a bit, and suddenly you have samba installed. The startup scripts are, as usual, in:&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;/usr/local/etc/rc.d &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;and the configuration files are in&lt;span style=";font-family:courier new;font-size:85%;"  &gt;:&lt;br /&gt;&lt;br /&gt;/usr/local/etc/samba&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Nothing unusual there.&lt;br /&gt;&lt;br /&gt;The next step is to modify the sample configuration file (smb.conf). I copied it (to save the original) and opened it up. Wow. There are a lot of options in there. I decided to try something simple at first, just to get it working. I had formatted the filesystem to leave a large (750 gig) partition mounted as /archive. That was where I planned to have rdiff-backup store everything. Why not make that mount as a Windows fileserver? That should be easy.&lt;br /&gt;&lt;br /&gt;Using the existing smb.conf file as a starting point, I examined some of the sample entries. Here's the one I went with:&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;br /&gt;;[public]&lt;br /&gt;;   path = /usr/somewhere/else/public&lt;br /&gt;;   public = yes&lt;br /&gt;;   only guest = yes&lt;br /&gt;;   writable = yes&lt;br /&gt;;   printable = no&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;This seemed simple enough, so I changed it to this (removing the semicolons, which are comment markers):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;[Archive]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   path = /archive&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   public = yes&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   writable = yes&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;That looked easy enough. I made the change, entered some simple stuff at the top (server name, etc.) and started the process. Typing ps ax | grep smb showed that the process was running, so I fired up a Windows laptop, typed this in the address bar of a window:&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;\\trolius.local\Archive&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;(trolius.local being the name of the box I am working on, obviously). Lo and behold, the server mounted! Great. Well, that was easy. Just to be sure that things were working as expected, I opened the "My Network Places" icon on my desktop, and browsed the local network.&lt;br /&gt;&lt;br /&gt;No server.&lt;br /&gt;&lt;br /&gt;And it's still not there. And I can't figure out why. I think I'll purchase some coffee and try again. Caffeine solves so many problems...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-116292998913726538?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/116292998913726538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/116292998913726538'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/11/irritations-with-samba.html' title='Irritations with Samba'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-116284246224106135</id><published>2006-11-06T15:45:00.000-04:00</published><updated>2006-11-12T22:44:34.196-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='samba'/><title type='text'>Step one complete...</title><content type='html'>I took the time necessary to do a clean install of FreeBSD 6.1 on my dual processor Compaq last evening. It was, as is usually the case with FreeBSD, a very painless process.&lt;br /&gt;&lt;br /&gt;The only thing that was a bit annoying was setting up the SMP part of the kernel. By default, FreeBSD does not use a kernel that supports multiple processors. Fortunately, this is a simple thing to do (although it did take quite a while to compile).&lt;br /&gt;&lt;br /&gt;Tonight I hope to start experimenting with Samba, and see how much it's changed since I last gave it any consideration. I'll also install rdiff-backup, as (if things go well) I'll need it fairly soon anyway.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-116284246224106135?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/116284246224106135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/116284246224106135'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/11/step-one-complete.html' title='Step one complete...'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-116264775077169443</id><published>2006-11-04T09:40:00.000-04:00</published><updated>2006-11-12T22:44:46.577-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>"The rumours of my death...."</title><content type='html'>In my previous post I had suggested that Tiny Sofa linux was in hibernation. Apparently this is not true, as anyone with enough initiative to visit their website can see. It was updated to tinysofa classic server 2.0 Update 6 (Ceara)  just last month. To be fair, I was talking about the Enterprise version of this distro, which hasn't seen a significant update since February, 2005.&lt;br /&gt;&lt;br /&gt;Mea culpa.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-116264775077169443?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/116264775077169443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/116264775077169443'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/11/rumours-of-my-death.html' title='&quot;The rumours of my death....&quot;'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-116264607158658813</id><published>2006-11-04T09:03:00.000-04:00</published><updated>2006-11-12T22:45:02.215-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='freebsd'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Picking an Operating System</title><content type='html'>Step one in getting my "this isn't going to cost me anything 'cause we'll just use open source and exising hardware" file server up and running is, of course, picking an appropriate operating system. I've always been somewhat agnostic in this area; I run a number of FreeBSD boxen, a couple of Macs, several Linux machines, and so forth. In the BSD world, I do have a decided preference for &lt;a href="http://www.freebsd.org/"&gt;FreeBSD&lt;/a&gt;  As for Linux, I used to use a distro called &lt;a href="http://www.tinysofa.org/"&gt;Tiny Sofa&lt;/a&gt;, but it appears to have gone into hibernation. Currently, I've been using &lt;a href="http://www.centos.org/"&gt;CentOS&lt;/a&gt;, a repackaged version of &lt;a href="http://www.redhat.com/"&gt;Red Hat&lt;/a&gt; Enterprise Linux 4, without the subscription fee. (I did visit &lt;a href="http://www.distrowatch.com/"&gt;distrowatch.com&lt;/a&gt; to see what was "cool" these days, but decided that it's turned into little more than a popularity contest).&lt;br /&gt;&lt;br /&gt;The hardware I want to work with is an elderly Compaq, with dual Pentium III processors, tons of disk space and a gig of RAM. While this might seem museum-quality gear to to uninitiated, please bear in mind that we'll be running this without the Redmond tax, and without the (massive) overhead required by Windows. In fact, we won't run any windowing system at all; everything will be set up via the command line. If we want a GUI of some sort for administration, we'll find an open source web service that fits the bill, and run it from there.&lt;br /&gt;&lt;br /&gt;Anyway, back to the process of choosing an operating system. A primary consideration, of course, is maintenance. I don't want to even think about this machine once it is up and running.  Thus, updates should be painless. Well, CentOS has a pretty simple to use update manager (typing "yum update" and hitting the "y" a couple of times is pretty easy). But it's very hard to beat the ports system in FreeBSD.&lt;br /&gt;&lt;br /&gt;After a bit of research into hardware compatibility, reliability, etc., I could not come up with a compelling reason to go with one operating system over the other. What it finally came down to was this: I found the FreeBSD install CD before I located my CentoOS disks.&lt;br /&gt;&lt;br /&gt;FreeBSD it is!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-116264607158658813?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/116264607158658813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/116264607158658813'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/11/picking-operating-system.html' title='Picking an Operating System'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-116258173219823924</id><published>2006-11-03T15:16:00.000-04:00</published><updated>2006-11-20T15:52:13.506-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='backup'/><category scheme='http://www.blogger.com/atom/ns#' term='samba'/><title type='text'>Replacing a Windows Fileserver</title><content type='html'>We have been using an elderly Pentium II with an ancient install of Windows NT Server as our primary backup and file server for quite some time now. I was considering simply retiring the box,  and replacing it with a newer machine with Windows Server 2003 (some variation thereof), when it occurred to me that reading about the open source alternative, &lt;a href="http://www.samba.org/"&gt;Samba&lt;/a&gt;, has been on my to do list for quite some time.&lt;br /&gt;&lt;br /&gt;Why make Microsoft any richer, when there is a free alternative out there?&lt;br /&gt;&lt;br /&gt;This would also give me a chance to  try  out &lt;a href="http://rdiff-backup.nongnu.org/"&gt;rdiff-backup&lt;/a&gt;, a rather nifty open source back up solution with point-in-time recovery (i.e. restore this file/directory/whatever to the condition it was last Tuesday at 11:23 AM). That would be very, very helpful in my line of work.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Goal:&lt;/span&gt; use existing hardware and free software to create a fully functional Windows compatible file server and turf the elderly NT server solution. At the same time, design and implement a set-and-forget, point-in-time recovery capable backup strategy that will regularly poll live servers and our internal network and back everything up.&lt;br /&gt;&lt;br /&gt;I'm going to start reading now. I'll keep you posted.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-116258173219823924?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/116258173219823924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/116258173219823924'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/11/replacing-windows-fileserver.html' title='Replacing a Windows Fileserver'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-116162537468072866</id><published>2006-10-23T14:26:00.000-03:00</published><updated>2006-11-12T22:45:26.608-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wireless'/><category scheme='http://www.blogger.com/atom/ns#' term='wifi'/><category scheme='http://www.blogger.com/atom/ns#' term='antenna'/><title type='text'>Success!</title><content type='html'>This past weekend I finally found the time to assemble everything and give the dish/double biquad antenna a try, and it worked surprisingly well.&lt;br /&gt;&lt;br /&gt;Here's how it went: first, I downloaded a copy of  dd-wrt  from &lt;a href="http://www.dd-wrt.com/"&gt;http://www.dd-wrt.com&lt;/a&gt;, and used it to replace the built in OS on my Linksys WRT54G wireless router. It turned out to be a simple enough process, and took less than 30 minutes. By the way, it's amazing the additional functionality this replacement router OS offers -- even if you are not interested in building your own antenna, you should give this a look. It's a serious improvement.&lt;br /&gt;&lt;br /&gt;Next, I removed one of the antennas from the router, and connected the router directly to the double biquad using a pigtail cable. I was preparing to hook the double biquad to a dish when I noticed that the router was already reporting more than a dozen available access points -- even without the dish!&lt;br /&gt;&lt;br /&gt;This was phenomenal.&lt;br /&gt;&lt;br /&gt;I browsed through the available access points to discover that the free wireless network I wanted to connect to was already showing up as available -- and this from inside my house, at my kitchen table. I Clicked on "Join" from within the dd-wrt admin tool, and lo and behold, I was suddenly connected to the internet. Admittedly, this was only a 1  meg connection, but I figured that would improve when I mounted the antenna to the dish, and put the dish on the roof. I made a note of the MAC address of the machine I had connected to so I could figure out just how far away the access point was.&lt;br /&gt;&lt;br /&gt;Next, I mounted the double biquad onto the satellite dish. I decided to try the StarChoice dish first, as it was the largest, and I figured it would collect the strongest signal. Mounting was simple enough. I simply tore apart the LNB and then used a power drill and a wood screw to mount it to the plastic housing. That was simple. After I finished, it occurred to me that I should probably have taken into account the fact that I live in Canada, and we don't have the mildest of winters. So, it was off to the dollar store to see if I could find a microwave safe, watertight plastic container to cover the antenna. This turned out to be simple as well. Armed with a Xacto knife and a tube of silicone sealant, I proceeded to mount the assembly a second time, this time in a waterproof container.&lt;br /&gt;&lt;br /&gt;An hour later I was up on the roof, and trying to point the dish where I knew there to be an access point or two.&lt;br /&gt;&lt;br /&gt;It took some experimentation, but I managed to get a stable, relatively fast 4 meg connection to the wireless network in town.&lt;br /&gt;&lt;br /&gt;Ah, the sweet smell of success.... and money saved.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-116162537468072866?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/116162537468072866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/116162537468072866'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/10/success.html' title='Success!'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-115998233977079325</id><published>2006-10-04T14:05:00.000-03:00</published><updated>2006-11-12T22:45:59.186-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='biquad'/><category scheme='http://www.blogger.com/atom/ns#' term='wireless'/><category scheme='http://www.blogger.com/atom/ns#' term='wifi'/><category scheme='http://www.blogger.com/atom/ns#' term='diy'/><category scheme='http://www.blogger.com/atom/ns#' term='antenna'/><title type='text'>Making the double biquad</title><content type='html'>I had some time last night, so I decided to make the actual double biquad part of the antenna. As I said in a recent posting, I used the ground wire from standard household electrical wiring. I used a permanent marker (the kind used to write on recordable cds) to mark out the location of the various bends. According the what I found online, each side of the "diamonds" should be as close to 30.5mm as possible.&lt;br /&gt;&lt;br /&gt;At first, I tried using two pairs of pliers to make the bends as sharp as possible, but that didn't work very well. I then switched to using a vise:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7054/3880/1600/vise.1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/7054/3880/320/vise.1.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7054/3880/1600/bending.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/7054/3880/320/bending.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;That worked much better. After a bit, I had something like this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7054/3880/1600/middle_bend.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/7054/3880/320/middle_bend.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;It took some effort, but I had it completed in about a half an hour. Now, I needed something to attach it to. I took the bit of 3/4" copper piping I got for free from a local hardware store and soldered it to my copper reflector plate. I also used a dremel tool to remove a few millimetres from one edge, so that the antenna would not touch it when it came up from the pipe. The result looked like this. Note the excess solder. I don't do this sort of thing often enough.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7054/3880/1600/reflector.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/7054/3880/320/reflector.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I then soldered a center post to the n-connector (which protruded through the center of the pipe), and tried to solder it to the finished double biquad. What a serious pain that turned out to be. After some thought, it occurred to me that I probably should have made the center post of the biquad part of the double biquad itself -- i.e., why snip it off when I could have simply bent it 90 degrees straight down. Also, I snipped the two ends that should have been soldered to the pipe a bit short, and soldering them to the copper piping turned out to be rather problematic.&lt;br /&gt;&lt;br /&gt;I plan on trying this again. This time, I'll make the center post and the double biquad out of a single piece of copper, and leave the two "tails" that have to be connected to the pipe a bit longer than they need to be. I'll use the dremel to create two small grooves in the top of the pipe, lay the two tail ends in those grooves, and put a drop of solder on each. That should make things simpler.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-115998233977079325?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/115998233977079325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/115998233977079325'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/10/making-double-biquad.html' title='Making the double biquad'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-115971870518895648</id><published>2006-10-01T12:51:00.000-03:00</published><updated>2006-11-21T15:11:17.079-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='biquad'/><category scheme='http://www.blogger.com/atom/ns#' term='wireless'/><category scheme='http://www.blogger.com/atom/ns#' term='wifi'/><category scheme='http://www.blogger.com/atom/ns#' term='diy'/><category scheme='http://www.blogger.com/atom/ns#' term='antenna'/><title type='text'>Biquad Wifi - making progress</title><content type='html'>I've come much closer to getting the antenna ready for trial. First, I've acquired a dish. This set me back the staggering sum of $10.00 + shipping from eBay.  Just to be safe, I picked up one for nothing from a yard sale, just moments before it closed, as well. The first (pictured below) is a Dish Network model; the second is an elliptical model. I'll try both, and go with the one that has the stronger signal.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7054/3880/1600/dish.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/7054/3880/320/dish.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Next, I picked up some 15mm tall 3/4" copper piping from a local hardware store. They actually didn't even charge me for these, which I thought was very kind of them.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7054/3880/1600/copper_pipe.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/7054/3880/320/copper_pipe.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I picked up a few feet of standard household wiring out of the mess in my "don't throw this stuff away 'cause you might need it someday" box in my basement. Used my trusty pocket knife to open this up and extract the ground wire. That way, I don't have to strip the insulation off of the wire.&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7054/3880/1600/wire.0.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/7054/3880/320/wire.0.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7054/3880/1600/wire2.1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/7054/3880/320/wire2.1.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-115971870518895648?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/115971870518895648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/115971870518895648'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/10/biquad-wifi-making-progress.html' title='Biquad Wifi - making progress'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-115955243349575748</id><published>2006-09-29T14:53:00.000-03:00</published><updated>2006-11-12T22:46:26.957-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vpn'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>Easy Certs</title><content type='html'>FYI, I stumbled on a nifty (and free) utility to generate the certificates you need to use with OpenVPN.&lt;br /&gt;&lt;br /&gt;You can find it here:&lt;br /&gt;&lt;a href="http://openvpn.se/mycert/"&gt;&lt;br /&gt;http://openvpn.se/mycert/ &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-115955243349575748?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/115955243349575748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/115955243349575748'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/09/easy-certs.html' title='Easy Certs'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-115955208342466633</id><published>2006-09-29T14:42:00.000-03:00</published><updated>2006-11-12T22:46:57.128-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vpn'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>OpenVPN client configuration</title><content type='html'>Configuring OpenVPN for client use turned out to be rather simple.  We installed the OpenVPN GUI found at http://openvpn.se, and then went to the configuration files stored in this location:&lt;br /&gt;&lt;br /&gt;c:\program files\openvpn\config&lt;br /&gt;&lt;br /&gt;First, we copied the files we generated on the server to this folder. Since I was installing on a laptop, I named my key files "laptop.key" and "laptop.crt". I placed copies of those files in this folder. I also need the "ca.crt" file from the server stored in this location. All three files were copied over using a USB thumb drive, so there is no risk of them getting into the wrong hands.&lt;br /&gt;&lt;br /&gt;My configuration file looked like this:&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;client&lt;br /&gt;remote 205.174.168.29 1194&lt;br /&gt;&lt;br /&gt;dev tun&lt;br /&gt;# proto udp&lt;br /&gt;comp-lzo&lt;br /&gt;ca ca.crt&lt;br /&gt;cert laptop.crt&lt;br /&gt;key laptop.key&lt;br /&gt;&lt;br /&gt;verb 3&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I then double clicked on the OpenVPN icon in the system tray, and lo and behold, I was connected to the local network at work!&lt;br /&gt;&lt;br /&gt;After a bit though, it started randomly dropping the connection and then reconnecting. This was annoying, so I did a bit more digging.&lt;br /&gt;&lt;br /&gt;By adding these lines to the config, the connection became much more stable:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;persist-key&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; persist-tun&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-115955208342466633?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/115955208342466633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/115955208342466633'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/09/openvpn-client-configuration.html' title='OpenVPN client configuration'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-115948280091448927</id><published>2006-09-28T19:25:00.000-03:00</published><updated>2006-12-11T18:02:56.808-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vpn'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>OpenVPN Server configuration</title><content type='html'>As promised, here are some more details about how I configured my OpenVPN server. The machine in question is running a recent build of FreeBSD, with ports installed. If you haven't used FreeBSD, you might want to consider it. It's a very easy to use, stable system (although if you've ever tried to run a serious Java application on it, you'll quickly become frustrated. FreeBSD + threads = headache, IMHO).&lt;br /&gt;&lt;br /&gt;Installing  OpenVPN on FreeBSD is as simple as this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;admin@max&gt;cd /usr/ports/security/openvpn&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;admin@max&gt;make install clean&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And that's it. After a few minutes, I had a nice, clean installation of OpenVPN. Now to configure it.&lt;br /&gt;&lt;br /&gt;In the FreeBSD world, configuration files are stored in /usr/local/etc/openvpn. So, I went there, and followed the instructions found here: &lt;a href="http://openvpn.net/howto.html#config"&gt;http://openvpn.net/howto.html#config&lt;/a&gt; (Please note that the docs indicate helpful scripts for setting up keys etc. are in /usr/share/doc/openvpn, but in the BSD world they seem to be in /usr/&lt;span style="font-weight: bold;"&gt;local&lt;/span&gt;/share/doc/openvpn).&lt;br /&gt;&lt;br /&gt;The only hiccup I ran into was that the docs give examples using the bash shell, and I tend to stick to tcsh. Not a big deal. I just ran these commands:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;admin@max&gt;pkg_add -r bash&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;admin@max&gt;rehash&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;admin@max&gt;exec bash&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;and I was in bash, where things all worked the docs indicated. Simple enough.&lt;br /&gt;&lt;br /&gt;Once I had all my certs set up, my final openvpn.conf file looked something like this:&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;[tcs@max] /usr/local/etc/openvpn&gt; cat openvpn.conf&lt;br /&gt;# Specify device&lt;br /&gt;dev tun&lt;br /&gt;proto udp&lt;br /&gt;&lt;br /&gt;# Server and client IP and Pool&lt;br /&gt;server 10.8.0.0 255.255.255.0&lt;br /&gt;ifconfig-pool-persist ipp.txt&lt;br /&gt;&lt;br /&gt;# Certificates for VPN Authentication&lt;br /&gt;ca /usr/local/etc/openvpn/ca.crt&lt;br /&gt;cert /usr/local/etc/openvpn/server.crt&lt;br /&gt;key /usr/local/etc/openvpn/server.key&lt;br /&gt;dh /usr/local/etc/openvpn/dh1024.pem&lt;br /&gt;&lt;br /&gt;# Routes to push to the client&lt;br /&gt;push "route 10.10.132.0 255.255.255.0"&lt;br /&gt;&lt;br /&gt;# route all traffic through vpn&lt;br /&gt;push "redirect-gateway def1"&lt;br /&gt;&lt;br /&gt;# Use compression on the VPN link&lt;br /&gt;comp-lzo&lt;br /&gt;&lt;br /&gt;push "dhcp-option DNS 10.10.132.123"&lt;br /&gt;&lt;br /&gt;# Make the link more resistent to connection failures&lt;br /&gt;keepalive 10 60&lt;br /&gt;ping-timer-rem&lt;br /&gt;persist-tun&lt;br /&gt;persist-key&lt;br /&gt;&lt;br /&gt;# Run OpenVPN as a daemon and drop privileges to user/group nobody user nobody&lt;br /&gt;group nobody&lt;br /&gt;daemon&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Finally, since I wanted to use my server as a gateway to my internal LAN, I had to change my pf.conf file (the firewall configuration). The relevant line looks like this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;# nat for vpn&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;nat on $int_if from $vpn_net to any -&gt; ($int_if)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;where $inf_if is the interface device connected to the internal network, and $vpn_net is the subnet I've assigned to the VPN (10.8.0.0/24).&lt;br /&gt;&lt;br /&gt;More on this, and on client configuration, when I have a bit more time.&lt;br /&gt;&lt;br /&gt;Update: &lt;a href="http://poormanstech.blogspot.com/2006/09/openvpn-client-configuration.html"&gt;Part three is here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-115948280091448927?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/115948280091448927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/115948280091448927'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/09/openvpn-server-configuration.html' title='OpenVPN Server configuration'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-115946512552446001</id><published>2006-09-28T14:33:00.000-03:00</published><updated>2006-11-17T07:49:22.903-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='biquad'/><category scheme='http://www.blogger.com/atom/ns#' term='wireless'/><category scheme='http://www.blogger.com/atom/ns#' term='wifi'/><category scheme='http://www.blogger.com/atom/ns#' term='diy'/><category scheme='http://www.blogger.com/atom/ns#' term='antenna'/><title type='text'>The Adventure Begins</title><content type='html'>So I've started getting together the things I'll need to build my &lt;a href="http://poormanstech.blogspot.com/2006/09/free-wifi-internet-for-around-20.html"&gt;biquad wifi antenna&lt;/a&gt;. After some scrounging and a few trips to the web, I have acquired the first two bits of equipment I need to start: copper, and an n-connector. They're not much to look at yet, but here they are:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7054/3880/1600/copper.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/7054/3880/320/copper.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The copper was free -- scrap donated from a local sheet metal shop, and bent into shape very carefully using a couple of bits of lumber. It was  fairly trivial.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7054/3880/1600/nconnector.0.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/7054/3880/320/nconnector.0.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The n-connector set me back slightly under six dollars. Next, I'll see if I can scrounge some copper wiring somewhere, and bend it into the appropriate shape.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-115946512552446001?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/115946512552446001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/115946512552446001'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/09/adventure-begins.html' title='The Adventure Begins'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-115917954398391640</id><published>2006-09-25T07:17:00.000-03:00</published><updated>2006-11-12T22:47:45.977-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wireless'/><category scheme='http://www.blogger.com/atom/ns#' term='wifi'/><category scheme='http://www.blogger.com/atom/ns#' term='diy'/><category scheme='http://www.blogger.com/atom/ns#' term='antenna'/><title type='text'>Free Wifi Internet for around $20</title><content type='html'>The city I live near has free WiFi Internet, with very good coverage inside the city limits. Unfortunately, I'm some 15 miles outside those limits, and thus forced to pay for either DSL or cablemodem service. This just doesn't seem right to me. Free Wifi access a scant 15 miles away? There has to be some way to connect.&lt;br /&gt;&lt;br /&gt;So, it's off to Google, and lo and behold, I discover this: &lt;a href="http://www.engadget.com/2005/11/15/how-to-build-a-wifi-biquad-dish-antenna/"&gt;How to build a biquad wifi antenna&lt;/a&gt;, over at Engadget. Given some copper, about $20 worth of gear, and a used satellite dish, you can vastly extend the range of a wifi network.&lt;br /&gt;&lt;br /&gt;A bit more reading over &lt;a href="http://martybugs.net/wireless/biquad/"&gt;here&lt;/a&gt;, at Martybugs, suggests that the actual antenna portion can get a higher gain with a few modifications to the design given at Engadget. Checking out Martybugs' sources leads me &lt;a href="http://www.trevormarshall.com/biquad.htm"&gt;here&lt;/a&gt;, to Trevor Marshall's information. This gives even more detailed information.  Hey -- I have a soldering iron and a highly developed sense of adventure, so why not?&lt;br /&gt;&lt;br /&gt;I think I'll give it a go. I'll keep you posted.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-115917954398391640?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/115917954398391640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/115917954398391640'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/09/free-wifi-internet-for-around-20.html' title='Free Wifi Internet for around $20'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-34960427.post-115912753407478079</id><published>2006-09-24T16:51:00.000-03:00</published><updated>2006-12-11T18:02:14.957-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vpn'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>Virtual Private Networking for Everyone - OpenVPN</title><content type='html'>I own a small tech firm on the East coast, and have long wanted a safe, secure method of connecting from my residence (about 15 miles outside of the city) to the LAN at the office. My network at the office is mixed, consisting of Windows XP machines, various Macs, and both Linux and FreeBSD servers. At home we have a single XP machine, and several Mac notebooks (iBooks and Intel-based MacBooks).&lt;br /&gt;&lt;br /&gt;Naturally, the best solution for connecting between the two locations would be a &lt;a href="http://en.wikipedia.org/wiki/Virtual_private_network"&gt;Virtual Private Network&lt;/a&gt; of some sort. Given the fact that I am notoriously cheap, I decided to search around and see if I could come up with some sort of open source solution... and it took me all of fifteen minutes with my favourite search engine to come up with a viable alternative: OpenVPN. It took me a bit longer to get everything working as well as I wanted to, but not all that long. Read on if you'd like to see how I did it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Why use a VPN?&lt;/span&gt;&lt;br /&gt;There are any number of reasons why you might want to have a VPN in place. For example, with a properly set up VPN, you can access resources at one location from the other. So if I want to print something at the office from home, I can do that. Similarly, if I need to recover a file from offsite back up (read: the backup server I keep in my basement) I can do that without having to drive all the way home.&lt;br /&gt;&lt;br /&gt;Of course, there are the more obvious things a VPN will give you. If you use a wireless home router that's more than a year or two old, chances are it uses one of the more archaic forms of encryption, like WEP. The problem with these encryption methods is that they don't actually protect your data; anyone with the inclination could park outside your house, apartment building, whatever, and "sniff" your network traffic. Encrypting all traffic between your web browser and some secure gateway will take the wind out of some potential hacker's sails. Remember, just because you're paranoid doesn't mean they're not out to get you....&lt;br /&gt;&lt;br /&gt;Or, if you're so paranoid you don't even trust your ISP, you can use a VPN between your home computer and a secure gateway you control somewhere else (like your office) and encrypt &lt;span style="font-style: italic;"&gt;all&lt;/span&gt;the traffic that exists on your ISP's network. It won't get decrypted until it hits your gateway machine. Of course, assuming you are a relatively law abiding citizen, this might be going a bit far (unless you are partial to tinfoil hats, that is).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Why OpenVPN?&lt;/span&gt;&lt;br /&gt;OpenVPN is free, cross platform, and relatively easy to install and maintain. It also uses a very secure ecryption algorithm -- 128 bit Secure Sockets Layer (SSL) or the same level of encryption you probably use when you access your banking information online. I figure if it's good enough for the major North American financial institutions, it's probably sufficient for my purposes.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Installing OpenVPN&lt;/span&gt;&lt;br /&gt;We decided to install OpenVPN on a FreeBSD box, using ports. It was trivial. We'll post a detailed howto here in a week or so. But if you have access to a FreeBSD box, ports is the way to go. Trust me.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Installing OpenVPN clients&lt;/span&gt;&lt;br /&gt;Reading the documentatation found on OpenVPN's web site suggests that this is a daunting task. It probably is, if you elect to go their route. We decided to stand on the shoulders of those who have gone before, and use some simple solutions where the heavy lifting is done for us.&lt;br /&gt;&lt;br /&gt;For the Windows clients, we went with &lt;span style="font-weight: bold;"&gt;OpenVPN GUI&lt;/span&gt; (&lt;a href="http://openvpn.se/"&gt;http://openvpn.se&lt;/a&gt;). Installing it took about 30 seconds, and configuring it took a bit longer (but not much).&lt;br /&gt;&lt;br /&gt;For the Macintosh clients, we went with &lt;span style="font-weight: bold;"&gt;Tunnelblick &lt;/span&gt;(&lt;a href="http://www.tunnelblick.net/"&gt;http://www.tunnelblick.net&lt;/a&gt;). Granted, it has a rather silly name, but it works very, very well, and didn't give us any problems on either the G4 based Macs, or the Intel based machines.&lt;br /&gt;&lt;br /&gt;Stay tuned for the technical details of how we made this all work...&lt;br /&gt;&lt;br /&gt;Update: &lt;a href="http://poormanstech.blogspot.com/2006/09/openvpn-server-configuration.html"&gt;Part two is here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34960427-115912753407478079?l=poormanstech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/115912753407478079'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34960427/posts/default/115912753407478079'/><link rel='alternate' type='text/html' href='http://poormanstech.blogspot.com/2006/09/virtual-private-networking-for.html' title='Virtual Private Networking for Everyone - OpenVPN'/><author><name>TCS</name><uri>http://www.blogger.com/profile/01553699770315427913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry></feed>
