我有一个运行 svn、duplicati、rdp 转发和 ssh 访问的 ubuntu 服务器(Ubuntu 22.04 LTS)。我的问题是我无法解析我们网络内外的主机名。
sudo apt update
无法与启用的 ufw 一起使用。当我禁用 ufw 时,可以下载更新。我允许 ufw 中的端口 53(udp 和 tcp):
Status: active
To Action From
-- ------ ----
22 ALLOW 10.7.3.0/24
80 ALLOW Anywhere
443 ALLOW Anywhere
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
4343/udp ALLOW 10.7.3.0/24
8200/tcp ALLOW 10.7.3.0/24
3389/tcp ALLOW Anywhere
3389/udp ALLOW Anywhere
53/tcp ALLOW 193.175.120.18
53/udp ALLOW 193.175.120.18
53/udp ALLOW 193.175.120.17
53/tcp ALLOW 193.175.120.17
10.7.3.0/24 22 ALLOW OUT Anywhere
10.7.3.0/24 3389 ALLOW OUT Anywhere
53/tcp ALLOW OUT Anywhere
53/udp ALLOW OUT Anywhere
通过IP表我实现了端口转发:
*nat
:PREROUTING ACCEPT [0:0]
#forward rdp to cbs-rechner
-A PREROUTING -i eno1 -p tcp --dport 3389 -j DNAT --to-destination 10.7.3.23:3389
-A PREROUTING -i eno1 -p udp --dport 3389 -j DNAT --to-destination 10.7.3.23:3389
#setup routing
-A FORWARD -p tcp --dport 3389 -j ACCEPT
-A FORWARD -p udp --dport 3389 -j ACCEPT
COMMIT
这是我放在*filter
-section之前的内容
的输出
time dig 193.175.120.17
是
;; communications error to 127.0.0.53#53: timed out
;; communications error to 127.0.0.53#53: timed out
;; communications error to 127.0.0.53#53: timed out
; <<>> DiG 9.18.18-0ubuntu0.22.04.1-Ubuntu <<>> 193.175.120.17
;; global options: +cmd
;; no servers could be reached
real 0m15,032s
user 0m0,006s
sys 0m0,007s
当我执行时 sudo apt update
,我在 /var/log/syslog 中有条目:
Dec 12 09:24:26 rt-mw-svn-server kernel: [ 2921.895959] [UFW BLOCK] IN=eno1 OUT= MAC=98:90:96:c0:09:da:00:10:f3:92:d7:f7:08:00 SRC=193.175.120.17 DST=10.15.0.12 LEN=292 TOS=0x00 PREC=0x00 TTL=63 ID=12340 PROTO=UDP SPT=53 DPT=42188 LEN=272
Dec 12 09:24:47 rt-mw-svn-server kernel: [ 2941.916869] [UFW BLOCK] IN=eno1 OUT= MAC=98:90:96:c0:09:da:00:10:f3:92:d7:f7:08:00 SRC=193.175.120.17 DST=10.15.0.12 LEN=152 TOS=0x00 PREC=0x00 TTL=63 ID=15731 PROTO=UDP SPT=53 DPT=40610 LEN=132
有趣的是,日志中的目标端口(DPT)在每个条目中都是不同的。所以当然允许53端口是没有用的。但是我怎样才能允许来自我的 DNS 的传入数据包呢?我已经检查过网络了。DNS 肯定有响应。先感谢您
新发现: 使用 sudo ufw enable 启用 ufw 时,出现错误:
sudo ufw enable 命令可能会中断现有的 ssh 连接。继续操作 > (y|n)? y 错误:运行 ufw-init iptables-restore 时出现问题:第 21 行失败
运行“/etc/ufw/before.rules”时出现问题
第 21 行是COMMIT
IP 表行。并且有解决方案的提示。
当我注释掉
FORWARDING
IP 表中的两行时,/etc/ufw/before.rules
错误消失了。通过线路转发仍然有效PREROUTING
。IP 表中的正确设置如下: