加密/解密
信息传递中的风险
- 技术手段
- 非技术手段
加密的方式
- 对称加密:加密和解密使用相同的密钥
- 非对称加密:加密和解密使用不同的密钥(密钥对)
密钥对:公钥(加密)和私钥(解密)
保护信息的完整性
-
信息摘要:基于输入的信息生成长度较短、位数固定的散列值
-
完整性校验:md5sum
-
算法:加解密文件时的计算规则
常见的加密算法
- 对称加密:
DES
AES - 非对称加密:
RSA
DSA
gpg软件介绍
数据加解密
、数字签名
工具软件
gpg --version # 查看版本信息
1)gpg对称加解密
gpg -c test.txt # 加密
gpg -d test.txt.gpg > test.txt # 解密
2)gpg非对称加解密(A给B用户传加密文件)
1.B用户创建密钥对
# 创建密钥对前可以把 /dev/random 替换为 /dev/urandom,以提高随机数生成速度
[root@B] mv /dev/random /dev/random.bak
[root@B] ln -s /dev/urandom /dev/random
[root@B] gpg --gen-key # 生成密钥对,根据提示完成操作
[root@B] ls ~/.gnupg/
pubring.gpg # 公钥
secring.gpg # 私钥
2.B导出公钥
[root@B] gpg --list-keys # 查看密钥信息
userb (this is my gpg) <[email protected]> # 真实姓名(描述信息)<邮箱>
[root@B] gpg -a --export userb > /tmp/userb.pub # 导出,userb为真实姓名,文件必须以.pub结尾
3.A导入公钥
下载B的公钥userb.pub
[root@A] gpg --import /tmp/userb.pub
4.A加密文件
[root@A] gpg -e -r userb ~/test.txt # -r为指定用户(真实姓名)
[root@A] scp ~/test.txt.gpg B@IP:
5.B解密文件
[root@B] gpg -d ~/test.txt.gpg > test.txt # 解密,需要输入保护私钥的密码
3)gpg数字签名(验证文件完整性)
软件签名与验证过程
- 软件官方以
私钥
对软件包执行数字签名 - 用户下载软件包、软件官方的公钥、签名文件
- 以官方
公钥
验证软件包签名,确保数据来源正确
[root@B] gpg -b test.txt #建立分离式签名文件
test.txt.sig #签名文件
[root@B] scp userb.pub test.txt test.txt.sig A@IP:
[root@A] gpg --import userb.pub #导入公钥
[root@A] gpg --verify test.txt.sig #验证签名
AIDE入侵检测系统
] yum -y install aide
] vim /etc/aide.conf
3 @@define DBDIR /var/lib/aide #数据库目录
4 @@define LOGDIR /var/log/aide #日志目录
7 database=file:@@{DBDIR}/aide.db.gz #数据库文件名
26-93行为希望检查的项目
99行以后为预设的检测规则
规则书写:
目录名(文件名) 检查规则
/root/ FIPSR
] aide --init # 初始化,根据配置文件生成检测文件
] mv /var/lib/aide/aide.db.new.gz /root/ # 备份文件
] cp ~/aide.db.new.gz /var/lib/aide/aide.db.gz # 检查时需要与该文件进行比对
] aide --check #查看是否有入侵
Summary:
Total number of files: 7 #文件总数
Added files: 3 #新增的文件数
Removed files: 0 #删除的文件数
Changed files: 1 #改变的文件数
扫描与抓包
nmap 扫描
tcpdump 抓包
为什么要扫描
以获取一些公开/非公开的信息为目的
- 检测潜在的风险
- 查找可攻击目标
- 收集设备/主机/系统/软件信息
- 发现可利用的安全漏洞
典型的扫描方式和工具
Scan,主动嗅探
Sniff,被动监听/嗅探
Capture,数据包捕获
常见的安全分析工具
扫描:nmap
抓包:tcpdump/WireShark
1)扫描nmap
nmap支持多种探测技术
- ping 扫描
- 多端口扫描
- TCP/IP指纹校验
yum -y install nmap
man nmap #中文帮助
命令格式:nmap [扫描类型] [选项] <目标主机(主机名或者ip地址)>
nmap 192.168.4.200
常用的扫描类型:
-sS TCP SYN扫描(半开)
-sT TCP 连接扫描(全开)
-sU UDP扫描
-sP ICMP扫描(ping),可以同时扫描多台机器
-A 目标系统全面分析
nmap -sP 192.168.4.1-254 #扫描4网段
nmap -sP 192.168.4.10-20
nmap -sP 192.168.4.51,52,53
nmap 192.168.4.52 #默认TCP扫描
nmap -sS -n -p 80,3306,6379,22 192.168.4.52 # -n不做dns解析,-p指定端口
nmap -sS -n -p 22-110 192.168.4.52
2)抓包tcpdump
yum -y install tcpdump
tcpdump [选项] [过滤条件] #选项控制抓包方式,过滤条件控制抓什么样的包
选项:
-i # 指定监控的网络接口
-A # 转换为ACSII码,方便阅读
-w # 将数据包信息保存到指定文件
-r # 从指定文件读取抓包信息
-c # 定义抓包个数
tcpdump -i ens33 -A -w ./1.cap # ens33为网卡名称,抓包文件习惯以.cap结尾
tcpdump -r 1.cap -A
tcpdump -c 2 -A -i ens33
过滤条件:
- 类型:host、net、port、portrange
- 方向:src、dst (目标地址|源地址)
- 协议:tcp、udp、ip、wlan、arp、…
- 多个条件组合:and、or、not
tcpdump -i ens33 icmp
tcpdump -i ens33 icmp and host 192.168.4.51 # 检查这个IP是否ping我
# 内容:
# 时间 源ip地址 目标地址 协议 ...
tcpdump -i ens33 tcp dst port 22 and host 192.168.4.53 # tcp协议,目标端口为22,ip为192.168.4.53
tcpdump -i ens33 tcp port 80 or port 3306 # tco协议,目标端口80和3306
tcpdump -i ens33 -w ~/1.cap icmp and src host 192.168.4.1 # 协议icmp,源ip192.168.4.1,抓包数据写入文件1.cap
1.ftp抓包
tcpdump -w ftp.cap -A -i ens33 tcp port 21 # 数据未加密时,抓包可以获取用户名和密码等重要数据
# 命令行访问ftp方法:
# yum -y install ftp # 命令行访问ftp工具
# ftp 192.168.4.53
# 输入用户名和密码登录
2.pop3抓包
tcpdump -A -i ens33 tcp port 110
3)wireshark协议分析器
wireshark协议分析器,需要图形界面,主要用来分析抓包数据
] yum -y install wireshark wireshark-gnome
] wireshark # 启动wireshark