OS X ssh 中顯示奇怪的 IP 位址

OS X ssh 中顯示奇怪的 IP 位址

我在 Mac OS X 上嘗試使用 DTrace,發現以下腳本列印出有關正在建立的連線的資訊:

$ 貓腳本.d

syscall::connect:entry
{
printf("execname: %s\n", execname);
printf("pid: %d\n", pid);
printf("sockfd: %d\n",arg0);

socks = (struct sockaddr*)copyin(arg1, arg2);

hport = (uint_t)socks->sa_data[0];
lport = (uint_t)socks->sa_data[1];
hport <<= 8; 
port = hport + lport; 
printf("Port number: %d\n", port); printf("IP address: %d.%d.%d.%d\n",
 socks->sa_data[2],
 socks->sa_data[3],
 socks->sa_data[4],
 socks->sa_data[5]);
printf("======\n");
}

我在一個視窗中運行它:
$ sudo dtrace -s ./script.d

然後我從另一個視窗 ssh 到另一台機器。我從 dtrace 視窗得到以下輸出:

CPU     ID                    FUNCTION:NAME
  0  18696                    connect:entry execname: ssh
pid: 5446
sockfd: 3
Port number: 22
IP address: 192.168.0.207
======

  0  18696                    connect:entry execname: ssh
pid: 5446
sockfd: 5
Port number: 12148
IP address: 109.112.47.108
======

^C

我可以解釋的第一個 IP 位址 (192.168.0.207),就是我要連接的機器。但是 109.112.47.108 機器是怎麼回事呢?它不會出現在 tcpdump 或 netstat -an 中

我的 dtrace 程式碼或我對 connect 系統呼叫如何運作的理解有什麼問題嗎?

答案1

我想我已經弄清楚了,這是我從 Solarius 網站獲取的 dtrace 腳本,需要針對 BSD 進行更改。

答案2

嘗試對該地址進行追蹤路由並查看它在哪裡。如果只有幾跳,則可能是防火牆或交換器。

答案3

這是義大利的沃達電話 IP 位址。您是否連接到歐洲/義大利的 ISP?如果沒有,最好開始擔心。

答案4

說什麼grep 'sshd.*from' secure.log?如果除了您之外的其他人透過 SSH 登錄,那麼您就會遇到問題。如果他們沒有,那麼很可能是暴力嘗試失敗。您是否正在執行 DenyHosts 或 Fail2Ban?

我找不到有關 syscall::connect 的任何文檔,但看起來它正在列印套接字的兩端。當您運行腳本並從另一台機器上 ssh 時會發生什麼?

相關內容