#!/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