首页 > 系统相关 >七月学习之Iptables连接追踪state

七月学习之Iptables连接追踪state

时间:2023-08-06 14:04:04浏览次数:48  
标签:Iptables ESTABLISHED -- 端口 state 80 连接 追踪

7、Iptables连接追踪state

7.1、什么是连接追踪

state(conntrack)连接追踪,顾名思义,就是跟踪(并记录)连接的状态
如下图:是一台IP地址为10.1.1.2的linux机器,我们能看到这台机器上有三条连接
1、机器访问外部HTTP服务的连接(目的端口80)
2、外部访问机器内FTP服务的连接(目的端口21)
3、机器访问外部DNS服务的连接(目的端口53)

连接追踪所做的事情就是发现并跟踪这些连接的状态,但这个跟踪状态与TCP协议没有关系
它是由内核netfilter在IP层实现,可IP层是无连接、无追踪的,那是如何知道这个IP是否存在
当用户发送请求时,会将用户的请求信息存储在内存开辟的空间中,对应在/proc/net/nf_conntrack
1、文件会记录源IP、目标IP、协议、时间、状态等信息
2、当用户再次发起请求,就可以通过文件获取该用户是否来过,以此来实现连接追踪机制
3、注意:该文件能存储的条目是受/proc/net/nf_conntrack_max设定大小所限

查看链接追踪详情:/proc/net/nf_conntrack
调整链接追踪大小:echo "100000" > /proc/sys/net/nf_conntrack_m

七月学习之Iptables连接追踪state_80端口

7.2、连接追踪有哪些状态

[ New ]:新请求,内存中不存在此连接的相关条目,以此识别为第一次请求,状态为NEW
[ ESTABLISHED ]:NEW状态之后,再次建立连接,由于此前的连接还没有失效,所以追踪后被视为已连接通讯状态,状态为ESTABLISHED
[ RELATED ]:相关的连接,比如ftp程序有两个连接,命令连接和数据连接,命令连接有来有往是一个独立的循环。数据连接有来有往又是另外一个许独立的循环
但是两者之间有关系,如果没有命令连接就不可能有数据连接,所以我们将这种称为"相关联的连接"
[ INVALID ]:无效的连接

7.3、连接追踪应用场景

正常情况下服务器的80端口不会主动连接其他服务器,如果出现了80端口连接其他服务器,那么说明出现了异常行为,或者可以理解为中了木马程序冰毒
如果关闭80端口的响应报文,就会造成请求进来无法响应,如果开放80端口则又会出现异常行为
所以我们需要对80端口做连接追踪限制,凡是从80端口出去的就必须是对某个请求的响应,也就是说通过80端口出去的状态必须是ESTABLISHED,不能是NEW

7.4、连接追踪场景配置

1、允许接收远程主机向本机发送的SSH与HTTP请求(NEW、ESTABLISHED)
2、同时也仅允许本机向其他主机回应SSH以及HTTP响应(ESTABLISHED)
3、但不允许本机通过22、80端口主动向外发起连接

#INPUT:
iptables -t filter -I INPUT -p tcp -m multiport --dport 80,22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -t filter -A INPUT -p tcp -m multiport --dport 80,22 -j DROP

#OUTPUT:
iptables -t filter -I OUTPUT -p tcp -m multiport --sport 22,80 -m state --state ESTABLISHED -j ACCEPT
iptables -t filter -A OUTPUT -p tcp -m multiport --sport 22,80 -j DROP

标签:Iptables,ESTABLISHED,--,端口,state,80,连接,追踪
From: https://blog.51cto.com/u_13236892/6983471

相关文章

  • 七月学习之Iptables基本匹配
    5、Iptables基本匹配我们前面在练习规则操作时,使用的"匹配条件"比较少,下面我们来了解下iptables匹配条件更多的用法5.1、iptables匹配参数5.2、iptables匹配示例1仅允许10.0.0.1访问10.0.0.200服务器的22端口、其他地址全部拒绝。#-I插入规则至第一行、—A追加规则、-s源地址、-d......
  • k8s 学习笔记之 Pod 控制器——StatefulSet
    StatefulSetStatefulSet是用来管理有状态应用的工作负载API对象。StatefulSet用来管理某Pod集合的部署和扩缩,并为这些Pod提供持久存储和持久标识符。和Deployment类似,StatefulSet管理基于相同容器规约的一组Pod。但和Deployment不同的是,StatefulSet为它们的每个......
  • 服务器线路-路由追踪
    服务器的线路服务器的线路有很多,大致的分为,CN2、CIA、CDIA、GIA等什么是IPLC专线:IPLC专线是国际私用出租线路。本质就是点对点内网。网络的入口在国内,所以不会受国际链路影响,也不用走国家防火墙,IP地址可用率高。不会被墙。出口在国外,可任意访问国内无法访问的网站。由于走的内......
  • iptables: No chain/target/match by that name
    部署完docker后执行脚本报错在启动run.sh脚本后出现iptables:Nochain/target/matchbythatname.报错解决办法:重启dockerPS:重启docker后,通过以下命令可以查看最新防火墙配置:iptables-L应该看到iptables配置中ChainDocker设置已更新(与1中历史结果进行对比)原因解释重新......
  • 简述分布式链路追踪工具——Jaeger
    1、简介1.1Jaeger是什么Jaeger  是受到​ ​Dapper​​​和​ ​OpenZipkin​​​启发的由​ ​UberTechnologies​​作为开源发布的分布式跟踪系统,截止2023年8月3日最新稳定版本是1.47。其前端采用React语言实现,后端采用GO语言实现,适用于进行链路追踪,分布式跟踪消......
  • 智能化RFID耳机装配系统:提升效率、精准追踪与优化管理
    智能化RFID耳机装配系统:提升效率、精准追踪与优化管理在当今的智能化时代,无线射频识别技术(RFID)被广泛应用于各个行业。本文将介绍一种基于RFID技术的智能耳机装配案例,通过RFID技术实现耳机装配过程的自动化控制和质量管理,提高装配效率和产品可追溯性。RFID技术是一种利用无线电波进......
  • Statement.executeQuery() cannot issue statements that do not produce result sets
    在用SpringBootJPA的时候导致Statement.executeQuery()cannotissuestatementsthatdonotproduceresultsets解决方法:在@Query上加上@Modifying,表示不需要返回值@Query对应到底层jdbc框架是Statement.executeQuery(),而@Modifying@Query对应的是Statement.execute();......
  • 开启firewalld或iptables的日志记录
    文件名:ip_fire.sh内容:#!/bin/bash#iptablesiptables_run(){#修改日志文件grep-e"^kern.*"/etc/rsyslog.confflag_k=$?if[$flag_k-eq0]thenecho"rsyslog日志指定文件已存在"elsesed-i'/#kern.*......
  • 七月学习之Iptables链的概念
    2、Iptables链的概念2.1、什么是链在iptables中的关卡为什么被称作"链"呢防火墙的作用就在于对经过的数据报文进行"规则"匹配,然后执行规则对应的"动作",所以当报文经过这些关卡的时候,则必须匹配这个关卡上的规则但是,这个关卡上可能不止有一条规则,而是有很多条规则,当我们把这些规......
  • UML建模之状态图(Statechart Diagram)
     状态图目录:一、状态图简介(Briefintroduction)二、状态图元素(StateDiagramElements)1、状态(States)2、转移(Transitions)3、动作(StateActions)4、自身转移(Self-Transitions)5、组合状态(CompoundStates)6、进入节点(EntryPoint)7、退出节点(ExitPoint)8、历史状态(HistoryStates)9、并发......