配置规则基本思路

1,允许本地访问

2,允许已监听状态数据包通过

3,允许规则中允许的数据包通过

4,拒绝未被允许的数据包

iptables规则保存成配置文件

注意开放ssh远程管理端口

[root@www ~]# iptables -F
[root@www ~]# iptables -I INPUT -i lo -j ACCEPT
[root@www ~]# iptables -I INPUT -m state --state ESTABLISH,RELATED -j ACCEPT
[root@www ~]# iptables -A INPUT -s 10.10.122.0/24 -j ACCEPT
[root@www ~]# iptables -A INPUT -s 10.10.123.0/24 -j ACCEPT
[root@www ~]# iptables -A INPUT -s 192.168.10.23  -j ACCEPT
[root@www ~]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT
[root@www ~]# iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
[root@www ~]# iptables -A INPUT -p tcp --dport 110 -j ACCEPT
[root@www ~]# iptables -A INPUT -p tcp --dport 25 -j ACCEPT
[root@www ~]# iptables -I INPUT -p icmp -j ACCEPT
[root@www ~]# iptables -A INPUT -j REJECT
[root@www~]#/etc/init.d/iptables save
[root@www~]# cat /etc/sysconfig/iptables

# Generated by iptables-save v1.4.7 on Thu May 14 21:53:11 2015
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [68:8284]
-A INPUT -p icmp -j ACCEPT 
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -i lo -j ACCEPT 
-A INPUT -s 10.10.122.0/24 -j ACCEPT 
-A INPUT -s 10.10.123.0/24 -j ACCEPT 
-A INPUT -s 192.168.10.23/32 -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 110 -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 25 -j ACCEPT 
-A INPUT -j REJECT --reject-with icmp-port-unreachable 
COMMIT
# Completed on Thu May 14 21:53:11 2015


1) iptables模拟控制并发的httpd访问

 

iptables -I INPUT -p tcp --dport 80 -m connlimit --connlimit-above 10 -j REJECT

2)场景

1:对所有地址开放本机的tcp(80,22,10-21)的端口访问;

iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
iptables -I INPUT -p tcp --dport 10:21 -j ACCEPT

2:允许对所有的地址开放本机的基于icmp协议的数据包访问;

 iptables -I INPUT -p icmp  -j ACCEPT

3:其他未被允许的端口则禁止访问;

 

iptables -A INPUT -j REJECT

以上场景存在以下问题:1本机无法访问本机2本机无法访问其他主机

允许访问lo设备

iptables -I INPUT -i lo -j ACCEPT

本机主动发往外部的请求要OK的

iptables -I INPUT -m state --state ESTABLISH,RELATED -j ACCEPT

iptables在FTP主动模式下

 iptables -I INPUT -p tcp --dport 21 -j ACCEPT

iptables在FTP被动模式下

法1:

iptables -I INPUT -p tcp --dport 21 -j ACCEPT
iptables -I INPUT -p tcp --dport 50000:60000 -j ACCEPT

法2:

iptables -I INPUT -p tcp --dport 21 -j ACCEPT
 iptables -I INPUT -m state --state ESTABLISH,RELATED -j ACCEPT

modprobe nf_conntrack_ftp  临时设置

[root@www ~]# grep -n nf_conntrack_ftp /etc/sysconfig/iptables-config  永久设置
6:IPTABLES_MODULES="nf_conntrack_ftp"

NAT表规则配置

SNAT  ------POSTROUTING

iptable -t nat -A POSTROUTING -s 10.10.122.0/24 -j SNAT --to 10.10.121.12

DNAT-------PREROUTING

iptable -t nat -A PREROUTING -d 10.10.10.23 -p tcp --dport 80 -j DNAT --to 10.10.20.222:80

iptables 防CC***

connlimit模块,限制每一个客户端ip的并发连接数

iptables -I INPUT -p tcp --dport 80 -m connlimit --connlimit-above 10 -j REJECT

limit模块,限速,控制流量 

iptables -A INPUT -m limit --limiy 3/hour

 

iptables -A INPUT -p icmp -m limit --limit 1/m --limit-burst 10 -j ACCEPT
iptables -A INPUT -p icmp -j DROP