【海思开源篇】-(2)iptables
【海思开源篇】-(2)iptables
1 源码编译
http://ftp.netfilter.org/pub/iptables/
./configure --host=aarch64-himix200-linux --prefix=$PWD/_install
cd _install
tar -zcvf iptable_dir_mix200.tar.gz bin include lib sbin share
2 原理
Netfilter是由Rusty Russell提出的Linux 2.4内核防火墙框架,该框架既简洁又灵活,可实现安全策略应用中的许多功能,如数据包过滤、数据包处理、地址伪装、透明代理、动态网络地址转换(Network Address Translation,NAT),以及基于用户及媒体访问控制(Media Access Control,MAC)地址的过滤和基于状态的过滤、包速率限制等。Iptables/Netfilter的这些规则可以通过灵活组合,形成非常多的功能、涵盖各个方面,这一切都得益于它的优秀设计思想。
Netfilter是Linux操作系统核心层内部的一个数据包处理模块,它具有如下功能:
网络地址转换(Network Address Translate)
数据包内容修改
以及数据包过滤的防火墙功能
Netfilter 平台中制定了数据包的五个挂载点(Hook Point,我们可以理解为回调函数点,数据包到达这些位置的时候会主动调用我们的函数,使我们有机会能在数据包路由的时候改变它们的方向、内容),这5个挂载点分别是PRE_ROUTING、INPUT、OUTPUT、FORWARD、POST_ROUTING。
Netfilter 所设置的规则是存放在内核内存中的,而 iptables 是一个应用层的应用程序,它通过 Netfilter 放出的接口来对存放在内核内存中的 XXtables(Netfilter的配置表)进行修改。这个XXtables由表tables、链chains、规则rules组成,iptables在应用层负责修改这个规则文件。类似的应用程序还有 firewalld 。
命令格式:
[-t 表名]:该规则所操作的哪个表,可以使用filter、nat等,如果没有指定则默认为filter
-A:新增一条规则,到该规则链列表的最后一行
-I:插入一条规则,原本该位置上的规则会往后顺序移动,没有指定编号则为1
-D:从规则链中删除一条规则,要么输入完整的规则,或者指定规则编号加以删除
-R:替换某条规则,规则替换不会改变顺序,而且必须指定编号。
-P:设置某条规则链的默认动作
-nL:-L、-n,查看当前运行的防火墙规则列表
chain名:指定规则表的哪个链,如INPUT、OUPUT、FORWARD、PREROUTING等
[规则编号]:插入、删除、替换规则时用,--line-numbers显示号码
[-i|o 网卡名称]:i是指定数据包从哪块网卡进入,o是指定数据包从哪块网卡输出
[-p 协议类型]:可以指定规则应用的协议,包含tcp、udp和icmp等
[-s 源IP地址]:源主机的IP地址或子网地址
[--sport 源端口号]:数据包的IP的源端口号
[-d目标IP地址]:目标主机的IP地址或子网地址
[--dport目标端口号]:数据包的IP的目标端口号
-m:extend matches,这个选项用于提供更多的匹配参数,如:
-m state --state ESTABLISHED,RELATED
-m tcp --dport 22
-m multiport --dports 80,8080
-m icmp --icmp-type 8
<-j 动作>:处理数据包的动作,包括ACCEPT、DROP、REJECT等
3 内核配置
4 使用
iptables -t nat -A POSTROUTING -o usb0 -j MASQUERADE
iptables命令选项输入顺序:
iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作
表名包括:
raw:高级功能,如:网址过滤。
mangle:数据包修改(QOS),用于实现服务质量。
net:地址转换,用于网关路由器。
filter:包过滤,用于防火墙规则。
规则链名包括:
INPUT链:处理输入数据包。
OUTPUT链:处理输出数据包。
PORWARD链:处理转发数据包。
PREROUTING链:用于目标地址转换(DNAT)。
POSTOUTING链:用于源地址转换(SNAT)。
动作包括:
accept:接收数据包。
DROP:丢弃数据包。
REDIRECT:重定向、映射、透明代理。
SNAT:源地址转换。
DNAT:目标地址转换。
MASQUERADE:IP伪装(NAT),用于ADSL。
LOG:日志记录。
- 分享
- 举报
-
浏览量:3347次2020-08-30 15:44:39
-
浏览量:2178次2020-04-21 20:27:00
-
浏览量:3397次2020-04-21 20:28:40
-
浏览量:3565次2020-08-29 16:50:56
-
浏览量:3787次2020-08-30 09:57:38
-
浏览量:4077次2020-08-30 12:27:19
-
浏览量:3059次2020-08-29 21:36:16
-
浏览量:3397次2021-12-06 16:16:18
-
浏览量:2164次2020-08-29 21:27:46
-
浏览量:3408次2020-08-30 10:14:12
-
浏览量:4750次2020-08-30 09:01:15
-
浏览量:9921次2020-08-30 15:32:16
-
浏览量:4705次2020-08-30 08:25:06
-
浏览量:2556次2020-08-30 11:31:00
-
浏览量:3567次2020-08-30 15:59:35
-
浏览量:2362次2020-08-30 11:33:11
-
浏览量:5369次2020-08-29 21:41:37
-
浏览量:3962次2020-08-31 08:41:19
-
浏览量:3141次2020-08-30 11:44:43
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
xclshwd
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明