当前位置:首页 > iptables透明桥防火墙
#-----------------------------------
IPTABLES=\
########################################################################### # 2. Flush firewall rules
#=======================================
service iptables stop
########################################################################### # 3.proc set up.
#========================================
echo \echo \echo \echo \
echo \
#-----------------------------------
########################################################################### # 4. rules set up.
#========================================
#---------------------------------------- # 4.1 Filter table
#----------------------------------------
# 4.1.1 Set policies
$IPTABLES -P INPUT DROP $IPTABLES -P OUTPUT DROP $IPTABLES -P FORWARD DROP
#---------------------------------------- # 4.1.2 Create userspecified chains #----------------------------------------
# Create chain for bad packets $IPTABLES -N bad_tcp_packets $IPTABLES -N bad_udp_packets
#----------------------------------------- # 4.1.3 Create content in userspecified chains #-----------------------------------------
# bad_tcp_packets chain
$IPTABLES -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK \\ -m state --state NEW -j REJECT --reject-with tcp-reset
$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP $IPTABLES -A bad_tcp_packets -p tcp -m multiport --dport 135,137,138,139,445, 1022,1023,1433,1434, 2500,2745,3128,3332,4444,5000,5238,5300,5554,6346,6667,9393 -j DROP
# bad_udp_packets chain
$IPTABLES -A bad_udp_packets -p UDP -m multiport --dport 135,136,137,138,139,445,69,593,1343,4444,1029,1068 -j DROP
#-------------------------------------------- # 4.1.4 INPUT chain
#--------------------------------------------
$IPTABLES -A INPUT -p tcp -j bad_tcp_packets $IPTABLES -A INPUT -p udp -j bad_udp_packets
$IPTABLES -A INPUT -p tcp -i $MANAGER_IFACE --dport 22 -j ACCEPT
#--------------------------------------------- # 4.1.5 FORWARD chain
#---------------------------------------------
$IPTABLES -A FORWARD -p tcp -j bad_tcp_packets $IPTABLES -A FORWARD -p udp -j udp_packets
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A FORWARD -m physdev --physdev-in $LAN_IFACE -j ACCEPT $IPTABLES -A FORWARD -p tcp -s 10.xxx.xxx.xxx –dport 80 -j ACCEPT $IPTABLES -A FORWARD -p icmp -j ACCEPT
#--------------------------------------------- # 4.1.6 OUTPUT chain
#---------------------------------------------
$IPTABLES -A OUTPUT -p tcp -j bad_tcp_packets $IPTABLES -A OUTPUT -p udp -j bad_udp_packets
#$IPTABLES -A OUTPUT -p tcp -o $MANAGER_IFACE --sport 22 -j ACCEPT
保存后,执行
#chmod 770 firewall ,将脚本firewall的属性改为可执行。
最后在/etc/rc.local中加入一句/usr/local/firewall 使系统启动的时候能够自动启动该防火墙。
5.2对脚本进行说明
# 1. Configuration options.
这部分是一些配置选项,用于设定WAN口,LAN口,管理口所对应的设备。其中, INET_IFACE=\,为WAN口,连接Internet。 LAN_IFACE=\为LAN口,连接局域网。
MANAGER_IFACE=\为管理口,用于远程管理防火墙。
# 2. Flush firewall rules
通过执行service iptables stop,在应用防火墙脚本之前,清除以前的规则和链。
# 3.proc set up.
echo \echo \
上面两句,通过调整CONNTRACK_MAX和HASHSIZE来得到更好的跟踪连接性能。默认的CONNTRACK_MAX和HASHSIZE的值都会因主机的不同而不同,如果防火墙的负载很高时,才进行改变。
echo \
上面这句,通过设置ip_forward为“1”,打开IP转发功能。
echo \,tcp_syncookies是一个开关,打开SYN Cookie功能,该功能可以防止部分SYN攻击
echo \> /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts,关闭echo广播来防止ping攻击。
# 4. rules set up.
在这一节里,将设置缺省策略,创建自定义的链,根据需要创建规则。
首先,我们设置缺省策略。如果有一个包,没有被规则集的任何规则匹配到,最后将匹配相应的缺省则略。 $IPTABLES -P INPUT DROP $IPTABLES -P OUTPUT DROP $IPTABLES -P FORWARD DROP
其次,我们创建两个链bad_tcp_packets和bad_udp_packets,用来过滤可以确定的坏包。 $IPTABLES -N bad_tcp_packets $IPTABLES -N bad_udp_packets
我们新建的链都是空的,接下来来了解这些链包含哪些规则,有什么作用。
$IPTABLES -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j REJECT --reject-with tcp-reset
共分享92篇相关文档