iptables状态检测

iptables状态检测

iptables状态检测是一种扩展匹配中的显式扩展,用于检测会话之间的连接关系的,有了检测我们可以实现会话间功能的扩展

什么是状态检测?

每个建立的连接包括以下信息:源IP地址、目标IP地址、源端口和目的端口,这叫一对套接字对(socket ); 协议类型、连接状态(TCP协议)和超时时间等信息。防火墙把这些信息叫作状态(stateful),能够检测每个连接状态的防火墙叫作带状态检测的包过滤防火墙;它除了能够完成简单包过滤防火墙的包过滤工作外,还在自己的内存中维护一个跟踪连接状态的表,比简单包过滤防火墙具有更大的安全性。

对于整个TCP协议来讲,它是一个有连接的协议,

在tcp的三次握手中:

NEW: 新建立的连接,连接追踪模板中无相应的条目时,客户端第一次发出的请求;(tcp三次握手中的第一次握手)

ESTABLISHED:NEW状态之后,边距追踪模板中的条目删除之前所进行的通信过程,都称为ESTABLISHED;(tcp的第二次第三次握手,叫做已建立的连接(ESTABLISHED))

INVALID:还有一种状态,比较诡异的,比如:SYN=1 ACK=1 RST=1,对于这种我们无法识别的,我们都称之为INVALID无法识别的

RELATED:表示发起一个新的连接,但是这个连接和一个现有的连接有关

-m state扩展

启用连接追踪模板记录连接,并根据连接匹配连接状态的扩展;

专用选项:

--state STATE

示例 : 放行访问本机22,80端口的服务

# iptables -t filter -I INPUT-d 172.16.6.61 -p tcp -m multiport --dports 22,80 -m state --state  NEW,ESTABLISHED -j ACCEPT

# iptables -t filter -IOUTPUT -s 172.16.6.61  -p tcp  -m state --state  NEW,ESTABLISHED -j ACCEPT

调整连接追踪功能所能容纳的连接的最大数目:

/proc/sys/net/nf_conntrack_max

当前追踪的所有连接:

/proc/net/nf_conntrack

[[email protected] ~]# cat/proc/net/nf_conntrack

ipv4     2 tcp     6 29 TIME_WAIT src=172.16.6.62 dst=172.16.6.61 sport=41644 dport=22 src=172.16.6.61dst=172.16.6.62 sport=22 dport=41644 [ASSURED] mark=0 secmark=0 use=2

ipv4     2 icmp    1 29 src=172.16.6.62 dst=172.16.6.61 type=8 code=0 id=20325src=172.16.6.61 dst=172.16.6.62 type=0 code=0 id=20325 mark=0 secmark=0 use=2

ipv4     2 tcp      6 299 ESTABLISHED src=172.16.6.61dst=172.16.6.11 sport=22 dport=63572 src=172.16.6.11 dst=172.16.6.61sport=63572 dport=22 [ASSURED] mark=0 secmark=0 use=2

conntrack

查看该conntrack模块是否已加载

[[email protected] ~]# lsmod | grepnf_conntrack

nf_conntrack_ipv4       9506 4

nf_defrag_ipv4          1483 1 nf_conntrack_ipv4

nf_conntrack           80390  2 nf_conntrack_ipv4,xt_state

在高并发状态下建议 卸载该模块 或者 提高该模块的连接的最大数目

[[email protected] ~]# modprobe -rnf_conntrack

[[email protected] ~]# modprobe -r nf_conntrack_ipv4

[[email protected] ~]# modprobe -rnf_defrag_ipv4

不同协议或连接类型追踪时的时长属性:

/proc/sys/net/netfilter/

如何放行被动模式下的ftp服务:

(1) 装载模块:

# modprobe nf_conntrack_ftp

(2) 放行请求报文

放行入站请求端口为21的请求报文;

放行所有状态为ESTABLISHED和RELATED状态的入站报文;

(3) 放行出站响应报文

放行所有状态为ESTABLISHED的出站报文;

如何保存及重载规则:

保存:

(1) service iptables save

/etc/sysconfig/iptables文件;

(2) iptables-save > /PATH/TO/SOMEFILE

时间: 2024-10-25 04:19:10

iptables状态检测的相关文章

LVS自动化添加及删除ipvsadm和后端服务器健康状态检测脚本

  LVS director 负载均衡器增加IPVSADM脚本 #vim director.sh #!/bin/bash #chkconfig: - 88 66 #description: this script to add lvs IP VIP=192.168.0.254 DIP=192.168.0.100 RIP1=192.168.0.101 RIP2=192.168.0.102 PORT=80 SCHELE=wrr LOCKFILE=/var/lock/subsys/ipvsadm ca

如何编写LVS对Real Server的健康状态检测脚本

简介:Linux 虚拟服务器(Linux Virtual Server. LVS),是一个由章文松开发的自由软件.利用KVS可以实现高可用的.可伸缩缩的Web, Mail, Cache和Medial等网络股务..井在此基 础上开发支持庞大用户数的,可伸缩的,高可用的电子商务应用.LVS1998年发展到现在,已经变得比较成熟,目前广泛应用在各种网络服务和电了商务应用 中.LVS具有很好的伸缩缩性.可靠性和管埋性,通过LVS要实现的最终目标是:利用linux 操作系统和LVS集群软件实现一个高可用.

nagios 实时监控 iptables 状态

实时监控Iptables,防止人为关闭后,忘了开启,或者监控规则是否有增删. 在客户端(被监控端): # cd /usr/local/nagios/etc # vim nrpe.cfg 增加如下内容: command[check_iptables]=/usr/local/nagios/libexec/check_iptables.sh # cd /usr/local/nagios/libexec # touch check_iptables.sh # chmod 755 check_iptabl

状态检测防火墙原理

状态检测防火墙原理 防火墙发展到今天,虽然不断有新的技术产生,但从网络协议分层的角度,仍然可以归为以下三类: 1.包过滤防火墙: 2.基于状态检测技术(Stateful-inspection)的防火墙: 3.应用层防火墙 这三类防火墙都是向前兼容的,即基于状态检测的防火墙也有一般包过滤防火墙的功能,而基于应用层的防火墙也包括前两种防火墙的功能.由于<<浅>>文已讲了第一类防火墙,在这里我就讲讲基于状态检测技术的防火墙的实现原理. 为什么会有基于状态检测的防火墙呢?这就要先看看第一类

李洪强iOS下的实际网络连接状态检测

iOS下的实际网络连接状态检测 序言 网络连接状态检测对于我们的iOS app开发来说是一个非常通用的需求.为了更好的用户体验,我们会在无网络时展现本地或者缓存的内容,并对用户进行合适的提示.对绝大部分iOS开发者来说,从苹果示例代码改变而来的各种Reachablity框架是实现这个需求的普遍选择,比如这个库.但事实上,基于此方案的所有实现,都无法帮助我们检测真正的网络连接状态,它们能检测的只是本地连接状态:这种情况包括但不限于如下场景: 1.现在很流行的公用wifi,需要网页鉴权,鉴权之前无法

SMART 硬盘状态检测

SMART 简介 S.M.A.R.T.,全称为"Self-Monitoring Analysis and Reporting Technology",即"自我监测.分析及报告技术".是一种自动的硬盘状态检测与预警系统和规范.通过在硬盘硬件内的检测指令对硬盘的硬件如磁头.盘片.马达.电路的运行情况进行监控.记录并与厂商所设定的预设安全值进行比较,若监控情况将或已超出预设安全值的安全范围,就可以通过主机的监控硬件或软件自动向用户作出警告并进行轻微的自动修复,以提前保障硬

iOS下的实际网络连接状态检测:RealReachability

序言 网络连接状态检测对于我们的iOS app开发来说是一个非常通用的需求.为了更好的用户体验,我们会在无网络时展现本地或者缓存的内容,并对用户进行合适的提示.对绝大部分iOS开发者来说,从苹果示例代码改变而来的各种Reachablity框架是实现这个需求的普遍选择,比如这个库.但事实上,基于此方案的所有实现,都无法帮助我们检测真正的网络连接状态,它们能检测的只是本地连接状态:这种情况包括但不限于如下场景: 1.现在很流行的公用wifi,需要网页鉴权,鉴权之前无法上网,但本地连接已经建立: 2.

查看iptables状态-重启

iptables 所在目录 /etc/sysconfig/iptables service iptables status 查看iptables状态 service iptables restart iptables服务重启 service iptables stop iptables服务禁用

系统状态检测 及进程控制

查看linux 服务器CPU 两大指导原则 #具有相同的core id的CPU是同一个core的超线程# #具有相同physical id的CPU是同一个CPU封装的线程或核心# cat /proc/cpuinfo | grep 'siblings'  查看是否为超线程 [[email protected] ~]# arch #这台是我的R51旧笔记本# i686 [[email protected] ~]# cat /proc/cpuinfo  #这台是我的R51旧笔记本# processor