All pastes #2017112 Raw Edit

Miscellany

public text v1 · immutable
#2017112 ·published 2010-12-12 07:49 UTC
rendered paste body
#!/bin/bash

IPTABLES="/sbin/iptables"

INPUT="$IPTABLES --table filter --append INPUT"
FORWARD="$IPTABLES --table filter --append FORWARD"

LAN_INT="lan"
INTERNET_INT="internet"

INPUT_INT="$INPUT --in-interface $INTERNET_INT"

LAN_ADDR="192.168.0.0/24"

#allow loopback
$INPUT_INT --protocol all --source 127.0.0.1 --jump ACCEPT

#allow local traffic
$INPUT_INT --protocol all --source $LAN_ADDR --jump ACCEPT

#enable NAT#
$IPTABLES --table nat --out-interface internet --append POSTROUTING --jump MASQUERADE
$FORWARD --out-interface $INTERNET_INT -m state --state NEW,ESTABLISHED,RELATED --jump ACCEPT
$FORWARD --in-interface $INTERNET_INT -m state --state ESTABLISHED,RELATED --jump ACCEPT

##################
# Incoming Stuff #
##################

#allow icmp echo/ping
$INPUT_INT --protocol icmp --icmp-type echo-request --jump ACCEPT
$INPUT_INT --protocol icmp --icmp-type echo-reply --jump ACCEPT

#allow http
$INPUT_INT --protocol tcp --dport 80 --jump ACCEPT
#allow ident
$INPUT_INT --protocol tcp --dport 113 --jump ACCEPT
#incoming mail
$INPUT_INT --protocol tcp --dport 25 --jump ACCEPT

#allow ssh & provide protection #
#$INPUT_INT --protocol tcp --dport 22 -m state --state NEW --match recent --update --seconds 60 --hitcount 8 --rttl --name SSH --jump DROP
$INPUT_INT --protocol tcp --dport 22 --jump ACCEPT

#drop nfs
$INPUT_INT --protocol tcp --dport 111 --jump DROP
$INPUT_INT --protocol udp --dport 111 --jump DROP
$INPUT_INT --protocol tcp --dport 2049 --jump DROP
$INPUT_INT --protocol udp --dport 2049 --jump DROP

#probably safe to allow anything outside the first 1024 ports
$INPUT_INT --protocol tcp --dport 1025:65535 --jump ACCEPT
$INPUT_INT --protocol udp --dport 1025:65535 --jump ACCEPT

#drop anything else
$INPUT_INT --jump DROP