加密与解密 AIDE入侵检测系统 扫描与抓包

对称加密:加密/解密用同一个密钥

对称加密算法: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                                                                                //姓名跟邮箱后续可以当作唯一

    电子邮件地址:[email protected]

    密钥 存放位置  /root/.gnupg/                                                                                   

  2 ) 查看公钥环

    [root@client ~]# gpg --list-keys
    /root/.gnupg/pubring.gpg
    ------------------------
    pub   2048R/78EE9745 2018-05-15
    uid                  UserA <[email protected]>

    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 [email protected]:/root/                //把密钥传给vpn主机

    4 )在vpn主机上导入接收的公钥信息

    [root@vpn ~]# gpg --import test.pub                                        //导入到钥匙链里

    gpg: 密钥 78EE9745:公钥“UserA <[email protected]>”已导入
    gpg: 合计被处理的数量:1

    gpg:           已导入:1  (RSA: 1)

    [root@vpn ~]# gpg --list-keys                                                    //导入成功后可以查看是否有公钥
    /root/.gnupg/pubring.gpg
    ------------------------
    pub   2048R/78EE9745 2018-05-15
    uid                  UserA <[email protected]>

    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 [email protected]:/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
          
电子邮件地址:[email protected]
           注释:
           您选定了这个用户标识:

        “UserB <[email protected]>”

            ...............

          [root@client ~]# gpg -b log.tar                     //创建分离式数字签名

          会生成log.tar.gz.sig

          [root@client ~]# gpg -a --export UserB > userb.pub      //导入公钥

          [root@client ~]# scp userb.pub [email protected]:/root      //把公钥传给svr5(192.168.4.5)机器

          [root@client ~]# scp log.tar.gz log.tar.gz.sig [email protected]:/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 <[email protected]>

          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 <[email protected]>”

          ..................


四 AIDE入侵检测系统

    1)安装软件包

    [root@svr5 ~]# yum -y install aide

    2) 修改配置文件

    确定对哪些数据进行校验,如何校验数据

    [root@svr5 ~]# vim  /etc/aide.conf     

  1. @@define DBDIR /var/lib/aide                            //数据库目录
  2. @@define LOGDIR /var/log/aide                            //日志目录
  3. database_out=file:@@{DBDIR}/aide.db.new.gz                //数据库文件名
  4. //一下内容为可以检查的项目(权限,用户,组,大小,哈希值等)

               .......................

                /root NORMAL

    初始化数据库,入侵后检测   

1)入侵前对数据进行校验,生成初始化数据库

  1. root@svr5 ~]# aide --init
  2. AIDE, version 0.15.1
  3. AIDE database at /var/lib/aide/aide.db.new.gz initialized.
  4. //生成校验数据库,数据保存在/var/lib/aide/aide.db.new.gz

      2)入侵后检测               

  1. [root@svr5 ~]# cd /var/lib/aide/
  2. [root@svr5 ~]# mv aide.db.new.gz aide.db.gz
  3. [root@svr5 ~]# aide --check                            //检查哪些数据发生了变化

  五 扫描与抓包

        一:使用NMAP扫描来获取指定主机/网段的相关信息

        1)安装软件               

  1. [root@svr5 ~]# yum -y install nmap
  2. //基本用法:
  3. # nmap [扫描类型] [选项] <扫描目标 ...>
  4. //常用的扫描类型
  5. // -sS,TCP SYN扫描(半开)
  6. // -sT,TCP 连接扫描(全开)
  7. // -sU,UDP扫描
  8. // -sP,ICMP扫描
  9. // -A,目标系统全面分析

        2)检查目标主机所开启的TCP服务               

  1. [root@svr5 ~]# nmap 192.168.4.100      

        3)检查192.168.4.0/24网段内哪些主机开启了FTP、SSH服务               

  1. [root@svr5 ~]# nmap -p 21-22 192.168.4.0/24                    //FTP占用端口为21   SSH占用端口为22

         4)检查192.168.4.0/24网段内哪些主机可以ping通               

  1. [root@svr5 ~]# nmap -n -sP 192.168.4.0/24                       //-n是屏蔽报错信息

         5)全面分析目标主机192.168.4.100和192.168.4.5的操作系统信息               

  1. [root@svr5 ~]# nmap -A 192.168.4.100,5
        二:使用tcpdump分析FTP访问中的明文交换信息

             1)启用tcpdump命令行抓包  

  1. [root@svr5 ~]# tcpdump -A host 192.168.4.5 and tcp port 21
  2. tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
  3. listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
  4. .. ..                                            //进入等待捕获数据包的状态
  5. //监控选项如下:
  6. // -i,指定监控的网络接口
  7. // -A,转换为 ACSII 码,以方便阅读
  8. // -w,将数据包信息保存到指定文件
  9. // -r,从指定文件读取数据包信息
  10. //tcpdump的过滤条件:
  11. // 类型:host、net、port、portrange
  12. // 方向:src、dst
  13. // 协议:tcp、udp、ip、wlan、arp、……
  14. // 多个条件组合:and、or、not          

        2)执行FTP访问,并观察tcpdump抓包结果              

  1. [root@svr5 ~]# tcpdump -A -w ftp.cap host 192.168.4.5 and tcp port 21                            //抓包并保存
  2. [root@svr5 ~]# tcpdump -A -r ftp.cap | egrep '(USER|PASS)'    //读取指定文件数据包  然后提取USER跟PASS的行


猜你喜欢

转载自blog.csdn.net/jon_stark/article/details/80319664