Domain-Name-System

ufw阻止apt和dns

  • November 16, 2015

我在我的 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都會失敗。我搜尋了 serverfault 的答案。一種解決方案是允許埠 53 用於 DNS - 沒有幫助。或ufw allow out 1024:65535/udp與埠 53 一起使用 - 沒有幫助。

有效的是讓我的 DNS 伺服器像ufw allow from [DNS IP];但如果你問我,那不是解決方案。

apt-get 和 aptitude 都被 ufw 屏蔽了。找不到任何關於如何允許安裝新東西的資訊。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

這可能不是一個理想的解決方案。但它確實使我能夠在每個使用者的基礎上授權 apt 命令。

引用自:https://serverfault.com/questions/416727