​​三SSH

==ssh密钥对登录原理 :首先,客户端事先生成一对密钥,并将公钥保存在服务器上的授权文件中。接下来,客户端不用密码,而是用密钥对来验证身份。客户端用服务器的公钥来加密自己的公钥,然后把加密后的信息发送给服务器。服务器用自己的私钥解密这些信息,得到客户端的公钥,并检查是否与服务器存储的客户端公钥匹配。如果匹配,服务器会进一步确认这个公钥是客户端创建的,于是发送一个加密的质询信息给客户端,让客户端用它的私钥来解密。如果客户端能正确解密并用服务器的公钥重新加密后发回,服务器就能确认这个公钥属于客户端,从而验证了客户端的身份。==
 SFTP,SCP基于SSH协议
 
Linux基于Unix,提供多种类Unix系统选择。
AIX和HPUX是Unix系统,区别于Mac OS。
BSD  一种unix的操作系统

跳板机 提供临时的、免密登录至后台服务器的服务
堡垒机 在跳板机的基础上提供了身份验证、授权控制等功能,有效防止内部误操作,此外提供安全审计、追溯和事故分析的功能,以便于故障定位和责任认定
jumpserver 开源的堡垒机

撞  库:由于数据库之间的数据相似,就会出现撞库
伪设备文件:  
  /dev/zero    /dev/null   /dev/urandom 生成随机字符的文件

   生成随机密钥脚本

   ``` shell

    #!/bin/bash  
  
    read -p "请输入要生成密码的长度: " len  
    read -p "请输入要生成密码的个数: " num  
  
    for ((;;))  
    do
      #这个是生成随机字符,tr -dc就是来保留或者过滤字符串的过滤组分  
      pass=$(head -5 /dev/urandom | tr -dc a-zA-Z0-9\@\_\(\-\* | cut -c 1-$len)  
        xpass=$(echo $pass | awk '/[a-z]/&&/[A-Z]/&&/[0-9]/&&/[\@\_\(\-\*]/{printf $1"\n"}')   #输出指定规格的密码
        #对密码规格要求的判断
          if [ -n $xpass ]  
          then  
               passwd=(${passwd[*]} $xpass)  
          fi  
          if [ ${#passwd[*]} -eq $num ]  
          then  
               for i in ${passwd[*]}  
               do  
                    echo $i  
               done  
                       break  
            fi  
    done

```

``` shell
 #两种死循环
     for ((;;))
     while true
```

### SSH命令

SSH(Secure SHell)是一个命令行程序,用于安全地管理远程计算机。以下是几个常用的SSH命令:

- **远程登录**:

    ``` shell
    ssh 用户名@服务器IP地址
    ```
    
    例如:

    ``` shell
    ssh root@192.168.88.20
    ```
    
- **密钥对验证**:
    
    1. **生成密钥对**:

        ``` shell
       ssh-keygen -t rsa -b 2048
        ```
        
        `-t`指定加密算法,`-b`指定密钥长度。
    2. **将公钥上传至服务器**:

        ``` shell
          ssh-copy-id 用户名@服务器IP地址
        ```
        
        `-i`指定公钥文件的位置。
    3. **使用密钥对登录**:
        ``` shell
        ssh -p 端口号 用户名@服务器IP地址 
        ```
        
- **安全的远程文件复制**:

    ```
    scp 本地文件 用户名@服务器IP地址:远程目录
    ```
    
    如果SSH服务使用非默认端口,则需指定端口:
    ```
    scp -P 端口号 本地文件 用户名@服务器IP地址:远程目录
    ```
    

### SSH配置文件

SSH的主要配置文件位于`/etc/ssh/sshd_config`。**root和普通用户的.ssh目录 700 和authorized_keys 文件是600权限**以下是几个关键的配置项:

- **禁止密码登录**:不推荐设置

    
    ``` shell
    PasswordAuthentication no
    ```
    
    这一行取消注释后,将不允许使用密码进行登录。
    
- **禁止root远程登录**: 推荐在练习时使用 记得想创建一个用户 并用visudo设置权限

    ```
    PermitRootLogin no
    ```
    
    此配置项设置为`no`后,root账户将不能通过SSH远程登录。
    
- **修改默认监听端口**: 
    - ps :建议在生产环境中修改默认的SSH端口号。
        配置文件 /etc/ssh/sshd_config 在这个文件加注释的代码如果修改是会按默认配置生效

    ```
    Port 新端口号
    ```
    
    修改后的端口号需要在客户端连接时指定:

    ```
    ssh -p 新端口号 用户名@服务器IP地址
    ```
    
- **修改SSH监听IP**:使用场景:部署服务时,使用公网接口连接至公网交换机并通过路由器接入互联网,提供对外服务;而内网接口则仅限于用于服务器间的数据传输、备份等内部通信。在进行监听IP设置时,对于内外网分离场景下的服务器,应确保SSH等服务只监听内网接口,有效阻止了互联网用户直接访问内部系统。(内外网分离才使用)

    
    ```
    ListenAddress IP地址
    ```
    
    这样可以限定SSH服务只监听特定的IP地址。
实验 请提前准备2个网卡 并把ens33的网卡信息复制给ens36 假设地址是192.168.90.120
   ``` shell
    
 vim /etc/ssh/sshd_config 
     ListenAddress 192.168.90.120
     这样就只让ssh监听192.168.90.120主有这个IP才可以远程登录
```
#### TCP Wrappers
是一个用于控制访问的框架,它允许系统管理员定义哪些主机可以访问特定的服务。
#### TCP Wrappers的工作原理
![[Pasted image 20240911160842.png]]
黑名单:放行所有,拒绝个别   适合开放性服务器:apache、nginx、iis
白名单:拒绝所有,放行个别    适合 非开放性服务:ssh,telnet
白名单优先级比黑名单高![[Pasted image 20240911204806.png]]
libwrap.so.0 这是受防火墙过滤的函数文件
#### 配置文件编写规则

配置文件的每一行遵循以下格式:


```
service_list @ host : client_list
```

其中:

- `service_list`:是程序(服务)的列表,可以是多个,多个时用逗号隔开。
- `@ host`:设置允许或禁止他人从自己的哪个网口进入。如果不写,则代表全部。
- `client_list`:是访问者的地址,如果需要控制的用户较多,可以使用空格或逗号隔开。

### 示例配置

- **拒绝单个IP使用SSH远程连接**:

    ```
    hosts.deny: sshd:192.168.88.20
    ```
    
    `hosts.allow`文件为空。
    
- **拒绝某一网段使用SSH远程连接**:
    
    
    ```
    hosts.deny: sshd:192.168.88.
    ```
    
    `hosts.allow`文件为空。
    
- **仅允许某一IP使用SSH远程连接**:

    ```
    hosts.allow: sshd:192.168.88.20
    hosts.deny: sshd:ALL
    ```
    

### 判断方式

- **查看对应服务命令所在位置**:

    
    ```
    which sshd
    ```
    
- **查看指定命令执行时是否调用libwrap.so文件**:

    ```
    #ldd用来查看服务调用了哪些函数文件 即.so结尾的文件
    ldd /usr/sbin/sshd | grep libwrap.so
    ```
防火墙规则![[Pasted image 20240911215713.png]]

 ACL 访问控制列表 来限制特定用户的上网行为
## DHCP 
是一个工作在应用层的局域网网络协议,使用UDP不可靠传输协议工作,dhcp主要在工作中主要用于批量装机 端口 67       tftp 69端口  dhcp服务日志保存在 /var/log/messages中

![[Pasted image 20240918095558.png]]

服务器连接原理:==首先客户端通过广播DHCP Discover数据包来寻找可用的DHCP服务器;服务器接收到请求后,从其可用的IP地址池中选择一个地址,并通过DHCP Offer数据包将此地址及相关配置信息发送给客户端;客户端收到并决定接受后,会发送DHCP Request确认;最后,DHCP服务器通过发送DHCP ACK数据包正式确认分配,客户端据此设置其IP,网关等网络参数并开始通信。但是如果此时无DHCP服务器可用,DHCP客户机会使用169.254.0.0/16中随机的一个地址,并且每隔5分钟再进行尝试。==
    如何处理客户端的续租和释放IP地址的情况?
        设备默认有最长租约时间和默认租约时间,续租周期通常是基于默认租约时间的50%,例如十分钟的有效租期对应于每五分钟进行一次续租尝试。如果续租失败,设备将会等待一段时间后再尝试续租,若连续多次续租失败,则将使用剩余的最大租约时间继续使用IP地址,直至到期或释放。

搭建DHCP服务器实验
 ``` shell
      yum -y install dhcp  安装DHCP服务
       cd /etc/dhcp/   dhcp服务的配置文件目录
       vi dhcpd.conf    dhcp规则文件  发现是空的提示到/usr/share/doc/dhcp下拿
       cp -a  /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example  ./dhcpd.conf 直接把规则复制过来
       在vim dhcpd.conf
        写入的规则
        注意: 全局和局部的配置  至少要声明一个地址池和本机网段相同也就是这个   192.168.90.230 192.168.90.249地址池 
        subnet 192.168.90.0 netmask 255.255.255.0 {
          range 192.168.90.230 192.168.90.249;
          option domain-name-servers 223.5.5.5,8.8.8.8;
          option routers 192.168.90.2;
          option broadcast-address 192.168.90.255;
          default-lease-time 600;
          max-lease-time 7200;
        }
        systemctl enable --now dhcpd  启动DHCP服务
        netstat -anpu  | grep :67  查看服务是否正常启动
        tail -f /var/log/messages  查看DHCP服务租约日志的文件
 
 ```
规则文件解释
![[1726058296182.jpg]]  
注意事项 
     ![[Pasted image 20240911203801.png]]

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

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

相关文章

面向未来的设计:数字化转型时代的企业架构与建模革新

在数字化转型浪潮席卷全球的今天,企业架构(Enterprise Architecture, EA)与建模技术正成为引领未来业务发展的核心工具。企业如何设计面向未来的架构,不仅关乎技术的部署,更直接影响业务的战略定位和市场竞争力。《面向…

51单片机的智能停车场【proteus仿真+程序+报告+原理图+演示视频】

1、主要功能 该系统由AT89C51/STC89C52单片机LCD1602显示模块温度传感器DS1302时钟模块红外传感器步进电机按键、蜂鸣器、LED等模块构成。适用于智能停车场车位管理、泊车管理系统等相似项目。 可实现基本功能: 1、LCD1602实时显示北京时间、温度和剩余车位 2、温度传感器DS…

百度百科 X-Bk-Token 算法还原

声明 本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请私信我立即删除! 文章目录 声明案例地址参数分析X-Bk-Token算法追踪X-Bk-Token后缀算法还原c 值跟踪与算法还原往期逆向文章推荐最近太忙了,博客摆烂了好…

Zabbix自动发现SNMP主机

前言 利用Zabbix监控DELL R740主机硬件,监控通过自动发现主机,链接SNMP监控模板 一、配置自动发现 自动发现脚本 cat discovery_host.pyfrom os.path import abspath, dirname, join import json import sysreload(sys) sys.setdefaultencoding(utf-8…

击破壁垒,融合共生,Matter技术点爆智能家居万亿市场!

“爆改”家居生态,点亮万亿蓝海,Matter够格吗? 在万物互联的时代浪潮中,智能家居已加速从单品智能发展至全屋智能,然而之前Apple HomeKit、SamSung SmartThings、Amazon Alexa、Google Home、Aqara Home、TuYa与HomeA…

开放式耳机什么品牌好?精选无差评开放式耳机推荐!

市场上开放式耳机的日益增多为用户带来了丰富的选择,但也使得一些人在众多产品中难以做出决定,不知道开放式耳机哪个牌子的好?为了帮助解决这个问题,我挑选了五款既实用又获得好评的开放式耳机,目的是为大家提供方便&a…

详细指南:如何有效解决Windows系统中msvcp140.dll丢失的解决方法

如果你在使用Windows系统时遇到“msvcp140.dll丢失”的错误提示,通常是因为你的计算机上缺少或损坏了msvcp140.dll文件。msvcp140.dll是Microsoft Visual C Redistributable包的一部分,许多应用程序和游戏需要它来正常运行。以下是几种解决msvcp140.dll丢…

Jetbrains 推出 CodeCanvas:云开发时代的未来已来

人们不大愿意相信事实 只愿意相信故事 你信仰什么 就会怎样生活 近期 jetbrains 悄悄的推出了新的产品 CodeCanvas,这个产品的推出具有划时代的意义。 CodeCanvas 的定位是一个云 IDE 。想一想 jetbrains 从 2000 年开始就专注于 IDE 的开发,准确来说是…

当前用户添加到 [uucp ]组

archlinux使用tabby 查看当前用户:将当前用户添加到 uucp 组验证组成员身份重新登录 /dev/ttyUSB0 设备的所有者是 root,而所属组是 uucp,如果您想以当前用户身份访问此设备,您可以将当前用户添加到 uucp 组中。 以下是将当前用户添加到 uucp…

基于Springboot+Vue的c语言学习辅导网站的设计与实现 (含源码数据库)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 系统中…

HarmonyOS/OpenHarmony Audio 实现音频录制及播放功能

关键词:audio、音频录制、音频播放、权限申请、文件管理 在app的开发过程中时常会遇见一些需要播放一段音频或进行语音录制的场景,那么本期将介绍如何利用鸿蒙 audio 模块实现音频写入和播放的功能。本次依赖的是 ohos.multimedia.audio 音频管理模块&am…

待办事项应用SideQuests

赶在国庆长假前,自驾🚗出去玩了几天。 国庆前的错峰出游简直是太香了!一路上🛣️畅通无阻,停车🅿️不用抢,吃饭🍔不用等,景点🏞️不用排队,拍照&…

热门录屏工具详细介绍及上手攻略

如果你的公司业务范围比较广,那应该会频繁进行远程会议吧。对于远程会议最方便的记录方式就是录屏啦。但对于很多人来说,如何选择合适的录屏方法以及使用相关软件可能还存在一些困惑。接下来,就让我们一起深入探讨如何录屏以及了解一些优秀的…

[Notepad++] 文本编辑器的下载及详细安装使用过程(附有下载文件)

程序员常用的文本编辑器Notepad,用于修改配置文件等 下载链接在文末 下载压缩包后解压 !!安装路径不要有中文 解压文件,得到 双击exe文件 选择简体中文,点击OK 点击下一步 点击“我接受” 更改安装目录,不…

Arthas sm(查看已加载类的方法信息 )

文章目录 二、命令列表2.2 class/classloader相关命令2.2.6 sm(查看已加载类的方法信息 )举例1:显示类加载的方法举例2:显示类加载的executeTask方法详细信息 本人其他相关文章链接 二、命令列表 2.2 class/classloader相关命令 …

如何使用SCCMSecrets识别SCCM策略中潜在的安全问题

关于SCCMSecrets SCCMSecrets是一款针对SCCM策略的安全扫描与检测工具,该工具旨在提供一种有关 SCCM 策略的全面安全检测方法。 该工具可以从各种权限级别执行,并将尝试发现与策略分发相关的潜在错误配置。除了分发点上托管的包脚本外,它还将…

如何让每一次销售都成为顾客心中的温馨记忆

舒适,乃交往之至高艺术,亦渗透于买卖交易的每一环节。 在这个体验为王的时代,消费者追求的早已超越了物质本身,转而寻觅那份独特的“心灵触动”。他们购买的,实则是一种情感的共鸣,一种被重视与信赖的“感觉…

分糖果C++

题目&#xff1a; 样例解释&#xff1a; 样例1解释 拿 k20 块糖放入篮子里。 篮子里现在糖果数 20≥n7&#xff0c;因此所有小朋友获得一块糖&#xff1b; 篮子里现在糖果数变成 13≥n7&#xff0c;因此所有小朋友获得一块糖&#xff1b; 篮子里现在糖果数变成 6<n7&#xf…

git 报错git: ‘remote-https‘ is not a git command. See ‘git --help‘.

报错内容 原因与解决方案 第一种情况&#xff1a;git路径错误 第一种很好解决&#xff0c;在环境变量中配置正确的git路径即可&#xff1b; 第二种情况 git缺少依赖 这个情况&#xff0c;网上提供了多种解决方案。但如果比较懒&#xff0c;可以直接把仓库地址的https改成ht…

Python从0到100(六十):机器学习-模型选择与交叉验证

1、为什么需要交叉验证 交叉验证目的&#xff1a;为了让被评估的模型更加准确可信 在机器学习中&#xff0c;模型的性能评估至关重要。如果仅使用训练数据进行模型训练&#xff0c;然后直接在测试集上进行评估&#xff0c;可能会出现模型对训练数据过拟合的问题。过拟合的模型…