远程访问及控制
SSH远程管理
OpenSSH服务器
SSH协议
是一种安全通道协议
对通信数据进行了加密处理,用于远程管理
OpenSSH
服务名称:sshd
服务端主程序:/usr/sbin/sshd
服务端配置文件: /etc/ssh/sshd_config
服务监听选项
端口号、协议版本、监听地址IP地址
禁用反向解析
用户登录控制
1、禁用root用户、空密码用户
2、限制登录验证时间、重试次数
3、AllowUsers、DenyUsers
登录验证方式
密码验证:核对用户名、密码是否匹配
密钥对验证:核对客户的密钥、服务端公钥是否匹配
使用SSH客户端程序
ssh命令—远程安全登录
ssh user@host
scp命令—远程安全复制
格式1:scp user@host:file1 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-keygen命令
可用的加密算法:RSA、ECDSA或DSA
ssh-keygen -t ecdsa
将公钥文件上传至服务器
任何方式均可(FTP、Email、SCP、HTTP…)
scp ~/.ssh/id_ecdsa.pub root@172.16.16.22:/tmp
在服务器中导入公钥文本
1、将公钥文本添加至目标用户的公钥库
2、默认公钥库位置:~/.ssh/authorized_keys
客户端使用密钥对验证登录
验证用户:服务端的用户lisi
验证密码:客户端的用户zhangsan的私钥短语
第2步和第3步可以采用另外一种方法
ssh-copy-id -i 公钥文件 user@host
验证密码后,会将公钥自动添加到目标主机user宿主目录下的.ssh/authorized_keys文件结尾
ssh-copy-id ~/.ssh/id_rsa.pub lisi@172.16.16.22
免密登录(无密码)
生成密钥
ssh-keygen -t rsa
上传至别的及其,一般是服务器生成密钥,传给客户机,这样服务器可以免密登录上客户机
ssh-copy-id 192.168.1.100
验证
ssh root@192.168.1.100
免密登录:代理(不安全)——这时有密码的情况下再多打ssh-agent bash,没有就不用了
服务器上打 ssh-keygen -t rsa
服务器上打 ssh-copy-id 192.168.1.100
服务器上打 ssh-agent bash
服务器上打 ssh-add
输入密钥密码
无密码直接登录
ssh root@192.168.1.100
TCP Wrappers概述
保护原理
客户机的网络访问请求,经过TCP Wrappers机制,对访问请求进行过滤控制,然后调用相应的网络程序
保护机制的实现方式
方式1:通过tcpd程序对其他服务程序进行包装
方式2:由其他服务程序调用libwrap.so.*链接库
访问控制策略的配置文件
/etc/hosts.allow(白名单)
/etc/host.deny(黑名单)
设置访问控制策略
策略格式:服务程序列表:客户端地址列表
服务程序列表
多个服务以逗号分隔,ALL表示所有服务
客户端地址列表
多个地址以逗号分隔,ALL表示所有地址
允许使用通配符?和*
网段地址,如192.168.4.或者192.168.4.0/255.255.255.0
区域地址,如.benet.com
策略的应用顺序
1、检查hosts.allow,找到匹配则允许访问
2、再检查hosts.deny,找到则拒绝访问
3、若两个文件中均无匹配策略,则默认允许访问
策略的应用示例
仅允许从以下地址访问sshd服务
主机61.63.65.67
网段192.168.2.0/24
禁止其他所有地址访问受保护的sshd服务