#检查是否安装了iptables service iptables status #安装iptables yum install -y iptables #升级iptables yum update iptables #安装iptables-services yum install iptables-services
1、查看
iptables -nvL –line-number (这个命令跟/etc/init.d/iptables status 输出差不多)
-L 查看当前表的所有规则,默认查看的是filter表,如果要查看NAT表,可以加上-t NAT参数
-n 不对ip地址进行查,加上这个参数显示速度会快很多
-v 输出详细信息,包含通过该规则的数据包数量,总字节数及相应的网络接口
–line-number 显示规则的序列号,这个参数在删除或修改规则时会用到
2、删除
删除用-D参数
删除之前添加的规则(iptables -A INPUT -s 192.168.1.5 -j DROP):
iptables -D INPUT -s 192.168.1.5 -j DROP
有时候有些规则太长,删除时要写一大串,既浪费时间又容易写错,这时我们可以先使用–line-number查看出该条规则的行号,再通过行号删除
iptables -nL –line-number
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 DROP all — 192.168.1.1 0.0.0.0/0
2 DROP all — 192.168.1.2 0.0.0.0/0
3 DROP all — 192.168.1.3 0.0.0.0/0
删除第二行规则
iptables -D INPUT 2
3、修改
修改使用-R参数
将第三行规则改为ACCEPT
先看下当前规则:
iptables -nL –line-number
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 DROP all — 192.168.1.1 0.0.0.0/0
2 DROP all — 192.168.1.2 0.0.0.0/0
3 DROP all — 192.168.1.5 0.0.0.0/0
修改:
iptables -R INPUT 3 -j ACCEPT
4、限制ip端口访问
iptables -I INPUT -s 192.168.1.0/24 -p tcp –dport 22 -j ACCPET
iptables -A INPUT -p tcp -s IP地址 –dport 25 -j ACCEPT
5、根据时段限制访问
iptables -A INPUT -p tcp -m time –timestart 00:00 –timestop 02:00 -j DROP #这里的时间是指UTC时间记得换算
6、限制单个IP一分钟内建立的连接数
iptables -A INPUT -p tcp –syn –dport 80 -m connlimit –connlimit-above 25 -j REJECT
7、端口转发(本机8080转发到远程192.168.1.22:80)
iptables -t nat -A PREROUTING -p tcp -i eth0 –dport 8080 -j DNAT –to 192.168.1.22:80
iptables -t nat -A POSTROUTING -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward #需要打开网转发
iptables -t filter FORWARD -d 192.168.1.22/32 -j ACCEPT #转发的FROWARD要允许双方的数据传输
iptables -t filter FORWARD -s 192.168.1.22/32 -j ACCEPT
8、删除现有规则
iptables -F
9、配置默认链策略
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
10、环回打开:
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
10、保存配置
service iptabls save
完整一个配置过程
iptables -P INPUT ACCEPT iptables -F iptables -X iptables -Z iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -p tcp --dport 21 -j ACCEPT iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP service iptables save systemctl restart iptables.service