对称加密:加密/解密用同一个密钥
对称加密算法:DES,AES
非对称加密:加密/解密用不同的密钥(公钥,私钥)
非对称加密算法:RSA,DSA
Hash散列技术:MD5 (md5sum 文件名),SHA
一 使用GPG对称加密方式保护文件
1)安装gnupg2
[root@vpn ~]# yum -y install gnupg2
2)使用gpg对称加密算法加密数据的操作
[root@vpn ~]# gpg -c file2
----------->file2.gpg
[root@vpn ~]# file file2.gpg
file2.gpg: data
3 ) 把加密的文件传给另一台机器
[root@vpn ~]# scp file2.gpg 201.1.2.10:/root
[root@client ~]# gpg -d file2.gpg > file2 //在client机器上解密gpg加密算法的文件并保存到另一个文件里
二 使用GPG非对称加密方式保护文件
1)在client主机上操作生成密钥
[root@client ~]# gpg --gen-key
真实姓名:UserA //姓名跟邮箱后续可以当作唯一标识
电子邮件地址:UserA@163.com
密钥 存放位置 /root/.gnupg/
2 ) 查看公钥环
[root@client ~]# gpg --list-keys
/root/.gnupg/pubring.gpg
------------------------
pub 2048R/78EE9745 2018-05-15
uid UserA <UserA@163.com>
sub 2048R/9F73CE66 2018-05-15
3 )使用gpg命令结合--export选项将其中的公钥文本导出
[root@client ~]# gpg -a --export UserA > test.pub
//--export的作用是导出密钥,-a的作用是导出的密钥存储为ASCII格式
[root@client ~]# scp test.pub root@201.1.2.5:/root/ //把密钥传给vpn主机
4 )在vpn主机上导入接收的公钥信息
[root@vpn ~]# gpg --import test.pub //导入到钥匙链里
gpg: 密钥 78EE9745:公钥“UserA <UserA@163.com>”已导入
gpg: 合计被处理的数量:1
gpg: 已导入:1 (RSA: 1)
[root@vpn ~]# gpg --list-keys //导入成功后可以查看是否有公钥
/root/.gnupg/pubring.gpg
------------------------
pub 2048R/78EE9745 2018-05-15
uid UserA <UserA@163.com>
sub 2048R/9F73CE66 2018-05-15
5 ) 使用导入的公钥加密数据,并把加密后的数据传给client主机
[root@vpn ~]# gpg -e -r UserA love.txt
无论如何还是使用这把密钥吗?(y/N)y //确认使用此密钥加密文件
[root@vpn ~]# scp love.txt.gpg root@201.1.2.10:/root/ //发送给vpn主机
6)在vpn主机上用自己的私钥进行解密
[root@client ~]# gpg -d love.txt.gpg
[root@client ~]# gpg -d love.txt.gpg > love.txt 也可以导入文件里
三 使用GPG签名机制,检查数据来源的正确性
1)在client(192.168.4.100)上,UserB为软件包创建分离式签名
将软件包、签名文件、公钥文件一起发布给其他用户下载。
[root@client ~]# tar zcf log.tar /var/log //建立测试软件包
[root@client ~]# gpg --gen-key //重新生成密钥
.............
真实姓名:UserB
电子邮件地址:UserB@123.com
注释:
您选定了这个用户标识:
“UserB <UserB@123.com>”
...............
[root@client ~]# gpg -b log.tar //创建分离式数字签名
会生成log.tar.gz.sig
[root@client ~]# gpg -a --export UserB > userb.pub //导入公钥
[root@client ~]# scp userb.pub root@192.168.4.5:/root //把公钥传给svr5(192.168.4.5)机器
[root@client ~]# scp log.tar.gz log.tar.gz.sig root@192.168.4.5:/root/
在svr5(192.168.4.5)机器上导入钥匙链以及验证签名
[root@svr5 ~]# gpg --import userb.pub //把公钥导入钥匙链库
[root@svr5 ~]# gpg --list-keys
/root/.gnupg/pubring.gpg
------------------------
pub 2048R/EA65F470 2018-05-15
uid UserB <UserB@123.com>
sub 2048R/AEC45D2A 2018-05-15
[root@svr5 ~]# gpg --verify log.tar.gz.sig log.tar.gz
gpg: 于 2018年05月15日 星期二 14时44分56秒 CST 创建的签名,使用 RSA,钥匙号 EA65F470
gpg: 完好的签名,来自于“UserB <UserB@123.com>”
..................
四 AIDE入侵检测系统
1)安装软件包
[root@svr5 ~]# yum -y install aide
2) 修改配置文件
确定对哪些数据进行校验,如何校验数据
[root@svr5 ~]# vim /etc/aide.conf
- @@define DBDIR /var/lib/aide //数据库目录
- @@define LOGDIR /var/log/aide //日志目录
- database_out=file:@@{DBDIR}/aide.db.new.gz //数据库文件名
- //一下内容为可以检查的项目(权限,用户,组,大小,哈希值等)
.......................
/root NORMAL
初始化数据库,入侵后检测
1)入侵前对数据进行校验,生成初始化数据库
- root@svr5 ~]# aide --init
- AIDE, version 0.15.1
- AIDE database at /var/lib/aide/aide.db.new.gz initialized.
- //生成校验数据库,数据保存在/var/lib/aide/aide.db.new.gz
2)入侵后检测
- [root@svr5 ~]# cd /var/lib/aide/
- [root@svr5 ~]# mv aide.db.new.gz aide.db.gz
- [root@svr5 ~]# aide --check //检查哪些数据发生了变化
五 扫描与抓包
一:使用NMAP扫描来获取指定主机/网段的相关信息
1)安装软件
- [root@svr5 ~]# yum -y install nmap
- //基本用法:
- # nmap [扫描类型] [选项] <扫描目标 ...>
- //常用的扫描类型
- // -sS,TCP SYN扫描(半开)
- // -sT,TCP 连接扫描(全开)
- // -sU,UDP扫描
- // -sP,ICMP扫描
- // -A,目标系统全面分析
2)检查目标主机所开启的TCP服务
- [root@svr5 ~]# nmap 192.168.4.100
3)检查192.168.4.0/24网段内哪些主机开启了FTP、SSH服务
- [root@svr5 ~]# nmap -p 21-22 192.168.4.0/24 //FTP占用端口为21 SSH占用端口为22
4)检查192.168.4.0/24网段内哪些主机可以ping通
- [root@svr5 ~]# nmap -n -sP 192.168.4.0/24 //-n是屏蔽报错信息
5)全面分析目标主机192.168.4.100和192.168.4.5的操作系统信息
- [root@svr5 ~]# nmap -A 192.168.4.100,5
1)启用tcpdump命令行抓包
- [root@svr5 ~]# tcpdump -A host 192.168.4.5 and tcp port 21
- tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
- listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
- .. .. //进入等待捕获数据包的状态
- //监控选项如下:
- // -i,指定监控的网络接口
- // -A,转换为 ACSII 码,以方便阅读
- // -w,将数据包信息保存到指定文件
- // -r,从指定文件读取数据包信息
- //tcpdump的过滤条件:
- // 类型:host、net、port、portrange
- // 方向:src、dst
- // 协议:tcp、udp、ip、wlan、arp、……
- // 多个条件组合:and、or、not
2)执行FTP访问,并观察tcpdump抓包结果
- [root@svr5 ~]# tcpdump -A -w ftp.cap host 192.168.4.5 and tcp port 21 //抓包并保存
- [root@svr5 ~]# tcpdump -A -r ftp.cap | egrep '(USER|PASS)' //读取指定文件数据包 然后提取USER跟PASS的行