阿里云一臺(tái)ECS中招,中招原因可能為版本底,并且WEB界面允許外部訪問,因?yàn)槲覀冇型獠砍绦騿T需要上傳代碼。
受影響的版本:
現(xiàn)像:
CPU一直50%,很聰明!!!
查看進(jìn)程,有一個(gè)GIT用戶運(yùn)行的exe程序持續(xù)占有50%的CPU,程序結(jié)束后會(huì)馬上自動(dòng)拉起。
處理過程:
切換到Gti用戶下,查看計(jì)劃任務(wù):
計(jì)劃任務(wù)為空
/tmp/目錄下,沒有發(fā)現(xiàn)和阿里提示相同的文件夾。
通過lsof -p查看進(jìn)程,發(fā)現(xiàn)境外連接地址,通過IPTABLES禁止訪問此地址后,會(huì)自動(dòng)更換其它地址進(jìn)行自動(dòng)連接。
[root@~]# lsof -p 9119
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
exe 9119 git cwd DIR 253,1 4096 2 /
exe 9119 git rtd DIR 253,1 4096 2 /
exe 9119 git txt REG 253,1 1709100 1179650 /tmp/kami (deleted)
exe 9119 git 0r CHR 1,3 0t0 1028 /dev/null
exe 9119 git 1w CHR 1,3 0t0 1028 /dev/null
exe 9119 git 2w CHR 1,3 0t0 1028 /dev/null
exe 9119 git 3r CHR 1,3 0t0 1028 /dev/null
exe 9119 git 4u REG 253,1 4 1188868 /tmp/.x11-unix (deleted)
exe 9119 git 5u a_inode 0,10 0 6387 [eventpoll]
exe 9119 git 6r FIFO 0,9 0t0 1319801218 pipe
exe 9119 git 7w FIFO 0,9 0t0 1319801218 pipe
exe 9119 git 8r FIFO 0,9 0t0 1319801219 pipe
exe 9119 git 9w FIFO 0,9 0t0 1319801219 pipe
exe 9119 git 10u a_inode 0,10 0 6387 [eventfd]
exe 9119 git 11u a_inode 0,10 0 6387 [eventfd]
exe 9119 git 12u a_inode 0,10 0 6387 [eventfd]
exe 9119 git 13r CHR 1,3 0t0 1028 /dev/null
exe 9119 git 14u IPv4 1319801220 0t0 TCP nexus.****.com:48948->504e189a.host.njalla.NET:https (ESTABLISHED)
iptables -I OUTPUT -d 80.78.24.154 -j DROP
Chain OUTPUT (policy ACCEPT 108 packets, 114K bytes)
pkts bytes target prot opt in out source destination
6 372 DROP all -- * * 0.0.0.0/0 80.78.24.154
因?yàn)楸救颂幚磉^一起類似的問題,所以知道系統(tǒng)里本身的默認(rèn)命令應(yīng)該是無法查看到此程序,使用busybox來可以很容易的清理,因?yàn)闀r(shí)間有限,我給大家一個(gè)小妙招,如果找到busybox,可以下載一個(gè)Docker鏡像,拉起來后,把busybox復(fù)制到本機(jī),然后通過busybox進(jìn)行病毒的清理工作,就易如反掌。
- 清空整個(gè)/tmp目錄
- 結(jié)束所有已經(jīng)打上deleted標(biāo)記的進(jìn)程,通過busybox可以很容易的發(fā)現(xiàn)進(jìn)程信息,阿里的提示是準(zhǔn)確的,只不過系統(tǒng)被感染,所以不易查看到相關(guān)信息。
[root@ ~]# busybox lsof -p |grep 9459
9459 /tmp/kami (deleted) 0 /dev/null
9459 /tmp/kami (deleted) 1 /dev/null
9459 /tmp/kami (deleted) 2 /dev/null
9459 /tmp/kami (deleted) 3 /dev/null
9459 /tmp/kami (deleted) 4 /tmp/.x11-unix (deleted)
9459 /tmp/kami (deleted) 5 anon_inode:[eventpoll]
9459 /tmp/kami (deleted) 6 pipe:[1319802797]
9459 /tmp/kami (deleted) 7 pipe:[1319802797]
9459 /tmp/kami (deleted) 8 pipe:[1319802798]
9459 /tmp/kami (deleted) 9 pipe:[1319802798]
9459 /tmp/kami (deleted) 10 anon_inode:[eventfd]
9459 /tmp/kami (deleted) 11 anon_inode:[eventfd]
9459 /tmp/kami (deleted) 12 anon_inode:[eventfd]
9459 /tmp/kami (deleted) 13 /dev/null
9459 /tmp/kami (deleted) 14 socket:[1319806273]
9459 /tmp/kami (deleted) 15 socket:[1319803995]
至此,進(jìn)程再也不會(huì)被拉起來。
接下來是升級(jí)工作。
- 備份
gitlab-rake gitlab:backup:create #自動(dòng)備份代碼相關(guān)內(nèi)容
手動(dòng)備份下面文件
/etc/gitlab/gitlab.rb #配置文件須備份
/var/opt/gitlab/Nginx/conf #nginx配置文件
/etc/postfix/main.cfpostfix #郵件配置備份
/etc/gitlab/gitlab-secrets.json #存儲(chǔ)了gitlab的db secret信息
- 準(zhǔn)備gitlab源,本機(jī)為centos7
[gitlab-ce]
name=gitlab-ce
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
repo_gpgcheck=0
gpgcheck=0
enable=1
gpgkey=https://packages.gitlab.com/gpg.key
- 停相關(guān)服務(wù)
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
gitlab-ctl stop nginx
- yum安裝升級(jí)
yum install -y gitlab-10.8.7
yum install -y gitlab-11.3.4
- 啟動(dòng)服務(wù)
gitlab-ctl restart
查看可升級(jí)的路線圖
8.11.Z -> 8.12.0 -> 8.17.7 -> 9.5.10 -> 10.8.7 -> 11.11.8 -> 12.0.12 -> 12.1.17 -> 12.10.14 -> 13.0.14 -> 13.1.11 -> 13.8.8 -> 13.12.15 -> 14.0.12 -> 14.3.6 -> 14.9.5 -> 14.10.Z -> 15.0.Z -> 15.4.0 -> latest 15.Y.Z
上圖為gitlab官網(wǎng)公司的升級(jí)路線圖。
因?yàn)闀r(shí)間關(guān)系,我司的Gitlab暫升級(jí)到11.3.4,其間升到了10.8.7和11.3.4二個(gè)版本。升級(jí)后,代碼訪問正常。