Ubuntu

ufw 阻止傳入的 traceroute

  • November 5, 2013

我的一台執行 Ubuntu 13.04 的 Proxmox 虛擬機在啟用 ufw 時不接受傳入的跟踪路由。

什麼命令給 ufw 以允許傳入的 traceroute(6)s?

啟用了 ufw 的 syslog 中顯示以下內容:

50:15:15:aa:ae:8d:7d:e4:7a:97:08:00 SRC=79.236.233.97 DST=78.46.101.252 LEN=52 TOS=0x00 PREC=0x00 TTL=1 ID=33400 PROTO=UDP SPT=63757 DPT=33466 LEN=32
Nov  4 16:20:36 web kernel: [8078158.260409] [UFW BLOCK] IN=eth0 OUT= MAC=00:50:56:15:15:aa:ae:8d:7d:e4:7a:97:08:00 SRC=79.236.233.97 DST=78.46.101.252 LEN=52 TOS=0x00 PREC=0x00 TTL=1 ID=33401 PROTO=UDP SPT=63757 DPT=33467 LEN=32
Nov  4 16:20:41 web kernel: [8078163.262626] [UFW BLOCK] IN=eth0 OUT= MAC=00:50:56:15:15:aa:ae:8d:7d:e4:7a:97:08:00 SRC=79.236.233.97 DST=78.46.101.252 LEN=52 TOS=0x00 PREC=0x00 TTL=2 ID=33402 PROTO=UDP SPT=63757 DPT=33468 LEN=32
Nov  4 16:20:46 web kernel: [8078168.262927] [UFW BLOCK] IN=eth0 OUT= MAC=00:50:56:15:15:aa:ae:8d:7d:e4:7a:97:08:00 SRC=79.236.233.97 DST=78.46.101.252 LEN=52 TOS=0x00 PREC=0x00 TTL=2 ID=33403 PROTO=UDP SPT=63757 DPT=33469 LEN=32
Nov  4 16:20:51 web kernel: [8078173.260521] [UFW BLOCK] IN=eth0 OUT= MAC=00:50:56:15:15:aa:ae:8d:7d:e4:7a:97:08:00 SRC=79.236.233.97 DST=78.46.101.252 LEN=52 TOS=0x00 PREC=0x00 TTL=2 ID=33404 PROTO=UDP SPT=63757 DPT=33470 LEN=32

並且跟踪路由僅在 Proxmox 主機之後開始。

謝謝

託拜厄斯·廷佩

Traceroute 使用 ICMP 數據包,因此您需要允許 ICMP 數據包。

ufw 不允許通過命令行界面命令指定 icmp 規則,因此您需要編輯規則文件

但是 ufw 預設情況下確實允許某些 icmp 流量,包括 icmp echo 回复,並且預設情況下已在 /etc/ufw/before.rules 中配置:

-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT

如果您的主機沒有響應 ping,請查看此文件以確保上述行存在,如果這不起作用,請查看 ping 主機和它們之間的任何防火牆。

要允許跟踪路由,您需要編輯 /etc/ufw/before.rules

-A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT
-A ufw-before-input -p icmp --icmp-type source-quench -j ACCEPT
-A ufw-before-input -p icmp --icmp-type time-exceeded -j ACCEPT
-A ufw-before-input -p icmp --icmp-type parameter-problem -j ACCEPT
-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT

要在編輯文件之前查看設置了什麼,請嘗試以下操作

sudo grep 'icmp' /etc/ufw/before.rules

筆記:

Traceroute 發送三個 Internet 控制消息協議 (ICMP) 回應要求數據包的序列,這些數據包定址到目標主機。生存時間 (TTL) 值,也稱為跳數限制,用於確定向目的地遍歷的中間路由器。

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