shorewall_code/STABLE/documentation/backup.shorewall_quickstart_guide.htm

350 lines
26 KiB
HTML
Raw Normal View History

<html>
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Shorewall QuickStart Guide</title>
<meta name="Microsoft Theme" content="radial 011">
</head>
<body background="_themes/radial/radbkgnd.gif" bgcolor="#FFFFFF" text="#000000" link="#6666FF" vlink="#993333" alink="#66CCCC"><!--mstheme--><font face="arial, Arial, Helvetica">
<h1 align="center"><!--mstheme--><font face="times new roman, Times New Roman, Times" color="#666666">Shorewall QuickStart Guide<br>
Version 1.3-2<!--mstheme--></font></h1>
<h2><!--mstheme--><font face="times new roman, Times New Roman, Times" color="#666666">Introduction<!--mstheme--></font></h2>
<p>One of the design goals of Shorewall was that &quot;it should be simple to do
simple things&quot;. With that in mind, I've written this QuickStart guide to
demonstrate how easy it is to configure common firewall setups.</p>
<p>This guide doesn't attempt to acquaint you with all of the features of
Shorewall. It rather focuses on what is required to configure Shorewall in three
common basic configurations. If you don't find what you are looking for in this
Guide, check the <a target="_top" href="Documentation_Index.htm">Shorewall Documentation</a>.</p>
<p>This guide assumes that you have the iproute/iproute2 package installed (on
RedHat, the package is called <i>iproute</i>)<i>. </i>You can tell if this
package is installed by the presence of an <b>ip</b> program on your firewall
system. As root, you can use the 'which' command to check for this program:</p>
<!--mstheme--></font><pre> [root@gateway root]# which ip
/sbin/ip
[root@gateway root]# </pre><!--mstheme--><font face="arial, Arial, Helvetica">
<p>After you have <a href="Install.htm">installed Shorewall</a>, simply pick the sample
configuration that best fits your needs and copy the files to
/etc/shorewall. Next modify /etc/shorewall/interfaces and /etc/shorewall/masq to
match your setup as described below. If you have servers, you will also need to
modify /etc/shorewall/rules.</p>
<p>Available samples include:</p>
<!--mstheme--></font><!--msthemelist--><table border="0" cellpadding="0" cellspacing="0" width="100%">
<!--msthemelist--><tr><td valign="baseline" width="42"><img src="_themes/radial/aradbul1.gif" width="15" height="15" hspace="13" alt="bullet"></td><td valign="top" width="100%"><!--mstheme--><font face="arial, Arial, Helvetica"><a href="/pub/shorewall/LATEST.samples/one-interface.tgz">Standalone System</a><!--mstheme--></font><!--msthemelist--></td></tr>
<!--msthemelist--><tr><td valign="baseline" width="42"><img src="_themes/radial/aradbul1.gif" width="15" height="15" hspace="13" alt="bullet"></td><td valign="top" width="100%"><!--mstheme--><font face="arial, Arial, Helvetica"><a href="/pub/shorewall/LATEST.samples/two-interfaces.tgz">Two-interface Masquerading Firewall</a><!--mstheme--></font><!--msthemelist--></td></tr>
<!--msthemelist--><tr><td valign="baseline" width="42"><img src="_themes/radial/aradbul1.gif" width="15" height="15" hspace="13" alt="bullet"></td><td valign="top" width="100%"><!--mstheme--><font face="arial, Arial, Helvetica"><a href="/pub/shorewall/LATEST.samples/three-interfaces.tgz">Three-interface Masquerading Firewall with DMZ</a><!--mstheme--></font><!--msthemelist--></td></tr>
<!--msthemelist--></table><!--mstheme--><font face="arial, Arial, Helvetica">
<p>All of these samples assume that you have a single external IP address - it
may be static or dynamic. Configuring Shorewall with multiple external IP
addresses is outside of the scope of this guide; see the
<a target="_top" href="Documentation_Index.htm">Shorewall Documentation</a>.</p>
<p><font color="#FF0000"><b>Do <u>not</u> try to install Shorewall on a remote
system -- you will almost certainly end up not being able to communicate with
that system. </b></font></p>
<h2><!--mstheme--><font face="times new roman, Times New Roman, Times" color="#666666">Shorewall Configuration Concepts<!--mstheme--></font></h2>
<p>The configuration files for Shorewall are contained in the directory
/etc/shorewall -- for simple setups, you will only need to deal with a few of
these as described in this guide. As each file is introduced, I suggest that you
look through the actual file on your system -- each file contains detailed
configuration instructions and default entries.</p>
<p>Shorewall views the network where it is running as being composed of a set of
<i>zones.</i> In the sample configurations, the following zone names are used:</p>
<!--mstheme--></font><table border="0" style="border-collapse: collapse" cellpadding="3" cellspacing="0" id="AutoNumber1">
<tr>
<td><!--mstheme--><font face="arial, Arial, Helvetica"><u><b>Name</b></u><!--mstheme--></font></td>
<td><!--mstheme--><font face="arial, Arial, Helvetica"><u><b>Description</b></u><!--mstheme--></font></td>
<td><!--mstheme--><font face="arial, Arial, Helvetica"><u><b>One Interface</b></u><!--mstheme--></font></td>
<td><!--mstheme--><font face="arial, Arial, Helvetica"><u><b>Two Interfaces</b></u><!--mstheme--></font></td>
<td><!--mstheme--><font face="arial, Arial, Helvetica"><u><b>Three Interfaces</b></u><!--mstheme--></font></td>
</tr>
<tr>
<td><!--mstheme--><font face="arial, Arial, Helvetica"><b>net</b><!--mstheme--></font></td>
<td><!--mstheme--><font face="arial, Arial, Helvetica"><b>The Internet</b><!--mstheme--></font></td>
<td align="center"><!--mstheme--><font face="arial, Arial, Helvetica">X<!--mstheme--></font></td>
<td align="center"><!--mstheme--><font face="arial, Arial, Helvetica">X<!--mstheme--></font></td>
<td align="center"><!--mstheme--><font face="arial, Arial, Helvetica">X<!--mstheme--></font></td>
</tr>
<tr>
<td><!--mstheme--><font face="arial, Arial, Helvetica"><b>loc</b><!--mstheme--></font></td>
<td><!--mstheme--><font face="arial, Arial, Helvetica"><b>Your Local Network</b><!--mstheme--></font></td>
<td align="center"><!--mstheme--><font face="arial, Arial, Helvetica">&nbsp;<!--mstheme--></font></td>
<td align="center"><!--mstheme--><font face="arial, Arial, Helvetica">X<!--mstheme--></font></td>
<td align="center"><!--mstheme--><font face="arial, Arial, Helvetica">X<!--mstheme--></font></td>
</tr>
<tr>
<td><!--mstheme--><font face="arial, Arial, Helvetica"><b>dmz</b><!--mstheme--></font></td>
<td><!--mstheme--><font face="arial, Arial, Helvetica"><b>Your demilitarized Zone</b><!--mstheme--></font></td>
<td align="center"><!--mstheme--><font face="arial, Arial, Helvetica">&nbsp;<!--mstheme--></font></td>
<td align="center"><!--mstheme--><font face="arial, Arial, Helvetica">&nbsp;<!--mstheme--></font></td>
<td align="center"><!--mstheme--><font face="arial, Arial, Helvetica">X<!--mstheme--></font></td>
</tr>
</table><!--mstheme--><font face="arial, Arial, Helvetica">
<p>Shorewall also recognizes the firewall system as its own zone - by default,
the firewall itself is known as <b>fw</b> although you can change that name in the
<a href="Documentation.htm#Conf">/etc/shorewall/shorewall.conf </a>file. As
shown in the above table, not all zones are available with all sample
configurations.</p>
<p>The simplest way to define a zone is to associate the zone with a
network interface on your firewall system. You do that using the
<a href="Documentation.htm#Interfaces">/etc/shorewall/interfaces</a> file. So
for a standalone system, you would associate your single network interface with
<b>net</b>; on a two-interface firewall, you would associate one interface with
<b>net</b> and one with <b>loc</b>; and on a three-interface firewall with DMZ,
you would associate one interface with <b>net</b>, a second with <b>loc</b> and
a third with <b>dmz</b>. The sample interfaces do this as follows:</p>
<!--mstheme--></font><table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" id="AutoNumber2">
<tr>
<td><!--mstheme--><font face="arial, Arial, Helvetica"><u><b>Zone</b></u><!--mstheme--></font></td>
<td><!--mstheme--><font face="arial, Arial, Helvetica"><u><b>Interface</b></u><!--mstheme--></font></td>
<td><!--mstheme--><font face="arial, Arial, Helvetica"><u><b>One Interface</b></u><!--mstheme--></font></td>
<td><!--mstheme--><font face="arial, Arial, Helvetica"><u><b>Two Interfaces</b></u><!--mstheme--></font></td>
<td><!--mstheme--><font face="arial, Arial, Helvetica"><u><b>Three Interfaces</b></u><!--mstheme--></font></td>
</tr>
<tr>
<td><!--mstheme--><font face="arial, Arial, Helvetica">net<!--mstheme--></font></td>
<td><!--mstheme--><font face="arial, Arial, Helvetica">eth0<!--mstheme--></font></td>
<td align="center"><!--mstheme--><font face="arial, Arial, Helvetica">X<!--mstheme--></font></td>
<td align="center"><!--mstheme--><font face="arial, Arial, Helvetica">X<!--mstheme--></font></td>
<td align="center"><!--mstheme--><font face="arial, Arial, Helvetica">X<!--mstheme--></font></td>
</tr>
<tr>
<td><!--mstheme--><font face="arial, Arial, Helvetica">loc<!--mstheme--></font></td>
<td><!--mstheme--><font face="arial, Arial, Helvetica">eth1<!--mstheme--></font></td>
<td align="center"><!--mstheme--><font face="arial, Arial, Helvetica">&nbsp;<!--mstheme--></font></td>
<td align="center"><!--mstheme--><font face="arial, Arial, Helvetica">X<!--mstheme--></font></td>
<td align="center"><!--mstheme--><font face="arial, Arial, Helvetica">X<!--mstheme--></font></td>
</tr>
<tr>
<td><!--mstheme--><font face="arial, Arial, Helvetica">dmz<!--mstheme--></font></td>
<td><!--mstheme--><font face="arial, Arial, Helvetica">eth2<!--mstheme--></font></td>
<td align="center"><!--mstheme--><font face="arial, Arial, Helvetica">&nbsp;<!--mstheme--></font></td>
<td align="center"><!--mstheme--><font face="arial, Arial, Helvetica">&nbsp;<!--mstheme--></font></td>
<td align="center"><!--mstheme--><font face="arial, Arial, Helvetica">X<!--mstheme--></font></td>
</tr>
</table><!--mstheme--><font face="arial, Arial, Helvetica">
<p>If your configuration doesn't match the sample then you will need to modify
/etc/shorewall/interfaces.</p>
<p>Rules about what traffic to allow and what traffic to deny are expressed in
terms of zones.</p>
<!--mstheme--></font><!--msthemelist--><table border="0" cellpadding="0" cellspacing="0" width="100%">
<!--msthemelist--><tr><td valign="baseline" width="42"><img src="_themes/radial/aradbul1.gif" width="15" height="15" hspace="13" alt="bullet"></td><td valign="top" width="100%"><!--mstheme--><font face="arial, Arial, Helvetica">You express your default policy for connections from one zone to another
zone in the<a href="Documentation.htm#Policy"> /etc/shorewall/policy </a>file.<!--mstheme--></font><!--msthemelist--></td></tr>
<!--msthemelist--><tr><td valign="baseline" width="42"><img src="_themes/radial/aradbul1.gif" width="15" height="15" hspace="13" alt="bullet"></td><td valign="top" width="100%"><!--mstheme--><font face="arial, Arial, Helvetica">You define exceptions to those default policies in the
<a href="Documentation.htm#Rules">/etc/shorewall/rules </a>file.<!--mstheme--></font><!--msthemelist--></td></tr>
<!--msthemelist--><tr><td valign="baseline" width="42"><img src="_themes/radial/aradbul1.gif" width="15" height="15" hspace="13" alt="bullet"></td><td valign="top" width="100%"><!--mstheme--><font face="arial, Arial, Helvetica">The /etc/shorewall/rules file is also used to define port forwarding.<!--mstheme--></font><!--msthemelist--></td></tr>
<!--msthemelist--></table><!--mstheme--><font face="arial, Arial, Helvetica">
<p>For each connection request entering the firewall, the request is first checked against the
/etc/shorewall/rules file. If the connection request doesn't match any rule in
that file, the first policy in /etc/shorewall/policy that matches the
request is then applied. If the policy is DROP or REJECT then the connection
request is passed through the rules in /etc/shorewall/common (the samples supply
that file for you).</p>
<p>If you have more than one interface and you have a single external IP address you will need to use
either IP masquerade (if your IP address is dynamic) or Source Network Address
Translation (SNAT). Whichever applies, you will define it in&nbsp; <a href="Documentation.htm#Masq">/etc/shorewall/masq</a>
file. <b>Note:</b> This file is used to describe &quot;many-to-one outbound NAT&quot;.
Shorewall also supports one-to-one NAT using the /etc/shorewall/nat file but I recommend <u>against</u>
one-to-one NAT in most applications unless you are willing to deal with the DNS
issues involved. The two- and three-interface samples assume that you will be
using IP masquerade as follows:</p>
<!--mstheme--></font><table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" id="AutoNumber3">
<tr>
<td><!--mstheme--><font face="arial, Arial, Helvetica"><u><b>Traffic coming in on this interface</b></u><!--mstheme--></font></td>
<td><!--mstheme--><font face="arial, Arial, Helvetica"><u><b>Will be masqueraded if it goes out this interface</b></u><!--mstheme--></font></td>
<td><!--mstheme--><font face="arial, Arial, Helvetica"><u><b>Two Interfaces</b></u><!--mstheme--></font></td>
<td><!--mstheme--><font face="arial, Arial, Helvetica"><b><u>Three Interfaces</u></b><!--mstheme--></font></td>
</tr>
<tr>
<td><!--mstheme--><font face="arial, Arial, Helvetica">eth1<!--mstheme--></font></td>
<td><!--mstheme--><font face="arial, Arial, Helvetica">eth0<!--mstheme--></font></td>
<td align="center"><!--mstheme--><font face="arial, Arial, Helvetica">X<!--mstheme--></font></td>
<td align="center"><!--mstheme--><font face="arial, Arial, Helvetica">X<!--mstheme--></font></td>
</tr>
<tr>
<td><!--mstheme--><font face="arial, Arial, Helvetica">eth2<!--mstheme--></font></td>
<td><!--mstheme--><font face="arial, Arial, Helvetica">eth0<!--mstheme--></font></td>
<td align="center"><!--mstheme--><font face="arial, Arial, Helvetica">&nbsp;<!--mstheme--></font></td>
<td align="center"><!--mstheme--><font face="arial, Arial, Helvetica">X<!--mstheme--></font></td>
</tr>
</table><!--mstheme--><font face="arial, Arial, Helvetica">
<h2><!--mstheme--><font face="times new roman, Times New Roman, Times" color="#666666">/etc/shorewall/interfaces<!--mstheme--></font></h2>
<p>The detailed documentation for this file may be found
<a href="Documentation.htm#Interfaces">here.</a> Entries in this file have four
columns:</p>
<ol>
<li>The name of the zone that this interface connects to - this must be the
name of a zone defined in the /etc/shorewall/zones file.</li>
<li>The name of the interface.</li>
<li>The broadcast address for the subnet on this interface. If you want
Shorewall to detect this address for you, place 'detect' in that column.</li>
<li>A comma-separated list of <a href="Documentation.htm#Interfaces">options</a> that apply to this interface.</li>
</ol>
<p>Some examples:</p>
<p>Standalone system with ethernet interface to the internet.</p>
<!--mstheme--></font><pre> net eth0 detect norfc1918,routefilter</pre><!--mstheme--><font face="arial, Arial, Helvetica">
<p>Two interface system with eth0 connected to the local network and eth1
connected to the internet. eth1 gets its IP address via DHCP.</p>
<!--mstheme--></font><pre> loc eth0 detect routestopped
net eth1 detect norfc1918,dhcp,routefilter</pre><!--mstheme--><font face="arial, Arial, Helvetica">
<p>Three interface system with eth0 connected to the internet, eth1 connected to
the DMZ and eth2 connected to the local network. eth0 gets its IP address via
DHCP and the firewall runs a DHCP server for configuring local hosts (those
connected to eth2).</p>
<!--mstheme--></font><pre> net eth0 detect norfc1918,routefilter,dhcp
dmz eth1 detect routestopped
loc eth2 detect routestopped,dhcp</pre><!--mstheme--><font face="arial, Arial, Helvetica">
<p>At this point, please edit /etc/shorewall/interfaces to match your setup.</p>
<h3><!--mstheme--><font face="times new roman, Times New Roman, Times" color="#666666">Some other considerations<!--mstheme--></font></h3>
<p>If your primary internet interface uses PPPoE, PPP or PPTP then you will want
to set CLAMPMSS=yes in <a href="Documentation.htm#Conf">
/etc/shorewall/shorewall.conf.</a></p>
<h2><!--mstheme--><font face="times new roman, Times New Roman, Times" color="#666666">/etc/shorewall/policy<!--mstheme--></font></h2>
<p>The /etc/shorewall/policy file documentation is
<a href="Documentation.htm#Policy">here</a>. I recommend the following (which
are
in the standalone sample):</p>
<p>Standalone system:</p>
<!--mstheme--></font><pre> fw net ACCEPT
all all DROP info</pre><!--mstheme--><font face="arial, Arial, Helvetica">
<p>So by default, all connection requests from your firewall to the internet are
accepted (allowed) and all other connection requests (i.e., those from the
internet to your firewall) are dropped (ignored).</p>
<p>Two and three interface firewalls:</p>
<!--mstheme--></font><pre> loc net ACCEPT
net all DROP info
all all REJECT info</pre><!--mstheme--><font face="arial, Arial, Helvetica">
<blockquote>
<p>If you want your firewall system to have full access to servers on the
internet, add the following rule before the last rule above (Note -- in the two-
and three-interface samples, the line below is included but commented out).</p>
</blockquote>
<!--mstheme--></font><pre> fw net ACCEPT</pre><!--mstheme--><font face="arial, Arial, Helvetica">
<p>The above policy will:</p>
<ol>
<li>allow all connection requests from your local network to the internet</li>
<li>drop (ignore) all connection requests from the internet to your firewall
or local network</li>
<li>optionally accept all connection requests from the firewall to the
internet (if you uncomment the additional policy)</li>
<li>reject all other connection requests.</li>
</ol>
<p>At this point, edit your /etc/shorewall/policy and make any changes that you
wish.</p>
<h2><!--mstheme--><font face="times new roman, Times New Roman, Times" color="#666666">/etc/shorewall/masq<!--mstheme--></font></h2>
<p>The /etc/shorewall/masq file (documentation <a href="Documentation.htm#Masq">
here</a>) describes output many-to-one source Network Address Translation.</p>
<p>If you have a static external IP address (assume 206.124.146.176 in these
examples), then:</p>
<blockquote>
<p>Two interface firewall with eth0 interfacing to the internet and eth1
interfacing to the local network:</p>
</blockquote>
<!--mstheme--></font><pre> eth0 eth1 206.124.146.176</pre><!--mstheme--><font face="arial, Arial, Helvetica">
<blockquote>
<p>Three interface firewall with eth0 interfacing to the internet, eth1
interfacing to the DMZ and eth2 interfacing to the local network:</p>
</blockquote>
<!--mstheme--></font><pre> eth0 eth1 206.124.146.176
eth0 eth2 206.124.146.176</pre><!--mstheme--><font face="arial, Arial, Helvetica">
<p>If you have a dynamic internet IP address, simply omit the third column! So
for the two interface firewall, your /etc/shorewall/masq file would have:</p>
<!--mstheme--></font><pre> eth0 eth1</pre><!--mstheme--><font face="arial, Arial, Helvetica">
<p>If you don't want to use IP masquerade or SNAT (two- and three-interface
samples), simple delete the entry/entries from /etc/shorewall/masq.</p><p>At
this point, edit your /etc/shorewall/masq file and change it to match your
configuration.</p>
<h2><!--mstheme--><font face="times new roman, Times New Roman, Times" color="#666666">/etc/shorewall/rules<!--mstheme--></font></h2>
<p>The rules file (documentation <a href="Documentation.htm#Rules">here</a>) is
probably the most important of the Shorewall configuration files.</p>
<p>The general simplified format for an ACCEPT rule that doesn't involve port forwarding
is:</p>
<!--mstheme--></font><pre> ACCEPT <i>&lt;source zone&gt; &lt;dest zone&gt;[:&lt;server IP address&gt;] &lt;protocol&gt; &lt;port(s)&gt;</i></pre><!--mstheme--><font face="arial, Arial, Helvetica">
<p>Here are some rules that I recommend that everyone use (and that I've
included in the samples):</p>
<!--mstheme--></font><pre> ACCEPT fw net udp 53 # Accept DNS queries from your firewall to the internet
ACCEPT fw net tcp 53 # &quot; &quot; &quot; &quot; &quot; &quot; &quot; &quot; &quot;</pre><!--mstheme--><font face="arial, Arial, Helvetica">
<p>You can omit these rules if your firewall to net policy is
ACCEPT (In other words, if you uncommented the appropriate line in the policy
file as described above).</p>
<p>If you have three interfaces with a DMZ, you probably need DNS access to the
net from your DMZ. To permit that, I've included:</p>
<!--mstheme--></font><pre> ACCEPT dmz net udp 53
ACCEPT dmz net tcp 53</pre><!--mstheme--><font face="arial, Arial, Helvetica">
<p>If you run servers on your firewall system that you want to make accessible
to internet clients, you need to include rules to permit that access (note that
the default policy for net-&gt;fw in the policy file above is DROP which causes all
inbound traffic to be ignored by default). For example, if you have a web server
running on your firewall system, you would include the following rule:</p>
<!--mstheme--></font><pre> ACCEPT net fw tcp 80</pre><!--mstheme--><font face="arial, Arial, Helvetica">
<p>With multiple local zones, you will probably want to open some ports between
these zones.</p>
<p>Example - You have server system 192.168.2.2 in your DMZ and you want to be
able to access its FTP server from your local systems:</p>
<!--mstheme--></font><pre> ACCEPT loc dmz:192.168.2.2 tcp ftp</pre><!--mstheme--><font face="arial, Arial, Helvetica">
<p>For FTP to work properly, you will need kernel support for FTP connection
tracking and NAT but all commercial 2.4 kernel's have such support built in.</p>
<p>If you don't know which protocol and/or port that one of your applications
uses, try looking <a href="ports.htm">here</a>.</p>
<h3><!--mstheme--><font face="times new roman, Times New Roman, Times" color="#666666">Port Forwarding<!--mstheme--></font></h3>
<p>When you are using many-to-one network address translation
outbound (IP masquerade or SNAT) and you want to allow connections from the internet to an
internal server (either in your local zone or in your DMZ), then you need to use
<i>port forwarding </i>(also known as Destination Network Address Translation or
<b>DNAT</b>). Inbound connection requests are selective forwarded to internal systems
based on rules that you supply.</p>
<p>The general form of a simple port forwarding rule in
/etc/shorewall/rules is:</p>
<!--mstheme--></font><pre> DNAT net <i>&lt;server zone&gt;:&lt;server local ip address&gt; &lt;protocol&gt; &lt;port&gt;</i></pre><!--mstheme--><font face="arial, Arial, Helvetica">
<p>Example - you run a Web Server on your local zone at 192.168.1.5 and you want
to forward incoming TCP port 80 to that system. You have a single external IP
address:</p>
<!--mstheme--></font><pre> DNAT net loc:192.168.1.5 tcp 80</pre><!--mstheme--><font face="arial, Arial, Helvetica">
<p>Example - you want to forward TCP port 80 to 192.168.2.4 in your DMZ and you
want to allow access to that server from your local zone:</p>
<!--mstheme--></font><pre> DNAT net dmz:192.168.2.4 tcp 80
ACCEPT loc dmz:192.168.2.4 tcp 80</pre><!--mstheme--><font face="arial, Arial, Helvetica">
<blockquote>
<p>If you have a static IP address (assume 206.124.146.176)
and you want your local clients to be able to access your web server using that
external address, you can use these entries instead:</p>
</blockquote>
<!--mstheme--></font><pre> DNAT net dmz:192.168.2.4 tcp 80
DNAT loc dmz:192.168.2.4 tcp 80 - 206.124.146.176</pre><!--mstheme--><font face="arial, Arial, Helvetica">
<p>Example - You have a static external IP address (206.124.146.176) and you
have DNS set up so that <a href="http://www.yourdomain.com">www.yourdomain.com</a>
resolves to that address. You want to run a web server in your local network (I
think that this is a BAD IDEA -- see <a href="FAQ.htm#faq2">FAQ 2</a>) on system
192.168.1.4 and you want internet users and your local users to be able to
access <a href="http://www.yourdomain.com">www.yourdomain.com</a>. Your
firewall's internal IP address is 192.168.1.254 and is on eth1.</p>
<!--mstheme--></font><pre> DNAT net loc:192.168.1.4 tcp 80
&nbsp; DNAT loc loc:192.168.2.4 tcp 80 - 206.124.146.176:192.168.1.254</pre><!--mstheme--><font face="arial, Arial, Helvetica">
<blockquote>
<p>In addition, you must specify the<b> multi</b> option on eth1<b> </b>in
/etc/shorewall/interfaces:</p>
</blockquote>
<!--mstheme--></font><pre> loc eth1 detect routestopped,multi</pre><!--mstheme--><font face="arial, Arial, Helvetica">
<p>If you have requirements for port forwarding beyond what is shown here (like
forwarding to a different port number or redirecting to a proxy), see the
<a href="Documentation.htm#Rules">rules file documentation</a>.</p>
<p>At this point, please edit the /etc/shorewall/rules file and make any
additions required by your setup.</p><p>You are now ready to start shorewall. If
you encounter problems, see the <a href="troubleshoot.htm">troubleshooting
information.</a></p>
<h2><!--mstheme--><font face="times new roman, Times New Roman, Times" color="#666666">Starting and Stopping Your Firewall<!--mstheme--></font></h2><p>The firewall is started using the
&quot;shorewall start&quot; command and stopped using &quot;shorewall stop&quot;. When the firewall
is stopped, routing is enabled on those interfaces that have the &quot;routestopped&quot;
option specified in /etc/shorewall/interfaces. If you want to totally remove any
trace of Shorewall from your Netfilter configuration, use &quot;shorewall clear&quot;.</p>
<p><a href="copyright.htm"><font size="2">Copyright 2002 Thomas M. Eastep</font></a></p>
<!--mstheme--></font></body>
</html>