远程访问及控制(SSH)

news2024/10/6 17:21:04

远程访问及控制(SSH)

  • 一、SSH远程管理
  • 二、SSH服务
    • 1、ssh远程登录方式
    • 2、scp远程复制
    • 3、sftp安全FTP
    • 4、sshd配置文件
    • 5、ssh密钥对配置
      • 5.1 ssh密钥对免交互登录
  • 三、TCP wrappers 访问控制
    • 1、**TCP wrappers (TCP封套)**
    • 2、**TCP wrappers 保护机制的两种实现方式**
    • 3、**TCP wrappers 的访问策略**
    • 4、**TCP wrappers 的配置格式**
    • 5、**TCP wrappers 机制的基本原则**
    • 6、应用实例+测试

引言:
简单来说,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
在这里插入图片描述

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/455201.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

会话与会话技术(Cookie)

Web应用中的会话过程指的是一个客户端&#xff08;浏览器&#xff09;与Web服务器之间连续发生的一系列请求和响应过程 为保存会话过程产生的数据&#xff0c;Servlet提供了两个用于保存会话数据的对象&#xff0c;分别是Cookie和Session 1、Cookie对象 Cookie是一种会话技术…

SS524V100 RTL8152B(USB转网卡)驱动移植

目录 前言 1. 内核下 USB Host 配置过程 2. 内核下 RTL8152 驱动配置 3. 重新编译内核 4. 测试USB转网卡 5. 总结 前言 本文主要是描述 SS524V100 对 RTL8152B(百兆网卡) 开发、移植的过程。 1. SS524V100 的 USB 2.0 支持 Host 模式&#xff1b; 2. 内核默认自带驱动…

0环境教你怎么安装配置GPU环境运行车流量检测代码

项目效果&#xff1a; python车流量检测双向车流计数 1、环境配置 1.1 安装显卡加速工具 (1) 安装CUDA和cudnn NVIDIA CUDA 深度神经网络库 (cuDNN) 是经 GPU 加速的深度神经网络基元库。cuDNN 可大幅优化标准例程&#xff08;例如用于前向传播和反向传播的卷积层、池化层、…

4月23日作业

#include <iostream> #include <cstring> using namespace std; class Student //学生类 { private: string name; //姓名 int year; //年龄 double sorce; //分数 public: Student (){} //无参构造 Student(string a,int b,double c):name(a),y…

五分钟学会在微信小程序中使用 vantUI 组件库

前言 我们在开发微信小程序时&#xff0c;设计和实现好用的用户界面无疑是至关重要的一步。但是微信小程序官方自带的 UI 组件库无法满足很多使用场景&#xff0c;这个时候就需要我们使用一些第三方的 UI 组件库。而 vant Weapp 作为一款优秀的前端 UI 组件库&#xff0c;可以帮…

MP长篇综述 | 植物泛基因组及其应用

2022年12月15日&#xff0c;中山大学史俊鹏副教授、中国科学院遗传与发育生物学研究所田志喜研究员、中国农业大学赖锦盛教授和上海师范大学黄学辉教授共同撰文&#xff0c;在Molecular Plant杂志发表了题为“Plant pan-genomics and its applications”的长篇综述。该论文对植…

(Ubuntu22.04 Jammy)安装ROS2 Humble

文章目录 (Ubuntu22.04 Jammy)安装ROS2 (Humble)版本一、设置本地区域二、设置源三、安装ROS2软件包四、环境设置五、测试用例Talker-listener 六、卸载ros2 (Ubuntu22.04 Jammy)安装ROS2 (Humble)版本 提示&#xff1a;以下内容是已经安装了ubuntu22.04 下进行安装ros2 一、设…

iptables防火墙和Firewalld

引言 在 Internet 中&#xff0c;企业通过各种应用系统来为用户提供各种服务&#xff0c;如 Web 网站、电子邮件系统、FTP 服务器、数据库系统等&#xff0c;那么&#xff0c;如何来保护这些服务器&#xff0c;过滤企业不需要的访问甚至是恶意的入侵呢&#xff0c;接下来&#…

设计模式--建造者模式

项目需求 盖房需求 (1) 需要建房子:过程为 打地基 砌墙 封顶 (2) 房子有高正各样的,比如 平房和高楼 建房子的过程虽然都一样 但是要求不要相同的细节 传统方式 public abstract class TraditionBuild {//打地基public abstract void foundation();//砌墙public abstract voi…

Linux进程的fork、exit、wait等函数;区分父子进程;GDB调试多进程

Linux系统中进程可以创建子进程。 1. fork函数&#xff1a;创建新进程 #include<sys/types.h> #include<unistd.h>pid_t fork(void); /* 功能&#xff1a;一个进程创建新进程。原进程为父进程&#xff0c;新进程为子进程。 返回值&#xff1a;成功&#xff1a;子…

SuperMap iObjects Docker打包全攻略

SuperMap iObjects Docker打包全攻略 文章目录 SuperMap iObjects Docker打包全攻略说明开始打包iObjects容器启动容器参考 说明 此教程编写时使用的iObjects版本为 10.2.1 &#xff0c;理论高版本同样支持&#xff0c;具体自测。基础镜像为 Docker 官方 ubuntu:16.04完整版。…

C++ 类和对象(中)构造函数 和 析构函数

上篇链接&#xff1a;C 类和对象&#xff08;上&#xff09;_chihiro1122的博客-CSDN博客 类的6个默认成员函数 我们在C当中&#xff0c;在写一些函数的时候&#xff0c;比如在栈的例子&#xff1a; 如上述例子&#xff0c;用C 返回这个栈是否为空&#xff0c;直接返回的话&am…

基于OpenCV-python的图像增强和滤波

目录 彩色空间 直方图均衡化 图像滤波 梯度 一、彩色空间 OpenCV 的颜色空间主要有 BGR、HSV、Lab等&#xff0c;cvtColor 函数可以让图像在不同颜色空间转换。例如通过将花的图像转换到 HSV 颜色空间&#xff0c;在HSV空间内过滤出只含有花瓣颜色的像素&#xff0c;从而提…

公共资源包发布流程详解

文章目录 公有包发布并使用npm安装git仓库协议创建及使用 npm 私有包创建及使用 group npm 私有包私有仓账密存放位置 当公司各个系统都需要使用特定的业务模块时&#xff0c;这时候将代码抽离&#xff0c;发布到 npm 上&#xff0c;供下载安装使用&#xff0c;是个比较好的方案…

SQL Server基础 第七章 连接查询(内连接、表别名、左外连接、右外连接)

前言 连接查询是关系数据库中最主要的查询&#xff0c;主要包括内连接、外连接和交叉连接等。通过连接运算符可以实现多个表查询。前面章节的查询均是基于单表进行&#xff0c;但有时需要获取的信息存储于多张表中&#xff0c;此时就必须使用本章所介绍的多表连接查询技术来获取…

关于debug一晚上的一些思考,做开发到底要养成什么习惯?

总结&#xff1a;日志一定要写&#xff0c;日志一定要写&#xff0c;日志一定要写&#xff01; 今天晚上是我学开发过程中很不一样的一晚&#xff0c;今晚学到了很多。 虽然我也只是一个开发的初学小白&#xff0c;今天的debug分享是我的一个小方法和一个小记录&#xff0c;如…

第四章——数学知识2

欧拉函数 欧拉函数表示的是1-n中与n互质数的个数。 如1-6中&#xff1a;1&#xff0c;5都和6互质&#xff0c;因此互质数为2 欧拉函数分解质因数后表示为&#xff1a; 互质数个数可表示为 int main() {int n;cin >> n;while(n--){int a;cin >> a;//分解质因数int r…

TypeScript自学笔记

目录 1.什么是Ts? 1.1 设计公司&#xff1a;微软 1.2 TS概述 1.3 TS是静态类型 JS是动态类型 1.4 TS是强类型语言 JS是弱类型语言 2.TypeScript编译器 2.1 安装 2.2 TS自动编译和编译选项设置 3.TS的数据类型 3.1 基础数据类型number、string、boolean 3.2 Arrays&a…

大数据架构(二)大数据发展史

1.传统数仓发展史 传统数据仓库的发展史这里不展开架构细讲&#xff0c;只需快速过一遍即可。了解这个历史发展过程即可。 1.1 传统数仓历史 1.1.1 5个时代 传统数仓发展史可以称为5个时代的经典论证战。按照两位数据仓库大师 Ralph kilmball、Bill Innmon 在数据仓库建设理念上…

吃透Redis面试八股文

Redis连环40问&#xff0c;绝对够全&#xff01; Redis是什么&#xff1f; Redis&#xff08;Remote Dictionary Server&#xff09;是一个使用 C 语言编写的&#xff0c;高性能非关系型的键值对数据库。与传统数据库不同的是&#xff0c;Redis 的数据是存在内存中的&#xf…