netfilter相关内容
我有这个 libnetfilter_queue 应用程序,它根据一些 iptables 规则从内核接收数据包.在直接解决我的问题之前,我提供了一个示例可行的代码和其他工具来设置测试环境,以便我们的问题定义和可能的解决方案可以更加准确和健壮. 以下代码描述了应用程序的核心功能: #include #include #include #
..
..
我正在为 linux 编写以太网网络驱动程序.我想接收数据包,编辑并重新发送它们.我知道如何在 packet_interceptor 函数中编辑数据包,但是如何在此函数中丢弃传入的数据包?? #include #include #include #include 结构数据包类型我
..
我想在内核空间回显一个数据包.我在这台机器上用端口 6000 运行一个回显服务器.现在客户端运行在另一台机器上,向回显服务器发送数据.现在,我想要做的是从内核空间回显数据包.我不想用数据包打扰服务器,它会从内核空间静默回响.我在下面展示我的代码: #include #include #include #include #include #include #include #include #in
..
在 TCP 通信中,当数据包从以太网传输到网络 (IP) 层时,我想打印该数据包中存在的数据? 我在 linux 上工作. 我得到了一些信息,它可以在 linux 内核代码的帮助下完成,即在 linux NAT 防火墙代码中.但是我从哪里得到内核源代码呢?这些编码在哪里完成? 解决方案 如何从 TCP 数据包中打印数据 下面是一个完全符合您需要的示例:挂钩接收到的 TCP
..
我需要查询现有规则,以及能够轻松添加和删除规则.我还没有找到任何用于执行此操作的 API.有什么我遗漏的吗? 我最接近的解决方案是使用 iptables-save |iptables-xml 用于查询和手动调用 iptables 命令本身来添加/删除规则.我考虑过的另一个解决方案是简单地从我的应用程序的数据库中重新生成整个规则集并刷新整个链,然后再次应用它.但我想避免这种情况,因为我不想丢弃
..
您好,我正在使用 nfqueue 和 scapy,我的目标是在我的 NFQUEUE 接收数据包,更改有效负载并重新发送它们. 我可以毫无问题地更改像 TTL 这样的字段,但是在更改有效负载时,我遇到了问题. 当我更改有效负载时,我使用wireshark 嗅探数据包,显然我发送了修改了有效负载的数据包,但服务器没有应答. 这是我的代码: #!/usr/bin/env python
..
我使用 Python 2.7 和 scapy/netfilterqueue 运行 Debian. 我在我的 iptables 中添加了以下内容: iptables -A OUTPUT -p tcp --dport 5678 -j NFQUEUE --queue-num 1 这是我获取 HTTP 包和更改 URL 和端口的代码: #!/usr/bin/env python2.7从 sca
..
我正在使用 NF_INET_PRE_ROUTING 挂钩的Linux内核模块中工作.在那个挂钩中,我需要知道所有net_devices的状态,尤其是无线设备.我可以从 net_device->标记中获取有关设备的一些信息,即 IFF_UP 是设备处于启动状态还是处于关闭状态.但是我需要更多有关无线 net_device 的信息. net_device是无线的还是有线的? 无线设备是否已连接
..
我正在使用C创建一个自定义内核模块,以挂接到我的Ubuntu盒上的netfilter操作.但是,我遇到了一个围绕module_param参数的问题.插入模块时,我尝试添加自定义字段,特别是在指定时,这将丢弃ICMP流量.使用标准的make文件可以很好地编译代码,但是当使用insmod插入文件时,出现错误 insmod:错误:无法插入模块kernel.ko:无效的参数 我正在使用命令 i
..
我正在尝试为Linux创建一个应用程序级防火墙,但是现在我只能说ip地址,端口号之类的东西. 是否可以知道哪个程序发送了数据包?如果我不需要放置内核模块. 谢谢! 解决方案 目前不在.三种情况: 输入功能:到xtables运行时,套接字查找尚未完成 转发路径:显然没有本地套接字 (本地)输出路径:尽管存在提出了补丁程序,但没有引起足够的重视.
..
我正在尝试控制是否使用以下命令将通过我在Docker容器中建立的网桥的数据包发送到iptables进行处理: sysctl -w net.bridge.bridge-nf-call-iptables ="1" 不幸的是,这不起作用: sysctl:无法统计/proc/sys/net/bridge/bridge-nf-call-iptables:没有此类文件或目录 尽管我的主机中
..
我正在尝试编写一个netfilter模块,并希望访问IPHeader的字段,该字段表示DF和MF字段.我可以根据需要访问大多数其他字段,但我认为我必须从结构中的ipheader提取DF和MF字段并对其进行操作,例如,我想根据接收到的数据包的类型来设置或取消设置DF位. 以下结构具有"frag_off",我如何从中访问/重写IP_DF和IP_MF? struct iphdr {
..
我有一个在路由器上运行的Linux内核模块:运行Linux 2.6.30的Netgear DGN2200v2). 内核模块注册了一个netfilter钩子,如下所示: static struct nf_hook_ops nfho; // ... nfho.hook = hook_func; nfho.owner = THIS_MODULE; nfho.hooknum = 0; /*
..
我正在尝试实现一个netfilter模块,在处理sk_buff时,我发现了两种可能的方法来检索TCP标头: struct iphdr *ip_header = (struct iphdr *)skb_network_header(skb); struct tcphdr *tcp_header = (struct tcphdr *)skb_transport_header(skb); 还有
..
我正在为Linux编写一个简单的应用程序层防火墙(到目前为止,还算是我需要的东西).由于iptables的所有者模块还不够,我决定使用libnetfilter_queue来实现.在防火墙(C/C ++应用程序)的某个时刻,我需要决定是否接受具有给定src/dest端口的数据包.现在出现了问题.是否有任何简便的方法来知道哪个进程拥有给定的端口? 基本上,我需要一个功能 pid_t por
..
我正在尝试这样做: 我正在通过开放源代码工具iperf从一台计算机向另一台计算机发送数据包,我想跟踪写入系统或发送呼叫. 如果有人可以指导Ftrace框架来跟踪系统调用,否则可以通过其他任何跟踪工具进行跟踪. 解决方案 困难的部分是确切地知道要追踪的内容,这样您就只能看到所需的结果,但是追踪本身非常容易: 首先,您的内核必须配置为CONFIG_FTRACE = y 确定要跟踪的
..
我正在编写一个注册了netfilter钩子的内核模块.我正在尝试通过使用sk_buff->saddr成员来获取呼叫者的IP地址.有什么方法可以获取人类可读的IP,即x.x.x.x格式? 我找到了函数inet_ntop(),但是它似乎在内核头文件中不可用.如何将\ xC0 \ xA8 \ x00 \ x01转换为192.168.0.1? 解决方案 在include/linux/kern
..
如何在内核空间中过滤和/或显示数据包所来自的接口的名称? 更具体地说,我希望在内核中打印出接口名称,例如eth0,wlan1等. 第二,如何仅从特定接口(例如eth0)过滤数据包? 解决方案 在hook函数中,有参数const struct net_device *in和const struct net_device *out. 您可以通过以下方式打印它: printk(
..
我正在为Linux编写以太网网络驱动程序.我想接收数据包,进行编辑并重新发送. 我知道如何在packet_interceptor函数中编辑数据包,但是如何在此函数中丢弃传入的数据包? #include #include #include #include struc
..