AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 436357
Accepted
Strangelovian
Strangelovian
Asked: 2018-04-09 06:40:16 +0800 CST2018-04-09 06:40:16 +0800 CST 2018-04-09 06:40:16 +0800 CST

netfilter TCP/UDP conntrack 与 ICMP / ICMPv6 相关的状态

  • 772

Netfilter 连接跟踪旨在将某些数据包识别为与 conntrack 条目“相关”。

我正在寻找有关 ICMP 和 ICMPv6 错误数据包的 TCP 和 UDP conntrack 条目的完整详细信息。

针对 IPv6 防火墙,RFC 4890 清楚地描述了不应丢弃的 ICMPv6 数据包

http://www.ietf.org/rfc/rfc4890.txt

4.3.1。不得丢弃的流量

对建立和维护通信至关重要的错误消息:

Destination Unreachable (Type 1) - All codes

Packet Too Big (Type 2)

Time Exceeded (Type 3) - Code 0 only

Parameter Problem (Type 4) - Codes 1 and 2 only

Appendix A.4 suggests some more specific checks that could be performed on Parameter Problem messages if a firewall has the

必要的数据包检测能力。

Connectivity checking messages:

Echo Request (Type 128)

Echo Response (Type 129)

For Teredo tunneling [RFC4380] to IPv6 nodes on the site to be possible, it is essential that the connectivity checking messages are

允许通过防火墙。IPv4 网络中的常见做法是在防火墙中丢弃 Echo Request 消息,以最大程度地降低对受保护网络进行扫描攻击的风险。如第 3.2 节所述,IPv6 网络中端口扫描的风险要小得多,因此没有必要过滤 IPv6 Echo Request 消息。

4.3.2. 通常不应丢弃的流量

第 4.3.1 节中列出的错误消息以外的错误消息:

Time Exceeded (Type 3) - Code 1
    Parameter Problem (Type 4) - Code 0

对于 linux 家用路由器,以下规则是否足以保护 WAN 接口,同时允许 RFC 4890 ICMPv6 数据包通过?(ip6tables-保存格式)

*filter
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

附录:当然,NDP 和 DHCP-PD 需要其他规则:

-A INPUT -s fe80::/10 -d fe80::/10 -i wanif -p ipv6-icmp -j ACCEPT
-A INPUT -s fe80::/10 -d fe80::/10 -i wanif -p udp -m state --state NEW -m udp --sport 547 --dport 546 -j ACCEPT

换句话说,我可以安全地摆脱以下规则以遵守 RFC 4980,只保留“相关”规则吗?

-A INPUT -i wanif -p icmpv6 --icmpv6-type destination-unreachable -j ACCEPT
-A INPUT -i wanif -p icmpv6 --icmpv6-type packet-too-big -j ACCEPT
-A INPUT -i wanif -p icmpv6 --icmpv6-type ttl-exceeded -j ACCEPT
-A INPUT -i wanif -p icmpv6 --icmpv6-type parameter-problem -j ACCEPT
linux networking
  • 1 1 个回答
  • 1631 Views

1 个回答

  • Voted
  1. Best Answer
    Jonas Berlin
    2018-07-09T23:16:39+08:002018-07-09T23:16:39+08:00

    我不知道答案,但你可以自己找出答案。

    使用这些规则(为会计目的创建一个空链“NOOP”):

    *filter
    ...
    :NOOP - [0:0]
    ...
    -A INPUT -i wanif -p icmpv6 --icmpv6-type destination-unreachable -j NOOP
    -A INPUT -i wanif -p icmpv6 --icmpv6-type packet-too-big -j NOOP
    -A INPUT -i wanif -p icmpv6 --icmpv6-type ttl-exceeded -j NOOP
    -A INPUT -i wanif -p icmpv6 --icmpv6-type parameter-problem -j NOOP
    -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
    -A INPUT -i wanif -p icmpv6 --icmpv6-type destination-unreachable -j ACCEPT
    -A INPUT -i wanif -p icmpv6 --icmpv6-type packet-too-big -j ACCEPT
    -A INPUT -i wanif -p icmpv6 --icmpv6-type ttl-exceeded -j ACCEPT
    -A INPUT -i wanif -p icmpv6 --icmpv6-type parameter-problem -j ACCEPT
    ...
    

    然后有时稍后,用于ip6tables-save -c查看上述规则的计数器。如果计数器大于“相关”行上方的 NOOP 规则的 0,但下方的接受规则为 0,则您知道“相关”匹配已处理接受它们。如果某个 NOOP 规则的计数器为 0,那么对于该特定 icmpv6 类型,您还无法判断 RELATED 是否执行此操作。如果某些 ACCEPT 行的计数器 > 0,那么您确实需要该显式规则。

    • 4

相关问题

  • 使用键盘快捷键启动/停止 systemd 服务 [关闭]

  • 奇怪的路由器与centos 6一起工作[关闭]

  • 需要一些系统调用

  • astyle 不会更改源文件格式

  • 通过标签将根文件系统传递给linux内核

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    ssh 无法协商:“找不到匹配的密码”,正在拒绝 cbc

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    如何卸载内核模块“nvidia-drm”?

    • 13 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add 返回:“连接代理时出错:没有这样的文件或目录” 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya 为什么 Linux 使用 LF 作为换行符? 2017-12-20 05:48:21 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve