远程访问及控制(SSH)

引言:
简单来说,SSH是一种网络协议,主要用于客户端和远程主机的安全连接和交互;在生产环境中尤为重要,为了远程操控的安全性,设置公钥和私钥,不仅防止某些暴力破解,也大大增强远程主机被操控的安全问题,防止不知名用户登陆操作

一、SSH远程管理

1.SSH是什么:
SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程、复制等功能,SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令,SSH为建立在应用层和传输层基础上的安全协议
在这里插入图片描述
2.SSH客户端与OpenSSH服务端
SSH客户端:Putty、Xshell、CRT、MobaXterm、FinaShell

SSH服务端:OpenSSH

OpenSSH是实现SSH协议的开源软件项目,适用于各种UNIX、Linux操作系统

CentOS7 系统默认已安装openssh相关软件包,并将sshd服务添加为开机自启动

执行“systemctl start sshd”的命令即可启动sshd服务。sshd服务的默认使用的是TCP的22端口

3.SSH服务配置文件
sshd服务的默认配置文件是/etc/ssh/sshd_config
ssh_config和sshd_config都是ssh服务器的配置文件
二者区别在于前者是针对客户端的配置文件
后者则是针对服务器的配置文件

4.SSHD服务端的功能

SSHD服务使用SSH协议可以用来进行远程控制,或在计算机之间传送文件,相比较之前用Telent方式来传输文件要安全很多,因为Telent使用明文传输。SSH是加密传输

服务名称:sshd;

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

服务端配置文件:/etc/ssh/sshd_config

二、SSH服务

1、ssh远程登录方式

ssh [目标服务器用户名] @ [目标服务器IP地址] -p port(-p可以指定端口号)
要使用当前用户登录目标服务器时 可以直接使用 ssh 目标IP地址
在这里插入图片描述

在这里插入图片描述

2、scp远程复制

下行复制,将远程主机中的文件复制到本机
在这里插入图片描述

上行复制,将本机的文件复制到远程主机中
在上行复制时远程主机中有同名文件时会直接强制覆盖源文件
在这里插入图片描述
切换到目标主机看一下opt目录
在这里插入图片描述

3、sftp安全FTP

由于使用了加密/解密技术,所以传输效率比普通的FTP要低,但安全性更高。操作语法sftp与ftp几乎一样。

sftp zhangsan@192.168.60.12
使用zhangsan用户连接192,168.60.12主机
可以sftp -P 来指定端口号
在这里插入图片描述

4、sshd配置文件

vim /etc/ssh/sshd_config
##服务器配置文件的常用选项设置
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
sshd服务支持两种验证方式
1、密码验证
对服务器中本地系统用户的登录名称、密码进行验证。简便,但可能会被暴力破解
2、密钥对验证
要求提供相匹配的密钥信息才能通过验证,通常现在客户端中创建一对密钥文件(公钥,私钥),然后将公钥文件放到服务器中的指定位置。远程登录时,系统将使用公钥,私钥进行加密/解密关联验证。能增强安全性,且可以免交互登录。

公钥和私钥的关系:
公钥和私钥是成对生成的,这两个密钥互不相同,可以互相加密和解密。
不能根据一个密钥来推算出另一个密钥。
公钥对外公开,私钥只有私钥的持有人才知道。

当密码验证、密钥对验证都启用时、服务器将优先使用密钥对验证。可根据实际情况设置验证方式。
vim /etc/ssh/sshd_config

PubkeyAuthentication yes #启用密钥对验证
PasswordAuthentication yes #启用密码验证
AuthorizedKeysFile .ssh/authorized_keys #指定公钥库文件

5、ssh密钥对配置

客户端 ssh的发起端 :

ssh-keygen -t rsa 或 ecdsa
##输入密码。创建密钥对,生成在自己的家目录中的 .ssh 目录中生成公钥(.pub结尾)和私钥
在这里插入图片描述

ssh-copy-id -i 公钥文件 目标主机用户@目标主机IP/主机名
##将公钥文件直接复制到目标主机对应的用户家目录的 .ssh 中

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.1 ssh密钥对免交互登录

1)使用没有密码的密钥对
ssh-keygen -t rsa 或 ecdsa 一路回车,不设置密码
ssh-copy-id -i 公钥文件 目标主机用户@目标主机IP或主机名

2)创建ssh会话代理(只能在当前会话有效重启失效)
ssh-agent bash
ssh-add
在这里插入图片描述
在这里插入图片描述

三、TCP wrappers 访问控制

1、TCP wrappers (TCP封套)

将TCP服务程序“包裹”起来,代为监听TCP服务程序的端口,增加了一个安全检测过程,外来的连接请求必须先通过这层安全监测,获得许可后才能访问真正的服务程序。
在这里插入图片描述

大多数Linux发行版,TCP wrappers 是默认提供的功能。

rpm -q tcp_wrappers 可以查看到已经安装的软件包

在这里插入图片描述

2、TCP wrappers 保护机制的两种实现方式

1.直接使用tcpd程序对其他服务程序进行保护,需要运行tcpd程序。
2.由其他网络服务程序调用libwrap.so.*链接库,不需要进行tcpd程序,此方式的应用更加广泛,也更有效率。

可以使用 ldd 命令来查看程序的libwrap.so.*链接库
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
找到了这个链接库就说明sshd服务是支持 TCP wrappers 服务的

这里顺便说一下,下面两种符号的用法
双 ` 的效果

在这里插入图片描述
$( )的效果
在这里插入图片描述

3、TCP wrappers 的访问策略

TCP wrappers 机制的保护对象为各种网络服务程序,针对访问服务的客户端地址进行访问控制。
对应的两个策略文件为 /etc/hosts.allow 和 /etc/hosts.deny , 分别用来设置允许和拒绝的策略。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、TCP wrappers 的配置格式

在配置文件中输入
<服务程序列表>:<客户端地址列表>
##两个配置文件格式一样
1)服务程序列表
ALL :表示所有的服务
单个服务程序:如“vsftpd”
多个程序组成的列表:如“vsftpd,sshd,dhcp”(多个程序中间用逗号分隔)

2)客户端地址列表
ALL :表示任何客户端地址
LOCAL:表示本机地址
多个地址以逗号分隔
允许使用通配符“ * ” 和 “ ? ” ,前者代表任意长度字符,后者仅代表一个字符
网段地址,如“192.168.60.” 或 192.168.60.0/255.255.255.0
区域地址,如“.benet.com”匹配 benet.com 域中的所有主机

5、TCP wrappers 机制的基本原则

首先检查 /etc/hosts.allow 文件,如果找到相匹配的策略,则运行访问;
否则继续检查 /etc/hosts.deny 文件,如果找到相匹配的策略,则拒绝访问;
如果检查上述两个文件都找不到相匹配的策略,则允许访问。

允许所有,拒绝个别。
只需在 /etc/hosts.deny 文件中添加相应的拒绝策略。

允许个别,拒绝所有。
除了在 /etc/hosts.allow 文件中添加允许策略之外,还需要在 /etc/hosts.deny 文件中设置 “ALL:ALL”,拒绝所有的策略。

6、应用实例+测试

例:只希望从IP地址为192.168.60.12 的主机访问sshd服务,其他地址被拒绝
根据TCP wrappers 机制的基本原则先设置白名单
vim /etc/hosts.allwo
sshd:192.168.60.12
在这里插入图片描述

在配置黑名单
vim /etc/hosts.deny
在这里插入图片描述

验证一下
关闭服务器的防火墙和核心防护
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值