- 信息传递中的风险
手段:
技术:黑客
非技术:拔网线
社会工程学:一起喝酒喝醉了就i把密码说了
一、加/解密
发送方:加密(明文-----> 密文)
接收方:解密(密文------>明文)
- 加密目的及方式:
确保数据的机密性
对称加密:加/解密用同一个密钥
算法:DES、AES
非对称加密:公钥加密,私钥解密(加/解密用不同的密钥)
算法:RSA、DSA
验证完整性
常见的加密算法(计算规则):
hash散列技术,用于信息摘要
SHA
MD5
- 根据输入的文本(长度不限),生成固定长度(例如128位)的摘要文本
- 只要输入的文本不同,则生成的摘要文本也不一样
保护信息的完整性
信息摘要(hash值):基于输入的信息生成长度较短、位数固定的散列值
[root@root ~]# ls /root/ | md5sum
[root@root ~]# echo "aaaaaa" > a.txt
[root@root ~]# ls /root/ | md5sum[root@root ~]# md5sum a.txt
[root@root ~]# echo "bbbb" >> a.txt
[root@root ~]# md5sum a.txt
[root@root ~]# sed -i '2d' a.txt
[root@root ~]# md5sum a.txt
[root@root ~]# rm -rf a.txt
[root@root ~]# ls /root/ | md5sum
[root@root ~]# which gpg
/usr/bin/gpg
[root@root ~]# rpm -q gnupg2
gnupg2-2.0.22-5.el7_5.x86_64
[root@root ~]# gpg --help
[root@root ~]# man gpg
GnuPG最流行的数据加密、数字签名工具软件
支持算法
- 公钥:RSA、ELG、DSA
- 对称加密:3DES、CAST5、BLOWFISH、AES、AES256
- 散列:MD5、SHA、、、SHA256、SHA512
加密例子[真机上操作]
[root@root ~]# useradd usera #发送方
[root@root ~]# useradd userb #接收方
[root@root ~]# echo "123456" | passwd --stdin usera
[root@root ~]# echo "123456" | passwd --stdin userb
开2终端
[root@root ~]# ssh -X [email protected]
[root@root ~]# ssh -X [email protected]
gpg对称加/解密
gpg -c 加密 文件
gpg -d 解密 文件
[usera@root ~]$ vim test.txt
love you
love love you
very very love you
nice #随便写一些看的懂的明文
[usera@root ~]$ gpg -c test.txt #进行加密,(提示)输入加密密码123456789
[usera@root ~]$ ls
test.txt test.txt.gpg
[usera@root ~]$ cat test.txt.gpg #查看加密文件
t��C\^���9l�7���LM��N�3��bd�.�
����u`�&����C�@���`lF�j�4��C�_[usera@root ~]$
[usera@root ~]$ mv test.txt.gpg /tmp
[userb@root ~]$ ls /tmp/(t权限的目录谁都可以访问)
[userb@root ~]$ cat /tmp/test.txt.gpg
[userb@root ~]$ gpg -d /tmp/test.txt.gpg > ~/a1.txt #(提示)需输入加密时写的密码123456789
[userb@root ~]$ ls
a1.txt
[userb@root ~]$ cat a1.txt
love you
love love you
very very love you
nice
GPG非对称加/解密
用户b把自己的公钥传给用户a
用户a使用b的公钥加密数据,将加密数据传给用户b
用户b使用自己的私钥解密数据
真机]#
[root@root ~]# mv /dev/random /dev/random1
[root@root ~]# ln -s /dev/urandom /dev/random
- userb 接收方 解密数据
]# rm -rf .gnupg
1.创建密钥对 gpg --gen-key
[userb@root ~]$ gpg --gen-key
您的选择? #默认回车您想要用多大的密钥尺寸?(2048) #默认回车
密钥的有效期限是?(0) 0
以上正确吗?(y/n)y
真实姓名:userb #对方使用公钥加密文件时需指定
电子邮件地址:[email protected] #随便写
注释:userbkey更改姓名(N)、注释(C)、电子邮件地址(E)或确定(O)/退出(Q)?O #OK
提示输入 密码123456789
[userb@root ~]$ ls -A .gnupg/
gpg.conf pubring.gpg random_seed S.gpg-agent
private-keys-v1.d pubring.gpg~ secring.gpg trustdb.gpg
2.导出公钥 gpg --export -a
[userb@root ~]$ gpg --export -a > userb.pub
3.把公钥文件共享 mv / scp
[userb@root ~]$ mv userb.pub /tmp/
- usera发送方 加密数据
]# rm -rf .gnupg
0.导入公钥 gpg --import
[usera@root ~]$ gpg --import /tmp/userb.pub
[usera@root ~]$ ls .gnupg/
gpg.conf pubring.gpg pubring.gpg~ secring.gpg trustdb.gpg
1.使用公钥加密 gpg -e
[usera@root ~]$ vim test2.txt
随便写一些明文
[usera@root ~]$ gpg -e -r userb test2.txt #对方创建密钥对时描述的用户名
无论如何还是使用这把密钥吗?(y/N)y
2.发送加密文件 mv/scp
[usera@root ~]$ mv test2.txt.gpg /tmp/
3. 接收方userb用户使用私钥解密 gpg -d
[userb@root ~]$ gpg -d /tmp/test2.txt.gpg
提示输入密码123456789
[userb@root ~]$ gpg -d /tmp/test2.txt.gpg > ~/d.txt
[userb@root ~]$ cat d.txt
GPG软件签名与验证
软件签名与验证过程:
软件官方以私钥对软件包执行数字签名
用户下载软件包、软件官方的公钥
以官方公钥验证软件包签名,确保数据来原正确
分离式签名 gpg -b
验证签名 gpg --verify
1.使用私钥签名
[userb@root ~]$ gpg -b a1.txt #提示输入密码123456789
[userb@root ~]$ ls
a1.txt a1.txt.sig d.txt
2.共享签名文件 公钥匙文件 原问文件
[userb@root ~]$ cp a1.txt /tmp/
[userb@root ~]$ cp a1.txt.sig /tmp/
公钥文件上面已经传过了
3.导入公钥
公钥usera已经导入
4.使用公钥验证签名文件
[userb@root ~]$ gpg --verify /tmp/a1.txt.sig
gpg: 于 2019年05月28日 星期二 15时26分34秒 CST 创建的签名,使用 RSA,钥匙号 88542221
gpg: 完好的签名,来自于“userb (userbkey) <[email protected]>”
真机root]# sed -i '1a AAAAAAAAAAA' /tmp/a1.txt
[root@root ~]# cat /tmp/a1.txt
love you
AAAAAAAAAAA
love love you
very very love you
nice
此时[userb@root ~]$ gpg --verify /tmp/a1.txt.sig
gpg: 于 2019年05月28日 星期二 15时26分34秒 CST 创建的签名,使用 RSA,钥匙号 88542221
gpg: 已损坏的签名,来自于“userb (userbkey) <[email protected]>”
-------------------------------------------------------------------------------------------
[root@root ~]# sed -i '2d' /tmp/a1.txt
[userb@root ~]$ gpg --verify /tmp/a1.txt.sig
gpg: 于 2019年05月28日 星期二 15时26分34秒 CST 创建的签名,使用 RSA,钥匙号 88542221
gpg: 完好的签名,来自于“userb (userbkey) <[email protected]>”
二、AIDE入侵检测系统
[192.168.4.53]yum安装aide软件
- 配置文件
[root@host53 ~]# sed -i '99,$s/^/#/' /etc/aide.conf
[root@host53 ~]# vim /etc/aide.conf
/root FIPSR #底端添加
[root@host53 ~]# aide --init #根据配置文件对数据进行校验操作
AIDE, version 0.15.1
### AIDE database at /var/lib/aide/aide.db.new.gz initialized.
[root@host53 ~]# ls /var/lib/aide/
aide.db.new.gz
[root@host53 ~]# cp /var/lib/aide/aide.db.new.gz /tmp #将校验的数据库文件备份到安全的地方
[root@host53 ~]# cd /var/lib/aide/
[root@host53 aide]# mv aide.db.new.gz aide.db.gz
对检测的/root 目录做监测项的操作
[root@host53 aide]# seq 100 > ~/a.txt
随便做/root目录下一些操作
做“入侵”监测
[root@host53 aide]# aide --check
只能监测做了啥操作 不能防护
三、扫描与抓包
- nmap扫描[器]
- tcpdump抓包(协议分析)
- wireshark图形抓包工具(协议分析)
典型的扫描方式
Scan 主动探测
Sniff 被动监听/嗅探
Capture 数据包捕获(抓包)
-
NMAP
介绍
网络探测利器工具
支持多种探测技术:ping扫描 , 多端口扫描 , TCP/IP指纹校验....
格式
nmap [扫描类型] [选项] <扫描目标....>
常用扫描类型
-sS TCP SYN扫描(半开)
-sT TCP连接扫描(全开)
-sU UDP扫描
-sP ICMP扫描
-A 目标系统全面分析 = -O(OS检测)、-sV(版本检测)、-sC(脚本检测)、traceroute跟踪....
nmap 192.168.4.53 #默认扫描TCP
nmap -sU 192.168.4.53 #指定-sU 扫描UDP
nmap -p 21-22 192.168.4.0/24 #查看哪些主机开启21,22端口
nmap -n -sP 192.168.4.0/24 #检查目标主机的存活状态(是否ping通)
TCPDUMP
介绍
提取TCP协议的数据包
点对点
-c 抓包个数
-i 指定监控的网络接口
-A 转换为ACSII码,以方便阅读
-w 将数据包信息保存到指定文件
-r 从指定文件读取数据包信息
[root@zhenji ~]# tcpdump -i eth1 #默认抓eth0的
[root@zhenji ~]# tcpdump -c 5 -A #只抓5个包
[root@zhenji ~]# tcpdump -c 2 -A -w soft1.cap #抓完存到指定文件[root@zhenji ~]# tcpdump -A -r soft1.cap #读取抓的数据包信息
过滤条件
类型:host , net , port , portrange(端口范围)
方向:src(源地址) , dst(目标地址)
协议: tcp , udp , ip wlan ,arp .....
多个条件组合: and , or , not
ftp实验
[root@host53 ~]# setenforce 0
[root@host53 ~]# useradd nb
echo [root@host53 ~]# echo "abc123abc" | passwd --stdin nb
[root@host53 ~]# systemctl restart vsftpd
[root@host53 ~]# netstat -nutlp | grep 21
tcp6 0 0 :::21 :::* LISTEN 1017/vsftpd
[root@host53 ~]# which tcpdump
[root@host53 ~]# tcpdump -A -w ftp.cap port 21
其他客户机访问
[root@root ~]# yum -y install ftp
[root@root ~]# ftp 192.168.4.53
Name (192.168.4.53:root): nb
331 Please specify the password.
Password:abc123abc
ftp> exit
[root@host53 ~]# Ctrl + C停止抓包
[root@host53 ~]# tcpdump -A -r ftp.cap | grep -i user
11:01:21.494012 IP 192.168.4.254.33270 > host53.ftp: Flags [P.], seq 1:10, ack 21, win 229, options [nop,nop,TS val 8745298 ecr 163433], length 9: FTP: USER nb
..qR..~iUSER nb
[root@host53 ~]# tcpdump -A -r ftp.cap | grep -i pass
11:01:25.173886 IP 192.168.4.254.33270 > host53.ftp: Flags [P.], seq 10:26, ack 55, win 229, options [nop,nop,TS val 8748978 ecr 166524], length 16: FTP: PASS abc123abc
.......|PASS abc123abc
-
wireshark图形工具抓包
真机操作
[root@root lnmp_soft]# yum -y install wireshark wireshark-gnome
真机上打开