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
都會失敗。我搜尋了 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 命令。