#!/bin/sh
###############################################################################
# 设置变量
###############################################################################
WAN_ETH='eth1'
LAN_ETH='eth0'
WAN_IP=`ifconfig $WAN_ETH | grep "inet addr" | awk '{print $2}' | awk -F":" '{print $2}'`
LAN_IP=`ifconfig $LAN_ETH | grep "inet addr" | awk '{print $2}' | awk -F":" '{print $2}'`
LAN_NET="10.0.0.0/8"
IPTABLES=/sbin/iptables
IPTABLESAVE=/sbin/iptables-save
###############################################################################
# 关闭 forward 功能
###############################################################################
echo "0" > /proc/sys/net/ipv4/ip_forward
###############################################################################
# 清除先前的设定
###############################################################################
## 清除预设表 filter 中,所有规则链中的规则
$IPTABLES -t filter -F
## 清除预设表 filter 中,自订链中的规则
$IPTABLES -t filter -X
## 清除mangle表中,所有规则链中的规则
$IPTABLES -t mangle -F
## 清除mangle表中,自订链中的规则
$IPTABLES -t mangle -X
## 清除nat表中,所有规则链中的规则
$IPTABLES -t nat -F
## 清除nat表中,自订链中的规则
$IPTABLES -t nat -X
###############################################################################
# 设定 filter table 的预设政策
###############################################################################
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P INPUT DROP
###############################################################################
# LoopBack accept
###############################################################################
$IPTABLES -A INPUT -p all -d 127.0.0.1 -s 127.0.0.1 -j ACCEPT
$IPTABLES -A INPUT -p all -d $LAN_IP -s $LAN_IP -j ACCEPT
$IPTABLES -A INPUT -p all -d $LAN_IP -s $LAN_NET -j ACCEPT
$IPTABLES -A INPUT -p all -d $WAN_IP -s $WAN_IP -j ACCEPT
###############################################################################
# Reply Package for INPUT stream
###############################################################################
$IPTABLES -A INPUT -p all -d $LAN_IP -s 0/0 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -p all -d $WAN_IP -s 0/0 -m state --state ESTABLISHED,RELATED -j ACCEPT
###############################################################################
# 防止SYN攻击 轻量级预防
###############################################################################
#$IPTABLES -N syn-flood
#$IPTABLES -A INPUT -p tcp --syn -j syn-flood
#$IPTABLES -I syn-flood -p tcp -m limit --limit 100/s --limit-burst 6 -j RETURN
#$IPTABLES -A syn-flood -j REJECT
###############################################################################
# 防止DOS太多连接进来,可以允许外网网卡每个IP最多15个初始连接,超过的丢弃
###############################################################################
#$IPTABLES -A INPUT -i $WAN_ETH -p tcp --syn -m connlimit --connlimit-above 15 -j DROP
###############################################################################
# Service
###############################################################################
$IPTABLES -A INPUT -p tcp --dport 22 -s 0/0 -j ACCEPT # sshd
$IPTABLES -A INPUT -p tcp --dport 80 -s 0/0 -j ACCEPT # httpd
###############################################################################
# 打开 forward 功能
###############################################################################
echo "1" > /proc/sys/net/ipv4/ip_forward
###############################################################################
# Store ruler
###############################################################################
$IPTABLESAVE > /etc/sysconfig/iptables
保存为iptables.sh
chmod a+x iptables.sh
./iptables.sh
(仅限centos 6系统)
-------------------------
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。