Networking

ssh 連接被分配了錯誤的 IP 地址

  • October 27, 2011

我有一台執行 centOS 5 的伺服器;格蘭普。這是一個僅限本地的設置——沒有外部訪問。

netstat 顯示來自 LAN 上機器的已建立 ssh 連接。這台機器執行的是 XP,上面沒有任何使用 SSH 的東西:

# netstat | grep tcp
tcp        0      0 dev.test.local:ssh ::ffff:192.168.1.11:51486 ESTABLISHED 

我嘗試過的事情:

  • 向 iptables 添加了一條規則以拒絕所有來自這台機器
  • 最終重新啟動網路,apache,sshd和整個機器
  • 臨時更改了違規機器的 IP(不能永久更改;人們需要它)

一個有趣的提示:當我在調查 hping 以嘗試取消連接時,我注意到機器不會響應 hping - 100% 封包遺失。但是,正常 ping 會按預期工作。因此,hping -F host 不起作用,因為出於某種原因,hping 無法到達主機。

這一切都是為了嘗試破譯為什麼突然間 apache 看起來如此緩慢。最近網路發生了變化,但沒有任何影響 LAN 的這一部分。我不知道這是問題的一部分,但這是我需要消除的變數。

關於如何終止這種連接的任何想法?


更新;

好吧,事實證明我殺不了它,因為它是我的殼!但是,由於某種原因,它沒有反映我正確的 IP 地址。但是,當我開始連接時,它說我上次登錄來自正確的 IP 地址,但 netstat 顯示的地址不正確:

Last login: Thu Oct 27 10:42:25 2011 from 192.168.1.17
# netstat | grep tcp
tcp        0      0 dev.test.local:ssh ::ffff:192.168.1.11:53461 ESTABLISHED 

這是 /var/log/secure 的尾部

Oct 27 10:42:25 dev sshd[6169]: Accepted password for root from 192.168.1.17 port 53428 ssh2
Oct 27 10:42:25 dev sshd[6169]: pam_unix(sshd:session): session opened for user root by (uid=0)
Oct 27 10:45:08 dev sshd[6169]: Received disconnect from 192.168.1.17: 11: disconnected by user
Oct 27 10:45:08 dev sshd[6169]: pam_unix(sshd:session): session closed for user root
Oct 27 10:45:24 dev sshd[6208]: Accepted password for root from 192.168.1.17 port 53461 ssh2
Oct 27 10:45:24 dev sshd[6208]: pam_unix(sshd:session): session opened for user root by (uid=0)

修改 /etc/ssh/sshd_config 怎麼樣?例如,您可以使用 ListenAddress 選擇允許登錄的 IP,也可以通過 AllowGroups 和 AllowUsers 限制登錄。您可以使用 wtmp 或查看 /var/log/secure 查看過去的登錄資訊。

首先,確認這實際上是一個ssh連接:

netstat -antp | grep ESTABLISHED | grep :22

您應該在輸出中看到一個附加列,netstat顯示連接到該 TCP 會話的應用程序名稱。如果不是,/usr/sbin/sshd那麼這可能根本就不是一個ssh會話。您應該調查保持 TCP 會話打開的應用程序。

如果是ssh會話,暫時停止ssh守護程序:

/sbin/service sshd stop

(我不是 CentOS 使用者,如果出現錯誤,表明該sshd服務不存在,請嘗試/sbin/service --list辨識要使用的正確名稱)。

再次檢查netstat輸出,看看連接是否仍然打開。如果是,請確保sshd守護程序已停止:

ps -A | grep -i ssh

確保沒有sshd程序在執行,然後重新檢查netstat輸出。如果仍有sshd程序,請嘗試:

killall -KILL sshd

再次,重新檢查您的netstat輸出。

這應該允許您在伺服器端暫時關閉事物。

sshd如果不需要,您可以通過停止和禁用服務來更永久地阻止伺服器端的連接,或者通過更改sshd配置以僅允許來自特定 IP 地址或 IP 地址範圍的連接。

但是,您還應該首先嘗試辨識與您的伺服器建立連接的機器,並確保它沒有安裝任何ssh相關軟體,例如PuTTY可能用於啟動連接的軟體。

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