内核
sidemap
内不修正其所以有,然常欲人之有
展开
-
用户空间获取entries IPT_SO_GET_ENTRIES
/* * New IP firewall options for [gs]esockopt at the RAW IP level. * Unlike BSD Linux inherits IP options so you don't have to use a raw socket * socket for this. Instead we check tights in the...原创 2019-12-11 13:41:16 · 309 阅读 · 0 评论 -
table模块各个结构定义 及 iptables filter hook函数注册
1、iptables filter tables首先看一下xt_table -> xt_table_info -> xt_entry -> ipt_entry / ipt_entry_match / ipt_standard_target ->ipt_entry_target / verdict之间的关系涉及到的部分结构体///< include/l...原创 2019-12-04 11:48:31 · 298 阅读 · 0 评论 -
sockopt使用学习笔记
sockopt是内核与用户空间通信方法中非常简单的一种,其本质是通过copy_to_user/copy_from_user在用户与内核中传递数据,但是效率不高,常用于传递控制/状态等信息。copy_to_user/copy_from_user函数会引发阻塞,所以不能用在硬、软中断中。一般将这两个特殊拷贝函数用于类似于系统调用一类函数中,此类函数一般穿梭于“用户态”和“内核态”。此类方法的工作原理如...原创 2019-12-06 10:22:58 · 892 阅读 · 0 评论 -
nf_hook_ops中使用常量定义
// 协议/地址簇相关(include/linux/socket)/* Supported address families */#define AF_UNSPEC 0#define AF_UNIX 1 /* Unix domain sockets */#define AF_LOCAL 1 /* POSIX name for AF_UNIX */#def...原创 2019-11-29 16:36:26 · 903 阅读 · 0 评论 -
netfilter hook函数
====================以下为hook函数执行大致流程============================/* Respones from hook functions. */#define NF_DROP 0#define NF_ACCEPT 1#define NF_STOLEN 2#define NF_QUEUE 3#define NF_REPEAT 4...原创 2019-11-29 16:36:10 · 307 阅读 · 0 评论 -
xt_register_match将某个xt_match注册的过程
=========================以下内核tcp match module=================================static struct xt_match tcpudp_mt_reg[] __read_mostly = { { .name = "tcp", .family = NFPROTO_IP...原创 2019-11-28 15:26:55 · 1337 阅读 · 0 评论 -
xt_action_param/xt_match/xt_target
/** * struct xt_action_param - parameters for matches/targets * * @match: the match extension * @target: the target extention * @matchinfo: per-match data * @targetinfo: per-targ...原创 2019-11-28 14:08:42 · 932 阅读 · 0 评论 -
iptables源码---tcp端口策略 解析
===================userspace===============================/* Include file for additions: new matches and targets. */struct xtables_match { /* * ABI/API version this module requires. Must...原创 2019-11-27 17:54:15 · 389 阅读 · 0 评论 -
kernel在mangle表中解析tcp协议,进行tcpoptstrip操作
(1)首先,了解kernel中iphdr/updhdr/tcphdr结构struct iphdr:// include/uapi/linux/ip.hstruct iphdr {#if defined(__LITTLE_ENDAIN_BITFIELD) __u8 ihl:4, version:4;#elif defined(__BIG_ENDAIN_BITF...原创 2019-11-26 11:42:13 · 642 阅读 · 0 评论 -
sk_buff操作函数
几个操作sk_buff指针的函数首先来认识三个空间:第一个:headroom 就是skb->head和skb->data之间的空间第二个:data 就是skb->data和skb->tail之间的空间第三个:tailroom 就是skb->tail和skb->end之间的空间head --> |----------| ...原创 2019-11-28 17:16:03 · 792 阅读 · 1 评论 -
CentOS调整内核的默认启动项
当我们在系统编译了多个版本的内核时,并进行了install。往往是远程连接的电脑,进行重启时,无法进行使用内核选择。此时可以调整默认启动的内核版本。查看当前电脑中存在的内核版本# cat /boot/grub2/grub.cfg | grep menuentryif [ x"${feature_menuentry_id}" = xy ]; then menuentry_id_opt...原创 2019-11-13 14:37:05 · 814 阅读 · 0 评论 -
net_generic的作用【翻译】
转自https://stackoverflow.com/questions/20189858/what-is-net-generic-function-in-linux-include-net-net-namespace-h当网络命名空间创建或者销毁时,存在一种通过网络内核获取通知的方式。例如,作为设备驱动开发者或者内核开发者,你的模块需要得到这个通知。需要你创建一个pernet_operat...原创 2019-11-03 11:28:11 · 915 阅读 · 0 评论