新手如何安全地使用云服务器

打印 上一主题 下一主题

主题 1018|帖子 1018|积分 3054

前言

购买了一台云服务器,原本打算用于学习 Linux,并在过程中摆设一些分布式组件。没想到由于操作不当,服务器被攻击并遭入侵。终极只能选择重装系统。所幸服务器上并没有重要数据,但这次事件让我意识到了云服务器安全的重要性。为了提高安全性,我查阅了一些资料并总结了一些加强安全性的步伐。 (PS:为了制止记不住一些命令,可以使用宝塔 Linux 的图形化界面来简化操作。)
SSH 认证

大多数云服务器提供 SSH 服务用于远程登录,认证方式通常有密码和密钥两种。猛烈建议使用密钥认证,一方面,密钥的长度较长,更难被暴力破解;另一方面,公钥加密的信息只有私钥能解密,可以有用防止服务器发送的数据被窃听。下面总结了常见的设置 SSH 密钥的方式。
在云服务器控制台设置

一般云服务器厂商比方阿里云都提供了生成密钥对的功能,可以参考 阿里云管理密钥的官方文档,讲解得很清楚。
   创建密钥直接在控制台创建就行了
  

在宝塔面板设置

宝塔面板也提供了生成密钥对的功能。

命令行设置


  • 本地生成密钥:ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  • 将公钥添加到云服务器的 ~/.ssh/authorized_keys的文件里,authorized_keys文件不存在就创建
开启防火墙

一般 Linux 服务器都会安装 firewalld 服务,通过设置防火墙规则能够有用地阻断恶意请求。
宝塔 Linux 设置防火墙

防火墙设置的规则主要是端口规则和 IP 规则。端口建议使用一个就开启一个,不用就关掉。IP 只放行本机。同时趁便开启 禁止 ping 和 端口防扫描。

命令行设置防火墙

上面的图形化按钮底层其实就是 firewalld 提供的命令。
设置端口规则:

  • 永久开放某个端口(比方 8080 ):firewall-cmd --zone=public --add-port=8080/tcp --permanent
  • 永久关闭某个端口:firewall-cmd --zone=public --remove-port=8080/tcp --permanent
  • 永久设置的规则需要防火墙重载才能生效:firewall-cmd --reload
  • 查看当前开放的端口:firewall-cmd --zone=public --list-ports
  • 暂时开放端口(不保留设置):firewall-cmd --zone=public --add-port=8080/tcp
  • 暂时关闭端口(不保留设置):firewall-cmd --zone=public --remove-port=8080/tcp
设置 IP 规则

  • 答应来自某个 IP 所在的访问(永久):firewall-cmd --zone=public --add-source=192.168.1.100 --permanent
  • 禁止来自某个 IP 所在的访问(永久):firewall-cmd --zone=public --remove-source=192.168.1.100 --permanent
  • 答应某个 IP 所在访问特定端口(永久):firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port port="8080" protocol="tcp" accept' --permanent
  • 查看当前答应的 IP 所在:firewall-cmd --zone=public --list-sources
  • 答应特定 IP 所在访问特定服务(永久):firewall-cmd --zone=public --add-service=http --add-source=192.168.1.100 --permanent
  • 删除某个 IP 所在的规则(永久):firewall-cmd --zone=public --remove-source=192.168.1.100 --permanent
   Firewalld 的命令还有很多很多,可以自行去查阅和学习。
  正确使用 docker

   笔者由于错误使用 docker 而导致服务器被攻击了好频频,所以记录一下 docker 使用的留意点。
  选择正规的镜像源

为了加快镜像下载速率,很多人会设置镜像源。建议选择国内大厂提供的镜像源,而不是小网站的镜像源,如允许以制止下载到含有恶意代码的镜像。
2375 端口

Docker 默认的 2375 端口支持远程连接,但并没有安全认证。如果防火墙未开启,黑客大概通过该端口远程操作 Docker,并通过下载公钥等手段入侵系统。建议关闭 2375 端口,大概开启安全认证来确保安全。
设置容器密码

使用 Docker 一键摆设服务时,不要忽视容器的初始密码。容器往往会默认设置初始密码,而若不修改,其他人就大概轻易访问你的容器并进行破坏。
docker 和防火墙的冲突

docker 的端口映射是通过修改 iptables 实现的,如果不加处理很有大概会破坏防火墙的规则,进而导致防火墙不生效,所以可以在 docker 的设置文件添加 "iptables": false 制止防火墙规则被更改。
详细可以看这篇文章:Docker 绕过了 firewalld 的问题

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

尚未崩坏

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表