https://blog.csdn.net/weixin_38166318/article/details/127344897

防火墙基本概念

https://www.zsythink.net/archives/1199
https://blog.csdn.net/qq_34645863/article/details/129329035 (条理)
https://blog.csdn.net/wzj_110/article/details/108890766
https://blog.csdn.net/wzj_110/article/details/108875481(详细说明了数据包的流向)

由大到小,表、链、规则。

链的执行顺序

语法

https://blog.csdn.net/qq_43320461/article/details/106518013

一、表、链

1.链

1.1自定义链

https://blog.csdn.net/ss810540895/article/details/127427771
https://www.cnblogs.com/YuAnTime/p/13998574.html

自定义链并不能直接使用,而是需要被默认链引用才能够使用;删除自定义链注意2个错误。

二、规则

匹配+动作

  • 如何看某个表中有哪些链和规则
    iptables -t nat -nvL --line-numbers

  • 在已知链末尾添加规则(举例,拒绝某个ip的访问)
    iptables -t filter -A INPUT -s 59.45.175.62 -j REJECT

-A 表示Append,其后紧跟的是链的名称,表示该条规则要被添加到哪个链中。
-s 表示包的来源ip即source。除了指定固定的ip外,我们还可以指定ip范围,比如59.45.175.0/24
-j 表示jump 也即是我们最终的动作,这里的动作是拒绝
  • 在已知链链首插入规则
    iptables -t filter -I INPUT -s 59.45.175.62 -j REJECT

1.匹配

1.1 基本匹配条件

  • -m -p
-m: module_name
-p:protocol

iptables -p tcp : 表示使用 TCP协议

iptables -m tcp:表示使用TCP模块的扩展功能(tcp扩展模块提供了 --dport, --tcp-flags, --sync等功能)
  • -s (src_ip)
1.指定1或者多个源IP,多个IP并列时可以使用逗号隔开;
iptables -t filter -I INPUT -s 192.168.10.32,192.168.10.6 -j DROP
2.指定网段IP
iptables -t filter -I INPUT -s 192.168.0.0/16 -j DROP
  • -i / -o (指定网卡)
    当本机有多个网卡时,我们可以使用 -i /-o选项去匹配报文是通过哪块网卡流入/出本机的。

    从eth3接收的icmp报文将被丢弃
    iptables -t filter -I INPUT -i eth3 -p icmp -j DROP

-i选项只能用于上图中的PREROUTING链、INPUT链、FORWARD链。

-o选项只能用于FORWARD链、OUTPUT链、POSTROUTING链中。

  • 条件取反(!)

1.2 扩展匹配条件 --

netfilter中的一部分,以模块的形式存在,如果想要使用这些条件,则需要依赖对应的扩展模块。

语法:-m 模块名称 --扩展条件

2.处理动作

3.规则管理

不同的操作系统兼容性问题

打开kernel/arch/arm64/configs/rockchip_linux_defconfig文件添加:

CONFIG_NF_TABLES=y


0 条评论

发表回复

您的电子邮箱地址不会被公开。