1.安全攻击
1.DDOS攻击
DoS 攻击,即分布式拒绝服务( Distributed Denial of Service )攻击,是一种恶意的网络攻击手段,旨在通过耗尽目标系统的资源或带宽,使其无法正常提供服务。
2.跨站脚本攻
站脚本攻击( Cross - Site Scripting ,简称 XSS )是一种常见的网络安全漏洞,攻击者通过在目标网站中注入恶意脚本,来获取用户的敏感信息或执行其他恶意操作。
3.SQL注入
SQL 注入是一种常见的网络安全攻击技术,攻击者通过在用户输入或其他数据源中注入恶意的 SQL 语句,以篡改或窃取数据库中的信息。
4.中间人攻击
中间人攻击( Man - in - the - Middle Attack ,简称 MITM )是一种常见的网络攻击方式,攻击者通过拦截、篡改通信双方的信息来获取敏感数据或进行其他恶意操作。
5.暴力破解
暴力破解是一种网络攻击手段,攻击者通过不断尝试各种可能的字符组合,来猜测用户的密码、密钥或其他认证信息,以获取对系统、账户或加密数据的访问权限。
6.会话劫持
会话劫持是一种网络攻击技术,攻击者通过获取用户的会话标识,从而冒充合法用户与服务器进行交互,获取敏感信息或执行恶意操作。
7.其他攻击方式
缓冲区溢出,端口扫描.....
2.加密算法
加密算法主要分为三大类:对称加密算法、非对称加密算法和单向加密(也称为不可逆加密算法)。
特点
对称加密算法:加密和解密使用同一个密钥
非对称加密算法: 采用配对的公钥 (public key) 和私钥 (secret key) 对数据进行加解密操作
公钥:加密数据,公开可以被很多人知道。
私钥:解密数据,仅给自己使用。
单向加密算法:将任意数据缩小成固定大小的 “ 指纹 ” ,称为 digest ,即摘要,不可逆
md5 以 16 进制显示 , 32 * 4 = 128
md5加密用法:md5sum+文件
sha加密用法:sha1sum+文件 sha256sum+文件 sha512sum+文件
3.CA和证书
CA 认证,即证书 颁发机构认证,是一种通过数字证书来验证通信双方身份的技术。在 Linux 系统中, CA 认证通常依赖于 OpenSSL 库来实现加密和签名功能。数字证书由 CA 机构颁发,用于证明证书持有者的身份,并加密网络通信。注: CA 机构的公钥已内置在操作系统中。
证书的作用:身份验证,数据加密,数据签名。
1.CA证书的加密流程
环境准备:使用OpenSSL命令生成私钥和公钥。私钥用于签名,公钥用于验证签名。
获取证书两种方法
自签名的证书: 自已签发自己的公钥
使用证书授权机构: 1 生成证书请求 csr ; 2 将证书请求 csr 发送给 CA ; 3 CA 颁发签名证书
问题1 :为什么所有的主机都知道 RootCA的信息? 因为电脑上已经内置了很多根CA
问题2 :RootCA的证书谁签证? 自己给自己颁发
2.SSL/TLS
SSL ( Secure Sockets Layer ):安全套接层协议
TLS ( Transport Layer Security ):传输层安全协议
关系:TLS 1.0基于SSL 3.0制定,是SSL 3.0的后续版本 。现代应用多使用TLS ,SSL逐渐被弃用
主要功能:数据加密,身份验证,数据完整性
3.HTPPS
HTTPS 协议:就是 “ HTTP 协议 ” 和 “ SSL / TLS 协议 ”的组合。对 http 协议的文本数据进行加密处理后,成为二进制形式传输。
4.OpenSSL
Openssl 功能主要包括对称加密( DES 、 3D ES 、 AES 等),非对称加密( RSA ),散列( MD5 、 SHA1 等)以及证书的相关操作(创建、申请、颁发、吊销等)。
OpenSSL 提供了多种加密算法,可以与 Base64 编码结合使用,实现数据的加密和保护。
官网 : https :// www.openssl.org /
源码 : https :// github.com / openssl / openssl
关于Base64编码
echo hahaha | base64 会得到结果:aGFoYWhhCg==
Cg== 是怎么来的 ?
Base64 按 6 位一组编码
echo hahaha 实际上 hahaha 后面跟了一个换行符
\ n 是显式指定的换行符, cat - A 会将其显示为 $
echo aGFoYWhhCg== | base64 -d 解密ASII码的内容
对于很长的编码可以用下面的工具
编解码工具 - https://www.toolhelper.cn/
openssl命令
openssl help 查看帮助
openssl help md5 获 取指定命令帮助
摘要算法
openssl sha512 /etc/shadow 等于命令 sha512sum /etc/shadow
密码生成
openssl passwd 123456
随机数生成
openssl rand 10 #二进制输出,会出现乱码
openssl rand -base64 12 #生成12字节随机原始数据
openssl rand -hex 10 #生成10字节随机数据,并用十六进制(hex)编码输出。
openssl rand -base64 10 | head -c10 #生 成随机 10 位长度密码
密钥对
1- 1 生成 RSA 私钥 openssl genrsa - out private.pem 2048
2048 指定了密钥的位数,可以根据需要调整(如 1024 、 4096 等)。私钥文件通常以 .pem 或 .key 。
1 - 2 从私钥中提取公钥 openssl rsa - pubout - in private.pem - out public.pem
OpenSSL 的公钥和私钥是相互独立又相互关联的两个密钥,不存在一方包含另一方的情况。
生成秘钥实践
openssl genrsa -out test.key # 生成私钥
openssl rsa -pubout -in test.key -out test.pubkey # 从指定私钥提取出公钥
ll -a test* # 可以看到 除 了公钥是 644 ,其他的是 600 权限
生成密钥时进行加密 -des3:用 Triple DES 算法加密私钥(解密 / 使用私钥时需密码)
openssl genrsa -out test2.key -des3 -passout pass:"123456" # 指定加密算法,指定口令
openssl rsa -in test2.key -out test2.key2 #解 密加密的私钥
openssl rsa -in test2.key -pubout -out test2.pubkey # 提取公钥要求输入密码
5.数字签名
数字签名 = 非对称加密 + 哈希算法
数字签名是保障网络安全的基石技术,通过 “私钥签名、公钥验证” 的机制,解决了 身份确认、 数据防篡改和 行为不可抵赖三大核心问题
6.CA证书
生成证书简单实践
mkdir -pv /etc/pki/CA/{certs,crl,newcerts,private} #创建相关目录
cd /etc/pki/CA/;openssl genrsa -out private/cakey.pem 2048 #生成私钥
openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days 3650 -out /etc/pki/CA/cacert.pem #生成CA自签名证书
mkdir /data;openssl genrsa -out /data/test.key 2048 #为 需要使用证书的主机生成生成私钥
openssl req -new -key /data/test.key -out /data/test.csr #~ 使用证书的主机生成证书申请文件
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 /etc/pki/CA/certs/test.crt -noout -serial - subject
openssl ca -revoke /etc/pki/CA/certs/test.crt
echo 01 > /etc/pki/CA/crlnumber #指 定第一个吊销证书的编号
openssl ca -gencrl -out /etc/pki/CA/crl.pem #更新证书吊销列表
openssl crl -in /etc/pki/CA/crl.pem -noout -text #查 看 crl 文件
7.ssh服务
为什么第一次连接的时候有 yes ,后面就不会有了?
grep ask /etc/ssh/ssh_config 得出来后面的结果# StrictHostKeyChecking ask
问:不想连接的时候,输入 yes ,怎么办?
ssh -o StrictHostKeyChecking=no 主机IP
4.文件同步
scp & rsync
scp 命令在复制文件时是全量复制,不管文件有没有改动,都是复制,速度慢,消耗资源
rsync 工具可以基于 ssh 和 rsync 协议实现高效率的远程系统之间复制文件,使用安全的 shell 连接做为传输方式,比 scp 更快,基于增量数据同步,即只复制两方不同的文件,此工具来自于 rsync 包。若要用需要安装rsync包
两者区别
1. scp 的典型场景:一次性传输:如临时拷贝配置文件、脚本到远程服务器。 安全性优先:必须通过 SSH 加密通道传输(如敏感数据)。 简单易用:无需复杂配置,直接传输文件。
2. rsync 的典型场景:大规模文件同步:如备份服务器数据、镜像网站目录。 频繁更新的文件:仅同步变化部分(如开发环境代码同步)。 精细化控制:需保留完整文件属性或排除特定文件。
sshpass 用于非交互 SSH 的密码验证 此项需要安装sshpass包
sshpass 在远程执行的时候,依赖于 known_hosts 文件里面的公钥记录信息,否则无法使用
sshpass -p 123456 ssh 主机IP hostname -I
多机互通
ssh-keygen
ssh-copy-id 127.1
scp - r .ssh 主机IP :/ root /
5.Chrony
禁用系统上的 NTP(Network Time Protocol,网络时间协议)服务
timedatectl set-ntp 0 # 1 是启用NTP服务
date -s "+10 year" #将时间调整为10年以后
自动" 对表 "
apt install ntpdate rdate chrony -y #ubuntu安装软件
yum install ntpsec chrony -y #redhat安装软件
date -s "+10 years" #前提条件
ntpdate ntp.aliyun.com #方式1
ntpdate -s -u time.nist.gov #方式2
date #可以看到时间均恢复到正常的状态
timedatectl show
chronyc 进入用户交互界面
vim /etc/chrony/chrony.conf #修改配置文件
6.自建时间服务器

定制自建时间服务器配置(10.0.0.13)
vim /etc/chrony/chrony.conf
server ntp.aliyun.com iburst # 这是之前配置好的
allow 10.0.0.0 / 24 # 允许 10.0.0 网段的主机将本机作为时间同步服务器
local stratum 10 # 允许本机在不能与外网同步的情况下,还能提供服务
systemctl restart chronyd.service #重启服务
同理后两台主机的配置如下(10.0.0.12 10.0.0.15) 保证高可用
vim /etc/chrony.conf
# pool 2.rocky.pool.ntp.org iburst # 禁用默认的
server 10.0.0.13 iburst # 启用自定义的
chronyc -n sources #查看时间服务器
最后在10.0.0.13主机进行查看
chronyc -n clients #服务器上进行查看