前言购买了一台云服务器,原本打算用于学习 Linux,并在过程中部署一些分布式组件。没想到由于操作不当,服务器被攻击并遭入侵。最终只能选择重装系统。所幸服务器上并没有重要数据,但这次事件让我意识到了云服务器安全的重要性。为了提高安全性,我查阅了一些资料并总结了一些加强安全性的措施。 (PS:为了避免记不住一些命令,可以使用宝塔 Linux 的图形化界面来简化操作。) SSH 认证大多数云服务器提供 SSH 服务用于远程登录,认证方式通常有密码和密钥两种。强烈建议使用密钥认证,一方面,密钥的长度较长,更难被暴力破解;另一方面,公钥加密的信息只有私钥能解密,可以有效防止服务器发送的数据被窃听。下面总结了常见的配置 SSH 密钥的方式。 在云服务器控制台配置一般云服务器厂商例如阿里云都提供了生成密钥对的功能,可以参考 阿里云管理密钥的官方文档,讲解得很清楚。 创建密钥直接在控制台创建就行了 ![]() 在宝塔面板配置宝塔面板也提供了生成密钥对的功能。 ![]() 命令行配置
开启防火墙一般 Linux 服务器都会安装 firewalld 服务,通过设置防火墙规则能够有效地阻断恶意请求。 宝塔 Linux 设置防火墙防火墙设置的规则主要是端口规则和 IP 规则。端口建议使用一个就开启一个,不用就关掉。IP 只放行本机。同时顺便开启 禁止 ping 和 端口防扫描。 ![]() 命令行设置防火墙上面的图形化按钮底层其实就是 firewalld 提供的命令。 设置端口规则:
设置 IP 规则
Firewalld 的命令还有很多很多,可以自行去查阅和学习。 正确使用 docker笔者因为错误使用 docker 而导致服务器被攻击了好几次,所以记录一下 docker 使用的注意点。 选择正规的镜像源为了加快镜像下载速度,许多人会配置镜像源。建议选择国内大厂提供的镜像源,而不是小网站的镜像源,这样可以避免下载到含有恶意代码的镜像。 2375 端口Docker 默认的 2375 端口支持远程连接,但并没有安全认证。如果防火墙未开启,黑客可能通过该端口远程操作 Docker,并通过下载公钥等手段入侵系统。建议关闭 2375 端口,或者开启安全认证来确保安全。 设置容器密码使用 Docker 一键部署服务时,不要忽视容器的初始密码。容器往往会默认设置初始密码,而若不修改,其他人就可能轻易访问你的容器并进行破坏。 docker 和防火墙的冲突docker 的端口映射是通过修改 iptables 实现的,如果不加处理很有可能会破坏防火墙的规则,进而导致防火墙不生效,所以可以在 docker 的配置文件添加 "iptables": false 避免防火墙规则被更改。 免责声明:本内容来源于网络,如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |