【问题标题】:Iptables, exclude single ip from prerouting Captive Portal [closed]Iptables,从预路由 Captive Portal 中排除单个 ip [关闭]
【发布时间】:2016-01-12 02:15:54
【问题描述】:

我需要帮助才能从所有端口的预路由规则中排除单个 IP 地址。 任何连接到我的接入点的人都会被重定向到我的强制门户(登陆页面)。因此我想制定一个新规则,我不希望我现有的预路由规则被修改/删除。

我已经制定的预路由规则将传入端口(端口 22(SSH) 除外)路由到强制门户。因此我使用这个规则:

sudo iptables -t nat -A PREROUTING -p tcp --match multiport ! --dport 22 ! -s 192.168.42.19 -j DNAT --to-destination 192.168.42.1:8080

我想要排除特定用户,因此我想阻止某些 IP 地址被转发。 我尝试了不同的事情,但我无法得到任何工作。 我尝试了不同的 INPUT 和 OUTPUT 规则,但没有运气。我想我应该对 PREROUTING 做点什么,但是怎么做呢?

【问题讨论】:

    标签: linux raspberry-pi debian iptables captiveportal


    【解决方案1】:

    如果您只是想阻止某些流量达到特定规则,您可以为该流量添加 RETURN 或 ACCEPT 规则,然后再尝试避免。

    例如,您可以将当前规则更改为三个规则:

    iptables -t nat -A PREROUTING -p tcp -m tcp --dport 22 -j ACCEPT
    iptables -t nat -A PREROUTING -s 192.168.42.19 -j ACCEPT
    iptables -t nat -A PREROUTING -p tcp -j DNAT --to-destination 192.168.42.1:8080
    

    注意 ACCEPT 和 RETURN 之间的区别(来自 iptables(8) 手册页):

    ACCEPT means to let the packet through.
    
    RETURN means stop traversing this chain and resume at
           the next rule in the previous (calling) chain.
    

    使用这种方法,您可以不理会当前规则,并在其前面添加任意数量的规则,这些规则描述您不希望遇到 NAT 规则的不同类型的流量。

    查看 iptables 计数器是判断您的流量是否符合您期望的规则的好方法(例如iptables -t nat -L PREROUTING -vn)。

    【讨论】:

    • 非常感谢您的帮助!有用。首先,我尝试添加第二个例外,但这不起作用,但我认为这是规则的顺序。所以我将第二个排除项放在第一个排除项之前/之后。 sudo iptables -t nat -A PREROUTING 2 -s 192.168.42.11 -j ACCEPT
    猜你喜欢
    • 2022-01-10
    • 2012-01-04
    • 1970-01-01
    • 2016-04-28
    • 2017-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多