文章目录
本章结构
SSH远程管理
配置OpenSSH服务端
使用SSH客户端程序
密钥对验证的SSH体系
TCP Wrappers访问控制
TCP Wrappers 概述
TCP Wrappers 访问策略
OpenSSH服务器
SSH (Secure Shell)协议
是一种安全通道协议
对通信数据进行了加密处理,用于远程管理
OpenSSH
服务名称:sshd
服务端主程序:/usr/sbin/sshd
服务端配置文件:/etc/ssh/sshd_config
OpenSSH服务器
服务监听选项
端口号、协议版本、监听IP地址
禁用反向解析
vi /etc/ssh/sshd_config
…
Port 22
ListenAddress 172.16.16.22
Protocol 2
UseDNS no
OpenSSH服务器
用户登录控制
禁用root用户、空密码用户
限制登陆验证时间、重复次数
AllowUsers、DenyUsers
vi /etc/ssh/sshd_config
LoginGraceTime 2m
MaxAuthTries 6
PormitEmptyPasswords no
…
AllowUsers jerry admi@61.23.24.25
AllowUsers不要与DenyUsers同时用
OpenSSH服务器
登录验证方式
密码验证:核对用户名、密码是否匹配
密钥对验证:核对客户的私钥、服务端公钥是否匹配
vi /etc/ssh/sshd_config
…
PasswordAuthentication yes
PubkeyAuthentication yes
AuthorizedkeyFile .ssh/authorized_keys
启用密码验证、密钥对验证、指定公钥库位置
PKI概念
PKI
公钥基础设施建设(Public Key Infrastructure)
通过使用公钥技术和数字签名来确保信息安全
由公钥加密技术、数字证书、CA、RA组成
PKI体系能够实现的功能
身份验证
数据完善性
数据机密性
操作的不可否认性
公钥加密技术
公钥加密技术是PKI的基础
公钥与私钥关系
公钥和私钥是成对生成的,互不相同,互相加密与解密
不能根据一个密钥来推算出另一个密钥
公钥对外公开,私钥只有私钥持有人才知道
私钥应该有密钥的持有人妥善保管
根据时间的功能不同,可分为数据加密和数字签名
数据加密
发送方使用接受方的公钥加密数据
接收方使用自己的私钥解密数据
数据加密能保证所发送的数据的机密性
数字签名
发送方
对原始数据执行HASH算法得到摘要值
发送方用自己的私钥加密摘要值
将加密的摘要值与原始数据发送给给接收方
数字签名保证数据的完整性、身份验证和不可否认
使用SSH客户端程序
ssh命令 - 远程安全登录
ssh user@host
scp命令 - 远程安全复制
格式1:scp user@hostfile1 file2
格式2:scp file1 user@host:file2
sftp命令 - 安全FTP上下载
sftp user@host
构建密钥对验证的SSH体系
整体实现过程
第一步:创建密钥对
私钥文件:id_rsa
公钥文件:id_rsa.pub
第二步:上传公钥文件id_rsa.pub
第三步:导入公钥信息
公钥库文件:~/.ssh/authorized_keys
第四步:使用密钥对验证方式
构建密钥对验证的SSH体系
在客户机中创建密钥对
ssh-keygen命令
可用的加密算法:RSA、ECDSA或DSA
构建密钥对验证的SSH体系
将公钥文件上传至服务器
任何方式均可(FTP、Email、SCP、HTTP…)
[zhangsan@localhost~]$scp ~/.ssh/id_ecdsa.pub root@172.16.16.22:/tmp
构建密钥对验证的SSH体系
在服务器中导入公钥文本
将公钥文本添加至目标用户的公钥库
默认公钥库位置:~/.ssh/authorized_keys
mkdir /home/lisi.ssh/
cat /tmp/id_ecdsa.pub >> /home/lisi/.ssh/authorized_keys
tail -1 /home/lisi/.ssh/anthorized_keys
构建密钥对验证的SSH体系
客户端使用密钥对验证登录
验证用户:服务端的用户lisi
验证密码:客户端的用户zhangsan的私钥短语
[zhangsan@localhost~]$ ssh lisi@172.16.16.22
[lisi@localhos~t] whoami
lisi
构建密钥对验证的SSH体系
第二步第三步可以采用另外一种方法
ssh-copy-id -i 公钥文件 user@host
验证密码后,会将公钥自动添加到目标主机user宿主目录下的.ssh/authorized_keys 文件结尾
[zhangsan@localhost ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub list@172.16.16.22
TCP Wrappers概述
保护原理
TCP Wrappers概述
保护机制的实现方式
方式1:通过tcpd程序对其他服务程序进行包装
方式2:由其他服务程序调用libwrap.so.*链接库
访问控制策略的配置文件
/etc/hosts.allow
/etc/hosts.deny
TCP Wrappers策略应用
设置访问控制策略
策略格式:服务程序列表:客户端地址列表
服务程序列表
多个服务以逗号分隔,ALL表示所有服务
客户端地址列表
多个地址以逗号分隔,ALL表示所有地址
允许使用通配符?和*
网段地址,如192.168.4.或者192.168.4.0/255.255.225.0
区域地址,如.benet.com
TCP Wrappers策略应用
策略的应用顺序
1.检查hosts.allow,找到匹配则允许访问
2.再检查hosts.deny,找到则拒绝访问
3.若两个文件中均无匹配策略,则默认允许访问
TCP Wrappers策略应用
策略应用示例
仅允许从以下地址访问sshd服务
主机61.63.65.67
网段192.168.2.0/24
禁止其他所有地址访问受保护的服务