<?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>netwizards.co.uk</title>
	<atom:link href="http://netwizards.co.uk/feed/" rel="self" type="application/rss+xml" />
	<link>http://netwizards.co.uk</link>
	<description>Network Wizardry!</description>
	<lastBuildDate>Sun, 20 May 2012 21:31:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>OpenVPN Basics</title>
		<link>http://netwizards.co.uk/openvpn-basics/</link>
		<comments>http://netwizards.co.uk/openvpn-basics/#comments</comments>
		<pubDate>Sun, 20 May 2012 21:31:01 +0000</pubDate>
		<dc:creator>NetWiz</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[OpenVPN]]></category>
		<category><![CDATA[Tunnel]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[VPN]]></category>

		<guid isPermaLink="false">http://netwizards.co.uk/?p=99</guid>
		<description><![CDATA[The purpose of this tutorial is to introduce some OpenVPN basics. We will be configuring an OpenVPN server running on Linux, and then one client that has all it&#8217;s traffic re-directed through the tunnel. This may be useful to some<span class="ellipsis">&#8230;</span> <a href="http://netwizards.co.uk/openvpn-basics/"><div class="see-more">See more &#8250;</div><!-- end of .see-more --></a>]]></description>
			<content:encoded><![CDATA[<div>
<p>The purpose of this tutorial is to introduce some OpenVPN basics. We will be configuring an OpenVPN server running on Linux, and then one client that has all it&#8217;s traffic re-directed through the tunnel. This may be useful to some readers to bypass any restrictions on internet access they may be faced with. This tutorial is based on an Ubuntu server and a Windows Client.</p>
<h2>Server setup</h2>
<p>The first thing we are going to do is to set-up the server. Install the relevant software -:</p>
<blockquote>
<pre>server# sudo aptitude install openvpn</pre>
</blockquote>
<p>Now copy the example configs and more importantly the easy-rsa scripts into /etc -:</p>
<blockquote>
<pre>server# cp -R /usr/share/doc/openvpn/examples/ /etc/openvpn</pre>
</blockquote>
<p>Now we want to load the vars file with our own defaults. Open the file in your favorite editor and change KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG, and KEY_EMAIL to match your information.</p>
<blockquote>
<pre>cd /etc/openvpn/examples/easy-rsa/
vi ./vars</pre>
</blockquote>
<p>My vars file looks like this: (key components only)</p>
<blockquote>
<pre>#this is to ensure secure data
export KEY_SIZE=2048
# These are the default values for fields
# which will be placed in the certificate.
# Don't leave any of these fields blank.
export KEY_COUNTRY=UK
export KEY_PROVINCE=Adminville
export KEY_CITY=Adminland
export KEY_ORG=remoteadmin.org.uk
export KEY_EMAIL="<a rel="nofollow" target="_blank" href="mailto:nospam@remoteadmin.org.uk">nospam@netwizards.co.uk</a>"</pre>
</blockquote>
<p>Now we to begin the configuration of the server.</p>
<blockquote>
<pre>. ./vars
./clean-all
./build-ca</pre>
</blockquote>
<p>The purpose of these command are as follows, the first one will clear any old keys or configuration elements, there should not be any there but it does not hurt to be sure. The last command will setup OpenVPN configuration items, be sure to follow the prompt and make sure you fill in using elements to match your situation. Since we loaded the vars file with your settings prior to these steps the default values should work on almost all elements, but the Common Name will need to be specified.</p>
<p>Now you need to create the server keys, these are private files that you should keep secure.</p>
<blockquote>
<pre>./build-key-server server</pre>
</blockquote>
<p>I found that if I did not use the same information that I used in the build-ca step above that the &#8220;Sign Certificate&#8221; and &#8220;commit&#8221; did not work. If you experience this problem just repeat this step with the same values, it should work at that point. This should not occur for you as we have loaded the default values into the vars file, but just in case be aware of the cause.</p>
<p>Now you are ready to generate keys for users, first decide if you wish to password protect the keys or not. I recommend building with passwords if you are not going to implement authentication in OpenVPN, if you are then simply generate without. This tutorial will assume that you are going to implement authentication in OpenVPN, since it is the most trusted method. Make sure that you specify the correct Common Name when prompted.</p>
<blockquote>
<pre>#Generate with password
./build-key-pass username
#Generate without password
./build-key username</pre>
</blockquote>
<p>Now you need to build the Diffie Hellman parameters, for details on what these are simply check the OpenVPN homepage. The simple answer is that they provide a method to negotiate a secure connection over an insecure channel. This process will take a bit of time so you may want to take a break, just relax we are almost there.</p>
<blockquote>
<pre>./build-dh
#generate server id key
openvpn --genkey --secret ta.key</pre>
</blockquote>
<p>As an aside I found a very interesting table on the OpenVPN web-page. It provides some information on what to do with the various files we just generated. For the purposes of this tutorial I have &#8220;borrowed&#8221; their table and pasted it here, to view the original visit the OpenVPN installation guide on their homepage.</p>
<table width="462" border="1" cellspacing="0" cellpadding="8" align="center">
<tbody>
<tr>
<td><strong>Filename</strong></td>
<td><strong>Needed By</strong></td>
<td><strong>Purpose</strong></td>
<td><strong>Secret</strong></td>
</tr>
<tr>
<td>ca.crt</td>
<td>server + all clients</td>
<td>Root CA certificate</td>
<td>NO</td>
</tr>
<tr>
<td>ca.key</td>
<td>key signing machine only</td>
<td>Root CA key</td>
<td>YES</td>
</tr>
<tr>
<td>dh{n}.pem</td>
<td>server only</td>
<td>Diffie Hellman parameters</td>
<td>NO</td>
</tr>
<tr>
<td>server.crt</td>
<td>server only</td>
<td>Server Certificate</td>
<td>NO</td>
</tr>
<tr>
<td>server.key</td>
<td>server only</td>
<td>Server Key</td>
<td>YES</td>
</tr>
<tr>
<td>ta.key</td>
<td>server+ all clients</td>
<td>Server TLS Auth Key</td>
<td>YES</td>
</tr>
<tr>
<td>client1.crt</td>
<td>client1 only</td>
<td>Client1 Certificate</td>
<td>NO</td>
</tr>
<tr>
<td>client1.key</td>
<td>client1 only</td>
<td>Client1 Key</td>
<td>YES</td>
</tr>
<tr>
<td>client2.crt</td>
<td>client2 only</td>
<td>Client2 Certificate</td>
<td>NO</td>
</tr>
<tr>
<td>client2.key</td>
<td>client2 only</td>
<td>Client2 Key</td>
<td>YES</td>
</tr>
<tr>
<td>client3.crt</td>
<td>client3 only</td>
<td>Client3 Certificate</td>
<td>NO</td>
</tr>
<tr>
<td>client3.key</td>
<td>client3 only</td>
<td>Client3 Key</td>
<td>YES</td>
</tr>
</tbody>
</table>
<p>Ok, the last step for the server set-up is the actual server config file. This is the configuration I finally settled on -:</p>
<blockquote>
<pre>port 1194
proto udp
dev tun
ca keys/ca.crt                          # The CA certificate
cert keys/server.crt                    # The server certificate
key keys/server.key                     # This file should be kept secret
dh keys/dh1024.pem
server 172.16.1.0 255.255.255.0         # Subnet to be used by clients
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1"            # We want to redirect the client gateway to us
push "dhcp-option DNS 208.67.222.222"   # Specify a DNS server for the clients
keepalive 10 120                        # Keepalives for the tunnels
;comp-lzo                               # Uncomment this to enable lzo compression
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 3
mute 20</pre>
</blockquote>
<h2>Client Set-up</h2>
<p>Ok so we now have our working server waiting for clients to connect. So now we want to create the client config. Firstly though, generate the certificates for the first client -:</p>
<blockquote>
<pre>./build-key client1</pre>
</blockquote>
<p>You will then need to copy ca.crt, client1.crt, and client1.key onto the client machine.</p>
<p>No for the client OpenVPN config, this is a simple config that I use -:</p>
<blockquote>
<pre>remote ip.ad.re.ss 1194
proto udp
ca ca.crt
cert client1.crt
key client1.key
;comp-lzo       # Uncomment this to enable lzo compression
verb 3
mute 20
resolv-retry infinite
nobind
client
dev tun
persist-key
persist-tun</pre>
</blockquote>
<p>References -:</p>
<p><a rel="nofollow" target="_blank" href="http://www.thebakershome.net/openvpn_tutorial" target="_blank">http://www.thebakershome.net/openvpn_tutorial</a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://netwizards.co.uk/openvpn-basics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dial on Demand Backup Link</title>
		<link>http://netwizards.co.uk/dial-on-demand-backup-link/</link>
		<comments>http://netwizards.co.uk/dial-on-demand-backup-link/#comments</comments>
		<pubDate>Sun, 20 May 2012 09:28:22 +0000</pubDate>
		<dc:creator>NetWiz</dc:creator>
				<category><![CDATA[Cisco]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[dial-on demand]]></category>
		<category><![CDATA[dial-up]]></category>
		<category><![CDATA[ppp]]></category>
		<category><![CDATA[router]]></category>

		<guid isPermaLink="false">http://netwizards.co.uk/?p=161</guid>
		<description><![CDATA[The purpose of this short tutorial is to show you how to configure a dial on demand backup link on a Cisco router. For the purposes of the article the hardware used was a Cisco 1720 (12.3(26)) and a WIC<span class="ellipsis">&#8230;</span> <a href="http://netwizards.co.uk/dial-on-demand-backup-link/"><div class="see-more">See more &#8250;</div><!-- end of .see-more --></a>]]></description>
			<content:encoded><![CDATA[<p>The purpose of this short tutorial is to show you how to configure a dial on demand backup link on a Cisco router. For the purposes of the article the hardware used was a Cisco 1720 (12.3(26)) and a <a rel="nofollow" target="_blank" title="WIC T1-DSU" href="http://www.cisco.com/en/US/products/hw/modules/ps3129/products_tech_note09186a00800b1501.shtml" target="_blank">WIC T1-DSU</a> and a <a rel="nofollow" target="_blank" title="WIC-1AM Technote" href="http://www.cisco.com/en/US/products/hw/modules/ps3129/products_tech_note09186a00800b1501.shtml" target="_blank">WIC-1AM</a></p>
<h3>Initial setup</h3>
<p>I am starting from the point where I already have a working T1 connection. So the first thing to do is to configure the actual dial-up connection.</p>
<p>So firstly setup the async interface, in my case it was async2</p>
<blockquote>
<pre><strong>interface Async2
 ip address negotiated
 encapsulation slip
 dialer in-band
 dialer pool-member 1
 async dynamic routing
 async mode interactive </strong></pre>
</blockquote>
<p>Next configure up a dialler interface</p>
<blockquote>
<pre><strong>interface Dialer0
 ip address negotiated
 ip nat outside
 encapsulation ppp
 dialer pool 1
 dialer idle-timeout 300
 dialer string 12093361010
 dialer-group 11
 no cdp enable </strong></pre>
</blockquote>
<p>Configure your LAN interface for NAT</p>
<blockquote>
<pre><strong>interface FastEthernet0                                       
 ip nat inside</strong></pre>
</blockquote>
<p>Now configure your chat script</p>
<blockquote>
<pre><strong>chat-script sillyman "" "atdt 12093361010" TIMEOUT 60 "CONNECT"
</strong></pre>
</blockquote>
<p>And your NAT overload statement, access-list, and dialler-list</p>
<blockquote>
<pre><strong>dialer-list 11 protocol ip permit
access-list 101 permit ip 192.168.1.0 0.0.0.255 any
ip nat inside source list 101 interface Dialer0 overload </strong></pre>
</blockquote>
<p>Configure up the line interfaces</p>
<blockquote>
<pre><strong>line 2
 modem InOut
 modem autoconfigure discovery
 stopbits 1
 speed 115200
 flowcontrol hardware</strong></pre>
</blockquote>
<p>Now tell your serial interface about your dial-up backup interface</p>
<blockquote>
<pre><strong>int serial0
 backup delay 10 10
 backup interface Dialer0 </strong></pre>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://netwizards.co.uk/dial-on-demand-backup-link/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reflexive access-lists on a Cisco router</title>
		<link>http://netwizards.co.uk/reflexive-access-lists-on-a-cisco-router/</link>
		<comments>http://netwizards.co.uk/reflexive-access-lists-on-a-cisco-router/#comments</comments>
		<pubDate>Sat, 19 May 2012 21:34:09 +0000</pubDate>
		<dc:creator>NetWiz</dc:creator>
				<category><![CDATA[Cisco]]></category>
		<category><![CDATA[access-list]]></category>
		<category><![CDATA[reflexive]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://netwizards.co.uk/?p=139</guid>
		<description><![CDATA[Reflexive access-lists are one of the methods that can help us achieve full firewall functionality with a Cisco router. Setting up the access-lists I always tend to call my router/firewall access-lists the same thing, one called inside_out, and one called<span class="ellipsis">&#8230;</span> <a href="http://netwizards.co.uk/reflexive-access-lists-on-a-cisco-router/"><div class="see-more">See more &#8250;</div><!-- end of .see-more --></a>]]></description>
			<content:encoded><![CDATA[<p>Reflexive access-lists are one of the methods that can help us achieve full firewall functionality with a Cisco router.</p>
<h3>Setting up the access-lists</h3>
<p>I always tend to call my router/firewall access-lists the same thing, one called inside_out, and one called outside_in. These names describe the function of the two lists exactly. The first is concerned with traffic coming from inside the firewall (your LAN) going out. And the second is concerned with traffic coming into your LAN from outside.</p>
<blockquote>
<pre><strong>inside_out access-list</strong></pre>
</blockquote>
<p>Ok let&#8217;s just create a very open list here, the purpose of this tutorial is how to use reflexive lists, not how to create access-lists in general. So we&#8217;ll just have the following -:</p>
<blockquote>
<pre><strong>ip access-list extended inside_out permit ip any any reflect outbound </strong></pre>
</blockquote>
<p>All we are doing here is creating a list that allows any traffic out and creates a reflexive access-list called outbound. This reflexive list is dynamically updated to allow return traffic to connections initiated from inside your LAN.</p>
<blockquote>
<pre><strong>outside_in access-list</strong></pre>
</blockquote>
<p>Again this is a very simple access-list with some good defaults in  -:</p>
<blockquote>
<pre><strong>ip access-list extended outside_in evaluate outbound deny ip 127.0.0.0 0.255.255.255 any deny ip 224.0.0.0 31.255.255.255 any deny ip host 255.255.255.255 any deny ip 10.0.0.0 0.255.255.255 any deny ip 172.16.0.0 0.15.255.255 any deny ip 192.168.0.0 0.0.255.255 any </strong><strong><strong> permit icmp any any echo-reply permit icmp any any unreachable permit icmp any any time-exceeded</strong></strong>
<strong>deny ip any any log</strong></pre>
</blockquote>
<p>This list evaluates the reflexive list created by the inside_out access-list, and contains statements to allow return traffic, we can then deny all.</p>
<p>You can check the current reflexive list by typing -:</p>
<blockquote>
<pre> <strong>sh access-lists</strong></pre>
</blockquote>
<h3>Apply the lists to your outside interface</h3>
<p>In my case serial0 is my outside interface, so -:</p>
<blockquote>
<pre><strong>interface Serial0 ip access-group outside_in in ip access-group inside_out out</strong></pre>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://netwizards.co.uk/reflexive-access-lists-on-a-cisco-router/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BIND &#8211; preparing for DNSSEC</title>
		<link>http://netwizards.co.uk/bind-preparing-for-dnssec/</link>
		<comments>http://netwizards.co.uk/bind-preparing-for-dnssec/#comments</comments>
		<pubDate>Sat, 19 May 2012 09:30:24 +0000</pubDate>
		<dc:creator>NetWiz</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[BIND]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[dnssec]]></category>
		<category><![CDATA[key]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[sign]]></category>

		<guid isPermaLink="false">http://netwizards.co.uk/?p=283</guid>
		<description><![CDATA[&#8220;The Domain Name System Security Extensions (DNSSEC) is a suite of Internet Engineering Task Force (IETF) specifications for securing certain kinds of information provided by the Domain Name System (DNS) as used on Internet Protocol (IP) networks. It is a<span class="ellipsis">&#8230;</span> <a href="http://netwizards.co.uk/bind-preparing-for-dnssec/"><div class="see-more">See more &#8250;</div><!-- end of .see-more --></a>]]></description>
			<content:encoded><![CDATA[<p>&#8220;The <strong>Domain Name System Security Extensions</strong> (<strong>DNSSEC</strong>) is a suite of <a rel="nofollow" target="_blank" title="Internet Engineering Task Force" href="http://en.wikipedia.org/wiki/Internet_Engineering_Task_Force">Internet Engineering Task Force</a> (IETF) specifications for securing certain kinds of information provided by the <a rel="nofollow" target="_blank" title="Domain Name System" href="http://en.wikipedia.org/wiki/Domain_Name_System">Domain Name System</a> (DNS) as used on <a rel="nofollow" target="_blank" title="Internet Protocol" href="http://en.wikipedia.org/wiki/Internet_Protocol">Internet Protocol</a> (IP) networks. It is a set of extensions to DNS which provide to DNS clients (resolvers) origin authentication of DNS data, authenticated denial of existence, and data integrity, but not availability or confidentiality.&#8221; <a rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/Domain_Name_System_Security_Extensions">wikipedia</a></p>
<p>Preparing your domain for DNSSEC and signing it is a fairly straightforward task. In this post I will be signing one of my domains, and publishing the new signed domain. I am working on an install based on the following -:</p>
<p>BIND home &#8211; /chroot/named<br />
BIND config &#8211; /chroot/named/etc<br />
Zone files &#8211; /chroot/named/etc/pri</p>
<h4>Preparing and generating DNSSEC keys</h4>
<p>Firstly create a folder to keep all of your key files in, in my case I chose /chroot/named/etc/keys</p>
<blockquote>
<pre><strong>mkdir /chroot/named/etc/keys
chown bind.bind /chroot/named/etc/keys
cd /chroot/named/etc/keys</strong></pre>
</blockquote>
<p>Next you need to tell BIND where your keys are stored, so add the following in named.conf</p>
<blockquote>
<pre><strong>key-directory "/etc/keys";</strong></pre>
</blockquote>
<p>Now generate key files for the domain you are signing -:</p>
<blockquote>
<pre><strong>dnssec-keygen -a rsasha1 -b 1024 -n zone netwizards.co.uk 
dnssec-keygen -k -a rsasha1 -b 1024 -n zone netwizards.co.uk</strong></pre>
</blockquote>
<h4>Add keys to zone file</h4>
<p>Now you need to add the key information to your zone file, this is simply achieved with one command (replacing the paths to suit your install) -:</p>
<blockquote>
<pre><strong>cat Knetwizards.co.uk.*.key &gt;&gt; /chroot/named/etc/pri/netwizards.co.uk</strong></pre>
</blockquote>
<h4>Sign your zone</h4>
<p>Now you can sign your zone, again this a fairly painless process -:</p>
<blockquote>
<pre><strong>cd /chroot/named/etc/pri
dnssec-signzone -t -g -o netwizards.co.uk netwizards.co.uk \
   /chroot/named/etc/keys/Knetwizards.co.uk.+005+21018.private</strong></pre>
</blockquote>
<p>If you get an error at this point you are using the wrong key file, you will have two to choose from so just try the other.</p>
<h4>Publish the zone file</h4>
<p>Now that you have signed your zone, you need to publish the signed zone, simple add .signed to the end of the zone filename in your zone definition. I have also added an update-policy to enable secure updates via nsupdate -:</p>
<blockquote>
<pre><strong>zone "netwizards.co.uk" IN {
   type master;
   file "pri/netwizards.co.uk.signed";
   update-policy {
      grant netwizards.co.uk subdomain netwizards.co.uk. any;
   };
};</strong></pre>
</blockquote>
<p>That&#8217;s it, restart bind and if you have any slave servers, they don&#8217;t need any work, they will just publish what the master tells them.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://netwizards.co.uk/bind-preparing-for-dnssec/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to configure simple HSRP</title>
		<link>http://netwizards.co.uk/how-to-configure-simple-hsrp/</link>
		<comments>http://netwizards.co.uk/how-to-configure-simple-hsrp/#comments</comments>
		<pubDate>Fri, 18 May 2012 21:32:39 +0000</pubDate>
		<dc:creator>NetWiz</dc:creator>
				<category><![CDATA[Cisco]]></category>
		<category><![CDATA[HSRP]]></category>
		<category><![CDATA[redundant]]></category>
		<category><![CDATA[router]]></category>

		<guid isPermaLink="false">http://netwizards.co.uk/?p=173</guid>
		<description><![CDATA[The purpose of this short tutorial is to show you how to configure a simple redundant HSRP link between two Cisco routers. For the purposes of the article the hardware used was two Cisco 7200 (12.4(23b)) routers. Initial setup I<span class="ellipsis">&#8230;</span> <a href="http://netwizards.co.uk/how-to-configure-simple-hsrp/"><div class="see-more">See more &#8250;</div><!-- end of .see-more --></a>]]></description>
			<content:encoded><![CDATA[<p>The purpose of this short tutorial is to show you how to configure a simple redundant HSRP link between two Cisco routers. For the purposes of the article the hardware used was two Cisco 7200 (12.4(23b)) routers.</p>
<p><strong>Initial setup</strong></p>
<p>I am starting from the point where I already have two working routers that can ping each other. R1 has an IP address of 192.168.1.252 and R2 has an IP address of 192.168.2.253. R1 can ping R2 and vice versa. These two routers connect to a switch, the switch also has a PC connected with IP address 192.168.1.1 and a gateway address of 192.168.1.254.</p>
<p>This is our base starting point, see diagram below.</p>
<p><img src="http://remoteadmin.org.uk/images/hsrp.jpg" alt="Setup diagram" width="350" height="350" border="0" /></p>
<p>The purpose of this exercise is to create the PC&#8217;s gateway address, 192.168.1.254, as a virtual address on the two routers, so if one router goes down, the other will take over the gateway address and the PC will not lose connectivity. We have setup a test 100.100.100.1 destination address for testing purposes. It is beyond the scope of this tutorial to explain how anything in the green circle on the diagram is configured.</p>
<p>Configuring the interfaces on R1 and R2</p>
<p>The interface f0/0 on R1 and R2 have an extremely simple initial configuration, on R1 we have -:</p>
<blockquote>
<pre><strong>interface FastEthernet0/0 <strong> ip address 192.168.1.252 255.255.255.0 <strong> duplex full</strong></strong></strong></pre>
</blockquote>
<p>And on R2 we have -:</p>
<blockquote>
<pre><strong>interface FastEthernet0/0 <strong> ip address 192.168.1.253 255.255.255.0 <strong> duplex full</strong></strong></strong></pre>
</blockquote>
<p>To get HSRP up and running only requires one simple command on each router, on R1 and R2 we need to add the following to get HSRP, in it&#8217;s most basic form, up and running -:</p>
<blockquote>
<pre><strong>interface FastEthernet0/0 standby ip 192.168.1.254</strong></pre>
</blockquote>
<p>That&#8217;s it, the routers are now configured for HSRP, wasn&#8217;t that easy?</p>
<p>Confirm HSRP is working correctly</p>
<p>We really should check to see what HSRP is doing and if it is working properly, so on R1 run the command <em><strong>sh standby f0/0 </strong></em>and examine the output.</p>
<blockquote>
<pre><strong>FastEthernet0/0 - Group 0
State is Active
5 state changes, last state change 00:00:15
Virtual IP address is 192.168.1.254
Active virtual MAC address is 0000.0c07.ac00
Local virtual MAC address is 0000.0c07.ac00 (v1 default)
Hello time 3 sec, hold time 10 sec
Next hello sent in 0.000 secs
Preemption disabled
Active router is local
Standby router is 192.168.1.253, priority 100 (expires in 8.648 sec)
Priority 100 (default 100)
IP redundancy name is "hsrp-Fa0/0-0" (default)</strong></pre>
</blockquote>
<p>From the output we can see that the &#8216;Active Router&#8217; is local (e.g. R1 itself) and the &#8216;Standby Router&#8217; is 192.168.2.153 (R2). Now if we shut down interface F0/0 on R1, we can simulate what happens in the event of a link failure. So do that now and examine the output of the <em>sh standby f0/0 </em>on R2.</p>
<blockquote>
<pre><strong>FastEthernet0/0 - Group 0
State is Active
5 state changes, last state change 00:00:24
Virtual IP address is 192.168.1.254
Active virtual MAC address is 0000.0c07.ac00
Local virtual MAC address is 0000.0c07.ac00 (v1 default)
Hello time 3 sec, hold time 10 sec
Next hello sent in 2.260 secs
Preemption disabled
Active router is local
Standby router is unknown
Priority 100 (default 100)
IP redundancy name is "hsrp-Fa0/0-0" (default)</strong></pre>
</blockquote>
<p>So we now see the R2 is reporting itself as the &#8216;Active Router&#8217; and the &#8216;Standby Router&#8217; is unknown, which makes sense as the interface on R1 is currently down. From the PC you would have noticed a few dropped pings while R2 took over the virtual IP address, but connectivity would have been restored rather quickly.</p>
<p>Congratulations, you now have a fully redundant router set-up for the default gateway on your network! Remember, this is only very basic HSRP functionality, a later tutorial will explore HSRP a little further and investigate some of the more advanced functions available.</p>
]]></content:encoded>
			<wfw:commentRss>http://netwizards.co.uk/how-to-configure-simple-hsrp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Calculate Google PageRank from PHP</title>
		<link>http://netwizards.co.uk/calculate-google-pagerank-from-php/</link>
		<comments>http://netwizards.co.uk/calculate-google-pagerank-from-php/#comments</comments>
		<pubDate>Fri, 18 May 2012 09:27:46 +0000</pubDate>
		<dc:creator>NetWiz</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[pagerank]]></category>
		<category><![CDATA[seo]]></category>

		<guid isPermaLink="false">http://netwizards.co.uk/?p=199</guid>
		<description><![CDATA[Google is the single most important search engine in the world today, practically all web users will use Google before any other search engines. A full fledged SEO industry is running on the google pagerank algorithm decided by Google Inc.<span class="ellipsis">&#8230;</span> <a href="http://netwizards.co.uk/calculate-google-pagerank-from-php/"><div class="see-more">See more &#8250;</div><!-- end of .see-more --></a>]]></description>
			<content:encoded><![CDATA[<div>
<p>Google is the single most important search engine in the world today, practically all web users will use Google before any other search engines.</p>
<p>A full fledged SEO industry is running on the google pagerank algorithm decided by Google Inc.</p>
<p>I have seen a lot of developers asking the method of getting google pagerank using php.</p>
<p>The Google search results are ranked by page rank.</p>
<p>We are going to use PHP class “Google PR” from <a rel="nofollow" target="_blank" href="http://www.phpclasses.org/" target="_blank">phpclasses.org</a></p>
<p>Download the class from <a rel="nofollow" target="_blank" href="http://www.phpclasses.org/browse/file/11611.html" target="_blank">here</a>.</p>
<blockquote>
<pre>&lt;?
//Include and instansiate the class
include_once("class.googlepr.php");
$rank = new GooglePR();
//Query the PR value for a url
echo "PageRank - " . $rank-&gt;GetPR("http://www.test.com/") . "\n";
?&gt;
</pre>
</blockquote>
<p>Simples!</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://netwizards.co.uk/calculate-google-pagerank-from-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Client VPN &#8211; Juniper Netscreen and Shrew IPSEC Client</title>
		<link>http://netwizards.co.uk/client-vpn-juniper-netscreen-and-shrew-ipsec-client/</link>
		<comments>http://netwizards.co.uk/client-vpn-juniper-netscreen-and-shrew-ipsec-client/#comments</comments>
		<pubDate>Thu, 17 May 2012 21:28:39 +0000</pubDate>
		<dc:creator>NetWiz</dc:creator>
				<category><![CDATA[Juniper]]></category>
		<category><![CDATA[IPSEC]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[shrew]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[VPN]]></category>

		<guid isPermaLink="false">http://netwizards.co.uk/?p=249</guid>
		<description><![CDATA[Introduction This guide provides instruction on how to set-up a Juniper Netscreen firewall via SSH or console to allow clients to connect using the shrew.net IPSEC client. Overview This configuration described below will allow an IPSEC VPN client to communicate<span class="ellipsis">&#8230;</span> <a href="http://netwizards.co.uk/client-vpn-juniper-netscreen-and-shrew-ipsec-client/"><div class="see-more">See more &#8250;</div><!-- end of .see-more --></a>]]></description>
			<content:encoded><![CDATA[<h3>Introduction</h3>
<p>This guide provides instruction on how to set-up a Juniper Netscreen firewall via SSH or console to allow clients to connect using the shrew.net IPSEC client.</p>
<h3>Overview</h3>
<p>This configuration described below will allow an IPSEC VPN client to communicate with a single subnet located behind the Juniper firewall. The client will use the push configuration method to acquire it&#8217;s appropriate IP addressing parameters from the gateway.</p>
<h3>Netscreen Configuration</h3>
<p>This guide assumes you have your Juniper configured with a public IP and a private subnet range behind it you want to connect to remotely, it also assumes that this much is already configured, for more information about this consult your Juniper documentation.</p>
<h5>Configure VPN user IDs and IP Pool for clients</h5>
<p>First we want to create a user and assign that user to a group, this user will be used to log into the VPN using Xauth, you can create as many users as you need. We also need to define an IP range for the connecting clients.</p>
<blockquote>
<pre>set user "test1" uid 7
set user "test1" type  auth xauth
set user "test1" password "password"
set user "test1" "enable"
set user-group "VPN-Users" id 3
set user-group "VPN-Users" user "test1"
set ippool "VPNClients" 172.16.255.10 172.16.255.254</pre>
</blockquote>
<h5>Configure the IPSEC Phase 1 parameters</h5>
<p>Firstly create a user that is used to define the phase 1 ID parameters.</p>
<blockquote>
<pre>set user "vpn-ikeuser" uid 4
set user "vpn-ikeuser" ike-id fqdn "vpn.netwizards.co.uk" share-limit 10
set user "vpn-ikeuser" type  ike
set user "vpn-ikeuser" "enable"</pre>
</blockquote>
<p>Next, create a group that can be assigned to an Auto Key Advanced Gateway and put the IKE user in it.</p>
<blockquote>
<pre>set user-group "XAuth-Global" id 2
set user-group "XAuth-Global" user "vpn-ikeuser"</pre>
</blockquote>
<h5>Create an Auto Key Advanced Gateway</h5>
<p>Now we need to create an auto key advanced gateway which will be used to configure the phase 1 IPSEC parameters, we specify a pre-shared key, enable nat-traversal, associate the IKE user group created above, and finally assign the VPN-Users groups in the Xauth parameters to allow our users to login. Also bind out client IP pool to the xauth.</p>
<blockquote>
<pre>set ike gateway "ras-gw" dialup "XAuth-Global" Aggr outgoing-interface "untrust" \
    preshare "SUPERSECRETKEY" proposal "pre-g2-aes128-sha"
set ike gateway "ras-gw" nat-traversal udp-checksum
set ike gateway "ras-gw" nat-traversal keepalive-frequency 5
set ike gateway "ras-gw" xauth server "Local" user-group "VPN-Users"
unset ike gateway "ras-gw" xauth do-edipi-auth
set xauth lifetime 5
set xauth default ippool "VPNClients"</pre>
</blockquote>
<h5>Create a Tunnel interface and bind this to the Trusted side of the firewall</h5>
<p>The tunnel interface will be used to bind the VPN clients to the trusted side of the firewall.</p>
<blockquote>
<pre>set interface "tunnel.1" zone "Trust"
set interface tunnel.1 ip unnumbered interface trust</pre>
</blockquote>
<h5>Create an Auto Key IKE Gateway</h5>
<p>Specify the proposal, bind to the Auto Key Advanced Gateway created above,  bind to our tunnel interface, and set the proxy-id which contains the private subnet our clients would like to connect to.</p>
<blockquote>
<pre>set vpn "ras-vpn" gateway "ras-gw" no-replay tunnel idletime 1440 \
    proposal "nopfs-esp-aes128-sha"
set vpn "ras-vpn" id 10 bind interface tunnel.1
set l2tp default ppp-auth chap
set vpn "ras-vpn" proxy-id local-ip 172.16.3.0/24 remote-ip 255.255.255.255/32 "ANY"</pre>
</blockquote>
<h5>Route the VPN client subnet out through the tunnel interface</h5>
<p>Finally we need to tell the Netscreen to route the VPN client subnet out of the tunnel interface.</p>
<blockquote>
<pre>set route 172.16.255.0/24 interface tunnel.1 preference 20</pre>
</blockquote>
<h3>Shrew VPN Client Settings</h3>
<p>TO-DO</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://netwizards.co.uk/client-vpn-juniper-netscreen-and-shrew-ipsec-client/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Remotely monitor server with Nagios using check_by_ssh</title>
		<link>http://netwizards.co.uk/remotely-monitor-server-with-nagios-using-check_by_ssh/</link>
		<comments>http://netwizards.co.uk/remotely-monitor-server-with-nagios-using-check_by_ssh/#comments</comments>
		<pubDate>Thu, 17 May 2012 09:29:19 +0000</pubDate>
		<dc:creator>NetWiz</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Nagios]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[SSH]]></category>

		<guid isPermaLink="false">http://netwizards.co.uk/?p=227</guid>
		<description><![CDATA[Nagios is a brilliant monitoring system that I&#8217;ve used for years. If you need to use Nagios to monitor remote servers, the usual method is to install a small client, NRPE (Nagios Remote Plugin Executor), on the remote server and<span class="ellipsis">&#8230;</span> <a href="http://netwizards.co.uk/remotely-monitor-server-with-nagios-using-check_by_ssh/"><div class="see-more">See more &#8250;</div><!-- end of .see-more --></a>]]></description>
			<content:encoded><![CDATA[<p>Nagios is a brilliant monitoring system that I&#8217;ve used for years. If you need to use Nagios to monitor remote servers, the usual method is to install a small client, NRPE (Nagios Remote Plugin Executor), on the remote server and use this to execute checks and send the data back to the main Nagios server. However, recently I could not install this plugin on a server.</p>
<p>Fortunately you can execute checks via SSH instead. The first step to getting this working is to enable to Nagios server to access the remote server via SSH without a password. This requires creating a SSH kaypair for the Nagios user on the Nagios server -:</p>
<blockquote>
<pre>su nagios
ssh-keygen -t rsa</pre>
</blockquote>
<p>Make sure you do not enter a passphrase when prompted.  Now you need to copy the id_rsa.pub created to the remote server you need to login to -:</p>
<blockquote>
<pre>scp ~/.ssh/id_rsa.pub user@nagios.host:~/.ssh/authorized_keys</pre>
</blockquote>
<p>You should now be able to SSH to the remote server without providing a password. Obviously you should now make sure you Nagios server is adequately protected as it can access your other server without needing a password.</p>
<p>On the central Nagios server, in the <em>commands.cfg</em> configuration file, define the new checks. The example below defines a new <em>check_ssh_load</em> command:</p>
<blockquote>
<pre># 'check_ssh_load' command definition
define command {
        command_name    check_ssh_load
        command_line    $USER1$/check_by_ssh -H $HOSTADDRESS$ -C "/home/user/bin/check_load
        -w $ARG1$ -c $ARG2$"
}</pre>
</blockquote>
<p>This command will call the <em>check_by_ssh</em> plugin to connect to the specified host (via the $HOSTADDRESS$ macro) and execute the command <em>/home/user/bin/check_load</em>, which is the <em>check_load plugin</em>, on the remote machine; you will need to adjust the path to match the location of that plugin on the remote server. As well, if paths and/or usernames differ on remote servers and you plan to monitor more than one, you may need to define multiple commands, one for each server (or use macros).</p>
<p>Next, edit <em>services.cfg</em> and add the following:</p>
<blockquote>
<pre>define service {
       use                             local-service
       hostgroup_name                  ssh-nagios-services
       service_description             Current Load
       check_command                   check_ssh_load!5.0,4.0,3.0!10.0,6.0,4.0
}</pre>
</blockquote>
<p>This defines a new service to execute for hosts in the <em>ssh-nagios-services</em> hostgroup. It calls the defined <em>check_ssh_load</em> command and will put the service in a warn state if the load average hits 5, and a critical state if it hits 10 (adjust to suit, of course).</p>
<p>Finally, edit <em>hostgroups.cfg</em> to create the <em>ssh-nagios-services</em> hostgroup. Systems added to this hostgroup will automatically begin to use the defined service.</p>
<blockquote>
<pre>define hostgroup {
        hostgroup_name  ssh-nagios-services
        alias           Nagios over SSH
        members         remote1,remote2
}</pre>
</blockquote>
<p>Here we define that remote1 and remote2 both belong to this hostgroup. As a result, both will start using the <em>check_ssh_load</em> command.</p>
<p>Using <em>check_by_ssh</em> is a convenient and secure way to execute Nagios plugins on remote servers. When all you can see of the status of a remote server is HTTP or SMTP availability, your view of the server is quite restricted. Being able to see local resource usage can allow you to spot problems, and correct them, before they are visible to users.</p>
]]></content:encoded>
			<wfw:commentRss>http://netwizards.co.uk/remotely-monitor-server-with-nagios-using-check_by_ssh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configuring simple OSPF</title>
		<link>http://netwizards.co.uk/configuring-simple-ospf/</link>
		<comments>http://netwizards.co.uk/configuring-simple-ospf/#comments</comments>
		<pubDate>Wed, 16 May 2012 21:41:28 +0000</pubDate>
		<dc:creator>NetWiz</dc:creator>
				<category><![CDATA[Cisco]]></category>
		<category><![CDATA[OSPF]]></category>
		<category><![CDATA[router]]></category>
		<category><![CDATA[routing]]></category>

		<guid isPermaLink="false">http://netwizards.co.uk/?p=183</guid>
		<description><![CDATA[The purpose of this short tutorial is to show you how to configure simple OSPF routing between two Cisco routers. For the purposes of the article the hardware used was two Cisco 3600 (12.3(14)) routers. Initial setup I am starting<span class="ellipsis">&#8230;</span> <a href="http://netwizards.co.uk/configuring-simple-ospf/"><div class="see-more">See more &#8250;</div><!-- end of .see-more --></a>]]></description>
			<content:encoded><![CDATA[<p>The purpose of this short tutorial is to show you how to configure simple OSPF routing between two Cisco routers. For the purposes of the article the hardware used was two Cisco 3600 (12.3(14)) routers.</p>
<p><strong>Initial setup</strong></p>
<p>I am starting from the point where I already have a two working routers that can ping each other. R1 has an IP address of 192.168.1.1/24 and R2 has an IP address of 192.168.1.2/24. R1 can ping R2 and vice versa. R1 has a loopback interface with IP address 10.10.10.1/24 and R2 has a loopback interface with IP address 20.20.20.1/24 This is our base starting point.</p>
<p><img class="aligncenter" src="http://remoteadmin.org.uk/images/simpleOSPF.jpg" alt="Network Setup" width="589" height="74" border="0" /></p>
<p><strong>Initial routing tables</strong></p>
<p>The first thing we are going to do is check the routing tables of R1 and R2. On R1 we have -:</p>
<blockquote>
<pre><strong>R1#sh ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     10.0.0.0/24 is subnetted, 1 subnets
C       10.10.10.0 is directly connected, Loopback0
C    192.168.1.0/24 is directly connected, FastEthernet0/0
</strong></pre>
</blockquote>
<p>And on R2 we have -:</p>
<blockquote>
<pre><strong>R2#sh ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     20.0.0.0/24 is subnetted, 1 subnets
C       20.20.20.0 is directly connected, Loopback0
C    192.168.1.0/24 is directly connected, FastEthernet0/0
</strong></pre>
</blockquote>
<p>Not that the routing tables only contain directly connected subnets as we have not yet configured a routing procotol</p>
<p><strong>Configure OSPF</strong></p>
<p>Now to configure OSPF on both routers, we need the same config on both, this is -:</p>
<blockquote>
<pre><strong>router ospf 100 log-adjacency-changes network 192.168.1.0 0.0.0.255 area 0 </strong></pre>
</blockquote>
<p>Now we have OSPF configured, you should see the OSPF adjacency come up on both routers -:</p>
<blockquote>
<pre><strong>*Mar 1 00:25:41.531: %OSPF-5-ADJCHG: Process 100, Nbr 20.20.20.1 on
fastEthernet0/0 from  <strong>LOADING to FULL, Loading Done</strong></strong></pre>
</blockquote>
<p>Now that we have OSPF up and running, you will notice that the routes for the loopback interfaces are not being sent to the other router. So we to fix this we need to add some config to the OSPF configuration on both routers -:</p>
<blockquote>
<pre><strong>router ospf 100 redistribute connected subnets </strong></pre>
</blockquote>
<p>This command will tell the routers to redistribute connected subnets into OSPF, so if we examine the routing tables now you should see -:</p>
<blockquote>
<pre><strong>R1#sh ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     20.0.0.0/24 is subnetted, 1 subnets
O E2    20.20.20.0 [110/20] via 192.168.1.2, 00:20:51, FastEthernet0/0
     10.0.0.0/24 is subnetted, 1 subnets
C       10.10.10.0 is directly connected, Loopback0
C    192.168.1.0/24 is directly connected, FastEthernet0/0
</strong></pre>
</blockquote>
<p>Note we now have an OSPF route to R2&#8242;s loopback subnet on R1.</p>
<p>Thats it for this tutorial, further tutorials will explore more advanced options of OSPF</p>
]]></content:encoded>
			<wfw:commentRss>http://netwizards.co.uk/configuring-simple-ospf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Default edge access-list</title>
		<link>http://netwizards.co.uk/default-edge-access-list/</link>
		<comments>http://netwizards.co.uk/default-edge-access-list/#comments</comments>
		<pubDate>Wed, 16 May 2012 10:06:15 +0000</pubDate>
		<dc:creator>NetWiz</dc:creator>
				<category><![CDATA[Cisco]]></category>
		<category><![CDATA[access-list]]></category>
		<category><![CDATA[router]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://netwizards.co.uk/?p=127</guid>
		<description><![CDATA[What should you be filtering on your edge routers? Cisco provides the following template as a good start to securing your edge routers. I recommend you have a good read through this and implement as much as you can. !---<span class="ellipsis">&#8230;</span> <a href="http://netwizards.co.uk/default-edge-access-list/"><div class="see-more">See more &#8250;</div><!-- end of .see-more --></a>]]></description>
			<content:encoded><![CDATA[<p>What should you be filtering on your edge routers? Cisco provides the following template as a good start to securing your<br />
edge routers. I recommend you have a good read through this and implement as much as you can.</p>
<blockquote>
<pre><em><span style="color: #0000ff;">!--- <strong>Add anti-spoofing entries.</strong></span></em></pre>
<pre><em><span style="color: #0000ff;">!--- Deny special-use address sources.</span></em></pre>
<pre><em><span style="color: #0000ff;">!--- Refer to RFC 3330 for additional special use addresses.</span></em></pre>
<pre>access-list 110 deny ip 127.0.0.0 0.255.255.255 any</pre>
<pre>access-list 110 deny ip 192.0.2.0 0.0.0.255 any</pre>
<pre>access-list 110 deny ip 224.0.0.0 31.255.255.255 any</pre>
<pre>access-list 110 deny ip host 255.255.255.255 any</pre>
<pre><em><span style="color: #0000ff;">!--- The <strong>deny</strong> statement should not be configured</span></em></pre>
<pre><em><span style="color: #0000ff;">!--- on Dynamic Host Configuration Protocol (DHCP) relays.</span></em></pre>
<pre>access-list 110 deny ip host 0.0.0.0 any</pre>
<pre><em><span style="color: #0000ff;">!--- Filter RFC 1918 space.</span></em></pre>
<pre>access-list 110 deny ip 10.0.0.0 0.255.255.255 any</pre>
<pre>access-list 110 deny ip 172.16.0.0 0.15.255.255 any</pre>
<pre>access-list 110 deny ip 192.168.0.0 0.0.255.255 any</pre>
<pre><em><span style="color: #0000ff;">!--- Permit Border Gateway Protocol (BGP) to the edge router.</span></em></pre>
<pre>access-list 110 permit tcp host bgp_peer gt 1023 host router_ip eq bgp</pre>
<pre>access-list 110 permit tcp host bgp_peer eq bgp host router_ip gt 1023</pre>
<pre><em><span style="color: #0000ff;">!--- Deny your space as source (as noted in RFC 2827).</span></em></pre>
<pre>access-list 110 deny ip <em>your Internet-routable subnet</em> any</pre>
<pre><em><span style="color: #0000ff;"><strong>!--- Explicitly permit return traffic.</strong></span></em></pre>
<pre><em><span style="color: #0000ff;">!--- Allow specific ICMP types.</span></em></pre>
<pre>access-list 110 permit icmp any any echo-reply</pre>
<pre>access-list 110 permit icmp any any unreachable</pre>
<pre>access-list 110 permit icmp any any time-exceeded</pre>
<pre>access-list 110 deny   icmp any any</pre>
<pre><em><span style="color: #0000ff;">!--- These are outgoing DNS queries.</span></em></pre>
<pre>access-list 110 permit udp any eq 53  host <em>primary DNS server</em> gt 1023</pre>
<pre><em><span style="color: #0000ff;">!--- Permit older DNS queries and replies to primary DNS server.</span></em></pre>
<pre>access-list 110 permit udp any eq 53  host <em>primary DNS server</em> eq 53</pre>
<pre><em><span style="color: #0000ff;">!--- Permit legitimate business traffic.</span></em></pre>
<pre>access-list 110 permit tcp any <em>Internet-routable subnet</em> established</pre>
<pre>access-list 110 permit udp any range 1 1023 <em>Internet-routable subnet</em> gt 1023</pre>
<pre><em><span style="color: #0000ff;">!--- Allow ftp data connections.</span></em></pre>
<pre>access-list 110 permit tcp any eq 20 <em>Internet-routable subnet</em> gt 1023</pre>
<pre><em><span style="color: #0000ff;">!--- Allow tftp data and multimedia connections.</span></em></pre>
<pre>access-list 110 permit udp any gt 1023 <em>Internet-routable subnet</em> gt 1023</pre>
<pre><em><span style="color: #0000ff;"><strong>!--- Explicitly permit externally sourced traffic.</strong></span></em></pre>
<pre><em><span style="color: #0000ff;">!--- These are incoming DNS queries.</span></em></pre>
<pre>access-list 110 permit udp any gt 1023 host &lt;primary DNS server&gt; eq 53</pre>
<pre><em><span style="color: #0000ff;">!-- These are zone transfer DNS queries to primary DNS server.</span></em></pre>
<pre>access-list 110 permit tcp host <em>secondary DNS server</em> gt 1023 host <em>primary DNS server</em> eq 53</pre>
<pre><em><span style="color: #0000ff;">!--- Permit older DNS zone transfers.</span></em></pre>
<pre>access-list 110 permit tcp host <em>secondary DNS server</em> eq 53  host <em>primary DNS server</em> eq 53</pre>
<pre><em><span style="color: #0000ff;">!--- Deny all other DNS traffic.</span></em></pre>
<pre>access-list 110 deny udp any any eq 53</pre>
<pre>access-list 110 deny tcp any any eq 53</pre>
<pre><em><span style="color: #0000ff;">!--- Allow IPSec VPN traffic.</span></em></pre>
<pre>access-list 110 permit udp any host <em>IPSec headend device</em> eq 500</pre>
<pre>access-list 110 permit udp any host <em>IPSec headend device</em> eq 4500</pre>
<pre>access-list 110 permit 50 any host <em>IPSec headend device</em></pre>
<pre>access-list 110 permit 51 any host <em>IPSec headend device</em></pre>
<pre>access-list 110 deny   ip any host <em>IPSec headend device</em></pre>
<pre><em><span style="color: #0000ff;">!--- These are Internet-sourced connections to</span></em></pre>
<pre><em><span style="color: #0000ff;">!--- publicly accessible servers.</span></em></pre>
<pre>access-list 110 permit tcp any host <em>public web server</em> eq 80</pre>
<pre>access-list 110 permit tcp any host <em>public web server</em> eq 443</pre>
<pre>access-list 110 permit tcp any host <em>public FTP server</em> eq 21</pre>
<pre><em><span style="color: #0000ff;">!--- Data connections to the FTP server are allowed </span></em></pre>
<pre><em><span style="color: #0000ff;">!--- by the <strong>permit established</strong> ACE.</span></em></pre>
<pre><em><span style="color: #0000ff;">!--- Allow PASV data connections to the FTP server.</span></em></pre>
<pre>access-list 110 permit tcp any gt 1023 host <em>public FTP server</em> gt 1023</pre>
<pre>access-list 110 permit tcp any host <em>public SMTP server</em> eq 25</pre>
<pre><em><span style="color: #0000ff;"><strong>!--- Explicitly deny all other traffic.</strong></span></em></pre>
<pre>access-list 101 deny ip any any</pre>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://netwizards.co.uk/default-edge-access-list/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

