我有一台 ubuntu 服务器(Ubuntu 22.04 LTS),运行 svn、duplicati、rdp-forwarding 和 ssh-access。我的问题是我无法解析我们网络内外的主机名。
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 表行。并且有解决方案的提示。
答案1
当我注释掉FORWARDING
IP 表中的两行时,/etc/ufw/before.rules
错误消失了。转发仍然通过这些PREROUTING
行进行。IP 表中的正确设置如下:
: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
COMMIT ```
the ufw status looks the same as in my question.