<?xml version="1.0"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>NAT Script - Revision history</title>
		<link>https://www.slackwiki.com/index.php?title=NAT_Script&amp;action=history</link>
		<description>Revision history for this page on the wiki</description>
		<language>en</language>
		<generator>MediaWiki 1.40.0</generator>
		<lastBuildDate>Wed, 08 Apr 2026 14:21:01 GMT</lastBuildDate>
		<item>
			<title>Erik: Copy from old</title>
			<link>https://www.slackwiki.com/index.php?title=NAT_Script&amp;diff=142&amp;oldid=prev</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=NAT_Script&amp;diff=142&amp;oldid=prev</guid>
			<description>&lt;p&gt;Copy from old&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# This is a very basic LAN NAT script, allowing only SSH to the firewall from&lt;br /&gt;
# the external interface, allowing all outbound LAN traffic, and allowing only&lt;br /&gt;
# established/related traffic back into the LAN.&lt;br /&gt;
&lt;br /&gt;
ipt=/usr/sbin/iptables&lt;br /&gt;
extip=192.168.1.41 # replace with your EXTERNAL IP - eth0&lt;br /&gt;
lan=10.5.3.0/25 # your LAN CIDR range - eth1&lt;br /&gt;
&lt;br /&gt;
# start firewall&lt;br /&gt;
start_firewall() {&lt;br /&gt;
&lt;br /&gt;
  echo &amp;quot;Enabling IP forwarding.&amp;quot;&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
  echo &amp;quot;Enabling iptables firewall.&amp;quot;&lt;br /&gt;
  # default policies&lt;br /&gt;
  $ipt -P INPUT DROP&lt;br /&gt;
  $ipt -P FORWARD DROP&lt;br /&gt;
&lt;br /&gt;
  # NAT&lt;br /&gt;
  $ipt -t nat -A POSTROUTING -o eth0 -j SNAT --to-source $extip&lt;br /&gt;
&lt;br /&gt;
  # INPUT chain&lt;br /&gt;
  $ipt -A INPUT -i lo -j ACCEPT&lt;br /&gt;
  $ipt -A INPUT -i eth1 -s $lan -j ACCEPT&lt;br /&gt;
  $ipt -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
  $ipt -A INPUT -p tcp --destination-port 22 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
  # FORWARD chain&lt;br /&gt;
  $ipt -A FORWARD -i eth1 -s $lan -j ACCEPT&lt;br /&gt;
  $ipt -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# stop firewall&lt;br /&gt;
stop_firewall() {&lt;br /&gt;
&lt;br /&gt;
  $ipt -P INPUT DROP&lt;br /&gt;
  $ipt -P OUTPUT DROP&lt;br /&gt;
  $ipt -P FORWARD DROP&lt;br /&gt;
  # allow internal traffic&lt;br /&gt;
  $ipt -A INPUT -i eth1 -j ACCEPT&lt;br /&gt;
  $ipt -A OUTPUT -o eth1 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# flushing, removing and zeroing tables&lt;br /&gt;
reset_firewall() {&lt;br /&gt;
&lt;br /&gt;
  chains=`cat /proc/net/ip_tables_names`&lt;br /&gt;
  for i in $chains; do&lt;br /&gt;
    $debug $ipt -t $i -F&lt;br /&gt;
    $debug $ipt -t $i -X&lt;br /&gt;
    $debug $ipt -t $i -Z&lt;br /&gt;
  done&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
case &amp;quot;$1&amp;quot; in&lt;br /&gt;
&lt;br /&gt;
  start|restart|reload)&lt;br /&gt;
    reset_firewall&lt;br /&gt;
    start_firewall&lt;br /&gt;
    ;;&lt;br /&gt;
  stop)&lt;br /&gt;
    reset_firewall&lt;br /&gt;
    stop_firewall&lt;br /&gt;
    ;;&lt;br /&gt;
  *)&lt;br /&gt;
    echo &amp;quot;Usage: $0 {start|stop|restart|reload}&amp;quot;&lt;br /&gt;
    exit 1&lt;br /&gt;
    ;;&lt;br /&gt;
&lt;br /&gt;
esac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Security]]&lt;/div&gt;</description>
			<pubDate>Thu, 04 Jun 2009 05:25:20 GMT</pubDate>
			<dc:creator>Erik</dc:creator>
			<comments>https://www.slackwiki.com/Talk:NAT_Script</comments>
		</item>
</channel></rss>