ufw阻止apt和dns

我在我的Debian系统上安装了ufw,如下所示:

# aptitude install ufw # ufw limit 22 # ufw allow 80 # ufw allow 443 # ufw enable # ufw status verbose Status: active Logging: on (low) Default: deny (incoming), allow (outgoing) New profiles: skip To Action From -- ------ ---- 20 LIMIT Anywhere 80 ALLOW Anywhere 443 ALLOW Anywhere 

一个简单的ping google.com失败,任何aptitude install都将失败。 我searchserverfault的答案。 一个解决scheme是允许端口53的DNS – 没有帮助。 或者,如果ufw allow out 1024:65535/udp与端口53一起使用 – 没有帮助。

什么工作是让我的DNS服务器像ufw allow from [DNS IP] ; 但是,如果你问我,这是无法解决的。

apt-get和aptitude都被ufw封锁了。 无法find任何关于如何安装新的东西。 一个ufw日志条目示例:

Aug 12 17:31:08 host kernel: [535454.665168] [UFW BLOCK] IN=eth0 OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:00:00 SRC=0.0.0.0 DST=0.0.0.0 LEN=60 TOS=0x00 PREC=0x00 TTL=52 ID=0 DF PROTO=TCP SPT=80 DPT=41343 WINDOW=14480 RES=0x00 ACK SYN URGP=0

有任何想法吗?

你需要在iptables添加以下内容,因为ufw只是与它接口。

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

对我来说,在这里使用Ubuntu(本文写作时为14.04和14.10)来自以下文章: http : //rene.bz/securing-your-web-server-blocking-outbound-connections/

 iptables -A ufw-before-output -m owner --uid-owner root -p tcp --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A ufw-before-output -m owner --uid-owner root -p udp --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT 

这可能不是一个理想的解决scheme。 但它确实使我能够在每个用户的基础上授权apt命令。

我对pptpd + ufw有问题 – 即使我允许53端口,对DNS的请求也被阻止。 你有没有尝试打开/etc/default/ufw并将选项“DEFAULT_FORWARD_POLICY”从“DROP”更改为“ACCEPT”? 它为我做了诡计。

这些规则帮助我成功地获得了SSH的速率限制,允许input/输出http和https,启用git,并且apt和aptitude工作没问题:

 ufw default deny incoming ufw default deny outgoing ufw limit ssh ufw allow svn ufw allow git ufw allow out http ufw allow in http ufw allow out https ufw allow in https ufw allow out 53 ufw logging on ufw enable 

注:我确实启动了这些规则, ufw reset启动后重新开始。