sshd 進程解析
前段時間發現一個linux(redhat as 4.0)的伺服器很慢,查看CPU幾乎100%,但是在top中並不能發現佔用CPU的進程。
檢查系統進程ps -ef 發現sshd的命令顯示亂碼(可以肯定的是不是編碼集導致的顯示不正常),下面是另外一個同樣癥狀的伺服器,不過目前沒有發作導致CPU100%:
root 25187 1 0 2009 ? 00:00:12
root 1234 1 0 2009 ? 00:04:29 ▒?q
root 30160 1 0 2009 ? 00:00:00 java9011 -classpath ./classes:./lib/commons-codec-1.3.jar:./
root 20222 1 0 2009 ? 00:00:43 syslogd -m 0
root 20227 1 0 2009 ? 00:00:00 klogd -x
root 9698 3 0 Jan16 ? 00:00:02
root 28268 3 0 Jan22 ? 00:00:00
root 10947 1 0 Jan24 ? 00:00:03 /usr/sbin/snmpd -Lsd -Lf /dev/null -p /var/run/snmpd -a
root 32342 1234 0 08:57 ? 00:00:00 ▒?q
root 32346 32342 0 08:58 pts/1 00:00:00 -bash
root 32431 32346 0 09:06 pts/1 00:00:00 ps -ef
lsof -p 1234
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
sshd 1234 root cwd DIR 8,1 4096 2 /
sshd 1234 root rtd DIR 8,1 4096 2 /
sshd 1234 root txt REG 8,1 1830579 1131323 /usr/sbin/sshd
sshd 1234 root mem REG 8,1 27231 542557 /lib/libcrypt-2.3.4.so
sshd 1234 root mem REG 8,1 102447 542542 /lib/ld-2.3.4.so
sshd 1234 root mem REG 8,1 1454835 542543 /lib/tls/libc-2.3.4.so
sshd 1234 root mem REG 8,1 15384 542545 /lib/libdl-2.3.4.so
sshd 1234 root mem REG 8,1 179139 542544 /lib/tls/libm-2.3.4.so
sshd 1234 root mem REG 8,1 45868 540722 /lib/libnss_files-2.3.4.so
sshd 1234 root mem REG 8,1 12592 542472 /lib/libtermcap.so.2.0.8
sshd 1234 root mem REG 8,1 29344 542555 /lib/libpam.so.0.77
sshd 1234 root mem REG 8,1 95320 542553 /lib/libnsl-2.3.4.so
sshd 1234 root mem REG 8,1 14586 542549 /lib/libutil-2.3.4.so
sshd 1234 root mem REG 8,1 879961 993609 /usr/lib/libncurses.so.5.4
sshd 1234 root 0u CHR 1,3 1660 /dev/null
sshd 1234 root 1u CHR 1,3 1660 /dev/null
sshd 1234 root 2u CHR 1,3 1660 /dev/null
sshd 1234 root 3u IPv6 3684379 TCP *:ssh (LISTEN)
sshd 1234 root 4u unix 0xd3e8e4c0 14418076 socket
由於該進程導致了系統的CPU居高,所以就在伺服器上把類似1234的進程給kill了,系統反應快多了(從其他應用測試看到很快),不過sshd不能登錄了。
之間檢查/var/log/message, /var/log/secure 發現以前紀錄的用戶認證失敗信息也都沒有了。
我感覺是系統可能被修改了,請專家指點。
[ 本帖最後由 rainbow 於 2010-1-27 09:25 編輯 ]
《解決方案》
樓主是不是在win下登錄的伺服器,如果是的話,可以改下連接會話的編碼。 UTF8
《解決方案》
會話的編碼是對的,顯示utf8中文沒有問題。
《解決方案》
你有每有strace 一下那進程看她在做什麼?
《解決方案》
沒有strace過,感覺是sshd被修改了。
《解決方案》
回復 #1 rainbow 的帖子
學習
《解決方案》
看看ssh的日誌吧。
可能是登錄了以後,執行了什麼進程了吧?
《解決方案》
哦, ssh的日誌哪裡可以看到? 這個我還真的沒有注意哦
《解決方案》
rpm -V openssh-server
看看文件有沒有被改
《解決方案》
# rpm -V openssh-server
S.5....T. c /etc/ssh/sshd_config
S.5....TC /usr/sbin/sshd
md5sum /usr/sbin/sshd 發現給文件的簽名已經被修改了。