@bornkiller
2019-05-16T05:50:00.000000Z
字数 1562
阅读 1545
前端运维
云主机越来越普遍,不进行任何安全处理,直接裸奔的情况越来越多,也非常危险,尤其是个人拥有的云主机。当然,安全是个非常庞大的话题,本文仅描述必须要做的配置,受众仅适合刚接触 linux 的萌新,笔者自己也是萌新。

添加普通用户,远程登录使用普通用户登录:
adduser centos;passwd centos;
登录方式修改如下:
root 远程登录;ssh key,禁止 SSH pasword 登录;
# /etc/ssh/sshd_configPermitRootLogin noPasswordAuthentication no
# /etc/ssh/sshd_configClientAliveInterval 60ClientAliveCountMax 5
# /etc/profileexport TMOUT=150
修改配置后,重启服务:
systemctl reload sshd;
sudo 权限sudo su 一定要求密码;sudo 权限,使用其他账号远程登录后,敏感操作切换到 root 账号进行处理;笔者使用腾讯云主机,此处遇到神坑:无论怎么调整,centos 用户始终免密码全操作。。。
最终发现问题[1]源头如下:
# /etc/sudoer# 下面这行 不是注释!不是注释!不是注释!#includedir /etc/sudoers.d
个人主观判断,暴力破解绝大多数来自全网扫描。
截取一周内数据如下:

IP 分布遍布全球:

个人主观判断,禁用密码登录后,暴力破解风险就会下降很多,如果一定需要密码登录,参照以下内容。
# 处理特定访问 IPfirewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.0.1' reject"# 处理特定访问 IP 网段firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.0.1/24' reject"# 处理 IP 集合firewall-cmd --permanent --new-ipset=blacklist_ip --type=hash:ip;firewall-cmd --permanent --ipset=blacklist_ip --add-entry="116.196.90.207"firewall-cmd --permanent --add-rich-rule="rule source ipset=blacklist_ip drop"# 端口开放firewall-cmd --zone=public --add-port=5061/tcp --permanent
此方案需要额外的定时任务,分析 secure log,然后批量添加规则。
推荐使用 denyhostsfail2ban 完成自动化处理,具体使用参照官方文档。
yum install -y epel-release;yum install -y fail2ban;
此处依然有神坑,笔者配置完毕后,故意使用错误密码尝试登录,然后 IP 就被毙了。。。
如何解除被毙的 IP,又是一个蛋疼问题。。。
IP 暴露出去,包括 开源代码,个人作品 等;