news 2026/7/10 2:49:18

加密安全与时间同步

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
加密安全与时间同步

加密、安全与时间同步

在这个网络安全事故频出的时代,搞运维的不懂加密,就像开车的不系安全带。今天这篇文章,把加密、CA、SSH、sudo、Chrony 这些运维必备的安全技能,用讲故事的方式串起来。


前言:安全这件事,为啥要你管?

你可能想:我就是个运维,安全不是安全团队的事吗?

错。运维是系统安全的第一道防线

  • SSH 免密配不对 → 服务器被登录

  • NTP 时间不准 → 证书验证失败,业务挂了

  • 密码明文传输 → 被中间人一把梭

  • sudo 配不好 → 普通用户搞瘫生产环境

所以这节课学的,不是"安全理论",而是你每天都要用的保命技能


一、密码学三兄弟:对称、非对称、单向

🧑‍🤝‍🧑 对称加密 — 一把钥匙开一把锁

原理:加密用啥密钥,解密也用啥密钥。

明文 + 密钥 → 加密 → 密文 密文 + 密钥 → 解密 → 明文

类比:你和朋友共用一个保险箱,谁手里都有那把钥匙。锁门开门都用同一把。

常见算法:DES、3DES、AES(当前主流)

优点:速度快,适合加密大量数据缺点:密钥怎么安全地交给对方?这是个大问题——你不可能跟每个人都面对面交换钥匙。


👫 非对称加密 — 公钥锁、私钥开

核心:密钥成对出现,公钥公开,私钥自留

两把钥匙,两种玩法:

玩法操作保证什么类比
公钥加密→私钥解密别人用你公钥加密,你私钥解密数据机密性(只有你能看)邮箱口是公开的,钥匙在你手里
私钥加密→公钥解密你用私钥签名,别人用公钥验证身份真实性(确认是你发的)你在合同上签了名,谁都能对笔迹

常见算法:RSA、DSA、ECC

致命伤:速度慢。加密1MB数据比对称加密慢几个数量级,所以一般不直接用来加密大数据。

实际做法:让非对称加密来保护对称密钥,让对称密钥来保护数据。两个兄弟配合干活。


🔒 单向加密(哈希) — 指纹识别

特性

  • 任意长度输入,固定长度输出

  • 改一个字符,结果天翻地覆(雪崩效应

  • 不可逆——你无法从指纹反推出原数据

# 实战命令 md5sum /etc/fstab # 128位指纹 sha256sum /etc/fstab # 256位指纹,更安全 sha512sum /etc/fstab # 512位指纹,更更安全

类比:就像人的指纹——你可以从我手指取指纹,但不可能从指纹还原出我整个人。只要数据被改了一丁点,指纹就会大变。


🧩 三个兄弟联合作战

综合加密流程(既安全又能验明正身):

A 发数据给 B: ​ ① A 对原始数据计算哈希值 → 得到"指纹" ② A 用自己的私钥加密这个指纹 → 得到"数字签名" ③ A 生成一个临时对称密钥 → 加密"数字签名+原始数据" ④ A 用 B 的公钥加密这个对称密钥 ​ → 发送出去:【B公钥加密的对称密钥】+【对称密钥加密的数据包】 ​ B 收到后反向操作: ① B 用自己的私钥解密 → 得到对称密钥 ② 用对称密钥解密 → 得到"数字签名+原始数据" ③ 用 A 的公钥解密数字签名 → 得到原始哈希值 ④ 对原始数据重新算哈希 → 对比两个哈希值 ⑤ 一致 → 数据完整 + 身份确认

这一套组合拳,就是HTTPS 安全通信的底层逻辑


🤝 DH 密钥交换:在"裸奔"的网络上建立秘密

Diffie-Hellman解决了一个看似不可能的问题:两个人从没接触过,如何在完全公开的信道上,协商出一个只有他们俩知道的秘密?

核心是利用数学中的离散对数难题——就算三个数在公网上传输,想从其中两个反推出第三个,计算量大到无法实现。

你现在每一次 HTTPS 访问,背后都在发生 DH 交换。


二、CA 证书:互联网世界的"身份证"

为啥需要 CA?

非对称加密有个死穴:你怎么确定你手里那个"公钥"真的是对方的?

万一中间人把他自己的公钥塞给你呢?

这就是中间人攻击(MITM)——你以为是跟银行通信,其实对面是个骗子,他转发你的数据,两头骗。

CA(证书颁发机构)就是来解决这个问题的——它像公安局,给服务器发"身份证"(证书)。

自建 CA 实操(手把手)

CA 的逻辑很简单:找一个大家都信任的机构,给服务器签名认证。

# 第1步:CA 自己先搞一套身份 openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048 ​ # 第2步:CA 自签名(自己给自己发身份证) openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem \ -days 3650 -out /etc/pki/CA/cacert.pem # 会问:国家(CN)、省份、城市、公司、部门、Common Name ​ # 第3步:服务端生成私钥和签名请求 openssl genrsa -out /data/test.key 2048 openssl req -new -key /data/test.key -out /data/test.csr ​ # 第4步:CA 给服务端签名 touch /etc/pki/CA/index.txt echo 0F > /etc/pki/CA/serial openssl ca -in /data/test.csr -out /etc/pki/CA/certs/test.crt -days 100

看证书信息

openssl x509 -in test.crt -text -noout

证书吊销(开除)

如果服务器的私钥泄露了,证书就得作废:

openssl ca -revoke /etc/pki/CA/certs/test.crt # 吊销 echo 01 > /etc/pki/CA/crlnumber # 第一次需要 openssl ca -gencrl -out /etc/pki/CA/crl.pem # 生成吊销列表

PEM vs CRT:证书的"包装"问题

格式长啥样特点
PEMBase64文本,-----BEGIN开头可包含证书、私钥、证书链
CRTPEM 或 DER(二进制)纯X.509证书,含公钥+身份信息

转换命令备忘:

# CRT → PEM openssl x509 -in cert.crt -outform PEM -out cert.pem ​ # DER格式的CRT → PEM openssl x509 -inform DER -in cert.crt -outform PEM -out cert.pem

HTTPS = HTTP + SSL/TLS

TLS 握手(简化版):

① 客户端说:"我来了,我能用的加密方式有这些……" ② 服务端返回:"选好了,这是我的证书,你看看" ③ 客户端验证证书(CA签名有效吗?过期了吗?域名对得上吗?) ④ 密钥交换(DH 走一波) ⑤ 开始加密通信

一句话总结:证书让你确认"对面是真的",加密让你和对面说的话"别人听不懂"。


三、OpenSSL 工具箱

日常运维够用的几条命令:

openssl genrsa -out my.key 2048 # 生成RSA私钥 openssl rsa -in my.key -pubout -out my.pub # 从私钥提取公钥 openssl req -new -key my.key -out my.csr # 生成证书签名请求 openssl x509 -in cert.crt -text -noout # 查看证书内容 echo -n "hello" | openssl base64 # Base64编码 echo -n "aGVsbG8=" | openssl base64 -d # Base64解码

subj 参数速记:

  • CN(Common Name)——域名或用户名,最重要的字段

  • O(Organization)——公司/组织名


四、SSH:运维人的"另一双手"

4.1 SSH 是啥?

说人话:安全的远程登录工具。没有它,你就得跑到机房插显示器键盘。

  • 默认端口:TCP 22

  • 当前主流版本:SSH2.0

  • 软件实现:OpenSSH(CentOS/Ubuntu默认安装)

4.2 SSH 通信原理(能看懂就行)

① 客户端连过来 ② 服务端丢过来:"这是我公钥,这是本次会话ID" ③ 客户端生成一对临时密钥(用完就扔,不留文件) ④ 客户端用自己的临时公钥异或会话ID → 算出一个值,用服务端公钥加密发过去 ⑤ 服务端用私钥解密 → 算出客户端的临时公钥 ⑥ 双方从此都知道对方的公钥,后面的通信全部加密

类比:就像两方在公共场所对暗号——先互相确认身份,然后再聊机密内容。

4.3 远程登录

# 基础操作 ssh root@192.168.1.100 ssh -p 2222 root@192.168.1.100 # 指定端口 ssh root@192.168.1.100 "hostname -I" # 远程执行命令

4.4 免密登录(密钥认证)— 运维必备

为什么要配?你写脚本批量管理几十台服务器,每台都输密码?神经病啊。

流程(理解即可):

① 本地生成密钥对(ssh-keygen) ② 把公钥复制到远程服务器(ssh-copy-id) ③ 以后登录,服务器用公钥加密随机字符串,客户端用私钥解密发回 ④ 匹配 → 放行

实战:

ssh-keygen # 回车到底,生成 ~/.ssh/id_rsa + id_rsa.pub ssh-copy-id root@10.0.0.13 # 传公钥到远端,需要输入一次密码 ssh root@10.0.0.13 # 以后直接进,不用密码

4.5 文件传输

SCP — 临时传个文件
# 本地→远程(推) scp test.txt root@10.0.0.13:/tmp/ # 远程→本地(拉) scp root@10.0.0.13:/tmp/test.txt ./ # 传目录加 -r scp -r /backup root@10.0.0.13:/opt/
rsync — 同步大杀器

和 SCP 最大的区别:rsync 只传差异部分。

# 第一次:全量传输 rsync -av /var/log/ root@10.0.0.13:/backup/log/ # 第二次:只传新增和变化的部分(秒级完成) rsync -av /var/log/ root@10.0.0.13:/backup/log/

常用选项:

选项作用
-a归档模式,保留权限/时间等属性
-v显示详细信息
-z压缩传输
--delete删除目标端多余的文件
-n试运行,不真的传(先看看会有什么变化)

路径末尾的/是个大坑:

rsync -av /root/0525 /tmp/ # 复制 0525 目录本身 rsync -av /root/0525/ /tmp/ # 复制 0525 里的所有内容

选型建议:临时传一两个文件用 SCP,频繁备份/同步用 rsync。

4.6 sshpass — 给脚本里塞密码(不推荐但有时候不得不用)

yum install sshpass # 安装 # 三种方式指定密码 sshpass -p '123456' ssh root@10.0.0.13 "hostname" sshpass -f pwd.txt ssh root@10.0.0.13 "hostname" export SSHPASS='123456'; sshpass -e ssh root@10.0.0.13

注意:把密码明文写在命令行里不安全,生产环境还是配密钥认证比较好。


五、sudo:给普通用户"临时开个后门"

5.1 理念

Linux 的安全原则是最小权限——平时用普通用户干活,需要管理员权限时sudo临时借一下。

5.2 配置文件

visudo # 编辑 /etc/sudoers,语法错了会提示,不会让你锁死系统

格式

用户名|%组名 主机名=(以谁的身份) 标签: 命令列表

常见场景:

# ① 给 mage 全部root权限(要输入密码) mage ALL=(ALL) ALL # ② 给 mage 全部root权限(不要密码) mage ALL=(ALL) NOPASSWD: ALL # ③ 给 wheel 组所有用户root权限 %wheel ALL=(ALL) ALL # ④ 只允许 mage 重启服务和系统 mage ALL=(ALL) /usr/bin/systemctl, /usr/bin/reboot # ⑤ 允许 mage 以 sswang 的身份执行命令 mage ALL=(sswang) ALL

5.3 有效期

默认 5 分钟不用重新输密码——5分钟后又要再输一次。可以用NOPASSWD:跳过这个限制。


六、时间同步:服务器时间的"对表"

6.1 为啥时间这么重要?

你以为时间不准就是"显示错了"?看看这些场景:

  • 数据库:两个节点时间差 30 秒 → 数据写入顺序错乱

  • SSL 证书:证书有效期的判断依据是本机时间 → 时间不对,证书直接提示过期

  • 日志分析:A 服务器说 10:00 出的事,B 服务器说 10:05 → 根本没法排查

  • Kerberos 认证:时间差超过 5 分钟直接认证失败

6.2 Chrony vs systemd-timesyncd

Chronysystemd-timesyncd
定位全功能 NTP 实现轻量级 NTP 客户端
精度高(微秒级)一般(毫秒级)
能做 NTP 服务器✅ 可以❌ 只能当客户端
适合谁服务器、集群环境桌面电脑、笔记本

一句话:生产环境用Chrony,桌面环境用 timesyncd 够了。

6.3 Chrony 实操

# 配置文件:/etc/chrony/chrony.conf # 配置上游时间服务器(选一个离你近的) pool ntp.aliyun.com iburst maxsources 4 # 或 server ntp.aliyun.com iburst # 配置为本网段提供时间服务(自建NTP服务器时) allow 10.0.0.0/24 # 离线时仍可提供时间服务 local stratum 10 # 重启并验证 systemctl restart chronyd.service chronyc sources # * 开头表示已同步 chronyc sourcestats

源状态怎么看?

^* ntp.aliyun.com → * 已同步,^ 是NTP服务器(最佳状态) ^- xxx → 被排除,但可用 ^? xxx → 没连上 ^x xxx → 出错了

6.4 自建 NTP 时间服务器

场景:内网服务器不能上外网,但所有机器时间必须一致。

服务端(能上外网的机器):

# /etc/chrony/chrony.conf server ntp.aliyun.com iburst allow 10.0.0.0/24 local stratum 10 systemctl restart chronyd.service

客户端(内网机器):

# Rocky vim /etc/chrony.conf # pool 2.rocky.pool.ntp.org iburst ← 注释掉 server 10.0.0.13 iburst ← 指向内网NTP服务器 # Ubuntu vim /etc/chrony/chrony.conf server 10.0.0.13 iburst systemctl restart chronyd.service chronyc -n sources

七、常见安全攻击(面试会用上)

搞运维不一定要会攻击,但一定要知道攻击怎么发生的,才能去防御。

攻击类型通俗解释简单防御
DDoS一群僵尸电脑同时访问你的网站,把你带宽打满CDN、限流、WAF
XSS跨站脚本在评论区写<script>alert('你被黑了')</script>输入过滤、输出转义
SQL注入登录框里输入' OR 1=1 --绕过密码参数化查询、过滤特殊字符
中间人攻击骗子坐在你和银行中间,两头传话两头骗HTTPS + 证书验证
暴力破解不断试密码,直到蒙对限制登录次数、fail2ban
会话劫持偷你的 Cookie 冒充你登录HTTPS、Session 绑定IP

八、PAM:Linux 认证的"插件系统"(扩展了解)

8.1 概念

PAM(Pluggable Authentication Modules)——把"认证"这件事做成插件式。

原本的 Linux 认证方式是硬编码的——每个程序自己管认证,你要改就得改程序。PAM 把认证抽出来,变成可配置的模块。

8.2 配置格式

配置文件:/etc/pam.d/服务名(如 sshd、login、sudo) 模块文件:/lib64/security/*.so

四字段格式:

type control module-path arguments

8.3 type(模块类型)

type管什么
auth你是谁?(密码对不对)
account你现在能不能用?(时间限制、账号过期?)
password密码够不够复杂?
session登录后要干啥?(记录日志、设置资源限制)

8.4 control(控制标志)

标志作用类比
required必须通过,不通过最终失败门禁卡+指纹,哪个不过都不行
requisite必须通过,不通过立即失败保安一看你没工牌,直接拦下,不等你刷卡
sufficient通过了就放行你有 VIP 卡就直接进
optional过不过无所谓顺手记个名字而已

8.5 两个实用模块

pam_nologin.so

touch /etc/nologin # 创建这个文件后,普通用户无法登录(root 除外)

pam_limits.so — 限制用户资源

# /etc/security/limits.conf * soft nofile 1024 # 所有用户,打开文件数软限制 * hard nproc 10 # 所有用户,进程数硬限制 # 查看当前限制 ulimit -a ulimit -n 10240 # 临时修改

结语

这一章的内容看着散,但其实有一条主线

安全 = 加密 × 认证 × 授权 × 时间

环节对应技术一句话
加密对称/非对称/哈希让别人看不懂你的数据
认证CA证书、SSH密钥证明"你真的是你"
授权sudo给你钥匙也得告诉你哪个门能开
时间Chrony大家戴同一块表,不然对不上话

以后你会发现,加密原理、证书签发、SSH配置、时间同步——这些不是你学完就忘的"理论课",而是你每天排查问题、部署系统、写自动化脚本时反复用到的看家本领。

动手建议:拿两台虚拟机,一台做 CA 服务器给另一台签发证书,再配 SSH 免密 + Chrony 时间同步,一条龙走一遍,比你背三遍笔记都管用。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/10 2:48:23

AI重塑IT招聘格局:印度数据揭示行业转型与人才需求变化

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 最近一份关于印度IT行业的数据引起了广泛关注:AI相关岗位招聘增长了16%,而整体IT招聘却下降了3%。这个看似矛盾…

作者头像 李华
网站建设 2026/7/10 2:46:34

MATLAB R2020a+ exportgraphics 函数实战:PNG/PDF/SVG 3格式高清导出与避坑指南

MATLAB R2020a exportgraphics 函数实战:PNG/PDF/SVG 3格式高清导出与避坑指南科研绘图与论文写作中,图像导出质量直接影响成果呈现效果。MATLAB R2020a引入的exportgraphics函数彻底改变了传统导出方式,为工程师和科研人员提供了更高效、更精…

作者头像 李华
网站建设 2026/7/10 2:45:03

0.1uF与10uF电容选型对比:基于3张频率特性曲线图的去耦策略

0.1uF与10uF电容选型对比:基于3张频率特性曲线图的去耦策略 在高速电路设计中,电源完整性如同建筑物的地基,看似不起眼却决定了整个系统的稳定性。当数字芯片在纳秒级切换状态时,瞬间的电流需求会在电源网络上引发高频噪声&#x…

作者头像 李华