码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Linux之ssl配置,nfs挂载,autofs自动挂载及https中ssl层的握手协议流程(超详解)


    目录

    1.配置使用ssl完成https访问apache服务器

    1.mod_ssl 是一种以 openssl 的工具箱为基础专门为 apache webserver 提供密码保护的软件。

    2.创建myssl.conf配置文件

    3.首先创建首页显示内容所需文件及目录

    4. 强制改为宽容模式重启httpd服务

    2.配置访问apache的cgi程序

     1.首先进入cgi-bin目录下,里面的文件为可执行文件

     2,访问https://192.168.40.122/cgi-bin/test.cgi​编辑

    3.nfs挂载 a、开放/nfs/shared目录,供所有用户查询资料;

    1.首先在服务器上下载所需程序

     2. 创建主配置文件并配置

    3.创建目录及文件

       4.使用chmod开放所有权限

     5.登录客户端手动挂载 ​编辑

    b、开放/nfs/upload目录,该目录为192.168.xxx.0/24网段的主机的数据上传目录,并将所有该网段主机上传文件的所属者和所属组映射为nfs-upload,其UID和GID为2001;

    1.首先创建upload目录并创建文件

    2. 在主配置文件中添加规则​编辑

    3.创建用户和组并指定uid/gid 

     4.重新加载配置​编辑

     5.在客户端远程连接

     6.客户端创建文件

     7.查看文件所属者所属组和uid/gid

    ​ c、将/home/tom(该目录为uid=1111,gid=1111的tom用户的家目录)目录仅共享给192.168.xxx.128这台主机上的jerry用户,jerry对该目录具有访问、新建和删除文件的权限。

     1.创建tom和组并指定uid/gid

    2. 在主配置文件中添加规则

    ​3.重启服务​编辑

     4.在客户端创建jerry并添加192.168.40.128这个ip

     5.使用root用户挂载并切换到jerry创建文件

    ​4.autofs自动挂载  远程nfs服务器要的目录为/nfs/autofs  客户端的的挂载目录/data1/autofs  且设置自动卸载时间为60秒

     1.先在客户端进入主配置文件中

    ​2.在服务器中添加挂载

     3.在服务器上重启服务

     4.在客户端重启autofs后触发条件自动挂载

    ​5:https中ssl层的握手协议流程

     1. client_hello

    2. server_hello

    4. client_key_exchange / change_cipher_spec / encrypted_handshake_message

    5. change_cipher_spec / encrypted_handshake_message

    6. 握手结束


    1.配置使用ssl完成https访问apache服务器

    1.mod_ssl 是一种以 openssl 的工具箱为基础专门为 apache webserver 提供密码保护的软件。

    1. [root@rhcsa tls]# yum install mod_ssl -y
    2. Updating Subscription Management repositories.
    3. Unable to read consumer identity
    4. This system is not registered with an entitlement server. You can use subscription-manager to register.
    5. Repository AppStream is listed more than once in the configuration
    6. BaseOS 2.7 MB/s | 2.8 kB 00:00
    7. Dependencies resolved.
    8. ================================================================================
    9. Package Arch Version Repository Size
    10. ================================================================================
    11. Installing:
    12. mod_ssl x86_64 1:2.4.37-43.module_el8.5.0+1022+b541f3b1 AppStream 136 k
    13. Transaction Summary
    14. ================================================================================
    15. Install 1 Package
    16. Total download size: 136 k
    17. Installed size: 266 k
    18. Downloading Packages:
    19. mod_ssl-2.4.37-43.module_el8.5.0+1022+b541f3b1. 312 kB/s | 136 kB 00:00
    20. --------------------------------------------------------------------------------
    21. Total 312 kB/s | 136 kB 00:00
    22. Running transaction check
    23. Transaction check succeeded.
    24. Running transaction test
    25. Transaction test succeeded.
    26. Running transaction
    27. Preparing : 1/1
    28. Installing : mod_ssl-1:2.4.37-43.module_el8.5.0+1022+b541f3b1.x86 1/1
    29. Running scriptlet: mod_ssl-1:2.4.37-43.module_el8.5.0+1022+b541f3b1.x86 1/1
    30. Verifying : mod_ssl-1:2.4.37-43.module_el8.5.0+1022+b541f3b1.x86 1/1
    31. Installed products updated.
    32. Installed:
    33. mod_ssl-1:2.4.37-43.module_el8.5.0+1022+b541f3b1.x86_64
    34. Complete!

    2.创建myssl.conf配置文件

    在里面如下所配置

    1. [root@rhcsa conf.d]# cd /etc/httpd/conf.d/
    2. [root@rhcsa conf.d]# vim myssl.conf

    在里面配置自己生成的SSL证书 

    3.首先创建首页显示内容所需文件及目录

    1. [root@rhcsa www]# mkdir myssl
    2. [root@rhcsa www]# cd myssl/
    3. [root@rhcsa myssl]# echo "This is my first https page" > index.html
    4. [root@rhcsa myssl]# ll
    5. total 4
    6. -rw-r--r--. 1 root root 28 Jul 29 10:40 index.html

    4. 强制改为宽容模式重启httpd服务

    1. [root@rhcsa conf.d]# setenforce 0
    2. [root@rhcsa conf.d]# systemctl restart httpd


    2.配置访问apache的cgi程序

     1.首先进入cgi-bin目录下,里面的文件为可执行文件

    1. [root@rhcsa cgi-bin]# cd /var/www/cgi-bin/
    2. [root@rhcsa cgi-bin]# vim test.cgi

     2,访问https://192.168.40.122/cgi-bin/test.cgi

    3.nfs挂载
     a、开放/nfs/shared目录,供所有用户查询资料;

    1.首先在服务器上下载所需程序

    [root@rhcsa data]# yum install rpcbind nfs-utils -y
    

     2. 创建主配置文件并配置

    [root@rhcsa ~]# vim /etc/exports
    

    3.创建目录及文件

    1. [root@rhcsa data]# mkdir /nfs/shared -p
    2. [root@rhcsa data]# cd /nfs/shared/
    3. [root@rhcsa shared]# echo "Hello" > test.txt

       4.使用chmod开放所有权限

    1. [root@rhcsa ~]# ls -ld /nfs/
    2. drwxrwxrwx. 3 root root 20 Jul 29 18:00 nfs/
    3. [root@rhcsa ~]# ls -ld /nfs/shared/
    4. drwxrwxrwx. 2 root root 22 Jul 29 18:00 nfs/shared/
    5. [root@rhcsa ~]# ls -ld /nfs/shared/test.txt
    6. -rwxrwxrwx. 1 root root 7 Jul 29 18:00 nfs/shared/test.txt

     5.登录客户端手动挂载 

    b、开放/nfs/upload目录,该目录为192.168.xxx.0/24网段的主机的数据上传目录,并将所有该网段主机上传文件的所属者和所属组映射为nfs-upload,其UID和GID为2001;

    1.首先创建upload目录并创建文件

    2. 在主配置文件中添加规则

    3.创建用户和组并指定uid/gid 

    1. [root@rhcsa upload]# groupadd -r nfs-upload -g2001
    2. [root@rhcsa upload]# useradd nfs-upload -g2001 -u2001

     4.重新加载配置

     5.在客户端远程连接

     6.客户端创建文件

    [root@rhce upload]# touch test2.txt

     7.查看文件所属者所属组和uid/gid

      c、将/home/tom(该目录为uid=1111,gid=1111的tom用户的家目录)目录仅共享给192.168.xxx.128这台主机上的jerry用户,jerry对该目录具有访问、新建和删除文件的权限。

     1.创建tom和组并指定uid/gid

    1. [root@rhcsa nfs]# groupadd -r tom -g1111
    2. [root@rhcsa nfs]# useradd tom -g1111 -u1111
    3. [root@rhcsa nfs]# passwd tom
    4. New password:
    5. Retype new password:
    6. passwd: all authentication tokens updated successfully.

    2. 在主配置文件中添加规则

    [root@rhcsa tom]# vim /etc/exports

     3.重启服务

     4.在客户端创建jerry并添加192.168.40.128这个ip

     5.使用root用户挂载并切换到jerry创建文件


    4.autofs自动挂载
      远程nfs服务器要的目录为/nfs/autofs
      客户端的的挂载目录/data1/autofs
      且设置自动卸载时间为60秒

     1.先在客户端进入主配置文件中

    [root@rhce ~]# vim /etc/auto.master

    /data1 为本地挂载点的主目录    /etc/auto.mynfs为配置文件 

      2.在服务器中添加挂载

    [root@rhcsa ~]# vim /etc/exports
    

     3.在服务器上重启服务

     4.在客户端重启autofs后触发条件自动挂载


    5:https中ssl层的握手协议流程

     1. client_hello

    客户端发起请求,以明文传输请求信息,包含版本信息,加密套件候选列表,压缩算法候选列表,随机数,扩展字段等信息,相关信息如下:

    (1) 支持的最高TSL协议版本version,从低到高依次 SSLv2,SSLv3,TLSv1,TLSv1.1,TLSv1.2,TLSv1.3。

    (2) 客户端支持的加密套件 cipher suites 列表。

    (3) 支持的压缩算法 compression methods 列表,用于后续的信息压缩传输。

    (4) 随机数 random_C,用于后续的密钥的生成。

    (5) 扩展字段 extensions,支持协议与算法的相关参数以及其它辅助信息等。 

    2. server_hello

     server_hello, 服务端返回协商的信息结果,包括选择使用的协议版本 version,选择的加密套件 cipher suite,选择的压缩算法 compression method、随机数 random_S 等,其中随机数用于后续的密钥协商。

    3. 证书校验

    客户端验证证书的合法性,如果验证通过才会进行后续通信,否则根据错误情况不同做出提示和操作。

    4. client_key_exchange / change_cipher_spec / encrypted_handshake_message

    (1) client_key_exchange,合法性验证通过之后,客户端计算产生随机数字 Pre-master,并用证书公钥加密,发送给服务器。

    (2) change_cipher_spec,客户端通知服务器后续的通信都采用协商的通信密钥和加密算法进行加密通信。

    (3) encrypted_handshake_message,结合之前所有通信参数的 hash 值与其它相关信息生成一段数据,采用协商密钥 session secret 与算法进行加密,然后发送给服务器用于数据与握手验证。

    5. change_cipher_spec / encrypted_handshake_message

    (1) 服务器用私钥解密加密的 Pre-master 数据。

    (2) 计算之前所有接收信息的 hash 值,然后解密客户端发送的 encrypted_handshake_message,验证数据和密钥正确性。

    (3) change_cipher_spec, 验证通过之后,服务器同样发送 change_cipher_spec 以告知客户端后续的通信都采用协商的密钥与算法进行加密通信。

    (4) encrypted_handshake_message, 服务器也结合所有当前的通信参数信息生成一段数据并采用协商密钥 session secret 与算法加密并发送到客户端。(将随机密码加密的数据响应给客户端)

    6. 握手结束

    客户端计算所有接收信息的 hash 值,并采用协商密钥解密 encrypted_handshake_message,验证服务器发送的数据和密钥,验证通过则握手完成。

  • 相关阅读:
    2023版 STM32实战5 基本定时器中断
    〖Python APP 自动化测试实战篇②〗 - 大话闲扯 APP 自动化工具的演进史
    真正的办公神器-ONLYOFFICE你了解多少?
    SQL Server实现参数化增删改查Class类
    【八天学好Linux】第八天 Linux的文件权限与网络管理
    计算机Java项目|基于SpringBoot的网上摄影工作室
    用手机浏览器浏览不良网站,清理数据还有用吗?
    从零开始搭建仿抖音短视频APP-开发用户业务模块(3)
    6.0、软件测试——判定表法
    javaScript 数组对象取出某一列
  • 原文地址:https://blog.csdn.net/weixin_64051859/article/details/126053270
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号