作者:手机用户2502913375 | 来源:互联网 | 2023-06-24 15:23
LinuxOpenssh服务的安全优化策略sshSSH(远程连接工具)连接原理:ssh服务是一个守护进程(demon),系统后台监听客户端的连接,ssh服务端的进程名为sshd,负
Linux Openssh服务的安全优化策略
ssh
SSH(远程连接工具)连接原理:ssh服务是一个守护进程(demon),系统后台监听客户端的连接,ssh服务端的进程名为sshd,负责实时监听客户端的请求(IP 22端口),包括公共秘钥等交换等信息。
- ssh服务端由2部分组成: openssh(提供ssh服务) openssl(提供加密的程序)
- ssh的客户端可以用 XSHELL,Securecrt, Mobaxterm等工具进行连接
连接服务器
文本建立
- nm-connection-editor 配置客户端及服务端 ip
- ifconfig或ip addr show eth0 查看客户端及服务端 ip
- hostnamectl set-hostname server.westos.com 更改服务端主机名称 ,hostnamectl set-hostname client.westos.com 更改客户端主机名称。
连接方式
sshd username@ip 客户端连接服务端且可以操作服务端文本模式功能
username为被连接的主机的存在的任意用户,ip是被连接的主机的地址
客户端: rm -fr /root/.ssh 删除之前的认证文件 /root/.ssh
客户端主机中输入:ssh root@172.25.254.82(server主机的ip)客户端主机连接服务端主机
客户端操作打开服务端的文本编辑模式
![《Linux Openssh服务的安全优化策略》](https://img8.php1.cn/3cdc5/12d98/8fd/295f0a4b400c92a6.png)
![《Linux Openssh服务的安全优化策略》](https://img8.php1.cn/3cdc5/12d98/8fd/2f82fea32c2bea08.png)
若第一次连接的话会问yes或者no–>输入yes,然后让输入密码:server主机的密码,然后exit退出,曾连接过后,则会直接输入密码登录。 第一次连接陌生主机的时候需要建立认证文件( ~/.ssh/know_hosts 文件),所以会询问是否建立,输入yes即可.再次连接次台主机的时候,由于已经生成~/.ssh/know_hosts文件,因此不需要再次输入yes.
sshd的key认证
在服务端设置公钥
直接键入ssh-keygen,按照提示,一步步设置(一直回车,想要密码可以设置)
ssh-keygen
![《Linux Openssh服务的安全优化策略》](https://img8.php1.cn/3cdc5/12d98/8fd/098ff55865b83306.png)
给服务端ip加密
ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.25.254.82
![《Linux Openssh服务的安全优化策略》](https://img8.php1.cn/3cdc5/12d98/8fd/a5964c3c2c1c2042.png)
关闭原始认证(关闭通过密码完成sshd认证)
vim /etc/ssh/sshd_config ##打开sshd服务配置文件,关闭密码认证方式
![《Linux Openssh服务的安全优化策略》](https://img8.php1.cn/3cdc5/12d98/8fd/07c573124b6b2912.png)
把78行的yes改为no,保存退出。
注意:一定要在给前面的配置完成后再关闭密码认证
重启服务使配置文件生效(sshd服务也可以直接重新加载配置文件)
systemctl restart sshd.service ##重启sshd服务systemctl reload
sshd.service ##重新加载sshd服务
![《Linux Openssh服务的安全优化策略》](https://img8.php1.cn/3cdc5/12d98/8fd/26e3ff3f256284bb.png)
关闭密码认证后,尝试用client客户端连接server服务端,可以看到不允许连接
分发钥匙给允许连接的用户
我们用scp远程复制命令分发钥匙给允许连接的用户
scp /root/.ssh/id_rsa root@172.25.254.82:/root/.ssh/
![《Linux Openssh服务的安全优化策略》](https://img8.php1.cn/3cdc5/12d98/8fd/865e893f72e530b0.png)
远程复制后,我们可以看到客户端的相应目录下出现了私钥,此时我们用client用户端连接服务端
可以看到无需输入密码就可以直接连接。
黑白名单
root用户登陆权限
vim /etc/ssh/sshd_config
48行 取消注释,让文本生效,把yes改为no![《Linux Openssh服务的安全优化策略》](https://img8.php1.cn/3cdc5/12d98/8fd/e86d55b0026ebf55.png)
![《Linux Openssh服务的安全优化策略》](https://img8.php1.cn/3cdc5/12d98/8fd/e0318ffc2befcf3e.png)
2)用户白名单
![《Linux Openssh服务的安全优化策略》](https://img8.php1.cn/3cdc5/12d98/8fd/7990956be829fdd3.png)
![《Linux Openssh服务的安全优化策略》](https://img8.php1.cn/3cdc5/12d98/8fd/dae459f3a725a7f0.png)
3)用户黑名单
![《Linux Openssh服务的安全优化策略》](https://img8.php1.cn/3cdc5/12d98/8fd/cbd9ac75b784feb0.png)
![《Linux Openssh服务的安全优化策略》](https://img8.php1.cn/3cdc5/12d98/8fd/254bb565e16e4618.png)
注意:白名单以外默认不可登陆,黑名单以外默认可以登陆,所以白名单比黑名单的安全性更佳。
sshd修改端口
首先修改文件
setenforce 0 ##进入到警告模式
进入permissive警告模式
![《Linux Openssh服务的安全优化策略》](https://img8.php1.cn/3cdc5/12d98/8fd/10507c23fc484cd9.png)
查看我们我们所有端口
netstat -antlupe | grep sshd
![《Linux Openssh服务的安全优化策略》](https://img8.php1.cn/3cdc5/12d98/8fd/8907fad56bbaf6be.png)
在配置文件中17行找到Port端口号
修改端口号为8888,然后重启符服务
![《Linux Openssh服务的安全优化策略》](https://img8.php1.cn/3cdc5/12d98/8fd/5513187877e71945.png)
然后再次连接配置
![《Linux Openssh服务的安全优化策略》](https://img8.php1.cn/3cdc5/12d98/8fd/3c01bba449c65280.png)