SSH密码暴力破解及防御实战----防
程序员文章站
2022-05-06 17:29:25
shell 1. useradd shell【推荐】(防止利用普通用户登录) 创建用户,但是该用户不可登录 [root@yjssjm ~] useradd yjssjm s /sbin/nologin 注意: 应用服务用户一般都是不可登录的,只提供服务就可以了。 当我们编译安装的时候有的时候需要创建 ......
1. useradd shell【推荐】(防止利用普通用户登录) 创建用户,但是该用户不可登录 [root@yjssjm ~]# useradd yjssjm -s /sbin/nologin 注意: 应用服务用户一般都是不可登录的,只提供服务就可以了。 当我们编译安装的时候有的时候需要创建用户,我们就可以用-s指定该用户不可登录 2.密码的复杂性【推荐】 字母大小写+数字+特殊字符+20位以上+定期更换 这种要是用ssh进行暴力破解的话需要很长时间的 3.修改默认端口【推荐】 [root@yjssjm ~]# vim /etc/ssh/sshd_config #进入ssh的配置文件 找到port并修改,如: port 22222 [root@yjssjm ~]# systemctl restart sshd #重启服务 4.限止登录的用户或组【推荐】 [root@yjssjm ~]# vim /etc/ssh/sshd_config #进入ssh的配置文件 找到permitrootlogin 将yes改为no ,禁止root远程登录 permitrootlogin no [root@yjssjm ~]# systemctl restart sshd 这个时候你就不能用root用户登录了,如果你想远程登录的户可以设置一个管理员 [root@yjssjm ~]# vim /etc/ssh/sshd_config #添加下面的内容 allowuser yjssjm --------------------------------------- allowusers 允许用户 allowgroups 允许组 denyusers 禁止用户 denygroups 禁止组 --------------------------------------- 5.使用sudo【推荐】 所有账户都要使用sudo来提权(一般安全性高的公司都是这样用的) [root@yjssjm ~]# su -yjssjm #使用yjssjm用户 [yjssjm@yjssjm ~]# sudo 命令 #每次执行命令时前面都要加sudo 6. 设置允许的ip访问【可选】 白名单 [root@yjssjm ~]# vim/etc/hosts.allow #允许某个ip访问 添加指定的ip sshd:x.x.x.x:allow 一般是公司里面有堡垒机的情况下会使用, 只能允许从堡垒机访问 7.使用denyhosts自动统计(黑名单) 统计到一些非法的ip将其加入到/etc/hosts.deny 8.基于pam实现登录限制【推荐】 模块:pam_tally2.so 功能:登录统计 示例:实现防止对sshd暴力破解 [root@yjssjm ~]# grep tally2 /etc/pam.d/sshd #过滤有没有该模块 [root@yjssjm ~]# vim /etc/pam.d/sshd 添加以下内容 auth required pam_tally2.so deny=2 even_deny_root root_unlock_time=60 unlock_time=6 #当你登录两次失败之后会让你等60s后才能再次尝试 9.禁用密码改用公钥方式认证 首先我们需要生成秘钥对并实现免密登录 [root@yjssjm ~]# ssh-keygen [root@yjssjm ~]# ssh-copy-id -i x.x.x.x #x.x.x.x不想要别人登录的机器的ip地址 [root@yjssjm ~]# vim /etc/ssh/sshd_config 找到passwordauthentication 将yes改为no passwordauthentication no [root@yjssjm ~]# systemctl restart sshd 10.保护xshell导出会话文件【小心】 11.grub加密【针对本地暴力破解】 默认情况下,linux系统grub菜单不需要任何密码就可以进行编辑并修改root密码,如若需要加强 系统安全,可将grub加密! 给grub菜单加密,就是为了不让不法分子利用单用户模式修改root密码即本地暴力破解 [root@yjssjm ~]# /etc/grub.d/00_header 文件末尾,添加以下内容 cat <<eof set superusers='admin' #设置一个超级用户 set password admin yjssjm123 #给该超级用户设置密码 e0f [root@yjssjm ~]# grub2-mkconfig -o /boot/grub2/grub.cfg #重新编译生成grub.cfg文件 重启电脑可以验证
你们的评论和点赞是我写文章的最大动力,蟹蟹。