iptables 的一个疑问 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
gouchaoer2
V2EX    程序员

iptables 的一个疑问

  •  
  •   gouchaoer2 2019 年 1 月 13 日 2168 次点击
    这是一个创建于 2589 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我现在需要设置 iptables 为:允许 22 端口访问,然后禁止外网的访问+允许局域网访问,iptables 如下:

    iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT tcp -- anywhere anywhere tcp dpt:ssh ACCEPT tcp -- localhost/8 anywhere ACCEPT tcp -- 10.0.0.0/8 anywhere ACCEPT tcp -- 172.16.0.0/12 anywhere ACCEPT tcp -- 192.168.0.0/16 anywhere DROP tcp -- anywhere anywhere Chain FORWARD (policy DROP) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain DOCKER (0 references) target prot opt source destination Chain DOCKER-ISOLATION-STAGE-1 (0 references) target prot opt source destination Chain DOCKER-ISOLATION-STAGE-2 (0 references) target prot opt source destination Chain DOCKER-USER (0 references) target prot opt source destination 

    现在问题来了,我设置好之后发现在这台机器上无法 tcp 去访问外网,我先清空 iptables 之后用 wget 先建立 tcp 连接然后 netstat 查看连接如下:

    netstat -anp | grep wget tcp 0 0 172.23.54.173:34670 52.216.134.43:443 ESTABLISHED 7727/wget 

    可以看到 wget 的 source 是 172.23.54.173 的内网私有 ip,而这个私有 ip 我在 iptables 里面的ACCEPT tcp -- 172.16.0.0/12 anywhere已经覆盖了啊,为啥我无法 tcp 访问外网啊?

    12 条回复    2019-01-14 15:37:41 +08:00
    zbinlin
        1
    zbinlin  
       2019 年 1 月 13 日
    加上

    ```
    iptables -t filter -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
    ```
    试试。

    另外建议不要使用 rule 来禁止,而是直接设置 policy 为 DROP:

    ```
    iptables -t filter -P INPUT DROP
    ```
    swsh007
        2
    swsh007  
       2019 年 1 月 13 日 via Android
    公网 ip 的话 22 就算了吧
    得多少人在那里扫啊
    换一个端口
    sodora
        3
    sodora  
       2019 年 1 月 13 日 via Android
    回程被挡了
    wd
        4
    wd  
       2019 年 1 月 13 日 via iPhone
    我看你的 forward 是 drop 是这里的问题吧?
    leaflxh
        5
    leaflxh  
       2019 年 1 月 14 日
    172.16.0.0 与 255.240.0.0 进行与运算得到的结果是 172.10.0.0
    172.23.54.173 与 255.240.0.0 进行与运算得到的结果是 172.20.0.0
    leaflxh
        6
    leaflxh  
       2019 年 1 月 14 日
    然后就很尴尬的发现自己算错了....
    julyclyde
        7
    julyclyde  
       2019 年 1 月 14 日
    @zbinlin -P 会坑死很多人的
    zbinlin
        8
    zbinlin  
       2019 年 1 月 14 日
    @julyclyde 何出此言?
    gouchaoer2
        9
    gouchaoer2  
    OP
       2019 年 1 月 14 日
    @zbinlin 不太敢设置默认的 policy 为 DROP,原因很简单,当你设置 policy 为 DROP 的那一瞬间外网的 tcp 流量其实都是断开的,这就意味着你必须保证先设置了允许 22 端口,如果一个不注意 iptables -F 了,那就彻底完蛋了

    现在我设置 OK 了,我现在的 iptables -L 如下,我还有个问题,如果别人用 ipv6 的 ip 来访问我是不是我的防火墙就失效了呢?

    ```
    iptables -L
    Chain INPUT (policy ACCEPT)
    target prot opt source destination
    ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
    ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
    ACCEPT tcp -- localhost/8 anywhere
    ACCEPT tcp -- 10.0.0.0/8 anywhere
    ACCEPT tcp -- 172.16.0.0/12 anywhere
    ACCEPT tcp -- 192.168.0.0/16 anywhere
    DROP tcp -- anywhere anywhere
    ```

    然后这台主机是可以连外网的
    zbinlin
        10
    zbinlin  
       2019 年 1 月 14 日
    @gouchaoer2 为什么要用 `iptables -F` 呢?/汗

    ipv6 有 `ip6tables` 来设置,规则差不多的。
    zbinlin
        11
    zbinlin  
       2019 年 1 月 14 日
    @zbinlin 另外,即使 ssh 被挡了,不是还有 VNC 吗?
    gouchaoer2
        12
    gouchaoer2  
    OP
       2019 年 1 月 14 日
    @zbinlin 我 netstat 看了一下,端口没有绑定 ipv6 的地址,似乎不用设置,3q

    我用 php 写了一些运维脚本,这些脚本 IMAP 去读取邮件,SMTP 发送邮件,解析邮件增加 ip 白名单,然后去管理代码仓库,做一些备份管理啥的,细节挺多的,花了几天时间。。。。我现在比较满意了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1935 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 07:19 PVG 15:19 LAX 23:19 JFK 02:19
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86