#渗透测试#SRC漏洞挖掘# 操作系统-Linux系统基础02之Openssl、软连接与硬连接、用户账号数据库

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章阅读。                                                              #陇羽sec#

目录

OpenSSL简介

一、主要功能

二、版本相关

三、用法

四、与证书相关的注意事项

示例

软连接和硬连接

软连接(符号链接)

硬连接

创建方式

应用场景

 示例

 用户账号数据库

/etc/passwd

/etc/shadow

组账号

禁用账号


OpenSSL简介

OpenSSL是一个功能丰富的安全开源工具箱。

一、主要功能
  • SSL协议实现:包含SSLv2、SSLv3和TLSv1的实现,用于加密通信,保障数据传输安全,防止被恶意攻击者窃听或篡改。

  • 软算法:涵盖大量软算法,包括对称、非对称、摘要算法等。

  • 大数运算与密钥生成:能够进行大数运算,还可进行非对称算法密钥生成。

  • 编解码功能:具备ASN.1编解码库、证书请求(PKCS10)编解码等功能。

二、版本相关
  • 版本3.0的重大改变

    • 许可证变更:从OpenSSL3.0开始,过渡到了Apache License 2.0,旧版本(1.1.1及更早版本)仍适用旧的OpenSSL和SSLeay许可证。

    • 引入Providers概念:Providers聚集在一起提供可用的算法实现,可以编程或通过配置文件指定应用程序使用的Providers,OpenSSL 3.0标配5个不同的Providers,如FIPSProviders(默认禁用,需配置时使用enable - fips选项显式启用),并且通过Providers提供的算法实现只能通过“高级”API访问,“低级”API已废弃,未来版本可能删除,建议开发者使用高级API。

    • 版本管理格式改变:新格式为MAJOR.MINOR.PATCH,旧版本(1.1.1及以下)用版本号后面字母表示补丁级别的方法不再使用,现在用版本号最后数字表示补丁级别,MINOR变化表示可能添加新功能且API和ABI兼容。

三、用法
  • 对称加密:标准命令为enc,常用选项如 - salt(自动插入随机数作为文件内容加密,为默认选项)、- d(解密,解密算法需与加密算法一致,若不指定则使用默认算法)等。例如加密:#openssl enc - e - des3 - a - salt - in fstab - out jiami,解密:#openssl enc - d - des3 - a - salt - in fstab - out jiami

  • 单向加密:标准命令为dgst,使用时需指定相关选项和文件等。

  • 生成密码:使用passwd命令,有多种选项,如 - crypt、- 1、- apr1等。

  • 生成随机数:使用rand命令,可指定输出文件、随机数来源文件、编码格式(如 - base64、- hex)等选项。

  • 密钥证书管理相关操作

    • 私钥与公钥操作:先使用genrsa命令生成私钥,再用rsa命令从私钥中提取公钥,并且要注意控制私钥文件权限,可使用umask命令设置。

    • CA证书和申请证书:创建CA证书和申请证书时,需先查看配置文件(如/etc/pki/tls/openssl.cnf 文件),然后按照步骤进行操作,包括创建相关目录及文件、指明证书开始编号、生成私钥和自签证书(要注意私钥和证书的存放位置与配置文件匹配,生成证书时需填写信息,可指定证书有效期限,默认365天)等。在需要使用证书的主机上,也有一系列生成证书请求的步骤(如生成私钥、生成证书签署请求、发送请求给CA主机、CA颁发证书等),以及吊销证书的相关操作步骤(获取吊销证书的serial和subject信息、对比信息、执行吊销操作、生成吊销编号、更新证书吊销列表等)。

四、与证书相关的注意事项
  • 不建议使用OpenSSL申请自签名证书:从OpenSSL申请的自签名证书不安全,对网站保护作用不大。建议使用专业CA机构签发的证书,CA机构作为受信任的第三方,会验证证书请求者身份,确保只有合法实体获得SSL证书,从而增强信任和安全性、保证加密通信、具有浏览器兼容性、符合行业标准等。目前有很多厂商提供免费证书,如JoySSL提供永久免费(90天免费使用且支持连续签发)的SSL证书,部署于国内的验签服务器3 - 5分钟极速签发,只需简单域名解析验证即可开启https安全协议。

示例
┌──(root㉿kali)-[~/Desktop]
└─# openssl  passwd -1 123 
$1$MV8ACZKS$.2W.PK7cMcsBeejMQ8X/61

概述
openssl passwd -1 是一个用于生成加密密码的命令,通常用于生成符合 crypt 格式的密码哈希。-1 选项表示使用 MD5 算法进行加密。
命令解释
openssl passwd -1 123 这个命令的作用是生成一个基于 MD5 算法的加密密码,密码为 123。
示例输出
执行这个命令后,你会得到一个类似于以下的输出:
$1$randomsalt$encryptedpassword 
这个输出是一个加密后的密码哈希,可以用于配置文件(如 /etc/shadow)中存储用户密码。


                                                                                                      
┌──(root㉿kali)-[~/Desktop]
└─# openssl  passwd -5 123
$5$tICp8jLwD9IeyaYU$Q03Yt9zpX2PepKT2UVV7SlZYfVUZgz3IMf7ILR/GQt8

概述
openssl passwd -5 命令用于生成一个基于 SHA-256 算法的密码哈希。这个命令通常用于生成安全的密码哈希,以便在配置文件或数据库中存储。
命令解析
    openssl: 这是一个用于处理 SSL/TLS 协议的工具,也可以用于生成密码哈希。
    passwd: 这是 openssl 的一个子命令,用于生成密码哈希。
    -5: 这个选项指定使用 SHA-256 算法来生成密码哈希。
    123: 这是你要生成哈希的密码。
软连接和硬连接

在 Linux 文件系统中,软连接(符号链接)和硬连接是两种用于引用文件的方式,但它们之间有一些重要的区别。

软连接(符号链接)
  1. 定义:软连接类似于 Windows 中的快捷方式,它是一个指向另一个文件或目录的文件。

  2. 特点:

    • 软连接有自己的 inode 号和用户数据块。

    • 可以对不存在的文件或目录创建软连接。

    • 软连接可以跨越文件系统。

    • 软连接可以指向文件或目录。

    • 删除原始文件会使软连接失效。

硬连接
  1. 定义:硬连接是多个文件名指向同一个文件数据块的入口。

  2. 特点:

    • 硬连接数相同的 inode 号。

    • 硬连接不支持对目录创建。

    • 硬连接不支持跨分区。

    • 删除原始文件不会影响硬连接的使用,因为硬连接实际上是指向文件数据块的入口。

    • 硬连接可以通过多个文件名访问同一个文件。

创建方式
  • 软连接:ln -s <源文件> <目标文件>

  • 硬连接:ln <源文件> <目标文件>

应用场景
  • 软连接:适用于需要跨文件系统或对目录创建链接的场景。

  • 硬连接:适用于需要在同一文件系统中创建多个文件名指向同一数据块的场景。

总结

  • 硬连接是同一个文件的多个名字,而软连接是不同的文件。

  • 硬连接不支持跨分区和对目录创建,而软连接支持。

  • 硬连接删除原始文件不影响其他硬连接,而软连接依赖于原始文件,删除原始文件会使软连接失效。

 示例
┌──(root㉿kali)-[~/Desktop]
└─# ln -s original.txt symlink.txt

创建符号链接
ln -s original.txt  symlink.txt 是一个在Unix/Linux系统中创建符号链接(也称为软链接)的命令。符号链接是一个特殊的文件,它指向另一个文件或目录。
命令解释
    ln: 这是创建链接的命令。
    -s: 这个选项表示创建的是符号链接(软链接),而不是硬链接。
    original.txt: 这是你要创建链接的原始文件。
    symlink.txt: 这是你创建的符号链接的名称。

                                                                                                     
┌──(root㉿kali)-[~/Desktop]
└─# ln ~/offsec123.txt hardlink.txt

    ln:用于创建链接的命令。
    ~/offsec123.txt :源文件的路径。
    hardlink.txt :目标链接的名称。
 用户账号数据库

在Linux系统中,用户账号信息主要存储在两个文件中:/etc/passwd/etc/shadow

/etc/passwd
  • 用途:存储用户账号的基本信息,包括用户名、用户ID(UID)、组ID(GID)、家目录和登录Shell等。

  • 格式:每一行代表一个用户,字段之间用冒号(:)分隔。具体字段如下:

    • 用户名
    •  密码(通常为x,表示密码存储在/etc/shadow中)
    •  用户ID(UID)
    •  组ID(GID)
    •  用户信息说明栏(通常包含用户的真实姓名等信息)
    •  家目录
    •  登录Shell
root:x:0:0:root:/root:/bin/bash 
  
/etc/shadow
  • 用途:存储用户账号的加密密码和其他与密码相关的安全信息。
  • 格式:每一行代表一个用户,字段之间用冒号(:)分隔。具体字段如下:
    •  用户名
    •  加密密码
    •  最近修改密码的日期
    •  密码不可被修改的天数
    •  密码需要重新修改的天数
    •  密码需要修改期限前的警告天数
    •  密码过期后的账号宽限时间
    •  账号失效日期
    •  保留字段
root:$6$...:18493:0:99999:7:::
      
组账号

组账号信息存储在/etc/group文件中。

/etc/group

  • 用途:存储组账号的信息,包括组名、组ID(GID)和组成员。

  • 格式:每一行代表一个组,字段之间用冒号(:)分隔。具体字段如下:

    •  

      组名

    •  

      组密码(通常为空)

    •  

      组 ID(GID)

    •  

      组成员(用逗号分隔)

禁用账号
在Linux系统中,有多种方法可以禁用用户账号。以下是几种常见的方法:
使用 passwd 命令锁定账号
sudo passwd -l username 
这个命令会锁定指定用户的密码,使其无法登录系统。-l 选项表示锁定密码。

使用 chage 命令设置过期日期
sudo chage -E 1990-01-01 username 
这个命令会将指定用户的账号设置为过期。-E 选项后面跟随的日期表示账号的过期日期。设置为 1990-01-01 这样的日期,通常意味着账号已经过期,用户将无法登录。

使用 passwd 命令查看账号状态
sudo passwd -S username 
这个命令会显示指定用户账号的状态信息,包括账号是否被锁定、密码是否过期等。-S 选项表示显示状态。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI 写作(五)核心技术之文本摘要:分类与应用(5/10)

一、文本摘要&#xff1a;AI 写作的关键技术 文本摘要在 AI 写作中扮演着至关重要的角色。在当今信息爆炸的时代&#xff0c;人们每天都被大量的文本信息所包围&#xff0c;如何快速有效地获取关键信息成为了一个迫切的需求。文本摘要技术正是为了解决这个问题而诞生的&#x…

一个怀旧,俺的第一个共享软件

今天网友说起了 福彩双色球的程序。俺就想起这个来了&#xff0c;这是俺的第一个共享软件&#xff0c;收入大约15000。在当时来说&#xff0c;速度算是最快的。有些地方用了汇编优化&#xff08;题外话&#xff0c;最近俺看到新闻&#xff0c;FFmpeg的作者也用汇编优化 性能提升…

【Agent综述】Agent在多模态交互的应用

note 这个工作收集了多模态游戏、机器人和医疗等领域的数据集&#xff0c;包括Minecraft视频数据、虚拟家庭环境数据和医疗图像数据。利用LLMs和VLMs作为智能体&#xff0c;特别是在游戏、机器人技术和医疗保健等领域这篇论文提出了一种新的Agent AI框架&#xff0c;通过结合大…

Kafka - 启用安全通信和认证机制_SSL + SASL

文章目录 官方资料概述制作kakfa证书1.1 openssl 生成CA1.2 生成server端秘钥对以及证书仓库1.3 CA 签名证书1.4 服务端秘钥库导入签名证书以及CA根证书1.5 生成服务端信任库并导入CA根数据1.6 生成客户端信任库并导入CA根证书 2 配置zookeeper SASL认证2.1 编写zk_server_jass…

STM32H503开发(1)----开发板测试

STM32H503开发----1.开发板测试 概述硬件准备视频教学样品申请源码下载产品特性参考程序生成STM32CUBEMX串口配置LED配置堆栈设置串口重定向主循环演示 概述 STM32H503 & SENSOR是一款基于STM32H5系列微控制器的评估套件。该微控制器采用了40nm工艺制造&#xff0c;具有更…

3.1 > Shell

本节概览 在 上一节 中我们了解了 Linux 的桌面环境&#xff0c;包括 GUI 、 TTY 和 VNC 等的介绍和使用。在本节中将介绍 Shell 是个什么东西&#xff0c;我们到底是如何通过 Shell 来操作计算机的&#xff0c;以及一些常见的 Shell 版本有哪些和它们有什么特点。 目录 本节…

C++ -- 多态与虚函数

多态 概念 多态&#xff08;polymorphishm&#xff09;&#xff1a;通常来说&#xff0c;就是指事物的多种形态。在C中&#xff0c;多态可分为编译时多态&#xff08;静态多态&#xff09;和运行时多态&#xff08;动态多态&#xff09;&#xff0c;这里我们重点讲的是运行时多…

利用游戏引擎的优势

大家好&#xff0c;我是小蜗牛。 在当今快速发展的游戏产业中&#xff0c;选择合适的游戏引擎对开发者来说至关重要。Cocos Creator作为一款功能强大且灵活的游戏引擎&#xff0c;为开发者提供了丰富的工具和资源&#xff0c;使他们能够高效地开发出优秀的游戏。本文将探讨如何…

uniapp配置h5路由模式为history时404

为了不让URL中出现#&#xff0c;让uniapp项目配置h5路由模式为hisory 然而本地好好的&#xff0c;放到服务器上却404了。 解决方法是给nginx配置一个伪静态&#xff1a; location /xxx-html/ {alias /home/nginx_web/xxx_new_html/;try_files $uri $uri/ /xxx-html/index.ht…

架构师备考-概念背诵(软件工程)

软件工程 软件开发生命周期: 软件定义时期:包括可行性研究和详细需求分析过程,任务是确定软件开发工程必须完成的总目标,具体可分成问题定义、可行性研究、需求分析等。软件开发时期:就是软件的设计与实现,可分成概要设计、详细设计、编码、测试等。软件运行和维护:就是…

小白docker入门简介

Dockerfile入门使用分享 一、docker是啥二、镜像仓库三、自定义镜像四、动手做机甲玩偶五、帮我做数学题六、计算功能的写法七、咒语翻译器八、放屁九、解决问题 一、docker是啥 最开始我和你一样&#xff0c;围着镜像、容器、docker的名词团团转&#xff0c;其实没那么复杂。…

一文学习Android中的Property

在 Android 系统中&#xff0c;Property 是一种全局的键值对存储系统&#xff0c;允许不同组件和进程间以轻量级的方式进行数据传递。它主要用于系统配置、状态标识等场景&#xff0c;使得不同进程能够通过属性的设置或获取来通信。property 的核心特性是快速、高效&#xff0…

node.js安装配置(Windows)

1、下载 CNPM Binaries Mirror 2、安装 3、验证 win R 进入cmd 4、配置环境变量 4.1、创建两个文件夹 4.2、安装目录进入cmd(配置全局属性) 配置两个命令&#xff1a; npm config set prefix "D:\liyunqing\nodejs\node_global"npm config set cache "D:\l…

mp3格式音频怎么做成二维码?扫码获取音频文件的制作方法

随着二维码的广泛使用&#xff0c;现在很多内容都会通过生成二维码的方式来传输内容&#xff0c;通过这种方式可以更快捷的实现内容分享&#xff0c;简化其他人获取内容的流程&#xff0c;有效提高效率。音频是目前常见的一种内容分享方式&#xff0c;比如录音、听力、音乐等类…

【css flex 多行均分有间隙布局】

小程序、web均可使用&#xff0c;我当前用的是小程序 <view class"job_tab_container flex_between"><view class"job_tab_item"></view><view class"job_tab_item"></view><view class"job_tab_item&qu…

单臂路由技术,eNSP实验讲解

单臂路由技术&#xff0c;eNSP实验讲解 一、简要介绍1、概念2、工作原理3、优点4、缺点5、应用场景举例 二、eNSP仿真实验1、步骤一&#xff1a;2、步骤二&#xff1a;3、步骤三&#xff1a;4、步骤四&#xff1a; 三、总结。 一、简要介绍 1、概念 单臂路由&#xff08;Rout…

微服务day03

导入黑马商城项目 创建Mysql服务 由于已有相关项目则要关闭DockerComponent中的已开启的项目 [rootserver02 ~]# docker compose down WARN[0000] /root/docker-compose.yml: version is obsolete [] Running 4/4✔ Container nginx Removed …

Mac如何实现最简单的随时监测实时运行状态的方法

Mac book有着不同于Windows的设计逻辑与交互设计&#xff0c;使得Mac book有着非常棒的使用体验&#xff0c;但是在Mac电脑的使用时间过长时&#xff0c;电脑也会出现响应速度变慢或应用程序崩溃的情况&#xff0c;当发生的时候却不知道什么原因导致的&#xff0c;想要查询电脑…

无需云端!国产开源大语言模型llama.cpp本地实战

作者&#xff1a;高瑞冬 注&#xff1a; 文章是2023年底写的。代码和运行方式虽有些旧&#xff0c;但基本原理一样。现在出来ollama&#xff0c;vllm等工具框架用来本地部署大模型&#xff0c;顺便更新一下。 [TOC](最后有彩蛋) 背景 上海人工智能实验室与商汤科技…

初始JavaEE篇 —— 网络编程(2):了解套接字,从0到1实现回显服务器

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a;JavaEE 目录 TCP 与 UDP Socket套接字 UDP TCP 网络基础知识 在一篇文章中&#xff0c;我们了解了基础的网络知识&#xff0c;网络的出…