最后一句 iptables -A INPUT -j REJECT 能把之前的规则都否定掉,无论你打开了哪个端口,除了正在连接的 22 不受影响,apt-get 都无法使用
同样的规则贴到 Debian 上却没什么问题。
是不是要在之前加这么一句, iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT 。
重啓系統可以讓所有未被保存的規則都幹掉。
加了,没用
/etc/init.d/iptables stop
ubuntu 不能这么干,它不像 centos , ubuntu 的 /etc/init.d/下没有 iptables 这个脚本。
PO 主你执行 iptables -F 试一下,清空所有 iptables 规则。
另外我觉得 PO 主最好贴一下到底是怎样的规则……
如果 iptables -A INPUT -j REJECT 能把前面的规则都否定掉,那没有理由 22 还会开放啊。所以还是把 iptables -L 的结果贴出来看看。
-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
很简单的规则
iptables -L 的输出?
@Nin
规则看不出来啥问题。仔细看了一下你的问题描述,你说的是 aptget 无法用,那估计是出站包不通,你看看是不是网关或者 IP 配置得不对。
dns 被屏蔽了, apt-get 得不到解析。
多了个 chain
fail2ban-ssh
这是对的没问题。
按照楼主的截图,一条
accept all 0.0.0.0 0.0.0.0 应该直接让后面的所有规则失效了才是。。。比较奇怪。。。
第一条是本地回环
我比较奇怪的是同样的规则在 Debian 上无任何问题还有就是 linode 的 Ubuntu 也没问题
看检测了下日志, 443 端口正常有数据接收但到了最后一条 REJECT 那又被丢弃了。。。
iptables 是顺序执行的,按理说不可能匹配到放行又被拒绝。。。这个比较迷。。。
目前我也遇到了这个问题,楼主所说的 apt-get 无法使用是因为机器无法访问外网。
1. 如果 INPUT 默认策略为 DROP ,则所有 OUTPUT 规则失效
2. 如果添加一条 DROP 或者 REJECT 规则在 INPUT 最后,则 OUTPUT 规则失效
好像找到问题所在了, 楼主你是不是和我一样也是开启了锐速这个东西?
我在关闭锐速之后, iptables 规则就能够正常使用。 通过 Google 找到了这样一篇文章:
http://www.cnblogs.com/guangshan/p/4837552.html
嗯,后来我无意中也发现好像是锐速的问题,如果先装锐速再配置 iptables 就会造成 iptables 失效,反过来好像没事
后来在一台 Debian 上试了先装锐速,再配置 iptables 发现出现一样问题,早先我以为是 Ubuntu 的问题,后来我删了锐速,把 iptables 先配置完再装锐速好像暂时没出过问题