请问如何调教 Ubuntu 的 iptables

2015-09-17 13:06:13 +08:00
 Nin
最后一句 iptables -A INPUT -j REJECT 能把之前的规则都否定掉,无论你打开了哪个端口,除了正在连接的 22 不受影响,apt-get 都无法使用

同样的规则贴到 Debian 上却没什么问题。
4205 次点击
所在节点    Linux
20 条回复
jimzhong
2015-09-17 13:22:30 +08:00
是不是要在之前加这么一句, iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT 。
wezzard
2015-09-17 13:30:02 +08:00
重啓系統可以讓所有未被保存的規則都幹掉。
Nin
2015-09-17 13:50:06 +08:00
@jimzhong 加了,没用
suckMyballs
2015-09-17 14:23:30 +08:00
/etc/init.d/iptables stop
nekoyaki
2015-09-17 19:17:37 +08:00
@suckMyballs ubuntu 不能这么干,它不像 centos , ubuntu 的 /etc/init.d/下没有 iptables 这个脚本。

PO 主你执行 iptables -F 试一下,清空所有 iptables 规则。
nekoyaki
2015-09-17 19:18:18 +08:00
另外我觉得 PO 主最好贴一下到底是怎样的规则……
wgjak47
2015-09-17 19:46:57 +08:00
如果 iptables -A INPUT -j REJECT 能把前面的规则都否定掉,那没有理由 22 还会开放啊。所以还是把 iptables -L 的结果贴出来看看。
Nin
2015-09-17 21:02:19 +08:00
@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
2015-09-17 21:36:42 +08:00
iptables -L 的输出?
@Nin
Nin
2015-09-17 21:42:18 +08:00
nekoyaki
2015-09-17 22:03:19 +08:00
规则看不出来啥问题。仔细看了一下你的问题描述,你说的是 aptget 无法用,那估计是出站包不通,你看看是不是网关或者 IP 配置得不对。
adrianzhang
2015-09-17 22:08:16 +08:00
dns 被屏蔽了, apt-get 得不到解析。
izoabr
2015-09-17 22:32:36 +08:00
多了个 chain

fail2ban-ssh
wzxjohn
2015-09-17 22:51:32 +08:00
@izoabr 这是对的没问题。
按照楼主的截图,一条
accept all 0.0.0.0 0.0.0.0 应该直接让后面的所有规则失效了才是。。。比较奇怪。。。
Nin
2015-09-17 23:25:13 +08:00
@wzxjohn

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

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

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

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

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

http://www.cnblogs.com/guangshan/p/4837552.html
Nin
2015-12-11 16:22:58 +08:00
@batilo 嗯,后来我无意中也发现好像是锐速的问题,如果先装锐速再配置 iptables 就会造成 iptables 失效,反过来好像没事
Nin
2015-12-11 16:26:39 +08:00
@batilo 后来在一台 Debian 上试了先装锐速,再配置 iptables 发现出现一样问题,早先我以为是 Ubuntu 的问题,后来我删了锐速,把 iptables 先配置完再装锐速好像暂时没出过问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/221418

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX