Linux SSH远程管理和客户端的使用(内置实验解析图)
一、SSH远程管理
SSH(Secure Shell)协议
是一种安全通道协议,对通信数据进行了加密处理,用于实现远程管理、远程登录、远程复制等功能。
(1)SSH工作原理
SSH客户端例如:Putty、Xshell、CRTSSH服务端例如:OpenSSH
-
客户端到服务端是通过网络传输
-
数据传输是加密的
-
数据传输是压缩的
二、openSSH
OpenSSH 是实现 SSH 协议的开源软件项目,适用于各种 UNIX、Linux 操作系统。
sshd 服务默认使用的是TCP的 22端口
服务名称:sshd
服务端主程序:/usr/sbin/sshd
服务端主程序:/usr/sbin/sshd
服务端配置文件:/etc/ssh/sshd_config
(1)sshd配置文件常用选项
(2)sshd 服务支持的验证方式
[ 1 ] 密码验证
对服务器中本地系统用户的登录名称、密码进行验证。简便,但可能会被暴力破解
[ 2 ] 密钥对验证
要求提供相匹配的密钥信息才能通过验证。通常先在客户端中创建一对密钥文件(公钥、私钥),然后将公钥文件放到服务器中的指定位置。远程登录时,系统将使用公钥、私钥进行加密/解密关联验证。能增强安全性,且可以免交互登录。
[ 3 ] 两种验证同时开启
当两种验证都启用时,服务器将优先使用密钥对验证。
[ 4 ]验证配置文件常用选项
三、SSH客户端使用
[ 1 ]ssh 远程登录
ssh [选项] 用户 @ IP号
-p:指定非默认的端口号,缺省时默认使用 22端口
[ 2 ]scp 远程复制
scp 目标用户名@目标IP地址:目标文件位置 本机存放位置
//复制目标主机文件到本机
scp -r 本机目录 目标用户名@目标IP地址:目标目录
//复制本机目录到目标主机
[ 3 ]sftp 安全 FTP
sftp zhangsan@192.168.80.10 //访问目标主机
sftp> ls //查看当前所在位置的文件
sftp> get 文件名 //下载文件
sftp> put 文件名 //上传文件
sftp> quit //退出
[ 4 ]配置密钥对验证
useradd admin //创建用户
echo "123123" | passwd --stdin admin //配置密码
su - admin //切换用户ssh-keygen -t ecdsa //创建密钥对cd ~/.ssh/ //进入~目录下.ssh目录
ssh-copy-id -i id_ecdsa.pub 目标用户@目标IP
//直接在服务器的/home/目标用户名/.ssh/目录中导入公钥文本ssh-agent bash //以下命令为配置免交互
ssh-add
四、TCP Wrappers
(此服务用的不多了解就好,有兴趣可以自己做做)
TCP Wrappers
将TCP服务程序“包裹”起来,代为监听TCP服务程序的端口,增加了一个安全检测过程,外来的连接请求必须先通过这层安全检测,获得许可后才能访问真正的服务程序。
大多数 Linux 发行版,TCP Wrappers 是默认提供的功能。rpm -q tcp_wrappers
(1)TCP Wrapper 保护机制的两种实现方式
1.直接使用 tcpd 程序对其他服务程序进行保护,需要运行 tcpd程序。
2.由其他网络服务程序调用 libwrap.so.*链接库,不需要运行 tcpd 程序。此方式的应用更加广泛,也更有效率。
使用 ldd 命令可以查看程序的 libwrap.so.*链接库
ldd $(which ssh vsftpd)
(2)TCP Wrappers 的访问策略
TCP Wrappers 机制的保护对象为各种网络服务程序,针对访问服务的客户端地址进行访问控制。
对应的两个策略文件为/etc/hosts.allow 和/etc/hosts.deny,分别用来设置允许和拒绝的策略。
格式:
<服务程序列表>:<客户端地址列表>
- 服务程序列表
ALL&#xff1a;代表所有的服务。
单个服务程序&#xff1a;如“vsftpd”。
多个服务程序组成的列表&#xff1a;如“vsftpd,sshd” - 客户端地址列表
ALL&#xff1a;代表任何客户端地址。
LOCAL&#xff1a;代表本机地址。
允许使用通配符 “?” 和 “*”
网段地址&#xff0c;如 192.168.80. 或者 192.168.80.0/255.255.255.0
区域地址&#xff0c;如 “.benet.com”匹配 bdqn.com 域中的所有主机。
&#xff08;3&#xff09;TCP Wrappers 机制的基本原则&#xff1a;
首先检查/etc/hosts.allow文件&#xff0c;如果找到相匹配的策略&#xff0c;则允许访问&#xff1b;
否则继续检查/etc/hosts.deny文件&#xff0c;如果找到相匹配的策略&#xff0c;则拒绝访问&#xff1b;
如果检查上述两个文件都找不到相匹配的策略&#xff0c;则允许访问。
“允许所有&#xff0c;拒绝个别”
只需在/etc/hosts.deny文件中添加相应的拒绝策略
“允许个别&#xff0c;拒绝所有”
除了在/etc/hosts.allow中添加允许策略之外&#xff0c;还需要在/etc/hosts.deny文件中设置“ALL:ALL”的拒绝策略。