[关闭]
@bornkiller 2019-05-16T13:50:00.000000Z 字数 1562 阅读 1313

云主机安全配置

前端运维


前言

云主机越来越普遍,不进行任何安全处理,直接裸奔的情况越来越多,也非常危险,尤其是个人拥有的云主机。当然,安全是个非常庞大的话题,本文仅描述必须要做的配置,受众仅适合刚接触 linux 的萌新,笔者自己也是萌新。

没时间啊.gif-1494.5kB

用户相关

管理 SSH 登录

添加普通用户,远程登录使用普通用户登录:

  1. adduser centos;
  2. passwd centos;

登录方式修改如下:

  1. # /etc/ssh/sshd_config
  2. PermitRootLogin no
  3. PasswordAuthentication no

超时自动断开

  1. # /etc/ssh/sshd_config
  2. ClientAliveInterval 60
  3. ClientAliveCountMax 5
  1. # /etc/profile
  2. export TMOUT=150

修改配置后,重启服务:

  1. systemctl reload sshd;

合理分配 sudo 权限

笔者使用腾讯云主机,此处遇到神坑:无论怎么调整,centos 用户始终免密码全操作。。。
最终发现问题[1]源头如下:

  1. # /etc/sudoer
  2. # 下面这行 不是注释!不是注释!不是注释!
  3. #includedir /etc/sudoers.d

防暴力破解

个人主观判断,暴力破解绝大多数来自全网扫描。

截取一周内数据如下:

恶意登录.png-156.6kB

IP 分布遍布全球:

恶意登录地域分布.png-832.6kB

个人主观判断,禁用密码登录后,暴力破解风险就会下降很多,如果一定需要密码登录,参照以下内容。

防火墙预防

  1. # 处理特定访问 IP
  2. firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.0.1' reject"
  3. # 处理特定访问 IP 网段
  4. firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.0.1/24' reject"
  5. # 处理 IP 集合
  6. firewall-cmd --permanent --new-ipset=blacklist_ip --type=hash:ip;
  7. firewall-cmd --permanent --ipset=blacklist_ip --add-entry="116.196.90.207"
  8. firewall-cmd --permanent --add-rich-rule="rule source ipset=blacklist_ip drop"
  9. # 端口开放
  10. firewall-cmd --zone=public --add-port=5061/tcp --permanent

此方案需要额外的定时任务,分析 secure log,然后批量添加规则。

软件预防

推荐使用 denyhosts fail2ban 完成自动化处理,具体使用参照官方文档。

  1. yum install -y epel-release;
  2. yum install -y fail2ban;

此处依然有神坑,笔者配置完毕后,故意使用错误密码尝试登录,然后 IP 就被毙了。。。

如何解除被毙的 IP,又是一个蛋疼问题。。。

注意事项

  1. 腾讯云账号密码复杂度需要保障,优先级最高;
  2. 云主机登录密码需要复杂度,优先级最高;
  3. 全网扫描可能占据大部分暴力破解尝试,但是最好不要将 IP 暴露出去,包括 开源代码个人作品 等;
  4. 考虑变更端口,务必定期分析系统日志;

qrcode_for_gh_d8efb59259e2_258.jpg-26.1kB

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注