一、加密与解密
1.1 加密目的及其方式
1.2 GnuPG简介
1.2.1 GPG对称加/解密
[root@proxy ~]# gpg --version
[root@proxy ~]# gpg -c 11.txt //设置密码
[root@proxy ~]# file 11.txt*
11.txt: ASCII text
11.txt.gpg: data //加密后的文件
[root@proxy ~]# gpg -d 11.txt.gpg > 221 //解密数据并保存在221文件里
1.2.2 GPG非对称加/解密
[root@proxy1 ~]# mv /dev/random /dev/random.bak //保证快速加密
[root@proxy1 ~]# ln -s /dev/urandom /dev/random //快捷键
[root@proxy ~]# useradd A
[root@proxy ~]# useradd B
[root@proxy ~]# echo 123456 | passwd --stdin A
[root@proxy ~]# echo 123456 | passwd --stdin B
远程进入B用户
[root@proxy ~]# ssh -X B@192.168.4.5
[B@proxy ~]$ gpg --gen-key //生成密钥对,要记得里面的真实姓名
[B@proxy ~]$ ls .gnupg/ //查看gpg的设置,有密钥对文件、保护密钥对文件
gpg.conf pubring.gpg random_seed S.gpg-agent
private-keys-v1.d pubring.gpg~ secring.gpg trustdb.gpg
[B@proxy ~]$ gpg --list-keys //列出密钥
[B@proxy ~]$ gpg --export -a > /tmp/B.pub //导出公钥,tmp文件时公共文件夹,AB用户都可以对其导入
远程进入A用户
[root@proxy ~]# ssh -X A@192.168.4.5
[A@proxy ~]$ gpg --import /tmp/B.pub
gpg: 已创建目录‘/home/A/.gnupg’
gpg: 新的配置文件‘/home/A/.gnupg/gpg.conf’已建立
gpg: 警告:在‘/home/A/.gnupg/gpg.conf’里的选项于此次运行期间未被使用
gpg: 钥匙环‘/home/A/.gnupg/secring.gpg’已建立
gpg: 钥匙环‘/home/A/.gnupg/pubring.gpg’已建立
gpg: /home/A/.gnupg/trustdb.gpg:建立了信任度数据库
gpg: 密钥 779888F6:公钥“mao123”已导入
gpg: 合计被处理的数量:1
gpg: 已导入:1 (RSA: 1)
[A@proxy ~]$ ls .gnupg/ //查看gpg对端设置
gpg.conf pubring.gpg pubring.gpg~ secring.gpg trustdb.gpg
公私钥准备完毕后,开始使用
A用户加密文件
[A@proxy ~]$ echo 123 > 11.txt
[A@proxy ~]$ gpg -e -r mao123 11.txt //加密,mao123是自己规定的真实姓名,会生成一个.gpg结尾文件
[A@proxy ~]$ mv 11.txt.gpg /tmp/
B用户解密文件
[B@proxy ~]$ gpg -d /tmp/11.txt.gpg > ~/111.txt //解密文件
[B@proxy ~]$ cat 111.txt //查看文件内容
PS:密钥指纹可以作为密钥是否为一对的标识
1.2.3 GPG软件签名与验证
进入B用户
[B@proxy ~]$ gpg -b b.txt //生成一份分离的签名,以.sig结尾
[B@proxy ~]$ ls
111.txt b.txt b.txt.sig
[B@proxy ~]$ mv b.txt* /tmp/
进入A用户
[A@proxy ~]$ gpg --verify /tmp/b.txt.sig //验证签名,提示完好
[B@proxy ~]$ gpg --fingerprint //打印密钥和指纹,可以通过比较指纹来验证密钥是否为一对
[B@proxy ~]$ vim /tmp/b.txt //修改b.txt
[A@proxy ~]$ gpg --verify /tmp/b.txt.sig //再一次验证,提示签证损坏
二、AIDE入侵检测系统
[root@proxy ~]# yum -y install aide
AIDE默认配置文件为/etc/aide.conf
[root@proxy ~]# vim /etc/aide.conf
@@define DBDIR /var/lib/aide //数据库目录
@@define LOGDIR /var/log/aide //日志目录
database_out=file:@@{DBDIR}/aide.db.new.gz //数据库文件名
#p: permissions //希望检查的项目
...........
/boot/ CONTENT_EX //对哪些目录进行什么校验
...........
!/usr/src/ //使用[!],设置不校验的命令
[root@proxy ~]# sed -i '99,312s/^/#/' /etc/aide.conf //把其他的检测位置都注释掉
[root@proxy ~]# vim +98 /etc/aide.conf //只检测root文件夹
root/ FIPSR
[root@proxy ~]# aide --init //生成没有被入侵前的数据库文件
[root@proxy ~]# mv /var/lib/aide/aide.db.new.gz /media/ //备份数据
执行入侵检测
[root@proxy ~]# cp /media/aide.db.new.gz /var/lib/aide/aide.db.gz //将备份数据还原
[root@proxy ~]# echo 111 > 11
[root@proxy ~]# aide --check //执行入侵检测
........
changed: /root/11
.........
三、 扫描与抓包
3.1 为什么要扫描
3.2 NMAP简介
[root@proxy ~]# yum -y install nmap
[root@proxy ~]# nmap --help
[root@proxy ~]# man nmap
[root@proxy ~]# nmap -sP 192.168.4.5
[root@proxy ~]# nmap -sP 192.168.4.5,6,7
[root@proxy ~]# nmap -sP 192.168.4.5-254
[root@proxy ~]# nmap -n -sP 192.168.4.0/24 //n代表永远不要解析DNS /始终解析
[root@proxy ~]# nmap -sS -p22 192.168.4.5
[root@proxy ~]# nmap -sS -p 22,8080 192.168.4.5
[root@proxy ~]# nmap -sS -p 22-111,8080 192.168.4.5
[root@proxy ~]# nmap -A 192.168.4.5 //扫描所有
非标准端口抓取不到
3.3 网络抓包工具
3.3.1 tcpdump
[root@proxy ~]# yum -y install tcpdump
```bash
[root@proxy ~]# tcpdump -i ens3 //默认抓取的是ens0
[root@proxy ~]# tcpdump -i ens33 -c 3 //在ens33的物理接口抓取3个包
[root@proxy ~]# tcpdump -i ens33 -c 3 -A -w /opt/xx.cap //将抓取的包放入该文件内
[root@proxy ~]# tcpdump -A -r /opt/xx.cap //从指定的文件读取信息
条件复合用法
[root@proxy ~]# tcpdump -i ens33 icmp
[root@proxy ~]# tcpdump -i ens33 icmp and host 192.168.4.5
[root@proxy ~]# tcpdump -i ens33 icmp and src host 192.168.4.5 //抓取源为4.5主机的包
[root@proxy ~]# tcpdump -i ens33 tcp port 2288 and host 192.168.4.202
[root@proxy ~]]# tcpdump -i ens33 tcp port 8866 or port 21
[root@proxy ~]# tcpdump -i ens33 tcp portrange 21-110
抓取ftp的包
[root@proxy ~]# yum -y install vsftpd
[root@proxy ~]# systemctl restart vsftpd
[root@proxy ~]# netstat -utnlp | grep 21
[root@proxy ~]# useradd panglijing
[root@proxy ~]# echo "abc123abc" | passwd --stdin panglijing
[root@proxy ~]# cp /etc/passwd /home/panglijing/
[root@proxy ~]# chmod +r /home/panglijing/passwd
[root@proxy ~]# tcpdump -i ens33 -A -w /root/ftp.cap tcp portrange 20-21
[root@host202 ~]# yum -y install ftp
[root@host202 ~]# ftp 192.168.4.200
Name (192.168.4.200:root): panglijing 用户名
331 Please specify the password.
Password:密码
ftp> ls
ftp> get passwd
ftp> bye
[root@host202 ~]#
[root@proxy ~]#tcpdump -A -r /root/ftp.cap
[root@proxy ~]#tcpdump -A -r /root/ftp.cap | grep -i pass
[root@proxy ~]#tcpdump -A -r /root/ftp.cap | grep -i user
3.3.2 wireshark
wireshark一款与tcpdump类似的抓包工具,需要图形环境
[root@host200 ~]# yum -y install wireshark wireshark-gnome
[root@host200 ~]# scp /root/ftp.cap 192.168.4.70:/opt/
使用wireshar 把 ftp.cap 文件打开 查看抓包内容