Skip to content

Latest commit

 

History

History

iptables

一、iptables没有生效的问题

由于配置问题配置REJECT的情况

1、-A INPUT -j REJECT --reject-with icmp-host-prohibited,这行已拒绝其他端口的命令,如果我们将新插入的开放端口在放在这行命令之后的情况下,后面的配置开放的端口是不会被启用的。例如:

-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited --需要将这行放到-A INPUT -j REJECT规则前面才生效
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT   --需要将这行放到-A INPUT -j REJECT规则前面才生效

二、iptables文件说明

*filter #代表接下来的配置都是在filter表上的。我们默认的配置都在filter表上的,当然还有其它表,如raw,mangle,nat

:INPUT DROP [8:632]   #代表filter表上默认的input chain为drop ,对应上面的命令iptables -P INPUT DROP,中括号里面的两个数字代表的是这条链上已经接受到的包的数量及字节数量[包的数量:包的总字节数]
:FORWARD DROP [0:0]   #代表filter表上默认的forward chain为drop ,对应上面的命令iptables -P FORWARD DROP,中括号里面的两个数字代表的是这条链上已经接受到的包的数量及字节数量[包的数量:包的总字节数]
:OUTPUT ACCEPT [4:416] #代表filter表上默认的output chain为drop ,对应上面的命令iptables -P OUTPUT ACCEPT,中括号里面的两个数字代表的是这条链上已经接受到的包的数量及字节数量[包的数量:包的总字节数]

三、iptables优化

当服务器收到一条请求时,它会把iptables从上往下,一条条匹配定制的规则,那么假如机器收到一个正常的web请求,要走80端口,它需要先去检验前面5条规则,发现都不符合,直到第六条满足条件,那么这样的话防火墙的工作效率就低了很多。

所以我们优化的思路是:请求最频繁的放在最上面,请求频率较小的放在最后面。

我们此时可以直接去修改文件:vi /etc/sysconfig/iptables

调整后顺序大概为:

# Generated by iptables-save v1.4.7 on Wed Sep 28 18:06:07 2016
*filter
:INPUT DROP [8:632]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [4:416]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -s 192.168.135.0/24 -j ACCEPT
-A INPUT -s 192.168.140.0/24 -j ACCEPT
-A INPUT -s 183.121.3.7/32 -p tcp -m tcp --dport 3380 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
COMMIT
# Completed on Wed Sep 28 18:06:07 2016

因为web服务器,肯定是80端口访问最频繁,那为什么不是放第一条呢?

在这里,我们把已经有状态的联接放在第一条是因为在请求连接中,有很多都是在建立在已经联接的基础上通信的,譬如有可能你第一次连接的3380端口,状态是new,但在后续的联接都为ESTABLISHED,第一条就可以匹配到了。

参考文档:

https://www.jianshu.com/p/8ded7c5fda1d CentOS 防火墙配置与REJECT导致没有生效问题

https://www.cnblogs.com/zejin2008/p/5917654.html linux iptables常用命令之配置生产环境iptables及优化