【问题标题】:Creating firewall rules using iptables使用 iptables 创建防火墙规则
【发布时间】:2013-09-05 23:18:16
【问题描述】:

有没有办法使用“iptables”构建防火墙规则,在输入和输出上过滤数据包?我只能找到如下规则,这些规则允许您将其指定为应用于数据包源 (INPUT) 或目标 (OUTPUT)。

iptables -A INPUT -i eth1 -p tcp -s 192.168.1.0/24 --dport 80 -j DROP.

尽管我应该能够过滤来自和去往特定位置的数据包,这样我就可以得到一个如下所示的 fw 表,这将是有意义的:

pkts bytes target     prot opt in     out     source               destination
   0     0 ACCEPT     all  --  *      *       172.152.4.0/24       92.3.0.0/16

有什么建议吗?

谢谢!

【问题讨论】:

    标签: linux firewall iptables


    【解决方案1】:

    是和不是。

    否,因为:iptables 的工作原理是首先根据数据包的分类(输入、输出、转发、...)定义如何处理数据包,然后再根据特定特征(源或目标地址、协议类型、源或目的港等)。您永远不能定义不适用于特定链的 iptable 规则。

    INPUT、OUTPUT 和 FORWARD 是 iptables 系统的默认链。 INPUT 使用目标 localhost 寻址所有内容(即,寻址到您的网络设备); OUTPUT 适用于源 localhost 的所有内容(即来自您的计算机)。

    是的,因为:您可以定义自定义链。你可以这样做

    sudo iptables -N MYCHAIN
    

    然后您可以将数据包从 INPUT 和 OUTPUT(如果您喜欢 FORWARD)链发送到 MYCHAIN,例如来自 INPUT 的所有 TCP 数据包:

    sudo iptables -A INPUT -p tcp -j MYCHAIN
    

    或所有来自 OUTPUT 的包

    sudo iptables -A OUTPUT -j MYCHAIN
    

    然后您可以为 mychain 定义任何您想要的规则,包括

    sudo iptables -A MYCHAIN -s 172.152.4.0/24 -d 92.3.0.0/16 -j ACCEPT
    

    这应该或多或少是你想要的规则

    但是,有人可能会争辩说,将 INPUT 和 OUTPUT 链分开确实是有意义的。大多数用户希望对 INPUT 和 FORWARD 应用比对 OUTPUT 更严格的规则。此外,iptables 可用于路由,在这种情况下,如果您有传入或传出包,它会产生根本性的差异。

    【讨论】:

    • 很棒的答案,很有帮助。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2021-09-27
    • 2014-09-28
    • 2016-12-28
    • 2012-08-25
    • 1970-01-01
    • 2019-06-12
    • 2016-11-26
    • 1970-01-01
    相关资源
    最近更新 更多