hi,
On Sun, 2002-01-27 at 14:03, Jochen Hein wrote:
> - Wenn hier Interesse besteht, dass ich das f�r die PUG auch mache,
> dann kann sich jemand um einen Termin und einen Raum k�mmern.
Das w�r cool, den Firewalls verstehe ich bis heut nicht. Das mit dem
Raum, mhm, da findet sich bestimmt was, in Wiesbaden w�r es sinnvoll, da
da die meisten von euch wohnen.
> - Wenn jemand Firewall-Skripte hat, dann w�rde ich mir die gerne mal
> ansehen.
gern, meine (nicht selbst erstellt) mu� folgende Eigenschaften haben:
SSH intern-extern
WWW "
FTP "
HYlafax intern
PPTP extern
POP/imap intern-extern
SMTP "
finger extern (um mails abzurufen, bzw mailq ansto�en)
Ich denke, ich habe alles.
Hier das Script
#!/bin/sh
#Iptable firewall v0.73
#updated 09/03/01
#Define some constants
echo "Seting up firewall....."
LOCALNETWORK="192.168.100.0/24"
INTINT="eth1" #The internal interface
EXTINT="eth0" #The external interface
INTIP="192.168.100.253" #The internal interface address - Not used
#DHCPSERVER="208.191.175.254/32"
#DHCPSERVER2="192.168.1.1/32"
SQUID="192.168.100.253:3128"
# User should not have to change anything below here
LOOPBACK="127.0.0.0/8"
CLASS_A="10.0.0.0/8"
CLASS_B="172.16.0.0/12"
CLASS_C="192.168.0.0/16"
MULTICAST="224.0.0.0/4"
CLASS_E="240.0.0.0/5"
ANYWHERE="any/0"
BROADCAST_SRC="0.0.0.0/32"
BROADCAST_DEST="255.255.255.255/32"
PRIVPORTS="0:1023"
PUBLICPORTS="1024:65535"
NFS_PORT="2049"
SOCKS_PORT="1080"
XWINDOW_PORTS="6000:6023"
# traceroute usually uses -S 32769:65535 -D 33434:33523
TRACEROUTE_SRC_PORTS="32769:65535"
TRACEROUTE_DEST_PORTS="33434:33523"
#=============================================
# Non iptables stuff
#=============================================
# TCP syncookie protection
if [ -e /proc/sys/net/ipv4/tcp_syncookies ]; then
echo -n "Enabling TCP syncookie protection..."
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo "done."
else
echo "Problem enabling TCP syncookie protection. Be worried."
fi
# Disable source routed packets
if [ -e /proc/sys/net/ipv4/conf/all/accept_source_route ]; then
echo -n "Disabling source routed packets...."
for f in /proc/sys/net/ipv4/conf/*/accept_source_route; do echo 0 > $f
done
echo "done."
else
echo "Problems disabling source routed packets, be worried."
fi
# Disable ICMP Redirect Acceptance
if [ -e /proc/sys/net/ipv4/conf/all/accept_redirects ]; then
echo -n "Disabling ICMP Redirect Acceptance..."
for f in /proc/sys/net/ipv4/conf/*/accept_redirects; do echo 0 > $f
done
echo "done."
else
echo "Problems disabling ICMP Redirect Acceptance, be worried."
fi
# Turn on IP Spoof protection by using IP Source Address Verification
# This is from the IPChains-HOWTO, but it works for iptables too.
if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]; then
echo -n "Setting up IP spoofing protection..."
for f in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 1 > $f
done
echo "done."
else
echo PROBLEMS SETTING UP IP SPOOFING PROTECTION. BE WORRIED.
fi
# Don't respond to broadcast pings.
if [ -e /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts ]; then
echo -n "Stopping broacast pings..."
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "done."
else
echo "Problem stopping broadcast pings. Be worried."
fi
# Activate the forwarding!
if [ -e /proc/sys/net/ipv4/ip_forward ]; then
echo -n "Turning on forwarding..."
echo 1 >/proc/sys/net/ipv4/ip_forward
echo "done."
else
echo "Forwarding not turned on! Be worried."
fi
# Enable bad error message protection
if [ -e /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses ] ; then
echo -n "Turning on bad error message protection..."
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo "done."
else
echo "Problem turing on bad error message protection. Be worried."
fi
# Insert the required kernel modules
# Note if iptables is compiled in, this will
# generate error messages. These can be safely
# ignored.
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
#=============================================
# Flush the old rules and set default policies
#=============================================
echo "Setting defaults"
/sbin/iptables -F
/sbin/iptables -t nat -F
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -P FORWARD DROP
/sbin/iptables -t nat -P POSTROUTING ACCEPT
/sbin/iptables -t nat -P PREROUTING ACCEPT
/sbin/iptables -t nat -P OUTPUT ACCEPT
#=============================================
# Filter rules
#=============================================
# Filter out some troublesome things I would drop anyway
#/sbin/iptables -t nat -A PREROUTING -i ppp+ \
# -s 192.168.0.2 -j DROP
#Test transparent proxying
# Uncomment if you want to use, but read the howto first!
#/sbin/iptables -t nat -A PREROUTING -i $INTINT -p tcp --dport 80 \
# -j DNAT --to $SQUID
# In the NAT table (-t nat), Append a rule (-A) after routing
# (POSTROUTING) for all packets going out ppp0 (-o ppp0) which says to
# MASQUERADE the connection (-j MASQUERADE).
/sbin/iptables -t nat -A POSTROUTING -o $EXTINT -s $LOCALNETWORK \
-j MASQUERADE
echo "Masquerading enabled"
#Allow all loopback interface traffic. If there are bad
#packets here, a firewall won't protect you.
#BTW, traffic from an ip addresses on this machine to any
#ip address on this machine goes through lo, not the
#interface you would expect.
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -o lo -j ACCEPT
/sbin/iptables -t nat -A OUTPUT -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -j ACCEPT
echo "Unlimited traffic on Loopback setup"
#Allow unlimited LAN traffic
/sbin/iptables -A INPUT -i $INTINT -s $LOCALNETWORK -j ACCEPT
/sbin/iptables -A OUTPUT -o $INTINT -s $LOCALNETWORK -j ACCEPT
#This next allows local broadcasts from this machine.
/sbin/iptables -t nat -A OUTPUT -s $LOCALNETWORK -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o $INTINT -s $LOCALNETWORK \
-j ACCEPT
/sbin/iptables -t nat -A PREROUTING -s $LOCALNETWORK -j ACCEPT
echo "LAN traffic allowed"
# Anything coming from our internal network should have only our
# address
/sbin/iptables -A FORWARD -i $INTINT -s ! $LOCALNETWORK -j LOG \
--log-level info --log-prefix "Forwarding problem..."
/sbin/iptables -A FORWARD -i $INTINT -s ! $LOCALNETWORK -j DROP
#Allow forwarding from inside to out and vice versa
/sbin/iptables -A FORWARD -i $INTINT -s $LOCALNETWORK -j ACCEPT
/sbin/iptables -A FORWARD -o $INTINT -d $LOCALNETWORK -j ACCEPT
# remote inteface, claiming to be local machines gets dropped
/sbin/iptables -A INPUT -i $EXTINT -s $LOCALNETWORK -j DROP
# Drop incoming on remote interface from known bad IPs (probably
# an attempted spoof or misconfigured machine, just in case the rules above don't stop this.)
/sbin/iptables -A INPUT -i $EXTINT -s $LOOPBACK -j DROP
/sbin/iptables -A INPUT -i $EXTINT -d $LOOPBACK -j DROP
/sbin/iptables -A INPUT -i $EXTINT -s $CLASS_A -j DROP
/sbin/iptables -A INPUT -i $EXTINT -d $CLASS_A -j DROP
/sbin/iptables -A INPUT -i $EXTINT -s $CLASS_B -j DROP
/sbin/iptables -A INPUT -i $EXTINT -d $CLASS_B -j DROP
/sbin/iptables -A INPUT -i $EXTINT -s $CLASS_C -j DROP
/sbin/iptables -A INPUT -i $EXTINT -d $CLASS_C -j DROP
echo "Done with private addresses"
# Refuse multicast/anycast/broadcast address (from NET-3-HOWTO)
# Multicast (224.0.0.0/4) is an illegal source address (it uses UDP)
# They are 100% likely to be spoofed or a misconfiguration. This range is only
# valid as a destination address, never a source.
/sbin/iptables -A INPUT -i $EXTINT -s $MULTICAST -j DROP
# Refuse Class E reserved addresses. They are 99.99%+ likely to be spoofed or a misconfiguration.
/sbin/iptables -A INPUT -i $EXTINT -s $CLASS_E -j DROP
# The IANA has defined some sets of addresses as reserved. Therefore
# these addresses should never be a source address. The reserved
# addresses are: 0-2.*.*.*, 5.*.*.*, 7.*.*.*, 23.*.*.* 27.*.*.*,
# 31.*.*.*, 36-37.*.*.* 39.*.*.* 41.*.*.*, 42.*.*.*, 58-60.*.*.*,
# 69-79.*.*.*, 82-127.*.*.*, 197.*.*.*, 201.*.*.*, 219-223.*.*.*,
# 240-255.*.*.*
# One location of the current list as of 07/20/2001 is at
# http://www.iana.org/assignments/ipv4-address-space
/sbin/iptables -A INPUT -s 0.0.0.0/8 -j DROP #Yes this is a little redundant
/sbin/iptables -A INPUT -s 1.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 2.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 5.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 7.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 23.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 27.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 31.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 36.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 37.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 39.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 41.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 42.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 58.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 59.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 60.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 69.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 70.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 71.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 72.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 73.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 74.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 75.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 76.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 77.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 78.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 79.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 82.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 83.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 84.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 85.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 86.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 87.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 88.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 89.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 90.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 91.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 92.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 93.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 94.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 95.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 96.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 97.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 98.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 99.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 100.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 101.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 102.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 103.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 104.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 105.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 106.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 107.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 108.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 109.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 110.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 110.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 111.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 112.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 113.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 114.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 115.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 116.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 117.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 118.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 119.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 120.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 121.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 122.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 123.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 124.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 125.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 126.0.0.0/8 -j DROP
#Redundent?
/sbin/iptables -A INPUT -i $EXTINT -s 127.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 197.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 219.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 220.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 221.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 222.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 223.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 224.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 225.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 226.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 227.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 228.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 229.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 230.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 231.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 232.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 233.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 234.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 235.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 236.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 237.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 238.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 239.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 240.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 241.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 242.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 243.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 244.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 245.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 246.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 247.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 248.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 249.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 250.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 251.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 252.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 253.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 254.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -s 255.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 0.0.0.0/8 -j DROP #Yes this is a little redundant
#/sbin/iptables -A INPUT -i $EXTINT -s 1.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 2.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 5.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 7.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 23.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 27.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 31.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 36.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 37.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 39.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 41.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 42.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 58.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 59.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 60.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 69.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 70.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 71.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 72.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 73.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 74.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 75.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 76.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 77.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 78.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 79.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 82.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 83.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 84.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 85.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 86.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 87.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 88.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 89.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 90.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 91.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 92.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 93.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 94.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 95.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 96.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 97.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 98.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 99.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 100.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 101.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 102.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 103.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 104.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 105.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 106.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 107.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 108.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 109.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 110.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 110.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 111.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 112.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 113.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 114.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 115.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 116.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 117.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 118.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 119.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 120.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 121.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 122.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 123.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 124.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 125.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 126.0.0.0/8 -j DROP
##Redundent?
#/sbin/iptables -A INPUT -i $EXTINT -s 127.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 197.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 219.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 220.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 221.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 222.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 223.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 224.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 225.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 226.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 227.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 228.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 229.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 230.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 231.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 232.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 233.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 234.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 235.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 236.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 237.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 238.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 239.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 240.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 241.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 242.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 243.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 244.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 245.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 246.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 247.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 248.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 249.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 250.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 251.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 252.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 253.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 254.0.0.0/8 -j DROP
#/sbin/iptables -A INPUT -i $EXTINT -s 255.0.0.0/8 -j DROP
echo "Done with reserved addresses"
#Allow some ICMP messages
#Allow source quench (type 4)
/sbin/iptables -A INPUT -i $EXTINT -p ICMP --icmp-type source-quench \
-m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A OUTPUT -o $EXTINT -p ICMP --icmp-type source-quench \
-m state --state ESTABLISHED,RELATED -j ACCEPT
#Allow parameter problem status (type 12)
/sbin/iptables -A INPUT -i $EXTINT -p ICMP --icmp-type parameter-problem \
-m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A OUTPUT -o $EXTINT -p ICMP --icmp-type parameter-problem \
-m state --state ESTABLISHED,RELATED -j ACCEPT
#Allow Destination unreachable (type 3)
/sbin/iptables -A INPUT -i $EXTINT -p ICMP --icmp-type \
destination-unreachable -m state --state ESTABLISHED,RELATED \
-j ACCEPT
/sbin/iptables -A OUTPUT -o $EXTINT -p ICMP --icmp-type \
destination-unreachable -m state --state ESTABLISHED,RELATED \
-j ACCEPT
#Allow time exceeded (type 11) messages
/sbin/iptables -A INPUT -i $EXTINT -p ICMP --icmp-type \
time-exceeded -m state --state ESTABLISHED,RELATED \
-j ACCEPT
/sbin/iptables -A OUTPUT -o $EXTINT -p ICMP --icmp-type \
time-exceeded -m state --state ESTABLISHED,RELATED \
-j ACCEPT
#Allow outgoing pings (type 8 and type 0)
#/sbin/iptables -t nat -A PREROUTING -i $INTINT -p ICMP --icmp-type \
# echo-reply -j DROP
/sbin/iptables -A INPUT -i $EXTINT -p ICMP --icmp-type \
echo-reply -m state --state ESTABLISHED,RELATED \
-j ACCEPT
/sbin/iptables -t nat -A OUTPUT -o $EXTINT -p ICMP --icmp-type \
echo-request -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o $EXTINT -p ICMP --icmp-type \
echo-request -j ACCEPT
/sbin/iptables -A OUTPUT -o $EXTINT -p ICMP --icmp-type \
echo-request -m state --state NEW \
-j ACCEPT
echo "Some ICMP allowed"
#Allow traceroute
#By default, it uses UDP packets, and tends (for Linux at least)
#to use source ports 32769-65536 and destination ports
# 33434:33523. It can be made to any port, however.
# Note that the input is handles by the icmp type 3 above.
/sbin/iptables -A OUTPUT -o $EXTINT -p UDP --sport $TRACEROUTE_SRC_PORTS \
--dport $TRACEROUTE_DEST_PORTS -m state --state NEW -j ACCEPT
/sbin/iptables -t nat -A OUTPUT -o $EXTINT -p UDP \
--sport $TRACEROUTE_SRC_PORTS \
--dport $TRACEROUTE_DEST_PORTS -j ACCEPT
echo "traceroute allowed"
# Kill malformed packets -- enhance this list yourself!
# Block XMAS packets
/sbin/iptables -A INPUT -p TCP --tcp-flags ALL ALL -j DROP
/sbin/iptables -A FORWARD -p TCP --tcp-flags ALL ALL -j DROP
# Block NULL packets
/sbin/iptables -A INPUT -p TCP --tcp-flags ALL NONE -j DROP
/sbin/iptables -A FORWARD -p TCP --tcp-flags ALL NONE -j DROP
echo "Some malformed packets blocked"
# Anything coming from the Internet should have a real Internet address
/sbin/iptables -A FORWARD -i $EXTINT -s 192.168.0.0/16 -j DROP
/sbin/iptables -A FORWARD -i $EXTINT -s 172.16.0.0/12 -j DROP
/sbin/iptables -A FORWARD -i $EXTINT -s 10.0.0.0/8 -j DROP
# Block outgoing network filesharing protocols that aren't designed
# to leave the LAN -- log the SMB ones
# SMB / Windows filesharing
/sbin/iptables -t nat -A PREROUTING -p TCP --dport 137:139 \
-i $EXTINT -j LOG --log-level info \
--log-prefix "SMB tried to come in..."
/sbin/iptables -t nat -A PREROUTING -p TCP --dport 137:139 \
-i $EXTINT -j DROP
/sbin/iptables -t nat -A PREROUTING -p UDP --dport 137:139 \
-i $EXTINT -j LOG --log-level info \
--log-prefix "SMB tried to come in..."
/sbin/iptables -t nat -A PREROUTING -p UDP --dport 137:139 \
-i $EXTINT -j DROP
/sbin/iptables -A FORWARD -p tcp --sport 137:139 -j LOG \
--log-level info --log-prefix "SMB tried to cross."
/sbin/iptables -A FORWARD -p udp --sport 137:139 -j LOG \
--log-level info --log-prefix "SMB tried to cross."
/sbin/iptables -A FORWARD -p tcp --sport 137:139 -j DROP
/sbin/iptables -A FORWARD -p udp --sport 137:139 -j DROP
/sbin/iptables -A OUTPUT -o $EXTINT -p tcp --sport 137:139 -j DROP
/sbin/iptables -A OUTPUT -o $EXTINT -p udp --sport 137:139 -j DROP
#Allow DHCP traffic
#/sbin/iptables -t nat -A PREROUTING -i $EXTINT -p UDP -s $DHCPSERVER \
# --sport 67 --dport 68 -j ACCEPT
#/sbin/iptables -A OUTPUT -o $EXTINT -p UDP -s $BROADCAST_SRC --sport 68 \
# -d $BROADCAST_DEST --dport 67 -m state --state NEW,ESTABLISHED \
# -j ACCEPT
#/sbin/iptables -A INPUT -i $EXTINT -p UDP -s $BROADCAST_SRC --sport 67 \
# -d $BROADCAST_DEST --dport 68 -m state --state ESTABLISHED -j ACCEPT
#/sbin/iptables -A OUTPUT -o $EXTINT -p UDP -s $ANYWHERE --sport 68 \
# -d $DHCPSERVER --dport 67 -m state --state NEW,ESTABLISHED \
# -j ACCEPT
#/sbin/iptables -A INPUT -i $EXTINT -p UDP -s $DHCPSERVER --sport 67 \
# -d $ANYWHERE --dport 68 -m state --state ESTABLISHED -j ACCEPT
#
#Internal DHCP server
#/sbin/iptables -t nat -A PREROUTING -i $INTINT -p UDP -s $DHCPSERVER2 \
# --sport 68 --dport 67 -j ACCEPT
#/sbin/iptables -t nat -A PREROUTING -i $INTINT -p UDP -s $BROADCAST_SRC \
# --sport 68 -d $BROADCAST_DEST --dport 67 -j ACCEPT
#/sbin/iptables -A OUTPUT -o $INTINT -p UDP -s $BROADCAST_SRC --sport 67 \
# -d $BROADCAST_DEST --dport 68 -m state --state ESTABLISHED \
# -j ACCEPT
#/sbin/iptables -A INPUT -i $INTINT -p UDP -s $BROADCAST_SRC --sport 68 \
# -d $BROADCAST_DEST --dport 67 -m state --state NEW,ESTABLISHED -j ACCEPT
#/sbin/iptables -A OUTPUT -o $INTINT -p UDP -s $ANYWHERE --sport 67 \
# -d $DHCPSERVER2 --dport 68 -m state --state ESTABLISHED \
# -j ACCEPT
#/sbin/iptables -A INPUT -i $INTINT -p UDP -s $DHCPSERVER2 --sport 68 \
# -d $ANYWHERE --dport 67 -m state --state NEW,ESTABLISHED -j ACCEPT
#echo "DCHP allowed"
# Refuse all 0.0.0.0 source packets. The only legitimate use is for DHCP (already covered).
/sbin/iptables -A INPUT -i $EXTINT -s $BROADCAST_SRC -j DROP
# Refuse all broadcasts (except DHCP which is already covered).
/sbin/iptables -A INPUT -i $EXTINT -d $BROADCAST_DEST -j DROP
#Allow DNS (port 53 TCP and UDP)
/sbin/iptables -A OUTPUT -o $EXTINT -p UDP --sport $PUBLICPORTS \
--dport 53 -j ACCEPT
/sbin/iptables -t nat -A OUTPUT -o $EXTINT -p UDP --sport $PUBLICPORTS \
--dport 53 -j ACCEPT
/sbin/iptables -A INPUT -i $EXTINT -p UDP --sport 53 \
--dport $PUBLICPORTS -j ACCEPT
/sbin/iptables -A OUTPUT -o $EXTINT -p TCP --sport $PUBLICPORTS \
--dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -t nat -A OUTPUT -o $EXTINT -p TCP --sport $PUBLICPORTS \
--dport 53 -j ACCEPT
/sbin/iptables -A INPUT -i $EXTINT -p TCP --sport 53 \
--dport $PUBLICPORTS -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o $EXTINT -p UDP --sport $PUBLICPORTS \
--dport 53 -j ACCEPT
/sbin/iptables -t nat -A PREROUTING -i $EXTINT -p UDP --sport \
$PUBLICPORTS --dport 53 -j ACCEPT
echo "DNS queries allowed"
#Allow Web access (ports 80 and 443)
/sbin/iptables -t nat -A PREROUTING -i $EXTINT -p TCP --sport 80 \
--dport $PUBLICPORTS -j ACCEPT
/sbin/iptables -t nat -A PREROUTING -i $EXTINT -p TCP --sport 443 \
--dport $PUBLICPORTS -j ACCEPT
/sbin/iptables -A OUTPUT -o $EXTINT -p TCP --sport $PUBLICPORTS \
--dport 80 -j ACCEPT
/sbin/iptables -A INPUT -i $EXTINT -p TCP --sport 80 \
--dport $PUBLICPORTS -m state --state ESTABLISHED -j ACCEPT
/sbin/iptables -A OUTPUT -o $EXTINT -p TCP --sport $PUBLICPORTS \
--dport 443 -j ACCEPT
/sbin/iptables -A INPUT -i $EXTINT -p TCP --sport 443 \
--dport $PUBLICPORTS -m state --state ESTABLISHED -j ACCEPT
/sbin/iptables -t nat -A OUTPUT -o $EXTINT -p TCP --sport $PUBLICPORTS \
--dport 80 -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o $EXTINT -p TCP --sport $PUBLICPORTS \
--dport 80 -j ACCEPT
/sbin/iptables -t nat -A OUTPUT -o $EXTINT -p TCP --sport $PUBLICPORTS \
--dport 443 -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o $EXTINT -p TCP --sport $PUBLICPORTS \
--dport 443 -j ACCEPT
#Limit logging of incoming http packets. Most seem to be cookie placement
#attempts
/sbin/iptables -A INPUT -i $EXTINT -p TCP --sport 80 \
-m limit -j LOG --log-level info --log-prefix "Port 80 dropped.."
/sbin/iptables -A INPUT -i $EXTINT -p TCP --sport 80 -j DROP
echo "Web and Secure Web allowed"
#Allow WEB server access (Port 80)
/sbin/iptables -A INPUT -i $EXTINT -p TCP \
--dport 80 -j ACCEPT
#/sbin/iptables -A INPUT -i $EXTINT -p TCP \
# --sport 80 -j ACCEPT
/sbin/iptables -A OUTPUT -o $EXTINT -p TCP \
--sport 80 -j ACCEPT
/sbin/iptables -t nat -A PREROUTING -i $EXTINT -p TCP \
--dport 80 -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o $EXTINT -p TCP \
--sport 80 -j ACCEPT
echo "WEB server allowed"
#Allow WEB-SSL server access (Port 443)
/sbin/iptables -A INPUT -i $EXTINT -p TCP \
--dport 443 -j ACCEPT
#/sbin/iptables -A INPUT -i $EXTINT -p TCP \
# --sport 443 -j ACCEPT
/sbin/iptables -A OUTPUT -o $EXTINT -p TCP \
--sport 443 -j ACCEPT
/sbin/iptables -t nat -A PREROUTING -i $EXTINT -p TCP \
--dport 443 -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o $EXTINT -p TCP \
--sport 443 -j ACCEPT
echo "WEB-SSL server allowed"
#Allow Email (port 25 and 110)
/sbin/iptables -t nat -A OUTPUT -o $EXTINT -p TCP --sport $PUBLICPORTS \
--dport 25 -j ACCEPT
/sbin/iptables -A OUTPUT -o $EXTINT -p TCP --sport $PUBLICPORTS \
--dport 25 -j ACCEPT
/sbin/iptables -A INPUT -i $EXTINT -p TCP --sport 25 \
--dport $PUBLICPORTS -m state --state ESTABLISHED -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o $EXTINT -p TCP --dport 25 \
--sport $PUBLICPORTS -j ACCEPT
/sbin/iptables -t nat -A OUTPUT -o $EXTINT -p TCP --sport $PUBLICPORTS \
--dport 110 -j ACCEPT
/sbin/iptables -A OUTPUT -o $EXTINT -p TCP --sport $PUBLICPORTS \
--dport 110 -j ACCEPT
/sbin/iptables -A INPUT -i $EXTINT -p TCP --sport 110 \
--dport $PUBLICPORTS -m state --state ESTABLISHED -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o $EXTINT -p TCP --dport 110 \
--sport $PUBLICPORTS -j ACCEPT
echo "Email allowed (except IMAP)"
#Allow ssh (port 22 - client access)
/sbin/iptables -A OUTPUT -o $EXTINT -p TCP \
--dport 22 -j ACCEPT
/sbin/iptables -t nat -A OUTPUT -o $EXTINT -p TCP \
--dport 22 -j ACCEPT
/sbin/iptables -A INPUT -i $EXTINT -p TCP --sport 22 \
-m state --state ESTABLISHED -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o $EXTINT -p TCP \
--dport 22 -j ACCEPT
echo "SSH client allowed"
#Allow SSH server access (Port 22)
/sbin/iptables -A INPUT -i $EXTINT -p TCP \
--dport 22 -j ACCEPT
#/sbin/iptables -A INPUT -i $EXTINT -p TCP \
# --sport 22 -j ACCEPT
/sbin/iptables -A OUTPUT -o $EXTINT -p TCP \
--sport 22 -j ACCEPT
/sbin/iptables -t nat -A PREROUTING -i $EXTINT -p TCP \
--dport 22 -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o $EXTINT -p TCP \
--sport 22 -j ACCEPT
echo "SSH server allowed"
#Allow IMAP server access (Port 143)
/sbin/iptables -A INPUT -i $EXTINT -p TCP --dport 143 -j ACCEPT
/sbin/iptables -A INPUT -i $EXTINT -p TCP --sport 143 -j ACCEPT
/sbin/iptables -A OUTPUT -o $EXTINT -p TCP --sport 143 -j ACCEPT
/sbin/iptables -t nat -A PREROUTING -i $EXTINT -p TCP --dport 143 -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o $EXTINT -p TCP --sport 143 -j ACCEPT
echo "IMAP server allowed"
#Allows usenet (port 119)
/sbin/iptables -A OUTPUT -o $EXTINT -p TCP \
--dport 119 -j ACCEPT
/sbin/iptables -t nat -A OUTPUT -o $EXTINT -p TCP \
--dport 119 -j ACCEPT
/sbin/iptables -A INPUT -i $EXTINT -p TCP --sport 119 \
-m state --state NEW,ESTABLISHED -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o $EXTINT -p TCP --dport 119 \
-j ACCEPT
echo "News allowed"
#Allow smtp (port 25 - client access)
/sbin/iptables -A OUTPUT -o $EXTINT -p TCP --dport 25 -j ACCEPT
/sbin/iptables -t nat -A OUTPUT -o $EXTINT -p TCP --dport 25 -j ACCEPT
/sbin/iptables -A INPUT -i $EXTINT -p TCP --sport 25 -m state --state ESTABLISHED -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o $EXTINT -p TCP --dport 25 -j ACCEPT
echo "smtp client allowd"
#Allow SMTP server access (Port 25)
/sbin/iptables -A INPUT -i $EXTINT -p TCP --dport 25 -j ACCEPT
/sbin/iptables -A INPUT -i $EXTINT -p TCP --sport 25 -j ACCEPT
/sbin/iptables -A OUTPUT -o $EXTINT -p TCP --sport 25 -j ACCEPT
/sbin/iptables -t nat -A PREROUTING -i $EXTINT -p TCP --dport 25 -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o $EXTINT -p TCP --sport 25 -j ACCEPT
echo "SMTP server allowed"
#Allow FINGER server access (Port 79)
/sbin/iptables -A INPUT -i $EXTINT -p TCP --dport 79 -j ACCEPT
/sbin/iptables -A INPUT -i $EXTINT -p TCP --sport 79 -j ACCEPT
/sbin/iptables -A OUTPUT -o $EXTINT -p TCP --sport 79 -j ACCEPT
/sbin/iptables -t nat -A PREROUTING -i $EXTINT -p TCP --dport 79 -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o $EXTINT -p TCP --sport 79 -j ACCEPT
echo "FINGER server allowed"
#Allow finger (port 79 - client access)
/sbin/iptables -A OUTPUT -o $EXTINT -p TCP --dport 79 -j ACCEPT
/sbin/iptables -t nat -A OUTPUT -o $EXTINT -p TCP --dport 79 -j ACCEPT
/sbin/iptables -A INPUT -i $EXTINT -p TCP --sport 79 -m state --state ESTABLISHED -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o $EXTINT -p TCP --dport 79 -j ACCEPT
echo "FINGER client allowed"
#Allow distributed.net
/sbin/iptables -A OUTPUT -o $EXTINT -p TCP --sport $PUBLICPORTS \
--dport 2064 -j ACCEPT
/sbin/iptables -A INPUT -i $EXTINT -p TCP --sport 2064 \
--dport $PUBLICPORTS -m state --state NEW,ESTABLISHED -j ACCEPT
echo "Distributed.net allowed"
#Allow ntp
/sbin/iptables -A OUTPUT -o $EXTINT -p UDP --sport 123 \
--dport 123 -j ACCEPT
/sbin/iptables -A INPUT -i $EXTINT -p UDP --sport 123 \
--dport 123 -m state --state NEW,ESTABLISHED -j ACCEPT
echo "ntp allowed"
#Allow outgoing whois(port 43)
/sbin/iptables -A OUTPUT -o $EXTINT -p TCP --sport $PUBLICPORTS \
--dport 43 -m state --state NEW,ESTABLISHED -j ACCEPT
/sbin/iptables -t nat -A OUTPUT -o $EXTINT -p TCP --sport $PUBLICPORTS \
--dport 43 -j ACCEPT
/sbin/iptables -A INPUT -i $EXTINT -p TCP --sport 43 \
--dport $PUBLICPORTS -m state --state ESTABLISHED -j ACCEPT
echo "whois allowed"
##Allow FTP
/sbin/iptables -t nat -A OUTPUT -o $EXTINT -p TCP --sport $PUBLICPORTS \
--dport 21 -j ACCEPT
/sbin/iptables -t nat -A OUTPUT -o $EXTINT -p TCP --sport $PUBLICPORTS \
--dport $PUBLICPORTS -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o $EXTINT -p TCP \
--sport $PUBLICPORTS --dport $PUBLICPORTS -j ACCEPT
/sbin/iptables -t nat -A PREROUTING -i $EXTINT -p TCP \
--sport $PUBLICPORTS --dport 21 -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o $EXTINT -p TCP \
--sport $PUBLICPORTS --dport 21 -j ACCEPT
/sbin/iptables -t nat -A PREROUTING -i $EXTINT -p TCP \
--dport $PUBLICPORTS --sport 21 -j ACCEPT
/sbin/iptables -t nat -A OUTPUT -o $EXTINT -p TCP --sport $PUBLICPORTS \
--dport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -t nat -A PREROUTING -i $EXTINT -p TCP \
--sport $PUBLICPORTS --dport 20 -m state --state \
ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o $EXTINT -p TCP \
--sport $PUBLICPORTS --dport 20 -m state --state \
ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A OUTPUT -o $EXTINT -p TCP --sport $PUBLICPORTS \
--dport 21 -j ACCEPT
/sbin/iptables -A INPUT -i $EXTINT -p TCP --sport 21 \
--dport $PUBLICPORTS -j ACCEPT
/sbin/iptables -A OUTPUT -o $EXTINT -p TCP --sport $PUBLICPORTS \
--dport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A INPUT -i $EXTINT -p TCP --sport 20 \
--dport $PUBLICPORTS -m state --state ESTABLISHED,RELATED \
-j ACCEPT
echo "FTP allowed"
#Allow ICQ (UDP port 4000 and TCP public ports)
/sbin/iptables -A OUTPUT -o $EXTINT -p UDP --sport $PUBLICPORTS \
--dport 4000 -j ACCEPT
/sbin/iptables -A INPUT -i $EXTINT -p UDP --sport 4000 \
--dport $PUBLICPORTS -j ACCEPT
/sbin/iptables -A OUTPUT -o $EXTINT -p TCP --sport $PUBLICPORTS \
--dport $PUBLICPORTS -j ACCEPT
/sbin/iptables -A INPUT -i $EXTINT -p TCP --sport $PUBLICPORTS \
--dport $PUBLICPORTS -j ACCEPT
/sbin/iptables -t nat -A OUTPUT -o $EXTINT -p TCP --sport $PUBLICPORTS \
--dport 4000 -j ACCEPT
/sbin/iptables -t nat -A PREROUTING -i $EXTINT -p TCP \
--sport $PUBLICPORTS --dport 4000 -j ACCEPT
/sbin/iptables -t nat -A OUTPUT -o $EXTINT -p UDP \
--sport $PUBLICPORTS --dport 4000 -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o $EXTINT -p UDP \
--sport $PUBLICPORTS --dport 4000 -j ACCEPT
#Don't think this one does anything.
/sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
echo "ICQ allowed"
#Allow pptpd connections (port 1723)
/sbin/iptables -t nat -A PREROUTING -i $EXTINT -p TCP \
--sport $PUBLICPORTS --dport 1723 -j ACCEPT
/sbin/iptables -t nat -A OUTPUT -o $EXTINT -p 47 -j ACCEPT
/sbin/iptables -A OUTPUT -o $EXTINT -p 47 -j ACCEPT
/sbin/iptables -A INPUT -i $EXTINT -p 47 -j ACCEPT
/sbin/iptables -A INPUT -i ppp+ \
-s $LOCALNETWORK -d $LOCALNETWORK -j ACCEPT
/sbin/iptables -A OUTPUT -o ppp+ \
-s $LOCALNETWORK -d $LOCALNETWORK -j ACCEPT
/sbin/iptables -A FORWARD -i ppp+ -o $EXTINT -p 47 \
-s $LOCALNETWORK -d $LOCALNETWORK -j ACCEPT
/sbin/iptables -A FORWARD -o ppp+ -i $EXTINT -p 47 \
-s $LOCALNETWORK -d $LOCALNETWORK -j ACCEPT
#Rules to allow surfing
/sbin/iptables -A FORWARD -i ppp+ -o $EXTINT -s $LOCALNETWORK \
-j ACCEPT
/sbin/iptables -A FORWARD -o ppp+ -i $EXTINT -d $LOCALNETWORK \
-j ACCEPT
echo "PPTPD allowed"
#Reject port 113
#I can't reject in nat, so let it through. The next rule will block.
/sbin/iptables -t nat -A PREROUTING -i $EXTINT -p TCP \
--dport 113 -j ACCEPT
/sbin/iptables -A INPUT -i $EXTINT -p TCP --sport $PUBLICPORTS \
--dport 113 -j REJECT
#Limit logging of pings.
/sbin/iptables -t nat -A PREROUTING -i $EXTINT -p ICMP --icmp-type \
echo-request -m limit -j LOG --log-level info \
--log-prefix "Ping dropped.."
/sbin/iptables -t nat -A PREROUTING -i $EXTINT -p ICMP --icmp-type \
echo-request -j DROP
#Log everything else (which would be dropped anyway)
/sbin/iptables -A INPUT -j LOG --log-level info \
--log-prefix "Input packet dropped"
/sbin/iptables -A INPUT -j DROP
/sbin/iptables -A OUTPUT -j LOG --log-level info \
--log-prefix "Output packet dropped"
/sbin/iptables -A OUTPUT -j REJECT
/sbin/iptables -A FORWARD -j LOG --log-level info \
--log-prefix "Forward packet dropped"
/sbin/iptables -A FORWARD -j DROP
/sbin/iptables -t nat -A PREROUTING -j LOG --log-level info \
--log-prefix "PreNat logging."
/sbin/iptables -t nat -A POSTROUTING -j LOG \
--log-level info --log-prefix "PostNat logging."
/sbin/iptables -t nat -A OUTPUT -j LOG \
--log-level info --log-prefix "Out NAT logging."