目录
4.5、漏洞利用-ssh安全防御
1、修改监听端口
默认ssh使用22,可修改为其他端口,如2222
/etc/ssh$/sshd_config
sudo gedit sshd_config
ctrl+f port //查找端口,修改后需要重启ssh服务
2、ssh预防暴力破解用户账号
(1)禁止口令验证
在Linux下可以配置不能使用用户名和密码登录,只是用ssh pgp方式登录,规避ssh暴力破解。
修改sshd_config中的PasswordAuthentication 中的yes为no
(2)禁止root远程登录
PermitRootLogin no
(3)登录现时
(4)连接最多认证次数
(5)ssh访问控制
ssh-keygen //生成密钥对
//默认采用RSA加密,-t rsa或-t dsa制定加密算法
ssh-copy-id 用户名@目标主机ip地址
//copy公钥给目标主机,存放到authorized_keys(公钥库)
vim /etc/ssh/sshd_config
Port 22 //制定服务端口
Protocol 2 //启用SSH V2版协议
ListenAddress 192.168.2.50 //指定ssh监听的地址
//远程链接只能链接监听ip
PermitRootLogin no //禁止root远程登录
UseDNS no //不解析客户端地址
LoginGraceTime 1m //登录限时
MaxAuthTries 3 //连接最多认证次数
DenyUsers USER1 USER2
AllowUsers USER1@HOST USER2..
DenyGroups GROUP1 GROUP2
AllowGroups GROUP1 GROUP2
PsswordAuthentication yes //允许口令验证
PubkeyAuthentication yes //允许秘钥验证
AuthorizedKeysFile .ssh/authorized_keys
3、ssh设置PGP登录
默认ssh使用用户名和密码进行远程登录,但是也可以使用密钥进行身份验证登录
可以使用putty或者xshell进行密钥登录,因为我用xshell多一点,所有用xshell演示。
3.1、一个小问题
描述:打开Xshell如果最顶部没有菜单栏,解决方法是使用快捷键ATL+E显示工具栏,然后固定菜单栏如下图。查看—>工具栏—>勾选菜单栏。
3.2、Xshell生成公钥
(1)新建用户密钥
在菜单栏选择工具—>新建用户密钥生成向导—>下一步(参数默认2048位的RSA)—>下一步(默认密钥对)
(2)填写用户密钥加密的密码(可修改)—>下一步—>复制生成的公钥或者保存为文件—完成。
(3)设置服务器端
使用ssh-keygen命令在Linux生成 .ssh 目录,在 .ssh下新建密钥存储文件authorized_key,并复制私钥文件到 .ssh目录下
ssh-keygen
将公钥文件拷贝到Linux服务器端,路径为/root/.ssh/
cp id_rsa_2048.pub /root/.ssh/
id_rsa_2048.pub >> authorized_keys
chmod 600 authorized_keys
3.3、配置Xshell使用密钥登录
4、iptables设置阈值防止暴力破解
利用iptables对多次连接验证错误,进行账户锁定120s
//使用root权限
iptables -I INPUT -p tcp --dport 22 -i eth0 state
--state NEW -m recent --set
iptables -I INPUT -p tcp --dport 22 -i eth0 state
--state NEW -m recent --update --seconds 120 --hitcount 3 -j DROP