有一个朋友是做游戏的,他告诉我他们公司关于ssh安全方面就有五层验证!好吧,可能对于一些不是很注重安全的运维小伙伴来说,弄那么复杂干嘛?甚至有的公司直接root登陆,甚至有的ssh默认端口都不改。我个人认为不一定安全做的那么多,(当然要根据公司业务具体环境具体来定)但起码一些基本的安全方面要做到位!
下面是我个人的一些总结,分享给大家!
常见的安全方面的措施:
1、硬防火墙。
通过硬件防火墙acl策略也决定是否可以访问某台主机
2、软防火墙
比如iptables,tcpwrappers,防护软件等,内部对主机进一步进行限制
3、修改默认的ssh端口
默认是22,建议改成五位。
4、密码要符合复杂性要求,防止暴力破解
避免ssh暴力破解,建议密码稍微复杂一些,符合四分之三原则!
5、禁止root登陆
禁止root远程ssh登录
在/etc/ssh/sshd_config设置:PermitRootLogin no:
禁止root本机登录(根据具体环境,这个不是很必要)
将 auth required pam_succeed_if.so user != root quiet
添加到/etc/pam.d/login 文件第一行
6、禁止密码登陆
删除不必要的账号,并禁止用户密码登陆
7、公钥私钥认证
通过公钥私钥rsa2048,并设置复杂性密码
8、LDAP等方式统一认证登陆
通过对ssh账号集中化管理,进一步提升安全
9、对secure日志进行日志切割,通过脚本,对于不安全的访问ip进行过滤并报警
secure日志记录着用户远程登陆的信息,可通过查看此日志排查不安全因素。
10、搭建日志服务器,对secure日志进行监控。排查不安全因素
一个好的日志服务器,可大大减轻管理员的工作,并方便管理。
.....
总结:
上面只是个人在生产环境碰到的一些问题和个人总结,当然还有很多种方式可以提高其安全性,根据自己的架构环境,选择适合自己的安全措施才是王道!
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。