设为首页 | 成都一卡通
一卡通相关技术
成都linux培训
发布时间:2013-06-30 来源:未知

#!/bin/sh

#网络接口定义
LOCAL_IF=lo     #本地回路接口
EXT_IF=eth0     #外部网络接口
DMZ_IF=eth1     #DMZ区网络接口
NET_IF=eth2   #内部网络接口
GL_IF=eth3      #管理区网络接口

#网络定义
ANY_NET=0.0.0.0/0       #任意网络(任意IP)
EXT_NET=xxx.xxx.xxx.xxx/xxx      #外部网络
DMZ_NET=172.16.0.0/16   #DMZ区网络
NET_A=172.17.0.0/16     #子网A

#主机定义
GW_EXT_IP=xxx.xxx.xxx.xxx        #网关外部IP
GW_DMZ_IP=172.16.0.1    #DMZ区网关IP
GW_NET_A_IP=172.17.0.1  #内网A网关IP
HTTP_EXT_IP=xxx.xxx.xxx.xxx      #HTTP主机外部IP
HTTP_DMZ_IP=172.16.0.2  #HTTP主机DMZ区IP


############################## 初始化规则 #######################################################################
modprobe ip_conntrack_ftp
echo "1">/proc/sys/net/ipv4/ip_forward

iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT
iptables -F POSTROUTING -t nat
iptables -F PREROUTING -t nat

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

#允许本地回路接口产生的数据包
iptables -A INPUT -i $LOCAL_IF -j ACCEPT
iptables -A OUTPUT -o $LOCAL_IF -j ACCEPT
iptables -A FORWARD -i $LOCAL_IF -j ACCEPT
iptables -A FORWARD -o $LOCAL_IF -j ACCEPT

############################## 外部网络规则 ###################################################################
#允许对网关外部IP的SSH连接
iptables -A INPUT -p tcp -d $GW_EXT_IP --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp -s $GW_EXT_IP --sport 22 -m state --state ESTABLISHED,RELATED -j ACCEPT

#允许内网A对外部网络HTTP主机的连接
iptables -A FORWARD -p tcp -s $NET_A -d $HTTP_EXT_IP --dport 80 -j ACCEPT
iptables -A FORWARD -p tcp -s $HTTP_EXT_IP -d $NET_A --sport 80 -m state --state ESTABLISHED,RELATED -j ACCEPT
#将从A网络接口出去的,目的地址是$HTTP_DMZ_IP的数据包源地址变换为网关的外部IP地址
iptables -t nat -A POSTROUTING -o $NET_A_IF -p tcp -d $HTTP_DMZ_IP --dport 80 -j SNAT --to $GW_EXT_IP
#上面這句很關鍵,沒有這一句則從內網到DMZ區HTTP主機的數據包只會從內部走,達不到內網訪問DMZ區HTTP主機外部IP的目的.
iptables -A INPUT -p tcp -s $NET_A -d $HTTP_EXT_IP --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp -s $HTTP_EXT_IP -d $NET_A --sport 80 -m state --state ESTABLISHED,RELATED -j ACCEPT
###############################################################################################################

############################## 内部网络A规则 ###################################################################
#允许到内部网络A网关的SSH连接
iptables -A INPUT -p tcp -d $GW_NET_A_IP --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp -s $GW_NET_A_IP --sport 22 -m state --state ESTABLISHED,RELATED -j ACCEPT

#允许到DMZ区网关的SSH连接
iptables -A INPUT -i $DMZ_IF -p tcp -d $GW_DMZ_IP --dport 22 -j ACCEPT
iptables -A OUTPUT -o $DMZ_IF -p tcp -s $GW_DMZ_IP --sport 22 -m state --state ESTABLISHED,RELATED -j ACCEPT

#允許内部网络A訪問DMZ区HTTP服务
iptables -A FORWARD -i $DMZ_IF -p tcp -s $NET_A -d $HTTP_DMZ_IP --dport 80 -j ACCEPT
iptables -A FORWARD -o $DMZ_IF -p tcp -s $HTTP_DMZ_IP -d $NET_A --sport 80 -m state --state ESTABLISHED,RELATED -j ACCEPT

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

################# 允许内部网络A接入互联网 ############################################################################
#将从外部网络接口出去的,源地址是内部网络A地址的数据包源地址变换为网关的外部IP地址
iptables -t nat -A POSTROUTING -o $EXT_IF -s $NET_A -j SNAT --to $GW_EXT_IP

#允许状态数据包从外部网络接口进来
iptables -A INPUT -i $EXT_IF -m state --state ESTABLISHED,RELATED -j ACCEPT
#允许状态数据包从外部网络接口出去
iptables -A OUTPUT -o $EXT_IF -m state --state ESTABLISHED,RELATED -j ACCEPT
#允许外部网络接口转发状态数据包
iptables -A FORWARD -i $EXT_IF -m state --state ESTABLISHED,RELATED -j ACCEPT

#允许状态数据包从内部网络A的网络接口进来
iptables -A INPUT -i $NET_A_IF -s $ANY_NET -d $NET_A -m state --state ESTABLISHED,RELATED -j ACCEPT
#允许状态数据包从内部网络A的网络接口出去
iptables -A OUTPUT -o $NET_A_IF -s $NET_A -d $ANY_NET -m state --state ESTABLISHED,RELATED -j ACCEPT
#允许转发内部网络A的数据包
iptables -A FORWARD -s $NET_A -j ACCEPT
######################################################################################################################

#允许DMZ区对外提供HTTP服务
iptables -t nat -A PREROUTING -p tcp -d $HTTP_EXT_IP --dport 80 -j DNAT --to $HTTP_DMZ_IP
iptables -A FORWARD -p tcp --dport 80 -d $HTTP_DMZ_IP -j ACCEPT
iptables -A FORWARD -p tcp --sport 80 -s $HTTP_DMZ_IP -m state --state ESTABLISHED,RELATED -j ACCEPT
#以上三句是經過修改的,也是內網訪問DMZ區HTTP主機外部IP的關鍵,先前偶在這三句中都指定了網絡接口 -i $EXT_IF和-o $EXT_IF,而從內網到DMZ區的數據包根本就不走$EXT_IF接口,這樣的數據包就被丟棄了,所以偶今天一大早來就把 -i和 -o參數都去掉了,然後就OK了.

阻塞与AOL ICQ的连接,不要阻塞入口,只阻塞目的文件AOL服务器

 


当你建立好规则集后,检测它很关键。我们所犯的错误由好的管理员去跟踪并找到它们。

  防火墙实际上是一种隔离内外网的工具。在如今Internet访问的动态世界里,在实现过程中很容易犯错误。通过建立一个可靠的、简单的规则集,你可以创建一个更安全的被你的防火墙所隔离的网络环境。

  成功的诀窍:规则越简单越好

  在我们深入探讨之前,要强调一下一个简单的规则集是建立一个安全的防火墙的关键所在。网络的头号敌人是错误配置。为什么当你意外地将消息访问协议(IMAP)公开时,那些坏家伙会试图悄悄携带欺骗性的、片断的信息包通过你的防火墙?请尽量保持你的规则集简洁和简短,因为规则越多,就越可能犯错误,规则越少,理解和维护就越容易。一个好的准则是还不错好不要超过30条。一旦规则超过50条,你就会以失败而告终。当你要从很多规则入手时,就要认真检查一下你的整个安全体系结构,而不仅仅是防火墙。规则越少,规则集就越简洁,错误配置的可能性就越小,系统就越安全。 因为规则少意味着只分析少数的规则,防火墙的CPU周期就短,防火墙效率就可以提高。

 

 

135、136、137、138、139、1434、80、445、1025、2745、3127、6129、3389、123等

 

3389这个端口.是远程登陆的.要开放这个.