iptables扩展模块
iprange模块
使用iprange模块可以指定一段连续的IP地址范围
--src-range
--dst-range# example
iptables -t filter -I INPUT -m iprange --src-range 192.168.1.1-192.168.1.100 -j DROP# 通过 ! 取反
iptables -t filter -I INPUT -m iprange ! --src-range 192.168.1.1-192.168.1.100 -j DROP
string模块
指定要匹配的字符串,如果报文中包含对应的字符串,则符合匹配条件
选项 | 操作 |
---|---|
–algo | 用于指定匹配算法,可选的算法有bm和kmp,此选项为必选项,必须指定一个 |
–string | 指定要匹配的字符串 |
iptables -t filter -I INPUT -m string --algo kmp --string "OOXX" -j REJET
time模块
# examples
iptables -t filter -I OUTPUT -p tcp --dport 80 -m time --timestart 09:00:00 --timestop 18:00:00 -j REJECT
iptables -t filter -I OUTPUT -p tcp --dport 80 -m time --weekdays 6,7 -j REJECT
iptables -t filter -I OUTPUT -p tcp --dport 80 -m time --monthdays 22,23 -j REJECT
iptables -t filter -I OUTPUT -p tcp --dport 80 -m time --datestart 2017-12-24 --datestop 2017-12-27# --monthdays --weekdays 可以用 ! 取反
connlimit模块
限制每个IP地址同时链接到server端的链接数量
iptables -I INPUT -p tcp --dport 22 -m connlimit --connlimit-above 2 -j REJECT# 限制某类网段
iptables -I INPUT -p tcp --dport 22 -m connlimit --connlimit-above 2 --connlimit-mask 24 -j REJECT
在指定–connlimit-mask之后,就意味着可以针对“某类IP段内一定数量的IP”进行链接数量的限制
limit模块
limit模块是对“报文到达速率”进行限制的
iptables -t filter -I INPUT -p icmp -m limit --limit 10/minute -j ACCEPT
iptables -t filter -A INPUT -p icmp -j REJECT
- 需要指定–limit-burst“空闲时可放行的包的数量”,否则在匹配到limit规则之前,不会受到速率限制
- –limit-burst默认是5,基于令牌桶算法
iptables -t filter -I INPUT -p icmp -m limit --limit-burst 3 --limit 10/minute -j ACCEPT# 3s 生成3个令牌
iptables -t filter -I INPUT -p icmp -m limit --limit-burst 3/second --limit 10/minute -j ACCEPT
可用的时间单位有:/second、/minute、/hour、/day
tcp模块
设置–tcp-flags标志位。匹配TCP三次握手时的标志位
# ALL可以表示“SYN,ACK,FIN,RST,URG,PSH”
iptables -t filter -I INPUT -p tcp -m tcp --dport 22 --tcp-flags ALL SYN -j REJECT# 使用--syn相当于使用--tcp-flags SYN,ACK,FIN,RST SYN
# 即匹配第一次握手的报文,tcp新建连接的请求报文
iptables -t filter -I INPUT -p tcp -m tcp --dport 22 --syn -j REJECT
udp模块
这个模块匹配条件比较少,只有–sport和–dport,即匹配报文的源端口和目标端口
iptables -t filter -I INPUT -p udp -m udp --dport 137 -j ACCEPT
iptables -t filter -I INPUT -p udp --dport 137:157 -j ACCEPT
icmp扩展
# 禁止icmp类型的报文进入本机
iptables -t filter -I INPUT -p icmp -j REJECT# --icmp-type表示根据具体的type与code去匹配icmp报文
# ping请求类型的type=8,code=0,别人无法ping本机
# 本机ping的type=0,code=0,因此本机可以ping
iptables -f filter -I INPUT -p icmp -m icmp --icmp-type 8/0 -j REJECT# 根据icmp报文的描述也可以匹配,效果同上
iptables -I INPUT -p icmp --icmp-type "echo-request" -j REJECT
state扩展
state扩展可以让iptables实现连接追踪机制
对于state而言,有以下状态:
- NEW,连接中的第一个包,状态就是NEW,我们可以理解为新连接的第一个包的状态为NEW
- ESTABLISHED,我们可以把NEW状态包后面的包的状态理解为ESTABLISHED,表示连接已建立
- RELATED: 关联状态,例如FTP存在两个进程,一个命令进程,一个数据进程。
- 命令进程负责服务端与客户端之间的命令传输
- 数据进程负责服务端与客户端之间的数据传输
- 具体传输哪些数据,是由命令去控制的,所以,"数据连接"中的报文与"命令连接"是有"关系"的
- 因此,数据连接中的报文可能就是RELATED状态
- INVALID,如果一个包没有办法被识别,或者这个包没有任何状态,那么这个包的状态就是INVALID,我们可以主动屏蔽状态为INVALID的报文
- UNTRACKED,报文的状态为untracked时,表示报文未被追踪,当报文的状态为Untracked时通常表示无法找到相关的连接
# 放行ESTABLISHED和RELATED状态的包,其余全拒绝
iptables -t filter -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t filter -A INPUT -j REJECT
iptables扩展模块相关推荐
- iptables规则总结
五链四表 链的概念 iptables开启后,数据报文从进入服务器到出来会经过5道关卡,分别为Prerouting(路由前).Input(输入).Outpu(输出).Forward(转发).Postro ...
- 防火墙iptables详解
防火墙详解 基本概念 什么是防火墙?路由策略和策略路由/ipsec vpn gre hdlc ppp 硬件 iDS+ 在计算中,防火墙是基于预定安全规则来监视和控制传入和传出网络流量的网络安全系统.该 ...
- iptables详解及应用(史上最全)
1.1 iptables概念 从逻辑上讲.防火墙可以大体分为主机防火墙和网络防火墙. 主机防火墙:针对于单个主机进行防护. 网络防火墙:往往处于网络入口或边缘,针对于网络入口进行防护,服务于防火墙背后 ...
- 解读-m addrtype --dst-type LOCAL -j DOCKER
比方说我们使用docker容器,一定会在iptables的NAT表中看到下在这样的一条配置规则: -A PREROUTING -m addrtype --dst-type LOCAL -j DOCKE ...
- linux阻断设备接收,阻断P2P通信
阻断P2P通信 可以使用专业厂家生产的P2P硬件控制设备,来阻断P2P通信或者控制每个用户P2P的流量,但昂贵的设备价格可能是无法接受的.下面介绍两种廉价的解决方案. 利用Cisco路由器的NBAR功 ...
- iptables配置-Linux系统安全防火墙
iptables是用来设置.维护和检查Linux内核的IP分组过滤规则的.作为Linux下的一款防火墙,它的功能十分强大,它有3个表,每个表内有规则链. iptables是用来设置.维护和检查Linu ...
- iptables基础——链与表
1.防火墙相关概念 此处先描述一些相关概念. 1)从逻辑上讲,防火墙可以大体分为主机防火墙和网络防火墙. 主机防火墙:针对于单个主机进行防护. 网络防火墙:往往处于网络入口或边缘,针对于网络入口进行防 ...
- 9个常用iptables配置实例
2019独角兽企业重金招聘Python工程师标准>>> iptables命令可用于配置Linux的包过滤规则,常用于实现防火墙.NAT.咋一看iptables的配置很复杂,掌握规律后 ...
- iptables防火墙的基本配置
在Internet中,通过架设各种服务器为用户提供各种网络服务,怎样保护这些服务器,过滤恶意的访问.入侵呢?这里主要介绍Linux系统中的防火墙--netfilter和iptables,包括防火墙的结 ...
最新文章
- 转载:什么才是程序员的核心竞争力
- java一系列数组的表示方法_Java入门系列-10-数组
- springboot 常用配置之多环境配置(开发环境、测试环境、生产环境等)
- python 脚本_基于Python的ArcGIS脚本编程知识点总结
- Struts(十四):通用标签-form表单
- 机器学习:理解逻辑回归及二分类、多分类代码实践
- mac 您没有权限打开应用程序_Mac应用程序无法打开或文件损坏的解决方法
- 通过ssh证书远程登录
- 被暴击了!22岁本科生开源的后台管理系统,太实用!
- Linux 运维必备的13款实用工具,拿好了~
- python学习笔记16--javascript总结
- C4D实现宜家闹钟建模
- java各知识点详细总结毕向东_毕向东课程笔记——Java语言基础
- DotNetBar布局(一)
- [渝粤教育] 九江学院 材料分析及测试技术 参考 资料
- 推荐算法架构3:精排
- 沟通表达的实用技巧和练习方法
- linux输入文件后clustalw,ClustalW----多序列比对分析(一)
- 什么是特征点、特征描述、特征匹配
- 【讲清楚】rebase的使用
热门文章
- 精美长颈鹿主题班会教学课件PPT模板
- C/C++ 实现命令行画心形代码
- 计算机哪个专业对学历要求比较低,高考成绩一般,适合报考的五大专业,学历要求低、好找工作又体面...
- 手机移动端审批安装教程
- 电子针阀在便携式真空计校准装置中的应用
- [聊一聊系列]聊一聊移动调试那些事儿
- 服务器里解压缩gz文件夹,Shell命令文件压缩解压缩之gzip、zip的案例分析
- 计算机硬盘消失,电脑硬盘丢失数据的原因和恢复方法
- TTP224/TTP224N 4 键触摸检测 IC
- mysql怎么打开bak文件怎么打开吗_.bak文件用什么软件打开_如何查看bak文件