第一课:SSH协议、SSHD守护进程、Openssh软件包

embedded/2024/10/19 4:21:20/

第一节课 6月12日 ssh协议
关键问题
一、sshsshd、openssh的概念和区别?
二、ssh是基于什么架构?B/S还是C/S?
三、用户远程连接服务器经历哪些过程?
四、如何查看openssh软件包是否安装?
五、rpm和yum的区别?
六、常用协议:https、http、ssh协议默认端口?
七、从ssh协议出发,谈如何提高系统安全性?
(1)ssh连接到sshd经历过哪些身份验证过程?
(2)为什么已经禁用root登陆,仍然可以用其他用户登陆,并su到root用户修改sshd配置文件?
(3)云服务器,修改了sshd默认端口,仍然进不去?
暂时无法在飞书文档外展示此内容
暂时无法在飞书文档外展示此内容
一、ssh概念

  1. ssh(secure shell)一种加密网络协议,用于安全访问远程计算机。基于非对称加密技术。远程控制需要基于ssh这种加密协议。
  2. sshd:ssh的守护进程,服务器端程序,在远程计算机上运行,等待客户端连接请求。当用户使用ssh连接到sshd时,会进行身份验证等等。
  3. openssh:实现ssh协议的软件包,包括客户端和服务器端程序。(openssh项目由开放社区维护,罗永浩还捐赠openssh 100w,感谢做出的贡献)
    问题一:用户连接服务器经历了哪些过程?
  4. 服务器分散在全球各地,用户需要通过网络远程管理服务器
  5. 需要通过ssh协议进行远程控制,通过这种协议传输的数据是加密的
  6. 客户端具有客户端工具,openssh-client服务,即命令,通过ssh协议,服务器端sshd是ssh的守护进程,监听22端口。实现两个进程之间的通信
  7. 用户生成密钥对
  8. 复制公钥到服务器
  9. 客户端ssh连接sshd,提供私钥进行身份验证
  10. 执行命令或传输文件
    在这里插入图片描述

在这里插入图片描述

查看进程
ps aux |grep ssh

查看服务器开放的端口
netstat -anpult |grep ssh
1、Centos linux 与centos stream
www.centos.org
Centos常用的为centos linux,将于6月30号停止维护,以后将由red hat推出的centos stream这个版本会持续更新(收费)
2、Netstat
安装net-tools软件得到netstat命令
yum install net-tools -y
Netstat:查看服务器开放的所有端口、当前状态(比如第一行,基于tcp协议,本机36849端口监听互联网上所有的主机的任意端口,处于正在监听状态,对应的进程号和进程名称)
在这里插入图片描述

在这里插入图片描述

Talnet协议:23
ssh:22 tcp 秘文
http协议:80 tcp 明文(传输的数据可以被抓包得到,不安全)
https协议:443 tcp 密文(传输的数据加密)
二、openssh
官方站点:www.openssh.com
主要软件包:openssh-server、openssh-clients
基于ssh传输协议,开源工具,一般centos默认安装好
在这里插入图片描述

1、ssh服务采用c/s架构
sshd(ssh deamon)ssh的守护进程(一直运行不会推出)(server端程序)
C/S架构
client客户机 --》客户端工具–〉ssh
Server 服务器 – 》软件–〉ssh进程
ssh --》ssh协议 ——〉sshd
clinet使用ssh命令,通过网络传输协议ssh连接到服务器端的ssh进程(实际上也是一条命令),实质上是两个进程之间的通信。
2、实验:基于CS架构,client使用ssh命令连接服务器端ssh进程
useradd xhq

设置密码
echo “200108*” |passwd xhq --stdin

ssh xhq@139.9.192.175
此时发来一串公钥,yes接收
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

(1)rpm
rpm 是centos最底层的软件管理工具
缺点:不能够自动解决依赖关系(若安装A,需要B,C,则安装A失败,需要事先安装好B,C再安装A)
安装
rpm -i 安装包
安装包从哪来?需要挂在镜像文件(相当于插上盘),需要提前在虚拟机中放入镜像文件,并将dev/cdrom挂在到/mnt下(由红帽将开源代码封装并放入镜像文件中)
mount /dev/cdrom /mnt

查找centos按照过的软件包
-q:query查询
-a:all
rpm -qa
rpm -q tree
在这里插入图片描述

(2)yum
底层基于rpm
相比于rpm优点:能够自动解决依赖问题
在这里插入图片描述

三、修改ssh端口
目的:提高安全性(防止坏人通过连接,因为sshd默认端口22,用户默认的超级用户为root,只需要暴力破解密码就可以直接控制服务器,端口号范围:0-65535,但黑客可以扫描当前服务器开放的端口,一般会多开几个端口来增强破解的难度)
在这里插入图片描述

sshd_config配置文件实际上是用来给sshd程序传递参数
vim /etc/sshd_config

Port 2255

修改完配置文件后不会立即生效,程序没有重新加载配置文件,此时需要重新启动sshd服务
service sshd restart

临时关闭selinux安全策略,若要永久关闭需要修改/etc/selinux/config,并reboot
getenforce

setenforce 0

getenforce

添加入规则,放行2255端口(在虚拟机中关闭防火墙)
在这里插入图片描述

四、禁用root用户
vim sshd_config

PermitRootLogin no

service sshd restart (或service restart sshd新用法,用老用法会重定向直接使用新用法)

tail -f /var/log/secure
在这里插入图片描述

在这里插入图片描述

重新恢复
使用普通用户先登陆,然后切换到root用户,修改sshd配置文件
ssh -p 2255 xhq@ip
su -
vim /etc/ssh/sshd_config

Permitrootlogin yes

service sshd restart
1)问题一:为什么已经禁用root登陆,仍然可以用其他用户登陆,并su到root用户修改sshd配置文件?
在这里插入图片描述

  1. 用户登陆需要经历sshd四层验证:
  2. 检查sshd端口号是否正确
  3. 检查sshd_config,是否为root用户
  4. 检查passwd,用户名是否存在
  5. 检查shadow,密码是否正确
  6. 此时验证成功,sshd进程会创建自进程,即sc的bash,此时权限不够
  7. Su -root切换到root用户,创建新的自进程,即root的bash。这个过程已经通过了验证,不需要再通过验证了,因此仍然可以root登陆。
  8. 或者修改/etc/sudoers,将当前用户提升权限。
    pstree
    查看进程树
    pstree
    在这里插入图片描述

http://www.ppmy.cn/embedded/52524.html

相关文章

多商户零售外卖超市外卖商品系统源码

构建你的数字化零售王国 一、引言:数字化零售的崛起 在数字化浪潮的推动下,零售业务正经历着前所未有的变革。多商户零售外卖超市商品系统源码应运而生,为商户们提供了一个全新的数字化零售解决方案。通过该系统源码,商户们可以…

【Docker】Docker镜像

1、简介 1.1UnionFS(联合文件系统) UnionFS(联合文件系统):Union文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加&a…

IDEA、PyCharm等基于IntelliJ平台的IDE汉化方式

PyCharm 或者 IDEA 等编辑器是比较常用的,默认是英文界面,有些同学用着不方便,想要汉化版本的,但官方没有这个设置项,不过可以通过插件的方式进行设置。 方式1:插件安装 1、打开设置 File->Settings&a…

深入探究RTOS的任务调度

阅读引言: 此文将会从一个工程文件, 一步一步的分析RTOS的任务调度实现, 这里选用FreeRTOS分析, 别的也差不多的, 可能在细节上有少许不一样。 目录 1, 常见嵌入式实时操作系统 2, 任务调度的…

如何隐藏真实的MAC地址和IP地址,保证多账户的安全?

在计算机网络中,MAC地址(Media Access Control Address)和IP地址(Internet Protocol Address)是两个重要的概念,用于网络设备之间的通信。虽然它们都用于标识设备,但在运作原理和作用上有着明显…

API-表单全选反选案例

学习目标&#xff1a; 掌握表单全选反选案例 学习内容&#xff1a; 案例css伪类选择器checked 案例&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"…

模拟面试之外卖点单系统(高频面试题目mark)

今天跟大家分享一个大家简历中常见的项目-《外卖点单系统》&#xff0c;这是一个很经典的项目&#xff0c;有很多可以考察的知识点和技能点&#xff0c;但大多数同学都是学期项目&#xff0c;没有实际落地&#xff0c;对面试问题准备不充分&#xff0c;回答时抓不到重点&#x…

JupyterLab使用指南(三):JupyterLab的Cell详细介绍

JupyterLab Cell 使用教程 JupyterLab 的 cell 是一种强大的工具&#xff0c;提供了编写、执行、展示和记录的全方位支持&#xff0c;使得复杂的计算任务变得简单直观。通过熟练掌握 cell 的各种操作和快捷键&#xff0c;用户可以显著提高工作效率&#xff0c;专注于解决实际问…