#!/bin/bash
#BY: http://sadoc.blog.51cto.com/
#DATE:2015-12-24
#Iptables For Centos
#备份源配置文件
/bin/cp /etc/sysconfig/iptables /etc/sysconfig/iptables.$(date +%F)
#定义变量
IPS=/sbin/iptables
#清空默认规则
$IPS -F
$IPS -X
$IPS -Z
#先配置只允许某个网段能用SSH,以防远程不能用
$IPS -A INPUT -p tcp --dport 22 -s 192.168.1.0/24 -j ACCEPT
#配置开放网段所有开放
$IPS -A INPUT -s 10.0.10.0/24 -p all -j ACCEPT
#配置进入及转发默认为拒绝,出站允许
$IPS --policy OUTPUT ACCEPT
$IPS --policy FORWARD DROP
$IPS -P INPUT DROP
#配置lookback规则
$IPS -A INPUT -i lo -j ACCEPT
$IPS -A OUTPUT -o lo -j ACCEPT
#拒绝一些攻击性IP为拒绝
$IPS -A INPUT -i eth0 -s 172.16.0.0/12 -j DROP
#阻止所有隐患扫描及TCP 状态标志
$IPS -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
#开启数据库端口访问
$IPS -A INPUT -s 192.168.2.0/24 -p tcp --dport 3306 -j ACCEPT
#开放http端口
$IPS -A INPUT -p tcp --dport 80 -j ACCEPT
$IPS -A INPUT -s 172.16.0.0/24 -p tcp -m multiport --dport 8080,8081,8082 -j ACCEPT
#开放snmp
$IPS -A INPUT -s 192.168.2.0/24 -p udp --dport 161 -j ACCEPT
#禁ping
#$IPS -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
$IPS -A INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP
#$IPS -A INPUT -p icmp --icmp-type 8 -s 172.21.0.0/24 -j ACCEPT
#配置关联包通过规则
$IPS -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPS -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
提示:
查看配置规则
#$IPS -L -n
#iptables -nL --line-number 显示行
#iptables -nvL --line-number 显示行
添加规则有两个参数:-A和-I。其中-A是添加到规则的末尾;-I可以插入到指定位置,没有指定位置的话默认插入到规则的首部
添加一条规则到尾部:
# iptables -A INPUT -s 192.168.1.5 -j DROP
再插入一条规则到第三行:
# iptables -I INPUT 3 -s 192.168.1.3 -j DROP
删除规则
#$IPS -D INPUT -p icmp --icmp-type 8 -s 192.168.3.0/24 -j DROP
若是脚本无误,记得保存
#/etc/init.d/iptables save
原文地址:http://sadoc.blog.51cto.com/12189157/1919651