我通过SSH连接到我的服务器。 我是唯一有权连接到服务器的人。 通过SSH连接后,我运行以下命令:
sudo netstat -tupn
输出包括以下两行:
Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address tcp 0 0 MY.SERVER.IP.ADDRESS:22 MY.HOME.IP.ADDRESS:54886 ESTABLISHED 18677/0 tcp 0 324 MY.SERVER.IP.ADDRESS:22 MY.HOME.IP.ADDRESS:55096 ESTABLISHED 18843/1
根据我有限的知识,似乎这两行输出与我的SSH连接有关。 我相信这是真的,因为端口是22,而外地址是我的家庭IP地址。
我试图理解这两行代表什么。 为什么我的单个ssh连接显示两个连接?
另外,netstat是一个好工具,用来查看是否有人未经授权访问我的服务器? 如果有人这样做,我会看到他们的连接在netstat输出?
这些行似乎表明来自你的家庭计算机的2个活动( ESTABLISHED状态)ssh连接(一个可能来自正在进行的scp操作,或者来自不同terminal或一些背景壳的ssh会话?)。
这些行包括它们对应于最后一列的进程的PID,即您的案例中的18677和18843 。 你可以检查它们是什么进程( ps -ef | grep <PID> )。 对于正常的SSH连接,他们将是sshd进程。
你也可以通过在你的sudo netstat -tupn上运行sudo netstat -tupn来find你的家用机器上的哪些PID,你可以看到这些行上的东西(注意匹配的IP_ADDRESS:PORT_NUM值,但与本地和外部/远程地址列颠倒):
Proto Recv-Q Send-Q Local Address Foreign Address State PID/... tcp 0 0 MY.HOME.IP.ADDRESS:54886 MY.SERVER.IP.ADDRESS:22 ESTABLISHED PID1/... tcp 0 0 MY.HOME.IP.ADDRESS:55096 MY.SERVER.IP.ADDRESS:22 ESTABLISHED PID2/...
从相应的pid中,您可以find相应的stream程,他们的父母等
是的, netstat是一个很好的使用工具。 只要未经授权的访问不能设法绕开netstat工作方式(哪个恕我直言可能,但不太可能的普通攻击),你应该能够看到这样的活动连接,甚至可以看到这些终止或最近终止了(状态像TIME_WAIT或CLOSE_WAIT )。