目录
一、理论
1.构建密钥对验证的SSH体系
2.TCP Wrappers访问控制
二、实验
1.ecdsa免密连接
2.rsa免密连接
一、理论
1.构建密钥对验证的SSH体系
(1)免密连接原理
① 手动添加客户端的公钥到服务端
② 服务端收到客户端的公钥后使用客户端公钥加密一串随机字符串发送给客户端
③ 客户端收到服务端发送的加密的随机字符串使用自己的私钥解密返回给服务端进行验证
④ 服务端验证客户端发送来的随机字符串一致则同意建立连接
(2)SSH密钥对实现过程
① 在客户端创建密钥对
ssh-keygen工具为当前用户创建密钥对文件,ssh-keygen命令的“-t”选项用于指定算法类型:
可用的加密算法为:RSA、DSA、ECDSA
生成ECDSA密钥命令:ssh-keygen -t ecdsa
生成RSA密钥命令:ssh-keygen -t rsa
生成DSA密钥命令:ssh-keygen -t dsa
② 将公钥文件上传至服务器
ssh-copy-id -i id_ecdsa.pub 192.168.204.50
③ 在服务器中导入公钥文本
④ 在客户端使用密钥对验证
ssh 192.168.204.50
表1 SSH密钥对验证的实现过程
步骤 | 文件 |
由客户端的用户在本地创建密钥对 | 私钥文件:id_rsa(默认权限为600) 公钥文件:id_rsa.pub |
上传公钥文件 | id_rsa.pub |
导入公钥信息 | ~/.ssh/authorized_keys |
使用密钥对验证方式 | 以服务端的用户身份进行登录 |
2.TCP Wrappers访问控制
(1)TCP Wrappers概述
TCP_Wrappers是一个工作在第四层(传输层)的的安全工具,对有状态连接的特定服务进行安全检测并实现访问控制,凡是包含有libwrap.so库文件的的程序就可以受TCP_Wrappers的安全控制。它的主要功能就是控制谁可以访问,常见的程序有rpcbind、vsftpd、sshd,telnet。
(2)TCP Wrappers工作原理
① TCP_Wrappers有一个TCP的守护进程叫作tcpd。以ssh为例,每当有ssh的连接请求时,tcpd即会截获请求,先读取系统管理员所设置的访问控制文件,符合要求,则会把这次连接原封不动的转给真正的ssh进程,由ssh完成后续工作;如果这次连接发起的ip不符合访问控制文件中的设置,则会中断连接请求,拒绝提供ssh服务。
② 当有请求从远程到达本机的时候:
首先检查/etc/hosts.allow
如有匹配的,就默认允许访问,跳过 /etc/hosts.deny这个文件
没有匹配的,就去匹配/etc/hosts.deny 文件,如果有匹配的,那么就拒绝这个访问
如果在这两个文件中,都没有匹配到,默认是允许访问的
(3)TCP Wrappers配置文件
① /etc/hosts.allow : 允许个别,拒绝所有
sshd:ALL
sshd:192.168.204.100
② /etc/hosts.deny : 允许所有,拒绝个别
sshd:192.168.204.200
sshd:192.168.204.0/24
sshd:ALL
二、实验
1.ecdsa免密连接
(1) 搭建环境
centos 7系统虚拟机2台,配置关闭防火墙和selinux。
客户端 192.168.204.200 服务端 192.168.204.50
(2) 在客户端生成ecdsa密钥文件
(3) 查看服务器密钥的默认位置
(4) 将秘钥发送给服务器
(5)验证免密登录
(6) 退出登录
2.rsa免密连接
(1) 搭建环境
centos 7系统虚拟机2台,配置关闭防火墙和selinux。
客户端 192.168.204.200 服务端 192.168.204.50
(2) 在客户端生成rsa密钥文件
(3) 查看服务器密钥的默认位置
(4) 将秘钥发送给服务器
(5)验证免密登录
(6) 退出登录