一 ssh远程登录
目前很多中小企业没有专门运维及网络安全管理人员,服务器裸漏在外网下。为了方便维护,ssh端口不做修改,甚至使用弱口令,很快就会被网络黑客盯上。用不了几天时间弱口令的主机就会被拿下,通常是进行挖矿。没有任何防护措施的主机,企业只有在感到自己业务非常缓慢时才会检查,这时候基本已经被挂马很多天了。国家已经出台了关于网络安全的法规,如果企业出现信息泄露甚至导致有社会影响的第一责任人就是企业高层领导,所以网络安全我们必须重视起来。这不是危言耸听哈!
二 主机安全保障原则
如果企业没有专门的网络安全设备,如何尽力保障网络安全?给出下面三点建议,希望可以帮助到您!
1 尽量减少对外端口开放,非必要不开放
2 远程登录等勿用弱口令,任何情况下拒绝弱口令出现
3 使用安全稳定的Linux系统,并开启系统防火墙机制。
三 远程登录安全机制
互联网上安全威胁无处不在,尤其时我们对外方便维护的远程ssh端口。如果不做限制几乎很快就有大量ip远程试图暴力登录。下面给大家介绍如何使用Firewall-cmd 对ssh进行防护。
1 策略一是 对外修改ssh常用端口22 为其他端口比如说10022 等等。
2 策略二是使用系统防火墙对恶意登录IP进行动态封停。
四 动态封停恶意远程爆破IP
1 使用firewall-cmd 的ipset机制
创建ipset sshblack
firewall-cmd --permanent --new-ipset=sshblack --type=hash:ip
查看sshblack配置文件
more /etc/firewalld/ipsets/sshblack.xml
应用ipset 到访问规则
firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source ipset="sshblack" reject'
是规则生效
firewall-cmd --reload
2 创建脚本定时获取恶意攻击IP
对3小时内登录失败超过5次的IP进行封停
#!/bin/bash
cd /home/.ssh-blacklist/
start_time=$(date --date="3 hours ago" +"%b %d %H:%M:%S")
end_time=$(date +"%b %d %H:%M:%S")
#awk '$0 >= "'"$start_time"'" && $0 <= "'"$end_time"'"' /var/log/secure | grep 'Failed password' > tt.txt
for LINE in `awk '$0 >= "'"$start_time"'" && $0 <= "'"$end_time"'"' /var/log/secure | grep 'Failed password' |awk '{print $(NF-3)}'|sort -n | uniq -c | sort -k1nr | awk '{if ($1>5) print $2}'`;do
echo "${LINE}";
echo "${LINE}" >> blacklist.txt;
done;
echo "68.178.164.196">>blacklist.txt
firewall-cmd --permanent --ipset=sshblack --add-entries-from=blacklist.txt
firewall-cmd --reload
3 创建定时任务
#crontab -e
0 */2 * * * /root/firewall-ipset/lock-ssh-badip.sh
五 总结
经过以上设置,ssh远程登录基本比较安全,如果在配合两步登录验证机制,那远程主机维护安全就可以安全无忧了。如果对两步登录验证感兴趣的可以联系,留言。查阅我的ssh安全登录文档。Linux远程维护ssh+验证码-CSDN博客
结合钉钉的两步登录验证工具链接
https://item.taobao.com/item.htm?id=769947555616