- 工信部备案号 滇ICP备05000110号-1
- 滇公安备案 滇53010302000111
- 增值电信业务经营许可证 B1.B2-20181647、滇B1.B2-20190004
- 云南互联网协会理事单位
- 安全联盟认证网站身份V标记
- 域名注册服务机构许可:滇D3-20230001
- 代理域名注册服务机构:新网数码
想要你的服务器更安全,那么你就得学会好好保护你的linux服务器,因为你的服务器只要在网络中就能被访问到,就会面临各种扫描或攻击。
蓝队云的运维工程师,根据过往的一些经验,整理了一些提升云服务器安全性的方法,能够帮助你避免一些恶意扫描和漏洞尝试。
主要有几点:
不使用远程登录默认的22端口
禁用ROOT用户远程登录
禁用SSH用户名密码登录,只允许密钥登录
不要使用软件或服务的默认端口
开启系统自带的防火墙,启用最小访问原则
保持系统经常性的更新
下面,进行详细的操作分享:
对于服务器,我们几乎都是使用SSH进行远程登录操作。SSH的默认端口是22,这个是众所周知的。
所以,不要使用22默认的端口,很多扫描一天24小时就是不断的在扫描并尝试使用22端口进行登录。如果你的远程登录端口不是22,则意味着针对这一个点的扫描的可能性极大的减少了。
方法分享:
sshd的配置文件位于:/etc/ssh/sshd_config
修改这个文件
vim/etc/ssh/sshd_config
# 找到Port 22这一行,注释掉它,在它的下面添加新的一行记录
Port12021
# 重启服务sudosystemctl restart sshd
这样,你的远程端口就变为12021,而不是12021
这样,下次你在远程登录时,添加-p参数就好了。
你要知道,22这个很容易知道,不是22这个则不太好猜测,就算是计算机不停的轮询猜测sshd的端口,这个范围也大大增加了。
而大多数情况下,对sshd的扫描都主要是针对22来的,因为不修改端口的情况太多了
Root用户的权限太高了,无论什么情况下,都不应该允许Root远程登录,而是使用其它用户来允许远程登录。
方法分享:
找到sshd配置文件,/etc/ssh/sshd_config
vim /etc/ssh/sshd_config
找到,PermitRootLogin这样的字样及行
PermitRootLogin no
将这个值修改为no
# 重启服务
sudo systemctl restart sshd
当前,切记在禁用ROOT前,要新增了另一个用户以供远程登录。
有两个效果,其一,默认扫描很多情况下是使用ROOT用户来尝试登录,一旦Root不允许登录,则猜测用户名的难度大大增加。
而另一方面,就算是非root用户被攻破,如果你对这个用户的权限进行很好的控制,它造成的影响总相对会少一些。
计算机通过轮询+猜测的方式来攻破总是非常有效的,网上的用户名密码库太多了,很多人的用户名密码对在互联网上早已泄露了。
对于服务器来说,与其想着如何强化密码,不如直接禁用掉密码登录,只支持密钥的方法来登录
方法分享:
# 如果你还没有ssh-key,你可以在本机先生成一个ssh-key以做使用
ssh-keygen -t rsa -C "your_email@example.com"
# 将你的key上传到服务器(此方法仅限你使用的是Linux或Mac系统,Win不适应命令)
ssh-copy-id -i ~/.ssh/id_rsa -p 12021 username@ip
然后修改/etc/ssh/sshd_config
vim/etc/ssh/sshd_config
#修改或添加以下配置RSAAuthentication yes
PubkeyAuthentication yes
sudosystemctl restart sshd
最后,确认远程登录支持密钥登录后,禁用password登录
vim /etc/ssh/sshd_config
#修改或添加以下配置
PasswordAuthentication no
完成这一步后,基本意味着互联网的用户名密码远程扫描式攻击基本就无效了。只要保护好你自己本机的私钥,通过SSH扫描攻击尝试基本就不存在了
做过编程的人都知道,MySQL的端口端口是3306,Postgres的默认端口是5432
要知道,但凡是软件或服务,都可能会有漏洞。
恶意扫描会对常用软件,常用服务的端口进行尝试,特别是针对已知的存在漏洞的服务或软件,进行尝试。
很多人压根不会做任何修改,直接以默认端口来运行相应的服务。甚至更甚的,在正式环境不需要密码都能访问这些服务的现象也时有发生。
方法分享:
没有特别的方式,针对你服务器上的软件或服务,进行修改。每个软件或服务的修改方式并不一致。将其修改为非默认的端口。
还要特别注意,有些诸如Redis这样的,一定要设置用户名密码,不要密码都不要就能访问。
还有那个原理,非默认端口不好猜测。换了端口,谁知道你的MySQL端口是什么呢?
这同样能极大的减少恶意软件的攻击与扫描。
事实上,大多数情况下,类似的服务不应该公开对外访问才是合理的。
Linux系统都有防火墙,比如Debian有ufw防火墙,CentOS有iptables等。
当然,云服务类似阿里或腾讯云是有默认的防火墙安全策略的。你首先可以设置这一层的策略。但似乎云服务的安全策略只针对公网访问才有限。
但这不能成为你让你的机器裸奔的理由。开启你的防火墙。
方法分享:
以Debian上的ufw为例
#安装
sudoapt update
sudoapt install ufw
#查看状态
sudoufw status verbose
# 查看内置应用
sudoufw app list
# 允许443
sudoufw allow Nginx\\\\ https
# 允许12021远程端口
Sudouff allow 12021/tcp
#启用防火墙
sudoufw enable
这样,没有必要开放的端口不需要开放。这样当然能更少的避免恶意软件的攻击与扫描。
好吧,这是非常重要的一个点。
每天都可能有新的系统漏洞被发现,不同的系统,都会及时的发布更新补丁。你应该每天去更新你的系统,特别是安全性的补丁。
同样,不同的软件也会定时发布更新,修复安全漏洞或其它。
方法分享:
其实非常简单,每个系统几乎都提供了更新机制
# debian系
sudo apt update #更新最新信息
sudo apt upgrade #升级或安装新的补丁
只要你做的及时,这样就能有效的防止新的漏洞
云服务器的安全和运维是一个长期的工作,需要花费大量的时间和精力还维护。想要提升云服务器的安全性,建议在选购云服务器的时候,选择靠谱的服务商,能够保障的基本的运维服务。
给大家分享蓝队云的云服务器,标准云的性能,轻量云的价格,提供24小时人工技术服务支持:云服务器优惠三重好礼
售前咨询
售后咨询
备案咨询
二维码
TOP