远程访问及控制 理论加实验结合

远程访问及控制

1.SSH协议:

是一种安全通道协议

对通信数据进行了加密处理,用于远程管理

加密处理会用到密钥,密钥分为对称密钥和非对称密钥

对称密钥:加密和解密都用一种密钥。AES DES 3DES 特点:加密速度快,但是不安全

非对称密钥:加密和解密使用不同的密钥,分为公钥和私钥,不可以从其中一种密钥推导出另外一种密钥;例如rsa 特点:加密速度慢,但是安全

私钥:验证身份

公钥:所有人都知道,公开的

网站中也用这种密钥 https s代表SSL安全加密
在这里插入图片描述

2.OpenSSH:

服务名称:sshd

服务端主程序:/usr/sbin/sshd

服务端配置文件:/etc/ssh/sshd_config
在这里插入图片描述
其中ssh_config为客户端的配置文件,两个文件需要区分开来

3.服务监听选项:

端口号,协议版本,监听IP地址

禁用反向解析

端口号一般不建议改,除非那个端口号不用
在这里插入图片描述
Protocal 2 协议版本号为2

UseDNS no 反向解析为no,代表禁用反向解析
在这里插入图片描述

4.用户登录控制:

当用户要登陆客户端,

禁用root用户,空密码用户

限制登录验证时间,重试次数

AllowUsers丶DenyUsers

AllowUsers:白名单 仅允许某些用户登录,拒绝所有人 安全性场合高

DenyUsers:黑名单 仅拒绝某些用户,允许所有人 安全性场合低
在这里插入图片描述
LoginGraceTime 2m ##会话时间2分钟 会话时间:当双方不在交互时,会自动断开,如果长期保持长连接状态,对方会开启进程去接受你的请求,会占用资源,所以一定要设置会话时间,特别是远程连接的时候。

PermitRootLogin no ##不允许root用户能够随便登录

MaxAuthTries 6 ##最大的验证次数为6次 ,默认不改是3次(3次是连接次数)

PermitEmtyPasswords no ##允许空密码登录,是不安全的

AllowUsers jerry ##允许用户jerry去登录,而且从任意终端登录

AllowUsers [[email protected]] ##允许admin用户从固定61.23.24.25终端登录

MaxSessions 10 ##允许10个终端连接,第11个就要排队

4.1用户远程登录验证实验

1.先检查端口是否开启,如果端口号不开启的话,别的用户是无法远程登录到
在这里插入图片描述
2.用tian用户去登陆到148.131地址上,需要输入密码,这边密码输入的是对方用户的登陆密码,只有输入正确才可以登录
在这里插入图片描述
3.在opt目录下创建一个88.txt文件
在这里插入图片描述
4.这时被登录的主机种也会有88.txt文件,这就是远程登录的功能
在这里插入图片描述
5.用exit可以退出登录
在这里插入图片描述
6.进入服务端/etc/ssh/ssh_config配置文件中修改数据,首先先查看配置内容信息
在这里插入图片描述
在这里插入图片描述
7.这边baroot用户登录改为no,保存退出
在这里插入图片描述
8.切换至132终端,用root用户登录,Permission denied:显示权限不够,登录失败,说明验证成功
在这里插入图片描述
这时我们换一种登陆方法:

1.在cai主机中创建一用户为lisi
在这里插入图片描述
2.切换至tian客户端,用lisi用户去登陆131客户端
在这里插入图片描述
3.用lisi用户登录成功后,可以切换至root用户,所以这是不安全的
在这里插入图片描述
解决方法:

1.开启认证模块
在这里插入图片描述
2.再次用lisi用户去登陆,发现登录失败
在这里插入图片描述
总结:当配置文件中设置禁止以root用户身份登陆时,不要忘了启用pam认证模块

4.2最大尝试次数验证

1.在ssh配置文件中开启,验证功能
在这里插入图片描述
2.再次用tom身份去登录,故意输错密码,发现登录失败,第三次就不能登录,那为什么密码验证次数要设置6次,是因为只允许连接的次数为3次,只有将连接次数大于6次,验证次数才会生效
在这里插入图片描述
3.ssh -o NumberOfPasswordPrompts=7 [email protected] 设置密码最大验证次数为7次,这样密码就可以试6次
在这里插入图片描述

4.3.白名单黑名单验证实验

1.添加白名单为:tom用户可以从任意终端登录,lisi用户只能从132终端登录
在这里插入图片描述
2.再次创建一个用户pon
在这里插入图片描述
3.用pon用户身份去登陆131终端,发现登录失败,因为不在白名单内
在这里插入图片描述
4.用tom身份去登陆,发现登录成功,因为tom用户在白名单内
在这里插入图片描述
用yom身份在133终端上去登陆,发现也登陆成功,说明白名单生效
在这里插入图片描述
5.用lisi身份在132终端去登录131终端发现登录成功
在这里插入图片描述
6.当lisi在133终端上去登陆时,登录失败,所有白名单生效
在这里插入图片描述
黑名单:
1.反之设置黑名单 图中意思就变为不允许tom用户在任意终端登录,lisi用户除了在132终端登陆不了,其他都可以登陆
在这里插入图片描述
2.tom不能在132终端登录,显示没有权限
在这里插入图片描述
3.tom不能在133终端登录,显示没有权限
在这里插入图片描述
4.lisi用户不能再132终端登录
在这里插入图片描述
5.lisi用户可以在133终端
在这里插入图片描述

5.登录验证方式:

密钥验证:核对用户名丶密码是否匹配

密钥对验证:核对客户的私钥,服务端公钥是否匹配

密钥对方式要启用三种功能

PasswodAuthentication yes ##密码验证,开启

PubkeyAuthentication yes ##公钥验证,开启

AuthorizedKeysFile.ssh/authorized_keys ##密钥文件生成位置有一个相对路径,会生成到当前用户的家目录类里面,.代表的是隐藏,想查看必须要用ls -a查看

6.一些ssh客户端程序命令:

ssh命令–远程安全登录
在这里插入图片描述
scp命令–远程安全复制
将131终端文件拷贝到当前终端中
在这里插入图片描述
将当前终端的文件拷贝到131终端中,两种方法取决于终端是在前还是在后
在这里插入图片描述
sftp命令–安全FTP上下载

1.下载部分
在这里插入图片描述
2.切换至131终端中,在po的家目录中创建一个40.txt的文件
在这里插入图片描述
3.使用get命令将文件下载到当前终端中,注意是下载到当前登录的目录当中
在这里插入图片描述
上传部分:

1.将50.txt文件上传至131终端中,注意是上传至po用户的家目录当中
在这里插入图片描述
2.切换至131终端,发现上传成功
在这里插入图片描述

7.密钥对验证整体时间过程:

第一步:创建密钥对

私钥文件:id_rsa

公钥文件:id_rsa.pub 是在客户端生成的

第二步:上传公钥文件id_rsa.pub给对方,指定到对方的家目录,因为要登陆对方,必须以对方已知的用户去登陆到对方

第三步:这时对方会导入公钥信息 导入路径是在自己用户的家目录当中的.ssh

第四步:开启身份验证
在这里插入图片描述

7.1在客户机中创建密钥对

ssh-keygen命令 生成密钥对 -t type 指定密钥类型

可用的加密算法:RSA ECDSA或DSA
在这里插入图片描述

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

任何方式均可(FTP丶Email丶SCP丶HTTP…)

scp ~/.ssh/id_ecdsa.pub [email protected]:/tmp

将本地的公钥复制到对方的目录底下,然后对方就可以在家目录中建一个.ssh隐藏目录然后就有了

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

将公钥文本添加至目标用户的公钥库

默认公钥库位置:~/.ssh/authorized_keys

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

验证用户:服务端的用户lisi

验证密码:客户端的用户zhangsan的私钥短语

7.5密钥对验证方式去登陆实验

1.现在131终端中开启公钥验证,使用密钥功能,公钥存放位置是默认开启的,保存后启动服务
在这里插入图片描述
2.切换至132终端,创建一个新的用户
在这里插入图片描述
3.这时发现gao的家目录下生成了.ssh文件
在这里插入图片描述
4.将公钥文件以po用户身份传过去
在这里插入图片描述
5.查看公钥文件是否有gao用户传过来的公钥文件
在这里插入图片描述
6.以po身份去登陆131终端,注意密码输入密钥密码
在这里插入图片描述
设置一种不要密码登录的方法:

先退出,方法为1.代理bash终端2.添加免密登录密码3.输入密码为密钥密码,这时以po用户身份去登录
在这里插入图片描述

8.TCP Wrappers:

保护原理

仅限于vsftpf telnet ipop3等程序服务
在这里插入图片描述

8.1保护机制的实现方式

方法1:通过tcpd程序对其他服务程序进行包装

方法2:由其他服务程序调用libwrap.so.*链接库

访问控制策略的配置文件

/etc/hosts.allow

/etc/hosts.deny

8.2设置访问控制策略

策略格式:服务程序列表:客户端地址列表

服务程序列表

多个服务以逗号分割,ALL表示所有服务

客户端地址列表

多个地址以逗号分割,ALL表示所有地址

允许使用通配符?和*

8.3策略的应用顺序

1.检查hosts.allow,找到匹配则允许访问

2.再检查hosts.deny,找到则拒绝访问

3.若两个文件中均无匹配策略,则默认允许访问

8.4TCP Wrappes小实验

1.配置允许在132这个终端登录至本台服务
在这里插入图片描述
2.配置黑名单拒绝在别的终端登录至次服务器
在这里插入图片描述
3.在132终端用po用户身份登录至131终端,登陆成功,因为优先选择白名单中的内容
在这里插入图片描述
4.这时在133终端上去登录到132终端就会显示登录失败,说明黑白名单设置成功在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Cpureman/article/details/107284869