审计我的一个系统时,我发现一个没有名字的进程正在监听本地主机的端口 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 进入你的系统时使用了 flag。请参阅man ssh
:
-R [bind_address:]port:host:hostport
指定将远程(服务器)主机上的给定端口转发到本地的给定主机和端口。这通过分配一个套接字来监听港口在远端,每当与该端口建立连接时,该连接都会通过安全通道转发,并且会连接到主持人港口主机端口从本地机器。
注意:它适用于 TCP 端口,而不是 UDP。
我认为创建隧道的用户也是 的所有者/proc/13940
。如果您需要进一步调查,这就是一条线索。
答案2
在这个特定情况下,我认为是 X11 转发。您必须使用 -X 或 -Y 标志或 .ss/config 中的相应选项启用它。只需尝试禁用它并再次登录,我几乎可以肯定它会消失。