tips/iptables/iptables03

Last-modified: 2006-11-28 (火) 23:02:07
#!/bin/bash
/sbin/modprobe ip_conntrack_ftp
########################
# Set
########################
IPTABLES=/sbin/iptables
MYSELF=`/sbin/ifconfig wlan0|/bin/grep "inet addr"|/bin/cut -d':' -f2|/bin/cut -d' ' -f1`
LOOPBACK=127.0.0.1
ANY=0.0.0.0/0
#echo $MYSELF
########################
# Flash rules
########################
$IPTABLES -F -t filter
$IPTABLES -F -t nat
$IPTABLES -F -t mangle
$IPTABLES -X -t filter
$IPTABLES -X -t nat
$IPTABLES -X -t mangle
$IPTABLES -Z -t filter
$IPTABLES -Z -t nat
$IPTABLES -Z -t mangle
########################
# Default Policy
########################
$IPTABLES -t filter -P INPUT DROP
$IPTABLES -t filter -P OUTPUT DROP
$IPTABLES -t filter -P FORWARD DROP
#$IPTABLES -t nat -P PREROUTING DROP
#$IPTABLES -t nat -P POSTROUTING ACCEPT
#$IPTABLES -t nat -P OUTPUT ACCEPT
#$IPTABLES -t mangle -P INPUT ACCEPT
#$IPTABLES -t mangle -P OUTPUT ACCEPT
#$IPTABLES -t mangle -P FORWARD ACCEPT
#$IPTABLES -t mangle -P PREROUTING ACCEPT
#$IPTABLES -t mangle -P POSTROUTING ACCEPT
########################
# Loopback
########################
#$IPTABLES -A INPUT -i lo -j ACCEPT
#$IPTABLES -A OUTPUT -o lo -j ACCEPT
$IPTABLES -A INPUT -s $LOOPBACK -d $LOOPBACK -j ACCEPT
$IPTABLES -A OUTPUT -s $LOOPBACK -d $LOOPBACK -j ACCEPT
########################
# ICMP
########################
### MYSELE -> Internet
#$IPTABLES -A INPUT -p icmp -d $MYSELF -j ACCEPT
### IN ###
#$IPTABLES -A INPUT -p icmp --icmp-type echo-request -s $TRUST_HOST -d $MYSELF -j ACCEPT
#$IPTABLES -A OUTPUT -p icmp --icmp-type echo-reply -s $MYSELF -d $TRUST_HOST -j ACCEPT
### OUT ###
#$IPTABLES -A INPUT -p icmp --icmp-type echo-reply -d $MYSELF -j ACCEPT
##################################
# Spoofed Packet(Source)
##################################
#$IPTABLES -A INPUT -s 255.0.0.0/8 -j LOG --log-level info --log-prefix "SP(S:255.0.0.0/8):"
#$IPTABLES -A INPUT -s 255.0.0.0/8 -j DROP
#$IPTABLES -A INPUT -s 0.0.0.0/8 -j LOG --log-level info --log-prefix "SP(S:0.0.0.0/8):"
########################
# Return Packet
########################
$IPTABLES -A INPUT -d $MYSELF -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -s $MYSELF -m state --state RELATED,ESTABLISHED -j ACCEPT
##########################
# From MYSELF To Internet
##########################
$IPTABLES -A OUTPUT -p icmp --icmp-type echo-request -s $MYSELF -j ACCEPT
$IPTABLES -A OUTPUT -p tcp -s $MYSELF --dport 21 -m state --state NEW -j ACCEPT
$IPTABLES -A OUTPUT -p udp -s $MYSELF --dport 53 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp -s $MYSELF --dport 53 -j ACCEPT
$IPTABLES -A OUTPUT -p udp -s $MYSELF --dport 68 -m state --state NEW -j ACCEPT
$IPTABLES -A OUTPUT -p tcp -s $MYSELF --dport 80 -m state --state NEW -j ACCEPT
##########################
# From Internet To MYSELF
##########################
$IPTABLES -A INPUT -p tcp -d $MYSELF ! --syn -m state --state NEW -j DROP
$IPTABLES -A INPUT -p tcp -d $MYSELF --dport 22 -m state --state NEW -j ACCEPT
#$IPTABLES -A OUTPUT -p tcp -s $MYSELF --sport 80 -m state --state ESTABLISHED -j ACCEPT
#$IPTABLES -A OUTPUT -p tcp -s $MYSELF --sport 80 -j ACCEPT
########################
# Accept Server Service
########################
#$IPTABLES -A INPUT -p tcp -d $MYSELF ! --syn -m state --state NEW -j DROP
### SSH ###
#$IPTABLES -A INPUT -p tcp -d $MYSELF --dport 22 -m state --state NEW -j ACCEPT
### DNS ###
#$IPTABLES -A INPUT -p udp -d $MYSELF --dport 53 -m state --state NEW -j ACCEPT
### HTTP ###
#$IPTABLES -A INPUT -p tcp -d $MYSELF --dport 80 -m state --state NEW -j ACCEPT
### FTP ###
#$IPTABLES -A INPUT -p tcp -d $MYSELF --dport 21 -m state --state NEW -j ACCEPT
########################
# OUTPUT
########################
#$IPTABLES -A OUTPUT -p tcp -d $MYSELF ! --syn -m state --state NEW -j DROP
### DNS ###
#$IPTABLES -A OUTPUT -p udp -s $MYSELF --dport 53 -j ACCEPT
#$IPTABLES -A OUTPUT -p tcp -s $MYSELF --dport 53 -j ACCEPT
#$IPTABLES -A OUTPUT -p udp -s $MYSELF --dport 68 -m state --state NEW -j ACCEPT
#$IPTABLES -A OUTPUT -p tcp -s $MYSELF --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
#$IPTABLES -A OUTPUT -p udp --dport 53 -j ACCEPT
#$IPTABLES -A OUTPUT -p tcp --dport 53 -j ACCEPT
### HTTP ###
#$IPTABLES -A OUTPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
########################
# LOG
########################
$IPTABLES -A INPUT -j LOG
#$IPTABLES -N LOGGING
#$IPTABLES -A LOGGING -j LOG
#$IPTABLES -A LOGGING -j DROP