雲伺服器-Ubuntu更新系統版本-更新Linux內核-伺服器安全配置優化-防反彈shell
購入了一台阿里雲的ESC伺服器,以前都用CentOS感覺Yum不怎麼方便,這次選的Ubuntu16.04.7
搭好服務之後做安全檢查,發現Ubuntu16.04版本漏洞眾多;雖然也沒有涉及到16.04.7版本(這麼說來阿里雲給的鏡像還是可以的)但升級一下更安全一些;於是就有了今天這篇文章,做個總結。
我原來的內核版本
首先,更新內核版本(4.4x內核有些許漏洞,見圖)
一、Linux更新內核版本
1、下載內核deb安裝文件
對於Ubuntu,需要去//kernel.ubuntu.com/~kernel-ppa/mainline/選擇合適的內核安裝包
注意:X86硬體架構64位作業系統應選擇AMD64
瀏覽器下載4個內核deb安裝文件,並上傳到伺服器,或在伺服器執行:
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.9.10/amd64/linux-headers-5.9.10-050910-generic_5.9.10-050910.202011221708_amd64.deb wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.9.10/amd64/linux-headers-5.9.10-050910_5.9.10-050910.202011221708_all.deb wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.9.10/amd64/linux-image-unsigned-5.9.10-050910-generic_5.9.10-050910.202011221708_amd64.deb wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.9.10/amd64/linux-modules-5.9.10-050910-generic_5.9.10-050910.202011221708_amd64.deb
2、安裝deb包
切換至root或使用sudo
sudo dpkg -i *.deb
3、更新grub,重啟驗證
update-grub reboot
uname -sr #查看內核版本
二、更新Ubuntu系統版本
更新系統版本之前記得換軟體源,如果軟體源過慢或不穩定那將是一個大麻煩
換源及apt-get常用命令參考://www.jianshu.com/p/a79ee7f59036
1、更新安裝源(Source)
sudo apt-get update #更新安裝源(Source)
2、對軟體升級
apt-get dist-upgrade #更新已安裝的軟體包(識別並處理依賴關係的改變)
3、更新系統版本
sudo update-manager -c -d
註:如果提示「update-manager」未安裝,可以使用「sudo apt-get install update-manager」安裝
如果安裝後仍然無法執行,提示「update-manager」服務沒有運行,可以使用「systemctl status update-manager」查看該服務情況,我的顯示「找不到該服務的文件,該服務處於死的狀態」;如果像我一樣,嘗試卸載該服務「sudo apt-get –purge autoremove update-manager」然後下一步
4、另一種方法
sudo do-release-upgrade -d #中間只要是停下來需要選擇,一路選擇Y即可 #更新之後查看系統版本 lsb_release -a
三、安全配置-禁用root遠程登錄-禁用sudo
1、為防止暴力窮舉root登錄密碼,修改配置文件禁用root遠程登錄
#修改root密碼(一是為了增加root密碼強度,二是有些Ubuntu默認root沒有密碼,一直使用普通用戶sudo在運行;創建root密碼使root可登錄對下面的操作至關重要)
passwd root
#創建普通用戶(用于禁用root遠程登錄後自己登錄使用)
useradd 用戶名
#修改該用戶的密碼,創建時默認沒有密碼(沒有密碼將無法登錄)
passwd 用戶名
#在/home下創建該用戶的家目錄(有些Ubuntu在創建用戶後,用戶並沒有家目錄)
mkdir /home/用戶名
#修改該用戶的默認bash(有些Ubuntu創建用戶後bash也不是默認bash)
usermod -s /bin/bash 用戶名
#禁用root遠程登錄
vim /etc/ssh/sshd_config #將PermitRootLogin的值改為prohibit-password
保存重啟伺服器才能生效
2、禁用sudo,防止黑客控制普通用戶後控制伺服器
vim /etc/sudoers
#注釋掉:
%admin ALL=(ALL) ALL
%sudo ALL=(ALL:ALL) ALL
%wheel ALL=(ALL) ALL
包括:「用戶名 ALL=(ALL:ALL) ALL」等語句
三、防反彈shell
伺服器一旦被上傳惡意文件並執行,就有可能被黑客獲得控制許可權,無論這個許可權大小,為防止進一步提權或破壞伺服器有必要阻止他
但防止上傳惡意文件難度是巨大的,例如web網站允許上傳用戶頭像(萬一某個人上傳了一個PHP呢?)儘管程式設計師會在網站源碼里做防護,但PHP也有很多漏洞;況且百密必有一疏,例如php5.6版本就存在任意文件上傳漏洞。一般網站源碼可兼容的PHP版本是有限度的,無節制更新PHP版本也不太可能。以及web服務經常發生的xss攻擊,伺服器運行的各種docker和應用程式及手機app服務端;防護覆蓋面廣,難度大。
上傳文件無非獲得伺服器控制權,反彈shell就是常用的一種;另一種目的是損壞伺服器,利用漏洞刪除伺服器數據、破壞服務正常運行 (可以通過更新內核版本防護)。
GitHub上有一個項目來實現這個功能
GitHub項目地址://github.com/zhanghaoyil/seesaw
具體使用還在研究中,本文章持續更新!