云服务器-Ubuntu更新系统版本-更新Linux内核-服务器安全配置优化-防反弹shell
购入了一台阿里云的ESC服务器,以前都用CentOS感觉Yum不怎么方便,这次选的Ubuntu16.04.7
搭好服务之后做安全检查,发现Ubuntu16.04版本漏洞众多;虽然也没有涉及到16.04.7版本(这么说来阿里云给的镜像还是可以的)但升级一下更安全一些;于是就有了今天这篇文章,做个总结。
我原来的内核版本
首先,更新内核版本(4.4x内核有些许漏洞,见图)
一、Linux更新内核版本
1、下载内核deb安装文件
对于Ubuntu,需要去http://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常用命令参考:https://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项目地址:https://github.com/zhanghaoyil/seesaw
具体使用还在研究中,本文章持续更新!
云服务器-Ubuntu更新系统版本-更新Linux内核-服务器安全配置优化-防反弹shell的更多相关文章
- Ubuntu 更新系统版本以及查看当前系统版本的命令
1. Ubuntu 查看当前系统版本: lsb_release -a 2. Ubuntu 更新系统版本的命令: sudo do-release-upgrade
- 如何更新远程主机上的 Linux 内核
如何更新远程主机上的 Linux 内核 http://blog.csdn.net/robertsong2004/article/details/47277121 转载至:http://www.tiny ...
- 识别CentOS和Ubuntu的系统版本
识别CentOS和Ubuntu的系统版本1.用 lsb-release#!/bin/bashInstall_LSB(){ if [ "$PM" = "yum ...
- 各Android版本的Linux内核表(待续)以及如何下载相应的android源码
一.Android版本与Linux内核的关系 http://www.cnblogs.com/qiengo/archive/2012/07/16/2593234.html 英文名 中文名 Android ...
- (转)linux内核参数注释与优化
linux内核参数注释与优化 原文:http://blog.51cto.com/yangrong/1321594 http://oldboy.blog.51.cto.com/2561410/13364 ...
- linux内核编译环境配置
linux内核编译环境配置 如果不是编译内核,只需要安装与内核相匹配的kernel-devel开发包即可.即是/lib/modules/`uname -r`/build -> /usr/src/ ...
- 使用yum更新时不升级Linux内核的方法
RedHat/CentOS/Fedora使用 yum update 更新时,默认会 升级内核 .但有些服务器硬件(特别是组装的机器)在升级内核后,新的内核可能会认不出某些硬件,要重新安装驱动,很麻烦. ...
- ubuntu查看系统版本和内核版本
查看系统版本: cat /etc/issue sudo lsb_release -a 查看内核版本: uname -r
- 查看LINUX发行商版本与LINUX内核版本
查看LINUX发行商版本:[root@server-mysql ~]# cat /etc/issue Red Hat Enterprise Linux Server release 6.3 (Sant ...
随机推荐
- 国产化即时通信系统开发 -- 实现GGTalk的登录界面(Linux、Ubuntu、UOS、中标麒麟)
距离2013年开源GGTalk以来,7年已经过去了,GGTalk现在有了完整的PC版.安卓版.iOS版(即将发布),以及Xamarin版本. 然而,时代一直在变化,在今天,有个趋势越来越明显,那就是政 ...
- hdu6115 Factory (LCA + 倍增)
Factory Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 132768/132768 K (Java/Others)Total ...
- poj2411 Mondriaan's Dream (轮廓线dp、状压dp)
Mondriaan's Dream Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 17203 Accepted: 991 ...
- Python爬虫训练:爬取酷燃网视频数据
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 项目目标 爬取酷燃网视频数据 https://krcom.cn/ 环境 Py ...
- 实战二:nacos服务注册与发现,openfeign服务调用
一,参照上一篇创建好微服务结构后,按业务需求编写各微服务逻辑 二,服务注册 1,安装nacos:下载,解压,运行startup.cmd 2,访问 http://localhost:8848/nacos ...
- K近邻算法:机器学习萌新必学算法
摘要:K近邻(k-NearestNeighbor,K-NN)算法是一个有监督的机器学习算法,也被称为K-NN算法,由Cover和Hart于1968年提出,可以用于解决分类问题和回归问题. 1. 为什么 ...
- 物流一站式单号查询之快递鸟API接口(附Demo源码)
连载篇提前看 物流一站式单号查询之快递鸟API接口 物流一站式查询之TrackingMore篇 物流一站式查询之顺丰接口篇 物流一站式查询之快递100 前情提要 前三篇中,我们已经从注册.申请接口.调 ...
- NB-IoT的RLC子层服务功能
NB-IoT只支持RLC子层的确认模式(Acknowledgement Mode,AM),不支持非确认模式(Unacknowledged Mode,UM). 对于支持UP模式的UE,NB-IoT支持R ...
- MYSQL连接时错误码2059解决办法
一.问题原因: 如上图的报错提示可知,报错原因是caching_sha2_password不能加载. 这是因为8.0之后mysql更改了密码的加密规则,而目前已有的客户端连接软件还不支持Mysql8 ...
- [Luogu P2014]选课 (树形DP)
题面 传送门:https://www.luogu.org/problemnew/show/P2014 Solution 这是一道十分经典的树形DP题,这种类型的树形DP有一种很普遍的解法. 首先,观察 ...