
在審核我的一個系統時,我發現一個沒有名稱的程序正在監聽本地主機的連接埠 52698。
# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 972/sshd
tcp 0 0 127.0.0.1:52698 0.0.0.0:* LISTEN 13940/0
tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN 1043/nrpe
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1128/mysqld
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 616/rpcbind
tcp6 0 0 :::22 :::* LISTEN 972/sshd
tcp6 0 0 ::1:52698 :::* LISTEN 13940/0
tcp6 0 0 :::443 :::* LISTEN 2354/apache2
tcp6 0 0 :::111 :::* LISTEN 616/rpcbind
tcp6 0 0 :::80 :::* LISTEN 2354/apache2
試圖獲取有關 /proc 中進程的信息,我得到了:
/proc/13940# ls -l exe
lrwxrwxrwx 1 root root 0 May 16 06:25 exe -> /usr/sbin/sshd
/proc/13940# cat cmdline
sshd: ubuntu@pts/0
看起來 sshd 進程由於某種原因打開了這個。這是正常的嗎?為什麼sshd要開啟這個監聽埠?
答案1
可能是遠端連接埠轉送。有人-R
在 ssh-ing 進入你的系統時使用了 flag。看man ssh
:
-R [bind_address:]port:host:hostport
指定將遠端(伺服器)主機上的給定連接埠轉送至本機端的給定主機和連接埠。這是透過分配一個套接字來監聽的港口在遠端,每當與此連接埠建立連線時,該連線都會透過安全通道轉發,並與主持人港口主機連接埠從本地機器。
注意:它適用於 TCP 端口,不適用於 UDP。
我認為創建隧道的使用者也是 的擁有者/proc/13940
。如果您需要進一步調查,這是一條線索。
答案2
在這個具體案例中,我認為是X11轉發。您必須使用 -X 或 -Y 標誌或 .ss/config 中的對應選項啟用它。只要嘗試停用它並再次登錄,我幾乎確定它會消失。