信息安全课程11、12:防火墙(iptables/netfilter)

信息安全课程11:防火墙(iptables/netfilter)

均为个人笔记,欢迎纠错

课程链接

iptables 发展历史

ipfirewall —> ipchains —> iptables

iptables 和 netfilter 的关系

用户空间的 iptables 指定防火墙的规则;
内核空间的 netfilter 真正实现防火墙的功能

policy

policy 更像是处理包的基本态度,
全部接受或扔掉,在这个基础上剔除或选择一些特定的包

iptables 默认有 4 个表
raw mangle nat filter
内置 5 种链
input output forward prerouting postrouting
不是每个表都有全部种类的链

信息安全课程12:防火墙(netfilter/iptables)

均为个人笔记,欢迎纠错

课程链接

可加载内核模块(Loadable Kernel Module,LKM):动态加载,无需编译内核、重启系统。

所有的LKM 都包含 2 个最基本的函数:

int init_module(void) /用于初始化所有成员/
{

}

void cleanup_module(void) /用于退出清理/
{

}

编译时,与使用 gcc或者g++ 的应用层代码不同,LKM 使用Makefile,kbuild
典型的 LKM 的 Makefile 如下:

obj-m += hello-world.o
all:
	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

IP 层的 hook 有 5 个:
NF_IP_PRE_ROUTING
NF_IP_LOCAL_IN
NF_IP_FORWARD
NF_IP_POST_ROUTING
NF_IP_LOCAL_OUT
iptables 中链的 5 种类型正好与之对应。

netfilter 返回码
返回码 含义
NF_DROP 丢弃数据包
NF_ACCEPT 保留数据包
NF_STOLEN 忘记数据包
NF_QUEUE 用户空间的队列数据包
NF_REPEAT 再次调用此钩子函数

这么理解,这 5 个 hook 就是 5 个点,在 ip 层处理数据包的流程中可能有的 5 个点;
包经过这 5 个点的时候可以钩住它,先不让它进入流程的下一步,而是进行某些处理;
这些处理可以自定义,写成一个个函数,就是钩子函数;
这些函数有固定的格式,返回值在返回码中选,比如,如果当前钩子函数处理完包就进入 ip 层处理流程的下一步,该函数就可以返回 NF_ACCEPT。

参考链接:https://blog.csdn.net/qq_20332637/article/details/80247991

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值