分类

把自己部署到互联网上

为什么不要一直用 root 登录服务器?

这是「把自己部署到互联网上」系列的第 12 篇。

上一篇我写到,买完服务器后,我没有急着部署项目,而是先处理基础安全。原因很简单:这台机器以后会长期暴露在公网,不是本地开发环境,也不是一次性测试机。如果一开始只图快,很容易把风险留到后面。

这一篇先处理最基础的一步:不要一直用 root 登录服务器

很多云服务器创建实例后,会默认提供 root 登录。root 很方便,权限最大,想装软件、改配置、删文件都可以。但正因为它太方便,所以不适合作为日常维护用户。

长期使用 root 用户,会有什么问题

root 是 Linux 系统里的超级管理员,几乎可以做任何事。初始化服务器时,它确实省事;...

防火墙和安全组到底有什么区别?我终于搞懂了

这是「把自己部署到互联网上」系列的第 13 篇。

上一篇,我处理了服务器安全里的第一件事:不要一直用 root 登录服务器。

我创建了普通用户,给它配置 sudo 权限,并且提醒自己:在确认普通用户能正常 SSH 登录之前,不要急着禁用 root。

用户权限处理完之后,下一步就要面对另一个很容易混淆的问题:

防火墙和安全组到底有什么区别?

这个问题我以前也没有真正分清楚。

很多教程会说:开放 80 端口,开放 443 端口,检查防火墙,检查安全组。

但如果第一次自己搭服务器,就很容易困惑:

安全组不是防火墙吗?

我在云平台放行了端口,为什么服务器里还要配防火墙?

我服务器防火墙放行了端口...

为什么不要随便开放数据库端口?

这是「把自己部署到互联网上」系列的第 14 篇。

上一篇讲了防火墙和安全组的区别。安全组控制云平台入口流量,防火墙控制服务器系统层面的访问。理解这两层之后,端口就不能再凭感觉乱放行。

这一篇继续讲端口,重点是一个很容易踩的坑:为什么不要随便开放数据库端口?

部署个人博客时,必须要有数据库。可能是 MySQL,也可能是 PostgreSQLRedis,或者项目自带的数据库服务。当本地工具连不上数据库时,很多人的第一反应是:是不是端口没开?于是去安全组里放行 3306、5432、6379,再改防火墙,甚至把数据库监听地址改成 0.0.0.0。工具能连上了,看起来问题解决了,但风险也被一起打...

我的服务器4小时被扫了 500 多次

这是「把自己部署到互联网上」系列的第 15 篇。

前几篇一直在写服务器安全:不要急着部署项目,不要长期用 root 登录,分清安全组和防火墙,也不要随便开放数据库端口。这些看起来感觉有点水文章的嫌疑:dog:

查看日志

直到我真的去看服务器日志,看到陌生 IP、异常请求和登录尝试,才有了更直接的感受:公网服务器不是等你部署项目的安静机器。只要它有公网 IP,就已经进入了一个会被扫描、探测和尝试访问的环境。

在看日志之前,我也有过一种侥幸:我这只是个人博客,没有访问量,也没有什么值钱业务,肯定没人专门盯上。我们平时说安全、后门等,一想到就是大公司、核心业务、支付接口和用户数据。个人项目听起...

发现更多