<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The Open Coder &#187; dynamic dns</title>
	<atom:link href="http://www.opencoder.co.uk/tag/dynamic-dns/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.opencoder.co.uk</link>
	<description>Helping the fellow geek</description>
	<lastBuildDate>Fri, 15 Apr 2011 12:25:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>FreeBSD secure mailserver</title>
		<link>http://www.opencoder.co.uk/2010/05/freebsd-secure-mailserver/</link>
		<comments>http://www.opencoder.co.uk/2010/05/freebsd-secure-mailserver/#comments</comments>
		<pubDate>Sat, 08 May 2010 18:16:10 +0000</pubDate>
		<dc:creator>Chris McDonald</dc:creator>
				<category><![CDATA[Servers]]></category>
		<category><![CDATA[dynamic dns]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[imap]]></category>
		<category><![CDATA[router]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[smtp]]></category>

		<guid isPermaLink="false">http://www.opencoder.co.uk/?p=237</guid>
		<description><![CDATA[Very recently I decided to clean my home FreeBSD server  and start from scratch, meaning deleting everything and reinstalling FreeBSD. The fact that I happened to do this after completely messing up my ports system is purely coincidence&#8230; I took the time to try out the new FreeBSD release 8.0, so I downloaded the iso [...]]]></description>
			<content:encoded><![CDATA[<p>Very recently I decided to clean my home FreeBSD server  and start from scratch, meaning deleting everything and reinstalling FreeBSD. The fact that I happened to do this after completely messing up my ports system is purely coincidence&#8230; <img src='http://www.opencoder.co.uk/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>I took the time to try out the new FreeBSD release 8.0, so I downloaded the iso from the <a title="FreeBSD.org" href="http://www.freebsd.org/where.html" target="_blank">FreeBSD site</a>, burned it and installed it on my home server (the server I&#8217;m referring to is in this <a title="Creating a home web server" href="http://www.opencoder.co.uk/2009/08/creating-a-home-web-server/" target="_blank">post</a>). After reinstalling all the ports I had on it previously (Apache, MySQL, PHP5, PHP5-extensions, Java 1.6, Openfire etc.), I decided to go one step further and try something I hadn&#8217;t done before, get email working.</p>
<h3>DNS settings</h3>
<p>To be able to receive email I needed a domain, now it happens that I purchased <a title="Chris McDonald - Open Coder" href="http://chrismcdonald.co.uk" target="_blank">chrismcdonald.co.uk</a> at some point last year, got it very cheap for 2 years from 123-reg. The domain wasn&#8217;t really doing anything and was just being used to forward to this blog (and still is), so I decided to get more use out of it and use a subdomain to point to my home server. I set the hostname of my FreeBSD server to <em>server.chrismcdonald.co.uk</em> by adding <em>hostname=&#8221;server.chrismcdonald.co.uk&#8221;</em> to /etc/rc.conf and added an entry in /etc/hosts so that it would resolve locally. So my hosts file now contained:</p>
<pre>127.0.0.1               localhost server.chrismcdonald.co.uk
</pre>
<p>To get the domain to point to my home server I changed my dns records for <em>chrismcdonald.co.uk</em> and added a CNAME record pointing <em>server.chrismcdonald.co.uk</em> to my dynamic dns host <em>chris.is-a-geek.net</em>. I also added an MX record for the root domain which directs email to <em>chrismcdonald.co.uk</em> to <em>chris.is-a-geek.net</em>. Dynamic DNS allows users with a non-static IP (most home internet users) to use a host name to refer to your system&#8217;s ip address, which might change whenever you connect to your ISP. It works by having your home system contact the dynamic dns provider every so often to make sure the ip address mapping is kept up to date. I use <a title="DynDNS.com" href="http://www.dyndns.com/" target="_blank">dyndns.com</a>, you can create a free account with them where you can create some free host names to use. You get to pick your own subdomain from any one of the domains they allow you to use, I chose the domain <em>is-a-geek.net</em> and my subdomain <em>chris</em>. My wireless router has built in support to work with dyndns.com and keep my host ip address updated, but if yours does not, there are some instructions also in my <a title="Creating a home web server part 2" href="http://www.opencoder.co.uk/2009/09/creating-a-home-web-server-part-2/" target="_blank">older post</a> to get this working on FreeBSD.</p>
<h3>Receiving mail</h3>
<p>To ensure I could send and receive email past my wireless router, I added some port forwards for ports 25 (smtp), 465 (secure smtp) and 993 (secure imap), I already have existing port forwards set up for web and ssh access. Sendmail is configured by default to only allow sending of email and receiving mail only from localhost. To enable sendmail to receive mail externally I added this line to /etc/rc.conf and started sendmail again.</p>
<pre>sendmail_enable="YES"

/etc/rc.d/sendmail stop
/etc/rc.d/sendmail start</pre>
<p>OK so with the domain name sorted out and sendmail set to receive external mail I tried testing it out. I logged into another remote server, which was located outside of my local network on the internet. I used telnet to attempt to manually send an email. Below is the transcript, my commands are in bold, square brackets are for your server name and email.</p>
<pre><strong>telnet server.chrismcdonald.co.uk 25</strong>
Connected to chris.is-a-geek.net.
Escape character is '^]'.
220 server.chrismcdonald.co.uk ESMTP Sendmail 8.14.4/8.14.3; Sat, 8 May 2010
12:08:15 +0100 (BST)
<strong>HELO [remote server name]</strong>
250 server.chrismcdonald.co.uk Hello [remote server name and ip] , pleased
to meet you
<strong>MAIL FROM: [user@remoteserver]</strong>
250 2.1.0 [user@remoteserver]... Sender ok
<strong>RCPT TO: [user@server - in this case chris at chrismcdonald.co.uk]</strong>
550 5.7.1 [user@server]... Relaying denied
<strong>QUIT</strong>
221 2.0.0 server.chrismcdonald.co.uk closing connection</pre>
<p>So it appeared that my server was not accepting email for my domain. To fix this I created the file /etc/mail/local-host-names and added the following lines, you would add your own hostnames.</p>
<pre>chrismcdonald.co.uk
server.chrismcdonald.co.uk</pre>
<p>Then when I tried again:</p>
<pre><strong>telnet server.chrismcdonald.co.uk 25</strong>
Connected to chris.is-a-geek.net.
Escape character is '^]'.
220 server.chrismcdonald.co.uk ESMTP Sendmail 8.14.4/8.14.3; Sat, 8 May 2010
12:08:15 +0100 (BST)
<strong>HELO [remote server name]</strong>
250 server.chrismcdonald.co.uk Hello [remote server name and ip], pleased
to meet you
<strong>MAIL FROM: [user@remoteserver]</strong>
250 2.1.0 [user@remoteserver]... Sender ok
<strong>RCPT TO: [user@server - in this case chris at chrismcdonald.co.uk]</strong>
550 5.7.1 [user@server]... Recipient ok
<strong>DATA</strong>
354 Enter mail, end with "." on a line by itself
<strong>Subject: test email again
Just testing
.</strong>
250 2.0.0 o48BLo6R001500 Message accepted for delivery
<strong>QUIT</strong>
221 2.0.0 server.chrismcdonald.co.uk closing connection</pre>
<p>Sure enough I had the new email in my local mailbox (checked by running <em>mail</em>).</p>
<h3>IMAP access</h3>
<p>So now I could receive mail from outside, I looked around for a few guides to get started on setting up secure IMAP and secure SMTP sending. I needed a program that would provide IMAP access to mail and came across this <a title="Dovecot" href="http://www.freebsddiary.org/dovecot.php" target="_blank">blog post</a> on Dovecot on <a title="FreeBSD Diary" href="http://www.freebsddiary.org" target="_blank">freebsddiary.org</a>, this is a great site with loads of tutorials and info on FreeBSD. I followed the steps in the guide to install Dovecot with some minor adjustments.</p>
<pre>cd /usr/ports/mail/dovecot
make install clean</pre>
<p>Below are the make options I used:</p>
<div id="attachment_240" class="wp-caption aligncenter" style="width: 648px"><a href="http://www.opencoder.co.uk/wp-content/uploads/2010/05/dovecot_make_options1.png"><img class="size-full wp-image-240" title="Dovecot make options" src="http://www.opencoder.co.uk/wp-content/uploads/2010/05/dovecot_make_options1.png" alt="Dovecot make options" width="638" height="434" /></a><p class="wp-caption-text">Dovecot make options</p></div>
<p>You can follow those steps from freebsddiary if you are starting from scratch. I ignored the certificate stuff because I already had a self signed one created, I also chose to use PAM authentication, which uses your user account password to authenticate. The important bits which I changed from /usr/local/etc/dovecot.conf are below, change them where they occur in the file:</p>
<pre>protocols = imaps
ssl_cert_file = /etc/ssl/certs/server.chrismcdonald.co.uk.cert
ssl_key_file = /etc/ssl/private/server.chrismcdonald.co.uk.key
ssl_key_password = ******************
mail_location = mbox:~/mail/:INBOX=/var/mail/%u
protocol imap {
listen = *:143
ssl_listen = *:993
# Login executable location.
...
}
auth default {
  # Space separated list of wanted authentication mechanisms:
  #   plain login digest-md5 cram-md5 ntlm rpa apop anonymous gssapi otp skey
  #   gss-spnego
  # NOTE: See also disable_plaintext_auth setting.
  mechanisms = plain login
...
}
</pre>
<p>Then add the following to /etc/rc.conf and start dovecot.</p>
<pre>dovecot_enable="YES"

/usr/local/etc/rc.d/dovecot start</pre>
<p>Now I access my mail using imap securely over port 993. So far the server is able to receive mail, send mail (only from localhost) and has secure imap access to read mail, if this is suitable for what you need you can stop here. If you want to be able to send mail from another machine using your secure smtp read on.</p>
<h3>SMTP sending</h3>
<p>I found a couple more guides on having secure smtp authentication <a title="Secure SMTP and POP access on FreeBSD" href="http://www.hydrus.org.uk/journal/secure-mail.html" target="_blank">here</a> and <a title="FreeBSD as a secure mailserver" href="http://www.puresimplicity.net/~hemi/freebsd/sendmail.html" target="_blank">here</a>. I did not follow those steps but borrowed some from both guides. The common setup appears to use cyrus sasl (Simple Authentication and Security Layer) for the authentication and to configure sendmail to use it. SASL SASL support is not build into sendmail by default, the guides said to recompile sendmail from its source /usr/src/usr.sbin/sendmail which I couldn&#8217;t find, I guess these things are all done using the ports system now, so here&#8217;s what I installed.</p>
<pre>cd /usr/ports/security/cyrus-sasl2
make install clean
cd /usr/ports/security/cyrus-sasl2-saslauthd
make install clean
cd /usr/ports/mail/sendmail-sasl
make install clean</pre>
<p>Then I needed to enable the sasl daemon by editing /etc/rc.conf and adding this line and starting the sasl daemon.</p>
<pre>saslauthd_enable="YES"

/usr/local/etc/rc.d/saslauthd start</pre>
<p>Finally sendmail needed to be configured to use secure smtp authentication, I also copied my certificate files that I generated a while back into  /etc/mail/certs. I copied the default <em>freebsd.mc</em> and <em>freebsd.submit.mc</em> files located in /etc/mail to <em>server.chrismcdonald.co.uk.mc</em> and <em>server.chrismcdonald.co.uk.submit.mc</em> and edited <em>server.chrismcdonald.co.uk.mc</em>. Then following bits from both guides I added the following:</p>
<pre>dnl set SASL options
TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
define(`confAUTH_MECHANISMS', `GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
dnl Offer SMTP AUTH only after encryption (STARTTLS) has been negotiated
define(`confAUTH_OPTIONS',`p,y')dnl

define(`CERT_DIR', `/etc/mail/certs')dnl
define(`confCACERT_PATH', `CERT_DIR')dnl
define(`confCACERT', `CERT_DIR/server.chrismcdonald.co.uk.cert')dnl
define(`confSERVER_CERT', `CERT_DIR/server.chrismcdonald.co.uk.cert')dnl
define(`confSERVER_KEY', `CERT_DIR/server.chrismcdonald.co.uk.key')dnl
define(`confCLIENT_CERT', `CERT_DIR/server.chrismcdonald.co.uk.cert')dnl
define(`confCLIENT_KEY', `CERT_DIR/server.chrismcdonald.co.uk.key')dnl
DAEMON_OPTIONS(`Port=smtps, Name=TLSMTA, M=s')dnl</pre>
<p>The lines starting with <em>dnl</em> are comments and those backticks ` are not typos, the opening quote is a backtick and the closing one a normal apostrophe. Finally after running the following in /etc/mail I had secure smtp authentication working:</p>
<pre>make
make install
make restart
</pre>
<p>Well, that&#8217;s it for another post, sorry it was such a long one. I am buying a couple of real servers on eBay that wer e going pretty cheap, the kind they use in datacentres. I will probably have a go at getting internal dns working, so that I won&#8217;t be restricted to a single server working at home. If it works I will do another post on it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.opencoder.co.uk/2010/05/freebsd-secure-mailserver/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Creating a home web server (part 2)</title>
		<link>http://www.opencoder.co.uk/2009/09/creating-a-home-web-server-part-2/</link>
		<comments>http://www.opencoder.co.uk/2009/09/creating-a-home-web-server-part-2/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 00:53:22 +0000</pubDate>
		<dc:creator>Chris McDonald</dc:creator>
				<category><![CDATA[Servers]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[dynamic dns]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[server]]></category>

		<guid isPermaLink="false">http://www.opencoder.co.uk/?p=37</guid>
		<description><![CDATA[Ok, in my previous post, which was a while ago now (I must make an effort to post more often), I wrote about installing FreeBSD and setting up your home router to give a fixed ip address for your server and forward some relevant ports on your router to make it accessible from outside of [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, in my previous <a title="Creating a home web server" href="http://www.opencoder.co.uk/2009/08/creating-a-home-web-server" target="_self">post</a>, which was a while ago now (I must make an effort to post more often), I wrote about installing FreeBSD and setting up your home router to give a fixed ip address for your server and  forward some relevant ports on your router to make it accessible from outside of your local network. Up until now you should have a working FreeBSD server that you can ssh into using its local address. Your server so far does not do very much, lets install some software to make it a useful server.</p>
<h3>Installing Apache</h3>
<p>We are now going to install apache from the ports collection, remember I said the ports collection was important and that you definitely wanted to include it in the install process? The ports collection is a massive collection of free software, mostly source code which has been specifically <em>ported</em> to work on FreeBSD. You install a port by compiling the source code and copying the compiled binary files to the relevant places. Fortunately you don&#8217;t have to do this manually, the ports have a Makefile which will do most if not all the work for you.</p>
<p>Let&#8217;s start by installing the latest version of apache 2.2 which is located in /usr/ports/www/apache22, you will see there is a Makefile. You can install almost any port with a make file by just running <em>make install clean</em>, in some cases you can run make config to set any configuration options before actually compiling and installing, this applies here, run <em>make config</em>,  you will be presented with a window with some configuration options, you can change these if you want if you already know there are certain Apache requirements you want, otherwise accept the defaults, press the tab key so OK is selected and press enter. Then run make install clean, it will then go about downloading,  compiling the source code, install  the files and any required dependencies. Make a cup of tea, this might take a while. Whenever you are installing software on your FreeBSD server it is always best to do it via the ports collection, firstly because you are getting the software that is most likely to work on your system. Secondly when you install a port, other ports will know about the installed software, thereby the installed port  can be used by other ports as a software dependency because the system knows where those installed port programs should be. Thirdly the dependencies are all managed for you. If one port relies on some other software that is not installed, in most cases the make file will go about installing that port for you, in some cases, especially when installing an upgraded port you might run into problems you have to solve manually. For instance, when I tried upgrading apache, I ran into this problem:</p>
<pre>Found libtool-1.5.26, but you need to upgrade to libtool&gt;=2.2</pre>
<p>The make process failed for apache because of this dependency that it couldn&#8217;t solve automatically, in this case I had to find out where the libtool port existed (/usr/ports/devel/libtool22) and install that first. You may run into this kind of problem along the way when administering your server but once you get used to installing ports you will find it a walk in the park,the internet is your friend if you run into any problems. The final reason why you should install from the ports collection is a combination of all three, it&#8217;s easier!</p>
<p>After apache has finished installing, you need to add a line in /etc/rc.conf so that apache will be started automatically when the computer first starts, as root edit rc.conf and add the following.</p>
<pre>apache22_enable="YES"</pre>
<h3>Installing MySQL Server</h3>
<p>Now lets install mysql server, there are a few different versions to choose from, I would recommend going with 5.1, you can try 6.0 if you want. Go to /usr/ports/databases/mysql51-server and type:</p>
<pre>make install clean</pre>
<p>This is going to take a very long time, longer than apache. When its finished, type rehash, this will refresh you shell path variables so that you will have access to the new binaries installed with mysql server.  After that, you can run the mysql install script which initialises mysql server. Just type mysql_install_db. To make mysql automatically start like we did for apache you need to the following to /etc/rc.conf:</p>
<pre>mysql_enable="YES"</pre>
<p>You will probably want to change the mysql root password, I think by default it doesn&#8217;t require a password and that is probably a bad thing. Just like in unix where the root account can do anything, so to in mysql the root account can do anything to any database on the system. To set a password use:</p>
<pre>mysqladmin -u root password 'mypassword'</pre>
<p>The quotes are important here. Now if you restart your machine you should have both apache and mysql running, but you don&#8217;t have to restart to start using them. In FreeBSD most software that runs as a long term process (i.e. a daemon) is stored in the rc.d directory and are avaible to start and stop. System daemons you will find in /etc/rc.d/, user installed programs such as mysql-server and apache are found in /usr/local/etc/rc.d/. These programs are actually known as rc scripts, many of them can be configured to start when the system starts up. They all usually have a common way to start and stop them, for instance you can do the following for mysql-server:</p>
<pre>/usr/local/etc/rc.d/mysql-server start
/usr/local/etc/rc.d/mysql-server stop
/usr/local/etc/rc.d/mysql-server status</pre>
<p>These are pretty self explanatory, the status option shows whether or not the daemon is running. These scripts start the processes making sure they run under the correct user (mysql runs under the user mysql, apache runs by default under the www user) and performing the necessary commands to start or stop the process. You can start and stop mysql server this way, but for apache there is a better command called apachectl. If you need to start apache you can run apachectl start, if you want to restart it (because you&#8217;ve made some config changes) its best to use apachectl graceful, this will keep any clients connected and do a safe restart.</p>
<h3>Installing PHP 5</h3>
<p>Now on to PHP and the php extensions, this port is located in /usr/ports/lang/php5. This has the same process, I&#8217;ll put all the steps in the one go:</p>
<pre>make install clean
cd /usr/ports/lang/php5-extensions
make install clean</pre>
<p>For the php extensions you can choose what you need, definitely enable mysql if you are planning to work with mysql and php.</p>
<p>Finally we have a few steps to perform on our apache config file to get php to work with it and to change which files our web server points to. As root edit the apache config file:</p>
<pre>edit /usr/local/etc/apache22/httpd.conf</pre>
<p>Change the document root to where ever you want, there are two places to change this. This is the default directory on the system that you want apache to serve on the web.</p>
<pre>#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "/usr/local/www/apache22/data"

#
# This should be changed to whatever you set DocumentRoot to.
#
&lt;Directory "/usr/local/www/apache22/data"&gt;</pre>
<p>Ok, now we need to make sure php files are recognised by apache, do a search for DirectoryIndex in the file and add index.php before index.html as below. You can change this according to which file you want apache to give preference to, if you put index.php first then apache will look first for an index.php before index.html in a folder to serve.</p>
<pre>#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
&lt;IfModule dir_module&gt;
 DirectoryIndex index.php index.php3 index.html index.htm
&lt;/IfModule&gt;</pre>
<p>Now lets make sure that the php install process has added the php extension in apache. Make sure that this extension is in the exensions list, if not, add it.</p>
<pre>LoadModule php5_module  libexec/apache22/libphp5.so</pre>
<p>Nearly done, now add the two lines at the end of the file, which tell apache that php and phps files should be handled by php.</p>
<pre>AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps</pre>
<p>That should be it, you now have a FAMP server! Now lets make sure you can get to it from outside.</p>
<h3>Setting up Dynamic DNS</h3>
<p>In order to get over the problem of your broadband provider assigning you ip addresses that can change at any time you use dynamic dns. This involves installing a program which periodically updates a server with your current IP address. I used <a title="DynDNS.com" href="http://www.dyndns.com" target="_blank">dyndns</a> for my home server. They are very good and charge nothing. The way it works is you can sign up for a free account with them, you get to pick a subdomain and one of their many domain names. For instance I chose chris.is-a-geek.net. You can then download their client program which periodically updates their servers with your current ip address, so that anyone that types in for instance, <a title="My DynDNS domain" href="http://chris.is-a-geek.net" target="_blank">http://chris.is-a-geek.net</a> will end up at my current ip address. Now luckily for me, my wireless router has a section in its admin interface for configuring dynamic dns and DynDNS.org (.org or .com its the same site) is a supported option. I just enabled the Dynamic DNS option on my router and entered my DynDNS account username and password. With this up and running it meant my router was now contactable via the domain chris.is-a-geek.net. Now together with the router port forwards that I mentioned in my <a title="Creating a home web server" href="http://www.opencoder.co.uk/2009/08/creating-a-home-web-server/" target="_blank">previous post</a> I now had a web server that is accessible via the internet, and you can too!</p>
<p>If your broadband router does not have an option for dynamic dns, don&#8217;t dispair! There is a port for a dynamic dns client on FreeBSD called ddclient, to get it working follow these steps:</p>
<pre>cd /usr/ports/dns/ddclient
make install clean
cd /usr/local/etc
cp ddclient.conf.sample ddclient.conf
edit ddclient.conf</pre>
<p>Do a search for a line that starts with use=web, remove the comment # to activate that line, it should say the following:</p>
<pre>use=web, web=checkip.dyndns.org/, web-skip='IP Address'</pre>
<p>Now uncomment the section for your dynamic dns provider and enter your account login details, domain name and save.<br />
Remember I mentioned rc scripts, well this has one too, you can enable ddclient to start when the system starts by editing rc.conf and adding the following lines:</p>
<pre>ddclient_enable="YES"
ddclient_flags="-daemon 600"</pre>
<p>This tells ddclient to start on system start up and to update the dynamic dns provider with the current ip address every 600 seconds. You can change this value, don&#8217;t set it too low or your dynamic dns provider might get annoyed and block you, don&#8217;t set it too long either. As ddclient has an rc script you don&#8217;t have to wait to restart for it to work, just run as root:</p>
<pre>/usr/local/etc/rc.d/ddclient.sh start</pre>
<p>You should now have an accessible web server! You can point existing domains you own to your home server by adding a CNAME (canonical name) record in your domain dns records. For instance I have set up a CNAME dns record for the subdomain server.opencoder.co.uk to point to chris.is-a-geek.net (if you ping both of these you will see they resolve to the same ip address). This way you can point many domains to your home server and be able to run different websites for those domains by setting up apache virtual hosts (I won&#8217;t cover this here, maybe in a later post).</p>
<p>That&#8217;s it for now, there are many more things you can put on your server to make it even more useful. I may do more posts in the future covering a few of them. That&#8217;s enough of this for now, I need to get more techy and start writing about programming, anyway hope you found this info useful. By they way if you are interested in learning more about freebsd I&#8217;d highly recommend getting a copy of <em>Absolute FreeBSD 2nd Edition by Michael W. Lucas</em> and for instructions on using FreeBSD as a server, <em>Building a server with FreeBSD 7 by Bryan J. Hong</em>. There are also a few good posts about FreeBSD port management and installing FreeBSD with nice screenshots at my work colleague Luis&#8217; blog <a title="LupoMontero blog" href="http://www.lupomontero.com" target="_blank">http://www.lupomontero.com</a>. We are working closely with Luis on an interesting project called <a title="StickyWorld" href="http://www.stickyworld.com" target="_blank">StickyWorld</a>, which involves posting stickynotes on work in realtime in a flash based &#8216;room&#8217;. I will no doubt be writing about that soon, until then, have fun with your server.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.opencoder.co.uk/2009/09/creating-a-home-web-server-part-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

