前言

在Linux基础 装饰你的Shell中,我们简单地复习了一下Vim的用法,还接触了一些比较酷的Linux软件,比如ohmyzshhtop

虽然这些功能看似很强大,但你还不是真正的强大。因为在某种程度上,你的VPS还暴露在一个危险的互联网环境中,而你对此可能还没有太多的认识。所以,本回我将讨论个人VPS安全的相关问题。与个人对应的自然是企业级的安全了,不过那在我的能力范畴之外了。

大家可能偶有耳闻网络安全相关的新闻。比如,facebook的帐号信息被泄露啦,twitter上的名流被人冒名顶替啦。还有以前我读书那会的爆炸性新闻——美国“棱镜计划”和斯诺登。这些好像离我们十分遥远。说近的,平时互联网中很多自动化的攻击,对付它们往往也需要耗费大量的精力。

在日常生活中,会定期改改密码的人估计都是凤毛麟角。平时大家很少过分地考虑网络安全,好像一直也没啥事。这是为什么呢?对于这个问题,我也没有明确答案。不过,我有几个推测,大家可以参详一下:

  • **私人信息基本上已经是被窃取了。**这点我就不想多说了。我还记得以前有骚扰电话可以准确地说出我的电话、名字、身份证号和住址。我也不知道这些信息是怎么被泄露出去的,可能在发生在很久以前,具体原因也不可考了。
  • 你的密码还是相对安全的
    • 我们平时使用的服务,比如银行、淘宝、微信之类的,账户和密码的安全由服务商保证。它们基于httpsssl协议,在数学原理和现代密码学原理的buff加持下使得直接破解是十分困难。我们平时说的密码泄露,多半是自己在不安全的地方(比如http开头的网站)输入了自己的帐号信息,又或者你使用了弱密码被别人暴力破解了。所以“定期更换复杂的密码”是一种比较合理的建议(当然,我认为bitwarden才是最佳实践)。
    • 随着移动智能设备的流行,二次验证也变得十分常见。比如你输入正确的帐户信息后,可能还要手机再确认一下,这样的帐户基本上很难被窃取。如果攻击者同时获得了你的手机和你的帐户信息,这基本上就意味着你可能遭遇了绑架之类的人身攻击了,这时候人身安全是优先考虑的问题了。

所以呀,在日常生活中,其实是服务提供商帮你考虑了安全问题。可是,如果你玩VPS的话,你就变成VPS的安全负责人了。这时,你就需要了解一些基本的网络安全的知识了。试想你通过http协议传输密码,那么你的信息将以明文的方式在互联网中传播。这根本没有任何安全性可言。

关于个人VPS的安全,如果以后有更多观点再补充。网络安全是一个相对的概念,**你要做到的不是绝对安全,而是比大多数人安全。**这样攻击者就不会去啃你这个硬骨头,而去找一些软柿子(那些没有安全防护的VPS)捏了(这么说好像有点腹黑,哈哈)。不过也不用太担心安全问题。毕竟你的VPS才开通没久,也没有布署多少网络服务,攻击者暂时还没发现你。况且,正规的云服务商本身也有一些安全措施,攻击者要突破他们的防线也绝非易事。

总之,在进一步学习Linux之前,我建议大家对自己的VPS做一些安全防护。这里会介绍一些通用的、简单的但却十分有效的安全措施。

测试环境

uname -a  # Linux VM-12-8-ubuntu 5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

安全措施

你应该可以正常地顺着下面的代码一步步无障碍运行。

更新软件

旧版本的软件可能会含有某些漏洞,从而成为攻击者发起攻击的基础。这个怎么说呢,其实作为个人用户没有太多可以做的。**请保持软件的最新状态吧!**我使用OpenMediaVault这个NAS系统时,安全相关的更新会强制自动安装的。

下面这个命令你也学过了:

sudo apt-get update && sudo apt-get upgrade

使用非root用户

创建非root用户

从今天开始,希望你不要再直接使用root用户了!我们先马上来创建一个新的非root用户吧!

首先,创建一个新用户组:

# 创建新用户组
sudo groupadd -g 344 test

344叫做gid,我是随便取的。你只要取一个不为0的整数应该都可以,因为0是root用户组专用的gid。另外,1000100也是很常见的内置用户组。如果你打算用这些用户组,那你可以不需要运行此命令。

这时,有童鞋可能会问:**为什么用户(组)会有idname这两个属性呢?**这个问题以后再讨论。

接着,我们为test用户组创建一个用户,名字叫做test_user

# 创建一个新用户
sudo useradd \-m -d /home/test_user `#自动创建用户目录`\-s /bin/bash `#设置默认shell`\-g test `#主组`\-G sudo `#副组`\test_user

这个命令有点长,而且结构有点奇怪,哈哈

Linux基础 个人VPS安全相关推荐

  1. Linux基础与部署

    Linux基础与部署 一.Linux概述[了解] Linux是一种操作系统.操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在" ...

  2. Linux基础、vim、find命令等

    Linux基础: 树状目录结构 /bin:是Binary的缩写,这个目录存放着系统必备执行命令 /boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件,自己的安装别放 ...

  3. 小猿圈Linux基础面试题,看看你能答对几道?

    最近身边的很多朋友都在学习linux,从最开始的安装软件都需要百度一天的他们,现在已经成长为了,不需要百度就可以把自己弄懵圈的了,接下来的几天小猿圈linux老师会为大家准备一些实用的linux技巧分 ...

  4. linux基础知识-链接列表

    linux基础知识-链接列表 1. 安装centos 7 1.1 Linux的初识 1.2 centOS 7安装教程 1.3 centOS 7配置ip和网络问题排查 1.4 PuTTY和Xshell远 ...

  5. linux基础知识_压缩—进程管理-网络管理-ftp-nfs-ssh-scp

    linux基础知识_压缩-进程管理-网络管理-ftp-nfs-ssh-scp 1.压缩包管理 gzip .gz格式的压缩包,不打包,分别压缩,原文件消失 bzip2 .bz2格式的压缩包,原文件不会消 ...

  6. 《嵌入式 Linux应用程序开发标准教程(第2版)》——第1章 Linux快速入门 1.1 嵌入式Linux基础...

    本节书摘来自异步社区<嵌入式 Linux应用程序开发标准教程(第2版)>一书中的第1章,第1.1节,作者 华清远见嵌入式培训中心,更多章节内容可以访问云栖社区"异步社区" ...

  7. linux基础概念和个人笔记总结(6)

    防伪码:曾经梦想仗剑走天涯,回过头,却发现还是放不下家的牵挂 后续理论的验证图文详解,我会更新,希望大家可以参考 第十一章 FTP文件传输服务 1.FTP连接 控制连接:tcp21端口,用于发送ftp ...

  8. Linux基础第一周

    Linux基础第一周 命令的格式 command(命令)option(选项)arguments(参数)三部分组成,之间需要空格间隔 options 选项 启用命令的某项功能,从而更改命令的功能 arg ...

  9. 20155301 滕树晨linux基础——linux进程间通信(IPC)机制总结

    20155301 滕树晨linux基础--linux进程间通信(IPC)机制总结 共享内存 共享内存是在多个进程之间共享内存区域的一种进程间的通信方式,由IPC为进程创建的一个特殊地址范围,它将出现在 ...

最新文章

  1. Python如何调用matlab函数?
  2. mysql利用触发器删除数据库_[数据库]mysql 触发器的创建 修改 删除
  3. 快速消费品行业前景及进入门槛
  4. Spring学习总结(9)——Spring AOP总结
  5. 細微之處看看mysql與sql server的一些差別
  6. 计算机网络项目化实训教程,计算机网络项目实训教程
  7. 深入理解simhash原理
  8. 二分算法模板及oj练习题题解
  9. 基于JAVA+SpringBoot+Mybatis+MYSQL的在线点餐系统
  10. python如何保存数组_如何在Python中保存2D数组(列表)?
  11. C#生成Guid,SqlServer生成Guid
  12. 阿里巴巴Java开发文档2020版学习-日期时间
  13. html5+JS调用手机摄像头扫码
  14. ffmpeg转码测试命令
  15. vue 电子签名插件
  16. Unity 加载读取PPT
  17. SonarQube 持续集成代码质量管理
  18. DNS解析异常问题排查
  19. solidworks拉伸凸台基体/基体
  20. Android怎样实现控制第三方音乐播放器暂停、播放

热门文章

  1. 18.0.高等数学四-柱坐标系下三重积分的计算
  2. 雷电模拟器无法修改网络,没有出现修改网络的选项,导致fiddler无法连接
  3. 宝塔linux面板 h5ai,宝塔面板丨Nginx环境下H5ai(Dplayer)完整安装使用教程及注意事项...
  4. 微信小程序连接丰桥接口----路由查询
  5. android添加语言,android如何添加一种新语言
  6. seo网站内容优化有哪些(网站链接怎么做)
  7. 【自动驾驶】自动驾驶感知系统与关键技术介绍
  8. inittab的简单使用
  9. ( 百度Java面经)互联网公司校招Java面试题总结及答案——百度(目前只是部分总结)
  10. ExpRe[1] 笔记本分屏显示