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

第一节课 6月12日 ssh协议
关键问题
一、ssh、sshd、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
    在这里插入图片描述
  • 10
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值