iptables目标TTL
TTL目标帮助信息如下,可对报文的ttl进行设置、减少或者增加。
# iptables --jump TTL -h
TTL target options--ttl-set value Set TTL to <value 0-255>--ttl-dec value Decrement TTL by <value 1-255>--ttl-inc value Increment TTL by <value 1-255>
如下在主机192.168.1.112上配置策略,丢弃IP头部ttl值小于3的报文。在另外的主机上执行ping操作,指定ttl为1,此时由于ttl小于3,ping不通。
# iptables -t filter -A INPUT -m ttl --ttl-lt 3 -j DROP
在主机192.168.1.112上配置策略,将IP头部ttl值增加3。此时在执行ping操作,由于ttl在增加之后为4,未匹配以上丢弃策略,ping通。
# iptables -t mangle -A PREROUTING -j TTL --ttl-inc 3
#
# iptables -L -t mangle -n -v
Chain PREROUTING (policy ACCEPT 147 packets, 19766 bytes)pkts bytes target prot opt in out source destination 147 19766 TTL all -- * * 0.0.0.0/0 0.0.0.0/0 TTL increment by 3
TTL目标
函数xt_register_targets注册TTL目标结构hl_tg_reg。
static struct xt_target hl_tg_reg[] __read_mostly = {{.name = "TTL",.revision = 0,.family = NFPROTO_IPV4,.target = ttl_tg,.targetsize = sizeof(struct ipt_TTL_info),.table = "mangle",.checkentry = ttl_tg_check,.me = THIS_MODULE,},
};
static int __init hl_tg_init(void)
{return xt_register_targets(hl_tg_reg, ARRAY_SIZE(hl_tg_reg));
参数检查函数如下,目前仅支持ttl设置,增加和减少三种模式,其它模式则非法。如果模式为增加或者减少ttl值,那么ttl的增加或减少量值不能为0。
static int ttl_tg_check(const struct xt_tgchk_param *par)
{const struct ipt_TTL_info *info = par->targinfo;if (info->mode > IPT_TTL_MAXMODE)return -EINVAL;if (info->mode != IPT_TTL_SET && info->ttl == 0)return -EINVAL;return 0;
根据不同的模式,计算新的ttl值。对于增加模式,如果新的ttl值大于255,限定在255。对于减少模式,如果新的ttl值小于0,设置为0。
static unsigned int
ttl_tg(struct sk_buff *skb, const struct xt_action_param *par)
{struct iphdr *iph;const struct ipt_TTL_info *info = par->targinfo;if (skb_ensure_writable(skb, sizeof(*iph)))return NF_DROP;iph = ip_hdr(skb);switch (info->mode) {case IPT_TTL_SET:new_ttl = info->ttl;break;case IPT_TTL_INC:new_ttl = iph->ttl + info->ttl;if (new_ttl > 255)new_ttl = 255;break;case IPT_TTL_DEC:new_ttl = iph->ttl - info->ttl;if (new_ttl < 0)new_ttl = 0;break;default:new_ttl = iph->ttl;break;}
新的ttl值与报文IP头部中的ttl值不相等,更新IP头部的检验和,使用新的ttl值填充IP头部的ttl字段。
if (new_ttl != iph->ttl) {csum_replace2(&iph->check, htons(iph->ttl << 8), htons(new_ttl << 8));iph->ttl = new_ttl;}return XT_CONTINUE;
内核版本 5.10
iptables目标TTL相关推荐
- iptables匹配ttl
TTL匹配帮助信息如下,可判断相等,大于和小于三种关系. # iptables --match ttl -h ttl match options: [!] --ttl-eq value Match t ...
- iptables目标TEE
TEE目标帮助信息如下. # iptables -j TEE -hTEE target options:--gateway IPADDR Route packet via the gateway gi ...
- iptables目标CHECKSUM
CHECKSUM目标帮助信息如下. # iptables -j CHECKSUM -hCHECKSUM target options--checksum-fill Fill in packet che ...
- docker(iptables)目标地址转换,运行中的容器映射端口
注意:议映射端口尝试-p 8080:8081 的形式,如若不行再尝试该方法,在宿主机执行下面该防火墙规则指令 # iptables -t nat -A PREROUTING -d 宿主机IP -p t ...
- 学习使用iptables
原文:https://linuxgeeks.github.io/2017/03/10/094107-%E5%AD%A6%E4%B9%A0%E4%BD%BF%E7%94%A8iptables/ 基础知识 ...
- 【5】iptables理解 - mangle表
mangle表:可以对数据包进行修改,此表中的链与其它表中的关系如下: 数据包从网卡接口进来后,最先经过的就是mangle表中的prerouting链.此表中有五条链: iptables -t man ...
- 一个奇葩的网络问题,把技术砖家搞蒙了
大家好,最近遇到一个奇葩的网络问题,分享给大家,看完一定会觉得很奇葩. 问题现象 客户反馈有一个server端S, 两个client端C1, C2, S的iptables规则对C1, C2都是放通的, ...
- AppNode受控端命令 - AppNode帮助中心
受控端命令 核心命令 在命令行中输入 appnode agent,可查看所有核心命令: # appnode agent NAME:appnode-agent - appnode agent comma ...
- 一个奇葩的网络问题,把技术砖家“搞蒙了”
大家好,最近遇到一个奇葩的网络问题,分享给大家,看完一定会觉得很奇葩. 问题现象 客户反馈有一个服务器端S,两个客户端端C1,C2,S的iptables规则对C1,C2都是放通的,但是C2无法连接上S ...
最新文章
- Docker了解(官方解读)
- 在vue-cli项目中使用echarts
- 一次 Druid 连接池泄露引发的血案!
- cinder配置多ceph储存池[Ceph and Cinder multi-backend]
- iphone定时关机_成都苹果维修点教你iPhone手机死机、关不了机怎么处理?
- 异步和同步区别是什么_一次相亲经历,我彻底搞懂了什么叫阻塞非阻塞,同步异步...
- wxWidgets:wxFileType类用法
- 【js与jquery】三级联动菜单的制作
- 使用Sencha Touch加载本地Json数据
- 英伟达显卡不同架构_英伟达GeForce RTX 3070 Ti与RTX 3070显卡规格曝光
- USACO milk
- iOS开发 -------- Block技术中的weak - strong
- Three.js星空粒子特效
- 浅谈AlphaGo背后所涉及的深度学习技术
- 记一次菜鸟网络电话面试
- Android 仿微信实现语音聊天功能
- 单片机 数码管0~F显示
- 互联网+人社峰会召开腾讯开放三大能力建“人社”生态
- red and black trees(红黑二叉树)
- “%,/,//”的用法
热门文章
- Altium designer别再傻傻的一个个给元件添加封装了
- 如何使用CorelDRAW 2019绘制谷歌浏览器Logo
- 马士兵 java se_马士兵javase(170804)
- Linux漏洞:showmount -e信息泄露(CEE-1999-0554)
- 【老鸟进阶】deepfacelab合成参数详解
- ibm服务器修改uefi和legacy,uefi和legacy的区别详细分析(附带uefi改legacy教程)
- 人过青年,我们的黄金时代过去了吗?
- linux查询awk命令用法
- 深入理解机器学习——概率图模型(Probabilistic Graphical Model):马尔可夫随机场(Markov Random Field,MRF)
- CTF show 萌新区解题报告 (二)