歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Linux系統密碼恢復實踐

Linux系統密碼恢復實踐

日期:2017/3/3 16:40:47   编辑:關於Linux

23號接到客戶電話,Linux服務器無法登陸,因為服務器放在聯通的托管機房,所以無法到現場處理。經過聯網檢測,服務器無法Ping通,服務器所在網段的網關可以Ping通。開始以為是服務器托管機房網絡出現問題,導致該服務器不能訪問,後來經過使用掃描工具發現該服務器IP位置端口21,389,1002和1702有回應,所以斷定網絡不存在問題,服務器也在運行。經過了解,安裝設置的簡單過於簡單的數字密碼客戶沒有進行更改(這一點真是沒有想到),估計服務器已經被壞人光顧過了。通過協商,客戶將服務器拿回自己的公司等待我們上門去恢復密碼。

周六上午到達客戶那裡以後首先進行密碼恢復工作:

1,在服務器開機運行到Grub畫面是,按E鍵進入登陸選擇項,其中有三項,

Root (hd0,0)

kernel /boot/vmlinuz-2.4.21-15 EL ro root=LABEL=/

Initrd /initrd-2.4.21-15 EL.img

將光標移到第二項,然後再次按E鍵,在出現的界面裡面最下面一行是:

Grub edit > kernel /boot/vmlinuz-2.4.21-15.EL ro root=LABEL=/

在ro之前添加 single 然後按回車返回剛才的Grub登陸選擇界面,在第二項上按B鍵。

即可直接進入Linux 命令行,然後鍵入 passwd root 即可修改root用戶的密碼。

經過檢查發現服務器上的SSHD服務運行正常,同時也沒有發現運行21端口有打開,掃描到的389,1002和1702都沒有打開,郁悶,因為我對Linux水平較差,所以不能像Windows平台一樣,檢查注冊表或者運行的服務一樣檢查Linux服務運行的狀況,看來需要奮起直追了。服務器也就開著平常使用的幾個端口,22、3306等服務端口。防火牆的設置也是允許通過SSH的,真是郁悶為什麼當時22端口和3306端口都探測不到打開的狀態?系統那只有兩個帳號,一個是Test帳號,當時是不是自己安裝時設置的已經忘記了,另外一個是mysql帳號,用該帳號進行登陸也不能完成,該用戶密碼也已經被修改。不管那麼多了,先把test帳號斬首示眾吧。檢查日志是發現2月22號以前的日志全都不見了,也就是壞人已經將前面的日志清空,也就無法追蹤做過什麼動作了。(將會關注日志的轉移保存的方法,將日志轉移到另外的服務器上去,或者通過郵件等等。)

2,重新安裝和IP相關的包,IPtables、IPSec、Iproute、Initscripts、iputils。經過重新安裝相關的包,將Root用戶設置成一個足夠強大的密碼,MySQL帳號也是一樣。並將連接公網的Eth0網卡在防火牆設置裡面配置為不信任網卡,過濾掉沒有規則允許通過的包。經過測試SSH可以正常通過連接,但是MySQL找不到地方設置,允許防火牆放行3306端口的包。(太菜了)

現場處理過程中忘記同時更新OPENSSH相關的包,(真是令人驚訝)因為以後需要SSH來提供遠程連接服務,如果在SSH設置裡面做點手腳就是留下一個很大的後門了,同時MySQL也沒有進行重新安裝。後來這兩個問題只好等客戶將服務器接入網絡以後,將openssh在Redhat新版發行包裡面的附帶的openssh和telnet相關的包先行傳送到服務器上去,然後安裝telnet-server服務器,通過telnet連接移掉openssh重新安裝新版的openssh。(為了設置telnet和更新openssh又進行了N個小時的學習和研究)然後在Iptable裡面添加相應的規則允許3306的包通過。

附注:為了解決這個問題,多次煩擾在珠海工作的朋友梁寶玉和公司的同事,在此一並表示感謝。通過此次實做和幾個工作日的艱苦奮戰,對Linux系統的使用和設置也提高和長進迅速。

Copyright © Linux教程網 All Rights Reserved