#!/bin/sh ####################################### # war iptables v0.1 [12/22/2001] @ 11:07PM ####################################### fw_start() { ####################################### # STEP 1 - SET VARIABLES ####################################### # YOUR LOCAL LOOPBACK DEVICE LB="lo" # YOUR PRIVATE INTERFACE LAN="eth0" # YOUR PRIVATE LAN IP LIP="192.168.168.253" # YOUR LOCAL AREA NETWORK LSAT="192.168.168.0/24" # YOUR INTERNET INTERFACE INET="eth1" # THE PATH TO IPTABLES IPTABLES="/usr/sbin/iptables" ####################################### # STEP 2 - TURN ON IP FORWARDING ####################################### echo "1" > /proc/sys/net/ipv4/ip_forward ####################################### # STEP 3 - FLUSH EXISTING RULES ####################################### $IPTABLES --flush INPUT $IPTABLES --flush OUTPUT $IPTABLES --flush FORWARD ####################################### # STEP 4 - SET DEFAULT POLICIES ####################################### $IPTABLES -P INPUT DROP $IPTABLES -P OUTPUT ACCEPT $IPTABLES -P FORWARD ACCEPT ####################################### # STEP 5 - CREATE DEFAULT BLOCK CHAIN ####################################### $IPTABLES -N BLOCK $IPTABLES -A BLOCK -j LOG --log-level 3 --log-prefix "BLOCK: " ####################################### # STEP 6 - SETUP MASQUERADING ####################################### $IPTABLES -t nat -A POSTROUTING -o $INET -j MASQUERADE ####################################### # STEP 7 - ALLOW LOCAL ENTITIES ####################################### # ALLOW LOOPBACK $IPTABLES -A INPUT -i $LB -j ACCEPT # ALLOW LOCAL AREA NETWORK $IPTABLES -A INPUT -i $LAN -s $LSAT -j ACCEPT ####################################### # STEP 8 - ALLOW SPECIFC TRAFFIC ####################################### # EXAMPLE OF WHERE AND HOW TO ALLOW INBOUND TRAFFIC. # $IPTABLES -A INPUT -i $INET -p tcp --dport 113 -j ACCEPT ####################################### # STEP 9 - ALLOW IN WHAT WE SEND OUT ####################################### $IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT ####################################### # STEP 10 - DENY EVERYTHING NOT ALLOWED ####################################### $IPTABLES -A INPUT -j BLOCK ####################################### } fw_stop() { IPTABLES="/usr/sbin/iptables" $IPTABLES --flush INPUT $IPTABLES --flush OUTPUT $IPTABLES --flush FORWARD $IPTABLES --flush BLOCK $IPTABLES --delete-chain BLOCK } fw_restart() { fw_stop fw_start } case "$1" in 'start') fw_start ;; 'stop') fw_stop ;; 'restart') fw_restart ;; *) echo "usage $0 start|stop|restart" esac