ssh 連接被分配了錯誤的 IP 地址
我有一台執行 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
可能用於啟動連接的軟體。