配置规则基本思路
1,允许本地访问
2,允许已监听状态数据包通过
3,允许规则中允许的数据包通过
4,拒绝未被允许的数据包
iptables规则保存成配置文件
注意开放ssh远程管理端口
[[email protected] ~]# iptables -F [[email protected] ~]# iptables -I INPUT -i lo -j ACCEPT [[email protected] ~]# iptables -I INPUT -m state --state ESTABLISH,RELATED -j ACCEPT [[email protected] ~]# iptables -A INPUT -s 10.10.122.0/24 -j ACCEPT [[email protected] ~]# iptables -A INPUT -s 10.10.123.0/24 -j ACCEPT [[email protected] ~]# iptables -A INPUT -s 192.168.10.23 -j ACCEPT [[email protected] ~]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT [[email protected] ~]# iptables -A INPUT -p tcp --dport 1723 -j ACCEPT [[email protected] ~]# iptables -A INPUT -p tcp --dport 110 -j ACCEPT [[email protected] ~]# iptables -A INPUT -p tcp --dport 25 -j ACCEPT [[email protected] ~]# iptables -I INPUT -p icmp -j ACCEPT [[email protected] ~]# iptables -A INPUT -j REJECT
[[email protected]~]#/etc/init.d/iptables save
[[email protected]~]# 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 临时设置
[[email protected] ~]# 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