雲服務器-Ubuntu更新系統版本-更新Linux內核-服務器安全配置優化-防反彈shell

購入了一臺阿里雲的ESC服務器,之前都用CentOS感受Yum不怎麼方便,此次選的Ubuntu16.04.7php

搭好服務以後作安全檢查,發現Ubuntu16.04版本漏洞衆多;雖然也沒有涉及到16.04.7版本(這麼說來阿里雲給的鏡像仍是能夠的)但升級一下更安全一些;因而就有了今天這篇文章,作個總結。linux

我原來的內核版本git

首先,更新內核版本(4.4x內核有些許漏洞,見圖)程序員

1、Linux更新內核版本

一、下載內核deb安裝文件

對於Ubuntu,須要去http://kernel.ubuntu.com/~kernel-ppa/mainline/選擇合適的內核安裝包github

注意:X86硬件架構64位操做系統應選擇AMD64web

 瀏覽器下載4個內核deb安裝文件,並上傳到服務器,或在服務器執行:docker

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

二、安裝deb包

切換至root或使用sudoshell

sudo dpkg -i *.deb

三、更新grub,重啓驗證

update-grub
reboot
uname -sr #查看內核版本

 2、更新Ubuntu系統版本

更新系統版本以前記得換軟件源,若是軟件源過慢或不穩定那將是一個大麻煩ubuntu

換源及apt-get經常使用命令參考:https://www.jianshu.com/p/a79ee7f59036vim

一、更新安裝源(Source)

sudo apt-get  update #更新安裝源(Source)

二、對軟件升級

apt-get dist-upgrade #更新已安裝的軟件包(識別並處理依賴關係的改變)

三、更新系統版本

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」而後下一步

四、另外一種方法

sudo do-release-upgrade -d
#中間只要是停下來須要選擇,一路選擇Y便可

#更新以後查看系統版本
lsb_release -a

ps:(如以上方法無效)Ubuntu登陸用戶時提供的一條命令,很穩定,按照嚮導更新很不錯(推薦)。

3、安全配置-禁用root遠程登陸-禁用sudo

一、爲防止暴力窮舉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

保存重啓服務器才能生效

二、禁用sudo,防止黑客控制普通用戶後控制服務器

vim /etc/sudoers

#註釋掉:
%admin ALL=(ALL) ALL
%sudo   ALL=(ALL:ALL) ALL

%wheel  ALL=(ALL)   ALL

包括:「用戶名 ALL=(ALL:ALL) ALL」等語句

 3、防反彈shell

服務器一旦被上傳惡意文件並執行,就有可能被黑客得到控制權限,不管這個權限大小,爲防止進一步提權或破壞服務器有必要阻止他

但防止上傳惡意文件難度是巨大的,例如web網站容許上傳用戶頭像(萬一某我的上傳了一個PHP呢?)儘管程序員會在網站源碼裏作防禦,但PHP也有不少漏洞;何況百密必有一疏,例如php5.6版本就存在任意文件上傳漏洞。通常網站源碼可兼容的PHP版本是有限度的,無節制更新PHP版本也不太可能。以及web服務常常發生的xss攻擊,服務器運行的各類docker和應用程序及手機app服務端;防禦覆蓋面廣,難度大。

上傳文件無非得到服務器控制權,反彈shell就是經常使用的一種;另外一種目的是損壞服務器,利用漏洞刪除服務器數據、破壞服務正常運行 (能夠經過更新內核版本防禦)。

GitHub上有一個項目來實現這個功能

 GitHub項目地址:https://github.com/zhanghaoyil/seesaw

具體使用還在研究中,本文章持續更新!

相關文章
相關標籤/搜索