理论+实验 Linux-远程访问及控制 掏心精华系列!!!!!OpenSSH服务器、构建密钥对验证的SSH体系、TCP Wrappers概述、TCP Wrappers策略应用、ssh远程登录

一、SSH远程管理

1.1 OpenSSH服务器1-1

■ SSH协议

  • 是一种安全通道协议
  • 对通信数据进行了加密处理,用于远程管理

■ OpenSSH

  • 服务名称:sshd
  • 服务端主程序:/usr/sbin/sshd
  • 服务端配置文件:/etc/ssh/sshd_config

1.2 OpenSSH服务器1-2

■ 服务监听选项

  • 端口号、协议版本、监听ip地址
  • 禁用反向解析
[root@localhost ~]# vi /etc/ssh/sshd_ config
......
Port 22
ListenAddress 172.16.16.22   //监听端口要填管理平面IP地址;(类型分为管理平面,数据平面)
Protocol 2
UseDNS no

1.3 OpenSSH服务器1-3

■ 用户登录控制

  • 禁用root用户、空密码用户
  • 限制登录验证时间、重试次数
  • AllowUsers、DenyUsers
[root@localhost ~]# vi /etc/ssh/sshd_ config
LoginGrace Time 2m
PermitRootL ogin no
MaxAuthTries 6
PermitEmptyPasswords no    //AllowUsers不要与DenyUsers同时用
.......
AllowUsers jerry admin@61 .23.24.25

1.4 OpenSSH服务器1-4

■ 登录验证方式

  • 密码验证:核对用户名、密码是否匹配
  • 密钥读验证:核对客户的私钥、服务端公钥是否匹配
[root@localhost ~]# vi /etc/ssh/sshd_ config
......
PasswordAuthentication yes
PubkeyAuthentication yes     
AuthorizedKeysFile .ssh/authorized_ keys
启用密码验证、密钥对验证、指定公钥库位置

1.5 使用SSH客户端程序 -1

■ ssh命令----远程安全登录

ssh user@host

■ ssh命令----远程安全复制

格式1:scp user@host:file file2
格式2:scp file1 user@host:file2

■ ssh命令----安全FTP上下载

sftp user@host

1.6 构建密钥对验证的SSH体系 -1

在这里插入图片描述

1.7 构建密钥对验证的SSH体系 -2

■ 在客户机中创建密钥对

  • ssh-keygen命令
  • 可用的加密算法:RSA、ECDSA或DSA
[zhangsan@localhost ~]$ ssh-keygen -t ecdsa
Generating public/private ecdsa key pair.
Enter file in which to save the key (/home/zhangsan/ .ssh/id_ ecdsa):
Created directory '/home/zhangsan/ .ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:    //设置密钥短语
Your identification has been saved in /home/zhangsan/.ssh/id_ ecdsa.       //私钥文件位置

1.8 构建密钥对验证的SSH体系 -3

■ 将公钥文件上传至服务器

  • 任何方式均可(FTP、Email、SCP、HTTP…)
[zhangsan@localhos~]$ scp ~/.ssh/id+ecdsa.pub [email protected]:/tmp

1.9 构建密钥对验证的SSH体系 -4

■ 在服务器中导入公钥文本

  • 将公钥文本添加至目标用户的公钥库
  • 默认公钥库位置:~/.ssh/authorized_keys
[root@localhost ~]# mkdir /home/lisi/.ssh/
[root@localhost ~]# cat /tmp/id_ _ecdsa.pub >> /home/lisi/.ssh/authorized_ _keys
[root@localhost ~]# tail -1 /home/lisi/.ssh/authorized_ keys
ecdsa-sha2-nistp256
AAAAE2VjZHNhLXNoY TItbmlzdHAyNT YAAAAIbmlzdHAyNTYAAABBBLJSnBhscY
BfnnHxSYAJEBD4sNkTLMF7itcFGM33RdeXU89QNQkMnCrCJHzAIZURrzpXG6M
p62mz9gRXUnARk8s=zhangsan@localhost

1.10 构建密钥对验证的SSH体系 -5

■ 客户端使用密钥对验证登录

  • 验证用户:服务端的用户lisi
  • 验证密码“客户端的用户zhangsan的私钥短语
[zhangsan@localhost ~]$ ssh [email protected]
[lisi@localhost ~]$ whoami
lisi

1.11 构建密钥对验证的SSH体系 -6

■ 第2步和第3步可以采用另外一种方法

ssh-copy-id -i 公钥文件 user@host
  • 验证密码后,会将公钥自动添加到目标主机user宿主目录下的.ssh/authorized_keys文件结尾
[zhangsan@localhost ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

二、TCP Wrappers访问控制

2.1 TCP Wrappers概述-1

■ 保护原理
在这里插入图片描述

2.2 TCP Wrappers概述-2

■ 保护机制的实现方式

  • 方式1:通过tcpd程序对其他服务程序进行包装
  • 方式2:由其他服务程序调用libwrap.so.*链接库

■ 访问控制策略的配置文件

  • /etc/hosts.allow
  • /etc/hosts.deny

2.3 TCP Wrappers策略应用-1

■ 设置访问控制策略

  • 策略格式:服务程序列表:客户端地址
  • 服务程序列表
    ◆多个服务以逗号分隔,ALL表示所有服务列表
  • 客户端地址列表
    ◆多个地址以逗号分隔,ALL表示所有地址
    ◆允许使用通配符?和*
    ◆网段地址,如192.168.4.或者192.168.4.0/255.255.255.0
    ◆区域地址,如.benet.com

2.4 TCP Wrappers策略应用-2

■ 策略的应用顺序
1、检查hosts. allow,找到匹配则允许访问
2、再检查hosts.deny,找到则拒绝访问
3、若两个文件中均无匹配策略, 则默认允许访问

2.5 TCP Wrappers策略应用-3

■ 策略应用示例

  • 仅允许从以下地址访问sshd服务
    ◆主机61.63.65.67
    ◆网段192.168.2.0/24
  • 禁止其他所有地址访问受保护的服务
[root@localhost ~]# vi /etc/hosts.allow
sshd:61.63.65.67,192.168.2.*
[root@localhost ~]# vi /etc/hosts.deny
sshd:ALL

三、实验集合

3.1 用户登录控制实验

1、进入vi编辑
在这里插入图片描述
2、设置配置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3、重启一下
在这里插入图片描述
4、用root登录看一下能不能登录
在这里插入图片描述
登不进去
在这里插入图片描述
5、一分钟不登录就掉线
在这里插入图片描述
在这里插入图片描述
6、进入vi编辑
在这里插入图片描述
只允许ip地址20.0.0.1登录root账户、zk用户、zk1账户(20.0.0.1是我做实验的真机ip地址,也就是跳板机ip地址)
在这里插入图片描述
7、进入vi编辑
在这里插入图片描述

3.2 登录验证方式实验

(密码验证 和 密钥对验证,我们只做密钥验证)

1、进入vi编辑
在这里插入图片描述
2、密钥对验证配置
在这里插入图片描述
在这里插入图片描述
3、刷新一下
在这里插入图片描述

3.3 ssh 远程登录实验

1、登录20.0.0.12服务器,然后用ssh远程登录20.0.0.4的root账户
在这里插入图片描述

3.4 ssh scp远程复制实验

** 将本端文件拷到对端(20.0.0.4是服务器端、20.0.0.12是客户端)**

1、创建一个文件
在这里插入图片描述
2、复制到指定的地方
在这里插入图片描述
3、进到20.0.0.12里面进入、opt目录看一下是否有这个文件
在这里插入图片描述
** 将对端文件拷到本端(20.0.0.4是服务器端、20.0.0.12是客户端) **

1、在服务器端/opt目录下创建一个2.txt文件
在这里插入图片描述
2、在客户端复制服务器端/opt目录下的2.txt文件到自己的/opt文件里
在这里插入图片描述
3、可以查看一下
在这里插入图片描述

3.5 用sftp命令安全远程ftp实验

1、用sftp登录到20.0.0.12
在这里插入图片描述
2、用put命令上传一个1.txt文件
在这里插入图片描述
3、用get命令下载一个3.txt文件
在这里插入图片描述

3.6 构建密钥对验证的SSH体系实验

1、通过ssh-keygen工具为当前用户创建密钥文件,-t 选项是用于指定算法类型,并生成基于rsa算法的SSH密钥对(公钥、密钥)文件
然后回车、回车、回车
在这里插入图片描述
2、我们可以查看一下这个公钥创建了没有
在这里插入图片描述
3、将公钥文件上传至服务器
在这里插入图片描述
4、去服务器看一下公钥上传过来了没

在这里插入图片描述
5、ssh直接登录到20.0.0.12,登录不需要密码直接登录
在这里插入图片描述

3.7 TCP Wrappers访问策略实验

1、进入hosts.allow vi编辑
在这里插入图片描述
2、添加允许策略,允许20.0.0.0网段ip访问
在这里插入图片描述
3、进入hosts.deny vi编辑
在这里插入图片描述
4、拒绝所有
在这里插入图片描述
5、进入hosts.allow vi编辑

在这里插入图片描述
我们把ip随便改一下,这样本机就会进不去(本机ip是20.0.0.4)
在这里插入图片描述
6、然后20.0.0.4就不能登录
在这里插入图片描述
7、想在登陆就得把ip改回来或者去把hosts.deny里面的ALL去掉,这样也可以登录。

vi编辑
在这里插入图片描述
注释掉或删掉
在这里插入图片描述
8、就可以正常登录了
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44733021/article/details/107693861