Linux 下配置iptables详解
itables规则链
- PREROUTE
- INPUT
- FORWARD
- OUTPUT
- POSTROUTING
防火墙策略
- 默认关闭,只有指定数据放行
- 默认开启,只有指定的开启
动作
- DEOP 丢弃
- REJECT 明示拒绝
- ACCEPT 接受
- custom_chain 转向一个自定义的链
- DNAT
- SNAT
- MASQUERADE 源地址伪装
- REDIRECT 端口重定向
- MARK 打防火墙的标志
- RETURN 返回在自定义链执行完毕后返回 来返回原规则链
iptables默认三个表
- filter
- nat
- manage
iptables基本命令
这些配置就像用命令配置IP一样,重起就会失去作用,所以我们需要去保存这个配置 /etc/rc.d/init.d/iptables save, 这样就可以写到/etc/sysconfig/iptables文件里了.写入后记得把防火墙重起一下,才能起作用. service iptables restart
1
2
3
iptables -L -n查询当前iptables的规则
iptables -F 清除预设表fliter中的所有规则链的规则
iptabl e -X (OUTPUT)可以指定链清理 清除预设表filter中使用者自定链中的规则
-
设置预设规则
1 2 3
iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP > 上面命令的意思就是 输入的和转发的 如果不在我们定义的规则里面就丢弃掉(INPUT FORWARD) 而对于OUTPUT我们没有过多的限制 如果输出的不在我们的规则里面即通过
-
添加规则
详细限制某个ip访问 iptables -t filter -A OUTPUT -s 192.168.31.210 -d 192.168.31.211 -p tcp –dport 22 -j ACCEPT
-t 指定表 -s 指定输入源 -d 指定接收 -p tcp 指定协议 –dport 指定端口 -j 指定规则
开启ping iptables -A OUTPUT -p icmp -j ACCEPT (OUTPUT设置成DROP的话) iptables -A INPUT -p icmp -j ACCEPT (INPUT设置成DROP的话)
关闭一下不必要端口 iptables -A OUTPUT -p tcp –sport 31337 -j DROP
这个是可以任何ip访问 只是开放了端口 开启ftp服务 iptables -A INPUT -p tcp –dport 21 -j ACCEPT iptables -A INPUT -p tcp –dport 20 -j ACCEPT
如果一个ip访问web服务并发20以上就拒绝该连接 iptables -I INPUT -p tcp –dport 80 -m connlimit –connlimit-above 20 -j REJECT
### ipset 1.ipset安装
yum安装: yum install ipset 2.创建一个ipset
ipset create xxx hash:net (也可以是hash:ip ,这指的是单个ip,xxx是ipset名称) ipset默认可以存储65536个元素,使用maxelem指定数量
ipset create blacklist hash:net maxelem 1000000 #黑名单 ipset create whitelist hash:net maxelem 1000000 #白名单 查看已创建的ipset
ipset list 3.加入一个名单ip
ipset add blacklist 10.60.10.xx 4.去除名单ip
ipset del blacklist 10.60.10.xx 5.创建防火墙规则,与此同时,allset这个IP集里的ip都无法访问80端口(如:CC攻击可用)
iptables -I INPUT -m set –match-set blacklist src -p tcp -j DROP iptables -I INPUT -m set –match-set whitelist src -p tcp -j DROP service iptables save iptables -I INPUT -m set –match-set setname src -p tcp –destination-port 80 -j DROP 6.将ipset规则保存到文件
ipset save blacklist -f blacklist.txt ipset save whitelist -f whitelist.txt 7.删除ipset
ipset destroy blacklist ipset destroy whitelist 8.导入ipset规则
ipset restore -f blacklist.txt ipset restore -f whitelist.txt ipset的一个优势是集合可以动态的修改,即使ipset的iptables规则目前已经启动,新加的入ipset的ip也生效