Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
Nin
V2EX  ›  Linux

请问如何调教 Ubuntu 的 iptables

  •  
  •   Nin · Sep 17, 2015 · 5117 views
    This topic created in 3911 days ago, the information mentioned may be changed or developed.
    最后一句 iptables -A INPUT -j REJECT 能把之前的规则都否定掉,无论你打开了哪个端口,除了正在连接的 22 不受影响,apt-get 都无法使用

    同样的规则贴到 Debian 上却没什么问题。
    20 replies    2015-12-11 16:26:39 +08:00
    jimzhong
        1
    jimzhong  
       Sep 17, 2015
    是不是要在之前加这么一句, iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT 。
    wezzard
        2
    wezzard  
       Sep 17, 2015
    重啓系統可以讓所有未被保存的規則都幹掉。
    Nin
        3
    Nin  
    OP
       Sep 17, 2015
    @jimzhong 加了,没用
    suckMyballs
        4
    suckMyballs  
       Sep 17, 2015
    /etc/init.d/iptables stop
    nekoyaki
        5
    nekoyaki  
       Sep 17, 2015
    @suckMyballs ubuntu 不能这么干,它不像 centos , ubuntu 的 /etc/init.d/下没有 iptables 这个脚本。

    PO 主你执行 iptables -F 试一下,清空所有 iptables 规则。
    nekoyaki
        6
    nekoyaki  
       Sep 17, 2015
    另外我觉得 PO 主最好贴一下到底是怎样的规则……
    wgjak47
        7
    wgjak47  
       Sep 17, 2015
    如果 iptables -A INPUT -j REJECT 能把前面的规则都否定掉,那没有理由 22 还会开放啊。所以还是把 iptables -L 的结果贴出来看看。
    Nin
        8
    Nin  
    OP
       Sep 17, 2015
    @nekoyaki
    @wgjak47

    -A INPUT -s 127.0.0.1/32 -d 127.0.0.1/32 -j ACCEPT
    -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
    -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
    -A INPUT -p icmp -j ACCEPT
    -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    -A INPUT -j REJECT --reject-with icmp-port-unreachable
    -A FORWARD -j ACCEPT
    -A OUTPUT -j ACCEPT

    很简单的规则
    wgjak47
        9
    wgjak47  
       Sep 17, 2015
    iptables -L 的输出?
    @Nin
    Nin
        10
    Nin  
    OP
       Sep 17, 2015
    nekoyaki
        11
    nekoyaki  
       Sep 17, 2015
    规则看不出来啥问题。仔细看了一下你的问题描述,你说的是 aptget 无法用,那估计是出站包不通,你看看是不是网关或者 IP 配置得不对。
    adrianzhang
        12
    adrianzhang  
       Sep 17, 2015
    dns 被屏蔽了, apt-get 得不到解析。
    izoabr
        13
    izoabr  
       Sep 17, 2015
    多了个 chain

    fail2ban-ssh
    wzxjohn
        14
    wzxjohn  
       Sep 17, 2015
    @izoabr 这是对的没问题。
    按照楼主的截图,一条
    accept all 0.0.0.0 0.0.0.0 应该直接让后面的所有规则失效了才是。。。比较奇怪。。。
    Nin
        15
    Nin  
    OP
       Sep 17, 2015
    @wzxjohn

    第一条是本地回环
    我比较奇怪的是同样的规则在 Debian 上无任何问题还有就是 linode 的 Ubuntu 也没问题

    看检测了下日志, 443 端口正常有数据接收但到了最后一条 REJECT 那又被丢弃了。。。
    wzxjohn
        16
    wzxjohn  
       Sep 17, 2015
    @Nin iptables 是顺序执行的,按理说不可能匹配到放行又被拒绝。。。这个比较迷。。。
    batilo
        17
    batilo  
       Dec 11, 2015
    目前我也遇到了这个问题,楼主所说的 apt-get 无法使用是因为机器无法访问外网。

    1. 如果 INPUT 默认策略为 DROP ,则所有 OUTPUT 规则失效

    2. 如果添加一条 DROP 或者 REJECT 规则在 INPUT 最后,则 OUTPUT 规则失效
    batilo
        18
    batilo  
       Dec 11, 2015
    好像找到问题所在了, 楼主你是不是和我一样也是开启了锐速这个东西?

    我在关闭锐速之后, iptables 规则就能够正常使用。 通过 Google 找到了这样一篇文章:

    http://www.cnblogs.com/guangshan/p/4837552.html
    Nin
        19
    Nin  
    OP
       Dec 11, 2015 via iPhone
    @batilo 嗯,后来我无意中也发现好像是锐速的问题,如果先装锐速再配置 iptables 就会造成 iptables 失效,反过来好像没事
    Nin
        20
    Nin  
    OP
       Dec 11, 2015 via iPhone
    @batilo 后来在一台 Debian 上试了先装锐速,再配置 iptables 发现出现一样问题,早先我以为是 Ubuntu 的问题,后来我删了锐速,把 iptables 先配置完再装锐速好像暂时没出过问题
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   976 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 21:45 · PVG 05:45 · LAX 14:45 · JFK 17:45
    ♥ Do have faith in what you're doing.