Linux 版 (精华区)

发信人: lofe (〖感激生活Θ垃圾桶〗), 信区: Linux
标  题: IPtable 1.0.7指南(五) 
发信站: 哈工大紫丁香 (2001年12月11日13:46:52 星期二), 站内信件


# PREROUTING chain. 

# Do some checks for obviously spoofed IP's 


$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 192.168.0.0/16 -j 
DROP 
$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 10.0.0.0/8 -j DROP 
$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 172.16.0.0/12 -j DROP 




# INPUT chain 

# Take care of bad TCP packets that we don't want 


$IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j LOG 
--log-prefix "New not syn:" 
$IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j DROP" 


# Rules for incoming packets from the internet 


$IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets 
$IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets 
$IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udpincoming_packets 


# Rules for special networks not part of the Internet 


$IPTABLES -A INPUT -p ALL -i $LAN_IFACE -d $LAN_BCAST_ADRESS -j ACCEPT 

$IPTABLES -A INPUT -p ALL -d $LOCALHOST_IP -j ACCEPT 
$IPTABLES -A INPUT -p ALL -d $LAN_IP -j ACCEPT 
$IPTABLES -A INPUT -p ALL -d $STATIC_IP -m state --state 
ESTABLISHED,RELATED -j ACCEPT 
$IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG 
--log-level DEBUG --log-prefix "IPT INPUT packet died: " 


# OUTPUT chain 


$IPTABLES -A OUTPUT -p tcp ! --syn -m state --state NEW -j LOG 
--log-prefix "New not syn:" 
$IPTABLES -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP" 

$IPTABLES -A OUTPUT -p ALL -s $LOCALHOST_IP -j ACCEPT 
$IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT 
$IPTABLES -A OUTPUT -p ALL -s $STATIC_IP -j ACCEPT 
$IPTABLES -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG 
--log-level DEBUG --log-prefix "IPT OUTPUT packet died: " 


例子 rc.DMZ.firewall <> 

#!/bin/sh 

# rc.DMZ.firewall - DMZ IP Firewall script for Linux 2.4.x 

# Author: Oskar Andreasson 
# (c) of BoingWorld.com, use at your own risk, do whatever you please 
with 
# it as long as you don't distribute this without due credits to 
# BoingWorld.com 


########### 
# Configuration options, these will speed you up getting this script 
to 
# work with your own setup. 


# your LAN's IP range and localhost IP. /24 means to only use the 
first 
24 
# bits of the 32 bit IP adress. the same as netmask 255.255.255.0 

# STATIC_IP is used by me to allow myself to do anything to myself, 
might 
# be a security risc but sometimes I want this. If you don't have a 
static 
# IP, I suggest not using this option at all for now but it's stil 
# enabled per default and will add some really nifty security bugs for 

all 
# those who skips reading the documentation=) 

LAN_IP_RANGE="192.168.0.0/24" 
LAN_IP="192.168.0.2/32" 
LAN_BCAST_ADRESS="192.168.0.255/32" 
LAN_IFACE="eth1" 

INET_IP="194.236.50.152/32" 
INET_IFACE="eth0" 

HTTP_IP="194.236.50.153/32" 
DNS_IP="194.236.50.154/32" 
DMZ_HTTP_IP="192.168.1.2/32" 
DMZ_DNS_IP="192.168.1.3/32" 
DMZ_IP="192.168.1.1/32" 
DMZ_IFACE="eth2" 

LO_IP="127.0.0.1/32" 
LO_IFACE="127.0.0.1/32" 


IPTABLES="/usr/local/sbin/iptables" 

########################################### 

# Load all required IPTables modules 



# Needed to initially load modules 


/sbin/depmod -a 


# Adds some iptables targets like LOG, REJECT and MASQUARADE. 


/sbin/modprobe ipt_LOG 
/sbin/modprobe ipt_MASQUERADE 


# Support for connection tracking of FTP and IRC. 

#/sbin/modprobe ip_conntrack_ftp 
#/sbin/modprobe ip_conntrack_irc 


#CRITICAL: Enable IP forwarding since it is disabled by default. 


echo "1" > /proc/sys/net/ipv4/ip_forward 


# Dynamic IP users: 

#echo "1" > /proc/sys/net/ipv4/ip_dynaddr 

########################################### 

# Chain Policies gets set up before any bad packets gets through 


$IPTABLES -P INPUT DROP 
$IPTABLES -P OUTPUT DROP 
$IPTABLES -P FORWARD DROP 


# the allowed chain for TCP connections, utilized in the FORWARD chain 



$IPTABLES -N allowed 
$IPTABLES -A allowed -p TCP --syn -j ACCEPT 
$IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j 
ACCEPT 
$IPTABLES -A allowed -p TCP -j DROP 


# ICMP rules, utilized in the FORWARD chain 



$IPTABLES -N icmp_packets 
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 0 -j ACCEPT 
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 3 -j ACCEPT 
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 5 -j ACCEPT 
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT 

########################################### 
# POSTROUTING chain in the nat table 

# Enable IP SNAT for all internal networks trying to get out on the 
Internet 


$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source 
$INET_IP 

########################################### 
# PREROUTING chain in the nat table 

# Do some checks for obviously spoofed IP's 


$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 192.168.0.0/16 -j 
DROP 
$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 10.0.0.0/8 -j DROP 
$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s 172.16.0.0/12 -j DROP 

$IPTABLES -t nat -A PREROUTING -i $INET_IFACE -s $INET_IP -j DROP 


# Enable IP Destination NAT for DMZ zone 


$IPTABLES -t nat -A PREROUTING -p TCP -i $INET_IFACE -d $HTTP_IP --dport
 
80 -j DNAT --to-destination $DMZ_HTTP_IP 
$IPTABLES -t nat -A PREROUTING -p TCP -i $INET_IFACE -d $DNS_IP 
--dport 
53 -j DNAT --to-destination $DMZ_DNS_IP 
$IPTABLES -t nat -A PREROUTING -p UDP -i $INET_IFACE -d $DNS_IP 
--dport 
53 -j DNAT --to-destination $DMZ_DNS_IP 

########################################### 

# FORWARD chain 

# Get rid of bad TCP packets 


$IPTABLES -A FORWARD -p tcp ! --syn -m state --state NEW -j LOG 
--log-prefix "New not syn:" 
$IPTABLES -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP 


# DMZ section 

# General rules 


$IPTABLES -A FORWARD -i $DMZ_IFACE -o $INET_IFACE -j ACCEPT 
$IPTABLES -A FORWARD -i $INET_IFACE -o $DMZ_IFACE -m state --state 
ESTABLISHED,RELATED -j ACCEPTED 


# HTTP server 


$IPTABLES -A FORWARD -p TCP -i $INET_IFACE -o $DMZ_IFACE -d $DMZ_HTTP_IP
 
--dport 80 -j allowed 
$IPTABLES -A FORWARD -p ICMP -i $INET_IFACE -o $DMZ_IFACE -d DMZ_HTTP_IP
 
-j icmp_packets 


# DNS server 


$IPTABLES -A FORWARD -p TCP -i $INET_IFACE -o $DMZ_IFACE -d 
$DMZ_DNS_IP 
--dport 53 -j allowed 
$IPTABLES -A FORWARD -p UDP -i $INET_IFACE -o $DMZ_IFACE -d 
$DMZ_DNS_IP 
--dport 53 -j ACCEPT 
$IPTABLES -A FORWARD -p ICMP -i $INET_IFACE -o $DMZ_IFACE -d $DMZ_DNS_IP
 
-j icmp_packets 


# LAN section 


$IPTABLES -A FORWARD -i $LAN_IFACE -j ACCEPT 
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT 


# LOG all packets reaching here 


$IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG 
--log-level DEBUG --log-prefix "IPT FORWARD packet died: " 

########################################################### 

# Firewall rules 
# Rules applying to the firewall box 


# INPUT chain 

# Get rid of bad packets 


$IPTABLES -A FORWARD -p tcp ! --syn -m state --state NEW -j LOG 
--log-prefix "New not syn:" 
$IPTABLES -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP 


# Packets from the Internet to this box 


$IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets 


# Packets from LAN, DMZ or LOCALHOST 


# From DMZ Interface to DMZ firewall IP 
$IPTABLES -A INPUT -p ALL -i $DMZ_IFACE -d $DMZ_IP -j ACCEPT 

# From LAN Interface to LAN firewall IP 
$IPTABLES -A INPUT -p ALL -i $LAN_IFACE -d $LAN_IP -j ACCEPT 
$IPTABLES -A INPUT -p ALL -i $LAN_IFACE -d $LAN_BCAST_ADRESS -j ACCEPT 


# From Localhost interface to Localhost IP 
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -d $LO_IP -j ACCEPT 

# All established and related packets incoming from the internet to 
the 
firewall 
$IPTABLES -A INPUT -p ALL -d $INET_IP -m state --state 
ESTABLISHED,RELATED -j ACCEPT 

# Logging rule 
$IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG 
--log-level DEB  
 
相关链接 
 
 
 
相关文章 
 
 
 
关键字 
 
IPtable, 防火墙,  
来自 
最后更新: 2001年10月16日 

--
                ═══════════════════﹃                     
                  过 而 结 要 情 有 结 而 过 要 情 有                        
                  程 不 果 的 , 些 果 不 程 的 , 些                        
                  。 是 , 是 重 事 ; 是 , 是 重 事                        
               ﹄═══════════════════                      

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 210.82.167.241]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:205.384毫秒