我的 IPtables 规则正在阻止,apt update
例如:
root@vpn:~# apt update
Ign:1 https://pkgs.tailscale.com/stable/ubuntu jammy InRelease
Ign:2 http://de.archive.ubuntu.com/ubuntu jammy InRelease
Ign:3 http://de.archive.ubuntu.com/ubuntu jammy-updates InRelease
Ign:1 https://pkgs.tailscale.com/stable/ubuntu jammy InRelease
Ign:4 http://de.archive.ubuntu.com/ubuntu jammy-backports InRelease
Ign:1 https://pkgs.tailscale.com/stable/ubuntu jammy InRelease
Ign:5 http://de.archive.ubuntu.com/ubuntu jammy-security InRelease
Err:1 https://pkgs.tailscale.com/stable/ubuntu jammy InRelease
Temporary failure resolving 'pkgs.tailscale.com'
Ign:2 http://de.archive.ubuntu.com/ubuntu jammy InRelease
Ign:3 http://de.archive.ubuntu.com/ubuntu jammy-updates InRelease
Ign:4 http://de.archive.ubuntu.com/ubuntu jammy-backports InRelease
Ign:5 http://de.archive.ubuntu.com/ubuntu jammy-security InRelease
Ign:2 http://de.archive.ubuntu.com/ubuntu jammy InRelease
Ign:3 http://de.archive.ubuntu.com/ubuntu jammy-updates InRelease
Ign:4 http://de.archive.ubuntu.com/ubuntu jammy-backports InRelease
Ign:5 http://de.archive.ubuntu.com/ubuntu jammy-security InRelease
Err:2 http://de.archive.ubuntu.com/ubuntu jammy InRelease
Temporary failure resolving 'de.archive.ubuntu.com'
Err:3 http://de.archive.ubuntu.com/ubuntu jammy-updates InRelease
Temporary failure resolving 'de.archive.ubuntu.com'
Err:4 http://de.archive.ubuntu.com/ubuntu jammy-backports InRelease
Temporary failure resolving 'de.archive.ubuntu.com'
Err:5 http://de.archive.ubuntu.com/ubuntu jammy-security InRelease
Temporary failure resolving 'de.archive.ubuntu.com'
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.
W: Failed to fetch http://de.archive.ubuntu.com/ubuntu/dists/jammy/InRelease Temporary failure re solving 'de.archive.ubuntu.com'
W: Failed to fetch http://de.archive.ubuntu.com/ubuntu/dists/jammy-updates/InRelease Temporary fa ilure resolving 'de.archive.ubuntu.com'
W: Failed to fetch http://de.archive.ubuntu.com/ubuntu/dists/jammy-backports/InRelease Temporary failure resolving 'de.archive.ubuntu.com'
W: Failed to fetch http://de.archive.ubuntu.com/ubuntu/dists/jammy-security/InRelease Temporary f ailure resolving 'de.archive.ubuntu.com'
W: Failed to fetch https://pkgs.tailscale.com/stable/ubuntu/dists/jammy/InRelease Temporary failu re resolving 'pkgs.tailscale.com'
W: Some index files failed to download. They have been ignored, or old ones used instead.
root@vpn:~#
据我所知,它使用 80 或 443 传出,并使用ChainESTABLISHED
中的状态。INPUT
这些是我的规则:
root@vpn:~# iptables -S
-P INPUT DROP
-P FORWARD DROP
-P OUTPUT ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
root@vpn:~# iptables -L -nv
Chain INPUT (policy DROP 320 packets, 22536 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
5039 226K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
127 22352 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
Chain FORWARD (policy DROP 80 packets, 4160 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 8759 packets, 869K bytes)
pkts bytes target prot opt in out source destination
root@vpn:~#
在 tcpdump 中,当启用这些规则时,我几乎看不到任何流量,我甚至看不到服务器在尝试使用时尝试接触任何东西apt
。
我无法在 tcpdump 或日志中看到内核丢弃的任何东西。
25 packets captured
373 packets received by filter
292 packets dropped by kernel
从字面上理解,当这些规则生效时,tcdump 显示的唯一流量是通过端口 22 SSH 到我的 PC 的流量和一些 ARP 消息,没有其他内容。
如果我设置所有策略ACCEPT
并清除所有链,一切都会正常,但我却不明白。
编辑3 添加了新的动画/Gif/Mp4 结合两种测试,并添加了 tcpdump 拆分视图。因此我的其他 Gif 不再需要,我从此帖子中删除了编辑 1 和 2。 防火墙_tcpdump_split_view
编辑4
这是我的路线,因为我被要求这样做。没有运行 Docker 或其他任何东西。VPN 一直处于关闭状态。如果需要更多详细信息,请询问更多详细信息。
但是你需要告诉我需要哪些细节,因为我不知道。
root@vpn:~# ip route
default via 192.168.178.1 dev ens18 proto static
192.168.178.0/24 dev ens18 proto kernel scope link src 192.168.178.49
答案1
您可能需要以下规则:
-A INPUT -i lo -j ACCEPT
这可能是因为您已将 systemd 解析的本地 DNS 存根侦听器列为您的(唯一)名称服务器/etc/resolv.conf
。
如果没有上述规则,您将无法访问在您自己的主机上运行的服务器,因为与与其他主机的通信不同,发起 / 的流量是由您自己的主机本身接收的。因此,在这种情况下,仅仅将链中的流量NEW
列入白名单是不够的。ESTABLISHED
INPUT
不过,您可能会注意到,并不是每个程序的 DNS 解析都失败了,因为当您运行时systemd-resolved
,列出的名称服务器/etc/resolv.conf
并不是唯一可用于完成工作的东西。请参阅systemd-resolved.service(8)更多细节。