iptables的连接追踪机制和nf_conntrack调优
2015-12-23 19:53
323 查看
iptables/netfilter具有追踪连接状态功能,用于描述各会话连接之间的关系性。一般为四层协议:TCP/UDP/ICMP等等。
为什么要用追踪连接状态呢?iptables/netfilter默认规则为拒绝的情况下,当用户访问一个iptables/netfilter允许的服务(端口)的时候,服务器如果想要回复客户端则还需要为其设定一个放行的规则(如果有多个就要多个规则),然而这是多余的,当防火墙允许客户端向某服务通信时,则认为此连接一定是符合规则的,与之相对的通信都应该是可靠的,可以对其放行。这样就可以实现一条规则放行所有可信的通信,而不用多条规则。
iptables/netfilter追踪的连接状态有四种:
iptables/netfilter的状态追踪由state模块提供,state底层依赖于nf_conntrack(2.6内核之前叫作ip_conntrack),nf_conntrack是内核功能,负责具体的连接追踪的实施。
nf_conntrack是有限制的,其根据内部算法,会在内核空间(内存)中记录各所追踪的连接的状态,并将其映射到/proc/net/nf_conntrack文件中。nf_conntrack连接追踪的限制由/proc/sys/net/nf_conntrack_max文件控制,可以修改该文件或者/etc/sysctl.conf。
相关的文件:
/proc/sys/net/目录
/proc/net/目录
注:由于连接追踪的限制问题,当超过限制时,会导致服务器拒绝服务。此时就需要将/prc/sys/net/nf_conntrak_max调大。如果是一个流量特别大的服务器,不建议开启此功能。
为什么要用追踪连接状态呢?iptables/netfilter默认规则为拒绝的情况下,当用户访问一个iptables/netfilter允许的服务(端口)的时候,服务器如果想要回复客户端则还需要为其设定一个放行的规则(如果有多个就要多个规则),然而这是多余的,当防火墙允许客户端向某服务通信时,则认为此连接一定是符合规则的,与之相对的通信都应该是可靠的,可以对其放行。这样就可以实现一条规则放行所有可信的通信,而不用多条规则。
iptables/netfilter追踪的连接状态有四种:
NEW | 新连接,发送的第一个包; |
ESTABLISHED | 已经建立的连接 |
RELATED | 数据连接和命令连接之间的关系,FTP服 |
INVALID | 无效的报文请求,例如TCP的SYN,ACK,FIN都为1 |
nf_conntrack是有限制的,其根据内部算法,会在内核空间(内存)中记录各所追踪的连接的状态,并将其映射到/proc/net/nf_conntrack文件中。nf_conntrack连接追踪的限制由/proc/sys/net/nf_conntrack_max文件控制,可以修改该文件或者/etc/sysctl.conf。
相关的文件:
/proc/sys/net/目录
/proc/net/目录
# /proc/sys/net/nf_conntrack_max 定义连接追踪的最大值,建议按需调大此值; |
# /proc/net/nf_conntrack 记录了当前追踪的所有连接 |
# /proc/sys/net/netfilter/nf_conntrak_tcp_timeout_established ESTABLISHED超时时长,默认时间比较长,建议调小此值。 |
相关文章推荐
- 小心服务器内存居高不下的元凶--WebAPI服务
- 运维入门
- 网易云音乐8亿用户背后的伤疤
- 谷歌正式开始补偿Nexus 6P重启门和电池门用户:最高赔400美元
- Linux5.9无人值守安装
- 数据中心和云未来的十二大趋势
- 使用zabbix监控Nginx活动状态--Part1
- 用vsftp快速搭建ftp服务器
- Linux快速构建apache web服务器
- 服务器监控策略浅谈
- windows server域用户提升到本地更高权限组中的方法
- 管理 Linux 系统中的用户
- 如何降低服务器采购成本 原理分析
- 建议的服务器分区办法
- 服务器托管六大优势分析
- Erlang实现的一个Web服务器代码实例
- Vista 防火墙 Vista Firewall Control v1.0.11 下载
- 服务器技术全面解析