V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fat00119
V2EX  ›  宽带症候群

单网卡双 IP 如何禁止从某个 IP 入站?

  •  
  •   fat00119 · 2023-04-06 20:14:47 +08:00 · 1595 次点击
    这是一个创建于 626 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Debian11

    eth0 a.b.c.4

    eth0:1 a.b.c.5

    eth0 是主 IP 默认出站是此 IP; eth0 和 eth0:1 都能入站

    现在想实现的是:禁止外部从 eth0 入站 其他不变

    小鸡上有 iptables 和 ufw 能实现吗?或者其他能实现的方法 谢谢大家

    nkloveni
        1
    nkloveni  
       2023-04-06 20:29:24 +08:00
    iptables -A INPUT -d a.b.c.4 -p tcp --dport 80 -j DROP
    tril
        2
    tril  
       2023-04-06 20:42:18 +08:00
    ufw deny in on eth0
    tril
        3
    tril  
       2023-04-06 20:49:48 +08:00
    如果防火墙里已有规则,则要改成插入到第一条:
    如果用 ufw:
    ufw insert 1 deny in on eth0

    如果用 iptables:
    iptables -I INPUT -i eth0 -j DROP
    ip6tables -I INPUT -i eth0 -j DROP
    fat00119
        4
    fat00119  
    OP
       2023-04-06 22:17:47 +08:00
    @nkloveni 针对单个端口有效果, 谢谢大佬。 再请教一下, 如果禁止“80 端口”改为“所有端口”, 我尝试把 --dport 80 删除 ,但是小鸡访问不到外网了。是有其他表达方式吗?


    @tril 直接 eth0 的话 两个 IP 都连不进小鸡了
    neroxps
        5
    neroxps  
       2023-04-06 23:19:52 +08:00 via iPhone
    这问题 bing new 都有答案吧。
    fat00119
        6
    fat00119  
    OP
       2023-04-07 02:10:10 +08:00
    @neroxps 问过 他答出来的不对
    tril
        7
    tril  
       2023-04-07 03:20:04 +08:00
    @fat00119 两个都不通可能是因为你这两个接口都是同一个物理网口,得改成匹配目的地。

    用 ufw 可以这样( ufw 默认会把规则加在连接跟踪规则的后面,只需要这一条):
    ufw insert 1 deny from any to a.b.c.4/32

    用 iptables 的话,如果直接拒绝入站会导致从 a.b.c.4 访问网站收不到网站发来的回包,要加上连接跟踪,可以这样:
    iptables -I INPUT -d a.b.c.4 -j DROP
    iptables -I INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
    ip6tables -I INPUT -d a.b.c.4 -j DROP
    ip6tables -I INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
    tril
        8
    tril  
       2023-04-07 03:22:36 +08:00
    @tril 两条 ipv6 的规则可以不加( ip6tables ),如果也需要的话得指定 ipv6 的地址,不是 a.b.c.4 ,我写错了。
    fat00119
        9
    fat00119  
    OP
       2023-04-07 14:23:33 +08:00
    @tril 感谢大佬 亲测可用
    nkloveni
        10
    nkloveni  
       2023-04-07 19:23:49 +08:00
    @fat00119
    /sbin/iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    iptables -A INPUT -d a.b.c.4 -p tcp --dport 80 -j DROP
    这么配合着用。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   948 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 19:22 · PVG 03:22 · LAX 11:22 · JFK 14:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.