Openssh服务的部署及安全优化
目录
实验环境:
本章节的学习我们一共会用到三台Linux虚拟机,用来进行远程连接测试,因此要确保三台虚拟机的IP地址在同一网段,彼此之间可以互相通信。
虚拟机的网络连接设置:具体方法点击这里
1. Openssh功能介绍
- OpenSSH 是 SSH (Secure SHell) 协议的免费开源软件。SSH通过在网络中创建安全隧道来实现SSH客户端与服务器之间的连接,人们通常利用SSH来传输命令行界面和远程执行命令。
- 软件安装名称: Openssh-server
- 配置文件:/etc/ssh/sshd_config
- 默认端口:22
- 客户端命:ssh
2. ssh命令
2.1、命令的用法:
2.2、ssh的相关参数:
参数 | 作用 |
---|---|
-l | 指定登录用户 |
-i | 指定** |
-x | 开启图形 |
-p | 指定端口 |
-f | 后台运行 |
-o | 指定连接参数 |
-t | 指定连接跳板 |
示例:
客户机A:192.168.110.128
客户机B:192.168.110.129
服务机:192.168.110.130
①:连接IP为192.168.110.130虚拟机的root用户,输入密码,登录成功
在服务机上运行w -i 命令,可以查看到客户机A远程连接了自己
执行exit,可退出登录
②:在客户机上远程连接服务机,执行vim命令
③:客户机A用客户机B作为跳板,连接服务机
在服务机上执行w -i命令,可以看到是客户机B连接了自己,而不是客户机A
3.Openssh服务的key认证
3.1、Openssh认证方式
1.密码认证
- 至少6个字符
- 包含数字,字母,下划线特殊符号等
- 易泄漏
- 可被暴力**
- 密码容易丢失
2.**认证
- 新型认证方式,分为公钥及私钥
- 公钥上传服务器
- 私钥配对认证,不会被盗用
- 攻击者一般无法通过**登录服务器
3.2、Openssh KEY
支持rsa及dsa加密
加密方法:
- 生成** ssh-******
- 上传** ssh-copy-id –i keyfile [email protected]
示例:
客户机A: 192.168.110.128
客户机B: 192.168.110.130
服务机: 192.168.110.129
①:在客户机B上执行ssh-******生成**
②:客户机B把生成的公钥上传给服务机(相当于客户机B拿着自己的钥匙,去找服务机,给服务机加一把相对应的锁),通过原始认证方式,在服务机成功添加已授权的**
此时,在服务机的/root/.ssh目录下自动生成了一个相应的已授权**文件,文件内容和客户机B的公钥文件内容一样
③:客户机B远程登录服务机,不需要输入密码
④:没有私钥的客户机A远程登录服务机,需要输入密码
⑤:为了防止暴力**,修改服务机的配置文件,关闭密码认证,重启sshd服务
⑥:没有私钥的客户机A远程登录服务机,直接被拒绝
⑦:客户机A想要远程登录客户机B的话,需要客户机B把私钥文件传输给客户机A
此时,客户机A也可免密登录服务机
⑧:如果服务机不想要别人免密登录自己,可以通过删除或重命名authorized_keys文件,破坏掉已授权**文件
4.Openssh服务的安全优化
4.1、sshd服务常用相关配置参数
配置文件
• /etc/ssh/sshd_config
配置参数
参数 | 解释 |
---|---|
Port 22 | 监听端口 |
Protocol 2 | 指定协议版本 |
ListenAddress | 绑定IP |
HostKey | 设定HostKey**路径 |
PermitRootLogin | 设定超级用户是否能登录 |
PubkeyAuthentication | 公钥认证开关 |
PasswordAuthentication | 密码认证开关 |
AllowUsers | 用户白名单 |
DenyUsers | 用户黑名单 |