设为首页 收藏本站
查看: 1091|回复: 0

[经验分享] linux 安全应用 2

[复制链接]

尚未签到

发表于 2018-5-18 10:12:46 | 显示全部楼层 |阅读模式
  一、selinux安全防护
  

  DAC    自主访问控制   (rwx/acl   用户自己可以修改)
  MAC   强制访问控制   (管理员对所有的资源负责)
  TCSEC标准定义的 MLS 多级安全
  SELinux   *
  1.1 selinux介绍
  美国国家安全局主导开发,
  一套强化Linux安全的MAC扩展模块
  集成到Linux内核(2.6及以上)
  操作系统提供可定制的策略、管理工具
  

  主要软件包:
  selinux-policy
  selinux-policy-targeted、
  libselinux-utils、libselinux-utils、
  coreutils、policycoreutils
  

  SELINUXTYPE=targeted
  推荐,仅保护最常见/关键的网络服务,其他不限制
  

  SELINUXTYPE=mls
  提供多层次、全面的安全防护策略
  需扩展软件包:
  selinux-policy-mls、mcstrans、
  policycoreutils-newrole
  

  启用selinux
  vim /etc/sysconfig/selinux
  SELINUX=enforcing
  SELINUXTYPE=targeted
  :wq
  reboot
  

  [root@stu ~]# sestatus
  SELinux status:                 enabled
  SELinuxfs mount:                /selinux
  Current mode:                   enforcing
  Mode from config file:          enforcing
  Policy version:                 24
  Policy from config file:        targeted
  [root@stu ~]# getenforce
  Enforcing
  [root@stu ~]#
  

  ————————————————————————————————————————————————
  

  上面的总结
  ————————————————————————————————————————————————
  selinux是基于linux内核版本在2.6及以上的一种内核安全防护扩展模块,由美国国家安全局研发出来的.
  [root@room1pc01 html]# uname -r
  2.6.32-573.el6.x86_64
  MAC 强制访问控制(管理员管理资源)
  DAC自主访问控制(用户管理资源)rwx/acl
  

  [root@room1pc01 html]# rpm -qa |grep -i selinux(查看系统是否有selinux安全防护)
  

  

  

  1.3  查看当前系统selinux状态
  默认会有一个配置文件/etc/selinux/config,和链接/etc/sysconfig/selinux
  6 SELINUX=permissive  (一般都是设置成这种,宽松警告)
  6 SELINUX=disabled
  6 SELINUX=enforcing
  10 SELINUXTYPE=strict
  10 SELINUXTYPE=targeted(一般这种,仅保护最常见/关键的网络服务,其他不限制)
  

  [root@stu ~]# getenforce
  Permissive
  [root@room1pc01 ~]# setenforce 1
  [root@room1pc01 ~]# getenforce
  Enforcing
  [root@room1pc01 ~]# sestatus
  SELinux status:                 enabled
  SELinuxfs mount:                /selinux
  Current mode:                   enforcing
  Mode from config file:          permissive
  Policy version:                 24
  Policy from config file:        targeted
  

  

  

  

  

  

  查看安全上下文
  文件   ll   -Z   文件名     ll   -Z    /etc/passwd
  目录   ll  -dZ  目录名     ll   -dZ   /
  进程   ps  aux  -Z   |  grep  httpd
  

  [root@room1pc01 ~]# ls -Zd /root
  dr-xr-x---. root root system_u:object_r:admin_home_t:s0 /root
  [root@room1pc01 ~]# ls -Zd /var/www/html
  drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html
  [root@room1pc01 ~]# ls -Zd /tmp
  drwxrwxrwt. root root system_u:object_r:tmp_t:s0       /tmp
  [root@room1pc01 ~]# ls -Zd /var/ftp/
  drwxr-xr-x. root root system_u:object_r:public_content_t:s0 /var/ftp/
  

  用户:角色:访问类型:选项...
  system_u:object_r:root_t:s0
  

  一般操作规律
  移动的文件,原有的上下文属性不变
  复制的文件,自动继承目标位置的上下文
  创建继承上级目录属性
  

  

  ++创建继承上级目录属性++
  [root@room1pc01 ~]# mkdir my
  [root@room1pc01 ~]# touch 1.txt
  [root@room1pc01 ~]# ll -Zd 1.txt
  -rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 1.txt
  [root@room1pc01 ~]# ll -Zd /root/my
  drwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 /root/my
  [root@room1pc01 ~]# ll -Zd /root/
  dr-xr-x---. root root system_u:object_r:admin_home_t:s0 /root/
  

  

  +++复制的文件,自动继承目标位置的上下文 (保持属性拷贝也没用 还是会继承目标的属性)+++
  [root@room1pc01 ~]# cp /root/1.txt /tmp/
  [root@room1pc01 ~]# cp -r /root/my /tmp/
  [root@room1pc01 ~]# ll -Zd /tmp
  drwxrwxrwt. root root system_u:object_r:tmp_t:s0       /tmp
  [root@room1pc01 ~]# ll -Zd /tmp/1.txt
  -rw-r--r--. root root unconfined_u:object_r:user_tmp_t:s0 /tmp/1.txt
  [root@room1pc01 ~]# ll -Zd /tmp/my
  drwxr-xr-x. root root unconfined_u:object_r:user_tmp_t:s0 /tmp/my
  [root@room1pc01 ~]# rm -fr /tmp/1.txt
  [root@room1pc01 ~]# cp -p /root/1.txt /tmp/
  [root@room1pc01 ~]# ll -Zd /tmp/1.txt
  -rw-r--r--. root root unconfined_u:object_r:user_tmp_t:s0 /tmp/1.txt
  

  +++移动的文件目录,保持原来的上下文属性不变+++
  [root@room1pc01 ~]# rm -fr /tmp/1.txt
  [root@room1pc01 ~]# rm -fr /tmp/my
  [root@room1pc01 ~]# mv /root/1.txt /tmp/
  [root@room1pc01 ~]# mv /root/my /tmp/
  [root@room1pc01 ~]# ll -Zd /tmp/1.txt
  -rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 /tmp/1.txt
  [root@room1pc01 ~]# ll -Zd /tmp/my
  drwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 /tmp/my
  [root@room1pc01 ~]# ll -Zd /tmp
  drwxrwxrwt. root root system_u:object_r:tmp_t:s0       /tmp
  

  

  

  

  

  ————————————
  [root@room1pc01 ~]# ll -Z /var/www/html
  -rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 file.html
  -rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 link.html
  -rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 test.html
  

  

  [root@room1pc01 ~]# firefox httpd:192.168.4.254:/test.html (能打开)
  

  [root@room1pc01 ~]# firefox httpd:192.168.4.254:/file.html (不能打开) 不是网页内容属性文件
  

  修改文件的安全上下文可以用chcon和restorecon 效果一样。
  

  chcon 修改工具
  [root@room1pc01 ~]# chcon -t httpd_sys_content_t /var/www/html/file.html
  [root@room1pc01 ~]# ll -Z /var/www/html
  -rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 1.html
  -rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 a.txt
  -rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 file.html
  -rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 link.php
  -rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 test.php
  

  restorecon 恢复工具
  [root@room1pc01 ~]# ll -Z /var/www/html
  -rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 1.html
  -rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 a.txt
  -rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 file.html
  -rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 link.php
  -rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 pp.html
  

  [root@room1pc01 ~]# cd /var/www/html/
  [root@room1pc01 html]# restorecon pp.html
  [root@room1pc01 html]# ll -Z /var/www/html
  -rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 pp.html
  

  ————————————————————————
  修改文件的安全上下文
  chcon 工具
  -t,指定访问类型
  -u、-r,分别用来指定用户、角色
  -R,递归修改
  

  chcon   -t  访问类型  文件名   #修改某个文件的安全上下文
  chcon  -R   -t  访问类型  目录名  #批量修改安全上下文 (把目录下文件的都修改了上下文)
  

  chcon  -t  httpd_sys_content_t  /var/www/html/c2.html
  

  恢复文件的安全上下文
  restorecon 工具  恢复为所在位置的默认上下文属性
  -R,递归修改
  

  restorecon   d.html       #把这个文件恢复成当前父目录的上下文属性
  restorecon   目录名/d.html
  ————————————————————————————————————————————————
  1.4  SELinux布尔值 (功能开关)
  getsebool    -a      #列出所有的bool值
  

  修改布尔值
  setsebool   -P    选项     on    #启用
  setsebool   -P    选项     off    #关闭
  

  setsebool   -P    选项=1    #启用
  setsebool   -P    选项=0    #关闭
  

  setsebool   -P    allow_ftpd_anon_write  on
  setsebool   -P     allow_ftpd_full_access   on
  

  安装selinux排错工具
  [root@stu ftp]# yum  -y  install  setroubleshoot-server
  

  setroubleshoot-plugins  setroubleshoot
  

  [root@stu ftp]# rpm  -qa  | grep setroubleshoot
  setroubleshoot-server-3.0.47-9.1.el6.x86_64
  setroubleshoot-3.0.47-9.1.el6.x86_64
  setroubleshoot-plugins-3.0.40-2.el6.noarch
  [root@stu ftp]#
  [root@stu ftp]#reboot
  

  调出图形工具抓取报错信息
  应用程序->系统工具->selinx .....
  sealter  -b
  

  查看日志 执行命令,获取错误信息
  tail   -f    /var/log/message
  Jun 29 09:51:57 room3pc31 setroubleshoot: SELinux is
  

  preventing /usr/sbin/vsftpd from write access on the
  

  directory pubdir. For complete SELinux messages. run
  

  sealert -l 933b8efd-0743-48c3-b7b0-b95233747cbc
  

  [root@stu ftp]#sealert -l 933b8efd-0743-48c3-b7b0-
  

  b95233747cbc
  

  

  

  

  

  

  

  

  

  +++++++++++++++++++++++++++++++++++
  二、加密、解密
  2.1 为什么要给数据加密?(机密性 完整性)
  

  (发送方)加密   明文  -> 密文  (加密就是把明文加密成密问)
  (接收方)解密   密文  -> 明文   (解密就是把密问解密成明文)
  

  加密算法   明文 变成 密文的 转换  规则
  算法可以是 一种计算规则  、  指令  或  代码  (加密算法:可以是指令也可以是代码)
  

  

  2.2 加密方式
  对称加密:  加密/解密用同一个密钥 (对称:加解密使用相同的算法) 简单不安全
  算法有:DES,Data Encryption Standard
  AES,Advanced Encryption Standard
  

  

  非对称加密  加密/解密用不同的密钥(密钥对) (非对称加密:加解密使用不同算法 有密钥对)
  公钥和私钥
  加       解
  算法:RSA,Rivest Shamirh Adleman
  DSA,Digital Signature Algorithm
  

  

  

  加解密工具:
  gpg(开源的软件包 gnupg这个包提供) 对称加密解密  非对称加解密  数字签名
  

  [root@stu ~]# which gpg
  /usr/bin/gpg
  [root@stu ~]# rpm -qf /usr/bin/gpg
  gnupg2-2.0.14-8.el6.x86_64
  [root@stu ~]# gpg --help  查帮助(支持的算法  选项)
  

  ————————
  1.对称加密解密 (lucy和tom,都是真机上用户密码都是123, 切到lucy和tom时候只能ssh -X lucy@192.168.4.254  不能su - tom,因为环境不对。)
  ————————
  加密(发送方)lucy:
  

  解密(接受方)tom:
  

  [root@room1pc01 ~]# ssh -X lucy@"localhost"
  lucy@localhost's password:
  /usr/bin/xauth:  creating new authority file /home/lucy/.Xauthority
  [lucy@room1pc01 ~]$
  [lucy@room1pc01 ~]$ pwd
  /home/lucy
  [lucy@room1pc01 ~]$ echo 123456 >lucy.txt
  [lucy@room1pc01 ~]$ ls
  lucy.txt
  [lucy@room1pc01 ~]$ gpg -c lucy.txt
  gpg: 已创建目录‘/home/lucy/.gnupg’
  gpg: 新的配置文件‘/home/lucy/.gnupg/gpg.conf’已建立
  gpg: 警告:在‘/home/lucy/.gnupg/gpg.conf’里的选项于此次运行期间未被使用
  gpg: 钥匙环‘/home/lucy/.gnupg/pubring.gpg’已建立
  can't connect to `/home/lucy/.gnupg/S.gpg-agent': 没有那个文件或目录
  gpg-agent[11856]: 已创建目录‘/home/lucy/.gnupg/private-keys-v1.d’
  [lucy@room1pc01 ~]$ ls
  lucy.txt  lucy.txt.gpg
  [lucy@room1pc01 ~]$ cp lucy.txt.gpg  /tmp/
  

  [root@room1pc01 桌面]# ssh -X tom@192.168.4.254
  tom@192.168.4.254's password:
  /usr/bin/xauth:  creating new authority file /home/tom/.Xauthority
  [tom@room1pc01 ~]$
  [tom@room1pc01 ~]$ pwd
  /home/tom
  [tom@room1pc01 ~]$ cd /tmp
  [tom@room1pc01 tmp]$ ls
  1.txt                  orbit-gdm
  da                     orbit-root
  evince-9817            pulse-2UwZ1k19YbcT
  gedit.root.3964521678  pulse-5sTJqfwYxhm6
  keyring-rOpg63         user.txt
  keyring-vP2cP1         virtual-root.lwcQAF
  lu                     VMwareDnD
  lucy.txt.gpg           vmware-root
  my                     wireshark_2_interfaces_20170226094957_f2G8IO
  myvm.xml               yum_save_tx-2017-03-07-11-11_INSzh.yumtx
  [tom@room1pc01 tmp]$ gpg -d lucy.txt.gpg
  gpg: 已创建目录‘/home/tom/.gnupg’
  gpg: 新的配置文件‘/home/tom/.gnupg/gpg.conf’已建立
  gpg: 警告:在‘/home/tom/.gnupg/gpg.conf’里的选项于此次运行期间未被使用
  gpg: 钥匙环‘/home/tom/.gnupg/secring.gpg’已建立
  gpg: 钥匙环‘/home/tom/.gnupg/pubring.gpg’已建立
  gpg: 3DES 加密过的数据
  can't connect to `/home/tom/.gnupg/S.gpg-agent': 没有那个文件或目录
  gpg-agent[11903]: 已创建目录‘/home/tom/.gnupg/private-keys-v1.d’
  gpg: 以 1 个密码加密
  123456
  gpg: 警告:报文未受到完整的保护
  

  

  ————————
  2.非对称加解密:【(lucy和tom,都是真机上用户密码都是123, 切到lucy和tom时候只能ssh -X lucy@192.168.4.254  不能su - tom,因为环境不对。)要图形界面】
  ————————
  1)lucy
  -传建密钥对
  -导出公钥
  2)tom
  导入lucy的公钥
  使用公钥加密发送文件
  lucy使用私钥解密
  实验:
  [lucy@room1pc01 ~]$ rm -fr .gnupg/  (有就一般都先删掉 等创建公钥时会自动生成)
  [lucy@room1pc01 ~]$ gpg --gen-key
  gpg: 钥匙环‘/home/lucy/.gnupg/secring.gpg’已建立
  请选择您要使用的密钥种类:
  (1) RSA and RSA (default)
  (2) DSA and Elgamal
  (3) DSA (仅用于签名)
  (4) RSA (仅用于签名)
  您的选择?
  .....(一路默认 名字那里做个区分写真实的,后面还会用到)
  .....
  真实姓名:panglj
  电子邮件地址:plj
  注释:O
  您选定了这个用户标识:
  “panglj (O) <plj@163>”
  更改姓名(N)、注释(C)、电子邮件地址(E)或确定(O)/退出(Q)?o
  您需要一个密码来保护您的私钥。(输入密码,记住这个密码)等它生成
  .................
  密钥指纹 = 87F8 DE00 93C6 3D6A 6AF8  1B16 94CD FC50 73FA C552
  uid                  panglj (O) <plj@163>
  sub   2048R/86A8B557 2017-03-07
  公钥和私钥已经生成并经签名。(生成)
  

  [lucy@room1pc01 .gnupg]$ pwd
  /home/lucy/.gnupg
  [lucy@room1pc01 .gnupg]$ ls
  gpg.conf           pubring.gpg   random_seed  trustdb.gpg
  private-keys-v1.d  pubring.gpg~  secring.gpg
  [lucy@room1pc01 .gnupg]$ gpg -a --export  >/tmp/lucy.pub (把公钥拷贝到公共目录。让tom拷贝)
  

  

  [tom@room1pc01 ~]$ rm -fr .gnupg/   (tom用户先把自己的这个目录删了,把lucy公钥拷贝到自己加下会自动生成该目录)
  [tom@room1pc01 ~]$ gpg --import  /tmp/lucy.pub (拷贝lucy公钥)
  .............
  [tom@room1pc01 ~]$ ls -a
  .   .bash_history  .bash_profile  .gnome2  .mozilla
  ..  .bash_logout   .bashrc        .gnupg   .Xauthority
  [tom@room1pc01 ~]$ cd .gnupg/
  [tom@room1pc01 .gnupg]$ ls
  gpg.conf  pubring.gpg  pubring.gpg~  secring.gpg  trustdb.gpg
  [tom@room1pc01 .gnupg]$ echo "1234567890" >tom.txt  (tom写一个文件)
  [tom@room1pc01 .gnupg]$ gpg -e -r panglj tom.txt     把该文件加密(用户名是做密钥对时的留的用户名)
  ........................(输入yes 按提示)
  [tom@room1pc01 .gnupg]$ ls
  gpg.conf     pubring.gpg~  secring.gpg  tom.txt.gpg
  pubring.gpg  random_seed   tom.txt      trustdb.gpg
  [tom@room1pc01 .gnupg]$ cp tom.txt.gpg  /tmp/    (将加密好的复制到公共目录下,让lucy读取)
  

  [lucy@room1pc01 ~]$ gpg -d /tmp/tom.txt.gpg         (在页面上显示解密后的内容,需要输做密钥时设的密码)
  [lucy@room1pc01 ~]$ gpg -d /tmp/tom.txt.gpg >/home/lucy/t.txt (把解密后的内容定向到一个文件中再查看)
  [lucy@room1pc01 ~]$ ls
  lucy.txt  lucy.txt.gpg  t.txt
  [lucy@room1pc01 ~]$ cat t.txt
  1234567890
  

  

  3.数字签名(私钥签名,公钥验证签名)
  lucy  tom
  

  lucy:
  使用私钥对文件做数字签名
  把签名文件和源文件发送给对方
  

  tom
  使用公钥验证签名文件
  验证文件是否是声称持有者发送过来的
  

  

  [lucy@room1pc01 ~]$ echo "1212" >lu.txt
  [lucy@room1pc01 ~]$ gpg -b lu.txt    (输入之前设置的密码做成签名)
  您需要输入密码,才能解开这个用户的私钥:“panglj (O) <plj@163>”
  2048 位的 RSA 密钥,钥匙号 73FAC552,建立于 2017-03-07
  

  can't connect to `/home/lucy/.gnupg/S.gpg-agent': 没有那个文件或目录
  [lucy@room1pc01 ~]$ ls
  lucy.txt  lucy.txt.gpg  lu.txt  lu.txt.sig  t.txt
  [lucy@room1pc01 ~]$ cp lu.txt /tmp/  (把文件和文件签名放到公共目录下)
  [lucy@room1pc01 ~]$ cp lu.txt.sig /tmp
  

  [tom@room1pc01 ~]$ cat /tmp/lu.txt       (tom可以看到文件内容和从文件签名看是否有损坏,内容是否有更改)
  1212
  [tom@room1pc01 ~]$ gpg --verify /tmp/lu.txt.sig
  gpg: 于 2017年03月07日 星期二 15时29分17秒 CST 创建的签名,使用 RSA,钥匙号 73FAC552
  gpg: 完好的签名,来自于“panglj (O) <plj@163>”
  gpg: 警告:这把密钥未经受信任的签名认证!
  gpg:       没有证据表明这个签名属于它所声称的持有者。
  主钥指纹: 87F8 DE00 93C6 3D6A 6AF8  1B16 94CD FC50 73FA C552
  

  

  

  ————————————————————————————————————————————
  

  

  

  

  

  

  

  

  ——————————————————————————————————————
  

  

  使用md5sum校验工具验证文件完整性  特点:当文件内容没变时md5生成的校验值一值保持同样长度不变,否则变化。(md5和gpg数字签名相比只能验证文件内容是否有更改,不能验证是谁发的)
  [root@room1pc01 html]# cat a.txt
  root:x:0:0:root:/root:/bin/bash
  bin:x:1:1:bin:/bin:/sbin/nologin
  [root@room1pc01 html]# md5sum a.txt
  2acf01edaaee1079d83086a3ed3305a1  a.txt
  [root@room1pc01 html]# md5sum a.txt
  2acf01edaaee1079d83086a3ed3305a1  a.txt
  [root@room1pc01 html]# echo "123" >>a.txt
  [root@room1pc01 html]# md5sum a.txt
  4795332faee87af3d9685ac07b05bc56  a.txt
  [root@room1pc01 html]# echo abc
  abc
  [root@room1pc01 html]# echo abc |md5sum
  0bee89b07a248e27c83fc3d5951213c1  -
  [root@room1pc01 html]# echo abc |md5sum
  0bee89b07a248e27c83fc3d5951213c1  -
  [root@room1pc01 html]# echo abc |md5sum
  0bee89b07a248e27c83fc3d5951213c1  -
  [root@room1pc01 html]# echo abcd |md5sum
  f5ac8127b3b6b85cdc13f237c6005d80  -
  

  保护信息的完整性
  信息摘要:基于输入的信息生成长度较短、位数固定的散列值
  

  Hash散列技术,用于信息摘要
  MD5,Message Digest Algorithm 5
  SHA,Secure Hash Algorithm
  

  sha1sum  a.txt
  md5sum  a.txt
  

  gnupg介绍
  GnuPG,GNU Privacy Guard
  最流行的数据加密、数字签名工具软件
  

  [root@stu ~]# which gpg
  /usr/bin/gpg
  [root@stu ~]# rpm -qf /usr/bin/gpg
  gnupg2-2.0.14-8.el6.x86_64
  [root@stu ~]#
  

  gpg --help  查帮助(支持的算法  选项)
  

  

  对称加/解密过程 (加/解密 使用相同密钥)
  

  加密
  head  -2  /etc/passwd   > a.txt
  gpg  -c  a.txt   (提示输入密码)
  

  ls  a.txt.gpg  加密后的文件
  rm  -rf  a.txt
  

  

  解密
  gpg  -d  a.txt.gpg   >  /tmp/user.txt (提示输入密码)
  cat  /tmp/user.txt
  ++++++++++++++++++++++++++++++
  非对称加/解密过程 (公钥加密/私钥解密)
  userB 要  userA 使用非对称方式加密传输数据
  

  1 userB   生成密钥对
  gpg  --gen-key (生成私钥时要求输入相关信息)
  ls  ~/.gnupg/
  

  

  dd  if=/dev/zero  of=/dev/null    bs=1M count=500
  

  2 userB 导出自己的公钥
  gpg  -a  --export    >   /tmp/UserB.pub
  suerB 把 公钥 给  userA  (不同机器间传输数据)
  

  

  3  userA 导入userB的公钥
  gpg  --import  /tmp/UserB.pub
  ls  ~/.gnupg/
  

  

  4 userA 使用公钥加密文件
  echo  12344555  > /tmp/clear.txt
  gpg  -e  -r  真实姓名   /tmp/clear.txt
  panglj
  

  userA  把加密文件  传给  userB (不同机器间传输数据)
  

  5 userB 使用自己的私钥解密
  gpg  -d  /tmp/clear.txt.gpg  >  dclear.txt
  cat  dclear.txt
  +++++++++++++++++++++++++++++++++++
  GPG软件签名与验证
  软件签名与验证过程
  软件官方以私钥对软件包执行数字签名
  用户下载软件包、软件官方的公钥
  以官方公钥验证软件包签名,确保软件完整性
  

  

  gpg  -b     生成一份分离的签名
  gpg  --verify               验证签名
  gpg --fingerprint          列出密钥和指纹
  

  userB
  head -3  /etc/passwd   > userb.txt
  gpg  -b  userb.txt
  

  ls  userb.txt.sig  (签名文件)
  

  mv   userb.txt  userb.txt.sig   /tmp/
  

  userA
  cd   /tmp/
  gpg  --verify   userb.txt.sig
  [userA@room3pc31 tmp]$ gpg --verify user2.txt.sig
  gpg: 于 2016年06月29日 星期三 14时59分43秒 PHT 创建的
  

  签名,使用 RSA,钥匙号 A6D34AA0
  gpg: 完好的签名,来自于“panglj (teacher)
  

  <plj@tedu.cn>”
  gpg: 警告:这把密钥未经受信任的签名认证!
  gpg:       没有证据表明这个签名属于它所声称的持有者。
  主钥指纹: 87AB 6994 3F35 E6EA 4EA7  502B CCA6
  

  5CA3 A6D3 4AA0
  [userA@room3pc31 tmp]$
  

  echo  aaaa >>  user2.txt
  [userA@room3pc31 tmp]$ gpg --verify user2.txt.sig
  gpg: 于 2016年06月29日 星期三 14时59分43秒 PHT 创建的
  

  签名,使用 RSA,钥匙号 A6D34AA0
  gpg: 已损坏的签名,来自于“panglj (teacher)
  

  <plj@tedu.cn>”
  [userA@room3pc31 tmp]$
  

  

  

  [userB@room3pc31 ~]$ gpg  --fingerprint
  /home/userB/.gnupg/pubring.gpg
  ------------------------------
  pub   2048R/A6D34AA0 2016-06-29
  密钥指纹 = 87AB 6994 3F35 E6EA 4EA7  502B CCA6
  

  5CA3 A6D3 4AA0
  uid                  panglj (teacher) <plj@tedu.cn>
  sub   2048R/6CD5F831 2016-06-29
  

  [userB@room3pc31 ~]$
  主钥指纹: 87AB 6994 3F35 E6EA 4EA7  502B CCA6
  

  5CA3 A6D3 4AA0
  

  密钥指纹 = 87AB 6994 3F35 E6EA 4EA7  502B CCA6
  

  5CA3 A6D3 4AA0
  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  +++++++++++++++++++++++++++++++++++
  

  

  搭建CA服务器
  1   CA 介绍 (CA,Certificate Authority)
  数字证书授权中心
  被通信双方信任的、独立的第三方机构
  负责证书颁发、验证、撤销等管理工作
  

  国内常见的CA机构
  中国金融认证中心(CFCA)
  中国电信安全认证中心(CTCA)
  北京数字证书认证中心(BJCA)
  

  CA用来给服务器颁发数字证书
  一般也可自己搭建一个私有CA服务器
  

  

  openssl 加密工具
  #openssl  enc  -des3  -e  -in  f1.txt  -out  f1.txt.enc  加密
  # openssl  enc  -des3  -d  -in  f1.txt.enc  -out  f1.txt  解密
  

  

  2  CA做什么(发数字证书的机构)
  

  

  PKI体系的基本组成
  权威认证机构(CA)
  数字证书库、密钥备份及恢复系统
  证书作废系统、应用接口
  

  

  对称加密
  enc 算法  -e  -in  输入文件  -out  输出文件
  enc 算法  -d  -in  输入文件  -out  输出文件
  

  [root@svr5 ~]# openssl  enc  -des3  -e  -in  f1.txt  -out
  

  f1.txt.enc
  enter des-ede3-cbc encryption password:  
  

  //设置口令
  Verifying - enter des-ede3-cbc encryption password:
  

  [root@svr5 ~]# openssl  enc  -des3  -d  -in  f1.txt.enc  -
  

  out  f1.txt
  enter des-ede3-cbc decryption password:
  

  ————————————————————————————————————————
  

  ————————————————————————————————————————
  

  CA机构(CA服务器)是用来给公司服务器颁发数字证书的。有权威的也有私有自己搭建的。
  

  使用IP地址是X.X.X.88主机做CA服务器
  整体部署思路
  第一步:配置CA签署环境(给客户端发证的默认配置)
  /etc/pki/tls/openssl.cnf
  第二步:为CA服务器生成私钥(创建密钥对)
  第三步:为CA服务器创建根证书 (生成自己的根证书文件)
  第四步:发布根证书文件(把自己的根证书共享给客户端)
  第五步:客户端下载根证书
  

  [root@svr7 CA]# man openssl
  ++++++++++++++++++++++++++++++++
  

  1.部署签发环境:(做一个私有CA服务器用,来给别的公司服务器发数字证书)192.168.4.99
  [root@svr7 ~]# ls /etc/pki/tls/openssl.cnf
  /etc/pki/tls/openssl.cnf
  [root@svr7 ~]# rpm -qf /etc/pki/tls/openssl.cnf
  openssl-1.0.1e-42.el6.x86_64
  

  [root@svr7 ~]# cd /etc/pki/CA/
  [root@svr7 CA]# touch  index.txt   (证书的内容保存文件)
  [root@svr7 CA]# ls
  certs  crl  index.txt  newcerts  private
  [root@svr7 CA]# echo 01 > serial
  [root@svr7 CA]# cat serial  (创建一个文件用来记录证书的个数,做第二个证书的时候会自动加)
  01
  [root@svr7 CA]# ls
  certs  crl  index.txt  newcerts  private  serial
  

  [ CA_default ]
  41
  42 dir             = /etc/pki/CA           # Where everything is kept
  43 certs           = $dir/certs            # Where the issued certs are kept
  44 crl_dir         = $dir/crl              # Where the issued crl are kept
  45 database        = $dir/index.txt        # database index file.
  

  48 new_certs_dir   = $dir/newcerts         # default place for new certs.
  

  50 certificate     = $dir/my-ca.crt        # The CA certificate
  51 serial          = $dir/serial           # The current serial number
  52 crlnumber       = $dir/crlnumber        # the current crl number
  

  54 crl             = $dir/crl.pem          # The current CRL
  55 private_key     = $dir/private/my-ca.key # The private key
  56 RANDFILE        = $dir/private/.rand    # pri
  

  130 countryName_default             = CN
  

  135 stateOrProvinceName_default     = beijing
  

  

  141 0.organizationName_default      = tarena
  

  148 organizationalUnitName_default  = ope
  

  

  2.创建私钥文件:/etc/pki/CA/private/my-ca.key
  [root@svr7 private]# pwd
  /etc/pki/CA/private
  

  [root@svr7 private]# openssl genrsa -des3 2048 >my-ca.key  (创建私钥,并导入到私钥文件,记住密码)
  Generating RSA private key, 2048 bit long modulus
  ......................+++
  ..+++
  e is 65537 (0x10001)
  Enter pass phrase:
  Verifying - Enter pass phrase:
  

  3.使用私钥创建根证书文件
  

  [root@svr7 private]# cd /etc/pki/CA
  [root@svr7 CA]# openssl req -new -x509 -key /etc/pki/CA/private/my-ca.key -days 365 > my-ca.crt   (使用私钥创建根证书文件   -x509格式)
  [root@svr7 CA]# ls
  certs  crl  index.txt  my-ca.crt  newcerts  private  serial
  [root@svr7 CA]# cat my-ca.crt  (证书生成)
  -----BEGIN CERTIFICATE-----
  MIID1zCCAr+gAwIBAgIJALAPCx/Wdm/lMA0GCSqGSIb3DQEBBQUAMIGBMQswCQYD
  VQQGEwJDTjEQMA4GA1UECAwHYmVpa
  -----END CERTIFICATE-----
  

  

  4.把证书文件共享给客户端 (就是把CA私有机构给服务器做的根证书发给该服务 但这里CA服务器和认证的一台,效果是一样的把根证书文件共享到服务器的目录下)
  

  [root@svr7 CA]# yum -y install httpd
  [root@svr7 CA]# mkdir /var/www/html/ca
  [root@svr7 CA]# cp my-ca.crt  /var/www/html/ca/
  [root@svr7 CA]# ls /var/www/html/ca/my-ca.crt
  /var/www/html/ca/my-ca.crt
  [root@svr7 CA]# ls /var/www/html/ca/my-ca.crt -l
  -rw-r--r--. 1 root root 1391 3月   6 23:37 /var/www/html/ca/my-ca.crt
  [root@svr7 CA]# service httpd start
  [root@svr7 CA]# chkconfig httpd on
  

  5.客户端下载根证书
  

  [tom@room1pc01 ~]$ ping 192.168.4.99
  [tom@room1pc01 ~]$ firefox http://192.168.4.99/ca
  在打开的页面中 下载证书。
  

  ——————————————————————————————————————————————————————————————————————
  ___________________________________________________________________________________________________________________________________________________________
  

  

  

  一 配置网站HTTP SSL (192.168.4.100)
  网站服务器:
  1.运行网站服务
  # yum -y install httpd
  # service httpd restart
  # chkconfig httpd on
  

  2.创建私钥文件
  # cd /etc/pki/tls/private/
  # openssl genrsa 2048 > www.key (生成私钥,什么服务私钥就起什么名好记,记住密码) 1生成密码字符最好是1024的整数倍
  # ls
  www.key
  # cat www.key
  -----BEGIN RSA PRIVATE KEY-----
  MIIEowIBAAKCAQEApgz2xBeEs151p3dMGmj13pbicS5JGd1cMWiMryUjaRgJPRWF
  ..
  

  

  3.创建证书请求文件
  #cd /etc/pki/tls/private/
  # openssl req -new -key www.key > /root/www.csr
  .........
  Common Name (eg, your name or your server's hostname) []:stu.tedu.cn  (填的一定是公司服务器主机名 /etc/sysconfig/network 所对应的)
  ........
  

  4.把证书请求文件上传给CA服务器
  [root@100 private]# scp /root/www.csr root@192.168.4.99:/root/
  

  

  

  

  二.CA服务器:(192.168.4.99)
  签收数据证书
  [root@svr7 ~]# ls /root/www.csr
  /root/www.csr
  [root@svr7 ~]# cd /etc/pki/CA/
  [root@svr7 CA]# ls
  certs  crl  index.txt  my-ca.crt  newcerts  private  serial
  [root@svr7 CA]# cat index.txt
  [root@svr7 CA]# cat serial
  01
  [root@svr7 CA]# cd certs/
  [root@svr7 certs]# ls
  

  [root@svr7 certs]# openssl ca -in /root/www.csr  > www.crt  (输入密码 按y)
  [root@svr7 CA]# cat serial
  02
  [root@svr7 CA]# cat index.txt
  V180306163836Z01unknown/C=CN/ST=beijing/O=tarena/OU=ope
  [root@svr7 certs]# ls
  www.csr
  [root@svr7 certs]# cat www.crt
  Certificate:
  ..............
  

  

  三.把证书下发给web服务器(192.168.4.99)
  [root@svr7 certs]# scp www.crt root@192.168.4.100:/root/
  

  

  

  四.给网站加密:(web服务器192.168.4.100)
  

  

  #netstat  -utnalp  | grep :443(此时没有443端口)
  

  #rpm  -q  mod_ssl
  

  #yum  -y  install  mod_ssl
  

  #vim /etc/httpd/conf.d/ssl.conf
  18   Listen  443
  <VirtualHost  _default _:443>
  SSLEngine on
  105 SSLCertificateFile /etc/pki/tls/certs/www.crt
  112 SSLCertificateKeyFile /etc/pki/tls/private/www.key
  </VirtualHost>
  :wq
  

  #mv /root/www.crt /etc/pki/tls/certs/
  # service httpd stop
  

  # service httpd stop
  # service httpd start
  

  #netstat  -utnalp  | grep :443 (能够查看到443端口)
  

  #netstat  -utnalp  | grep :80 (能够查看到80端口)
  # echo "123" >/var/www/html/test.html
  

  

  五(客户机测试192.168.4.254)
  

  

  [root@room1pc01 桌面]# vim /etc/hosts
  

  192.168.4.100  stu.tedu.cn   stud
  [root@room1pc01 桌面]# firefox http://stu.tedu.cn/test.html (能打开)
  [root@room1pc01 桌面]# firefox http://192.168.4.100/test.html (能打开)
  [root@room1pc01 桌面]# firefox https://stu.tedu.cn/test.html  (能打开,让先下证书)
  

  

  (生产工作中,客户访问web加密网站,下载根证书在CA下或在本地web下,是程序员在网页代码中写的,运维只需把服务搭出来。就像客户在淘宝支付时,需要下一个认证/插件,在哪个位置下一样,这是程序员指定的)
  

  

  六.客户机测试 (192.168.4.254)
  1 从CA下载根证书 (http://CA-ip/ca)
  [root@room1pc01 桌面]#firefox http://192.168.4.99/ca
  

  

  2访问
  [root@room1pc01 桌面]# firefox https://stu.tedu.cn/test.html(不用再在这下载证书,直接打开,打开的是https)
  [root@room1pc01 桌面]# firefox http://stu.tedu.cn/test.html (也直接打开打开的是http)
  

  {80 http://web-ip/test.html
  443 https://web-ip/test.html}
  

  七.地址重写:(web网站192.168.4.100)
  

  配置网站服务器  把接收到的访问80端口的请求自动重定向到443端口 (http---->https)
  vim  /etc/httpd/conf/httpd.conf   (也可在 /etc/httpd/conf/ssl.conf写,都一样)
  .....
  <IfModule ssl_module>
  SSLRandomSeed  startup  builtin
  SSLRandomSeed  connect  builtin
  </IfModule>
  RewriteEngine  on
  RewriteCond  %{SERVER_PORT}  !^443$
  RewriteRule  (.*)  https://%{SERVER_NAME}/$1  [R]
  :wq
  /etc/init.d/httpd restart
  

  

  八.客户机测试 (192.168.4.254)
  [root@room1pc01 桌面]# firefox https://stu.tedu.cn/test.html(打开的是https)
  [root@room1pc01 桌面]# firefox http://stu.tedu.cn/test.html (打开的是http)
  

  ——————————————————————————————————————————————————————————————————————————————
  

  

  2.邮件服务TLS/SSL (192.168.4.101)
  

  邮件服务器的配置
  2.1运行收邮件的服务 service dovecot start
  2.2运行发邮件的服务 service postfix start
  2.3测发能否收发本地域的邮件 localhost
  jim@localhost 发件人
  tom@localhost 收件人
  2.4传建私钥文件 mail.key
  #openssl genrsa 2048 > mail.key
  2.5创建证书请求文件 mail.csr
  2.6把证书请求文件上传给CA服务器
  

  CA服务器的配置
  1 签发数字证书 mail.crt
  2 把证书下发给mail服务器
  

  3 设置邮件服务器在运行时加载私钥文件和数字文件
  3.1配置收邮件服务 110   143     995    993
  pop3 imap  pop3s imaps
  

  3.2配置发邮件服务 stmp  25
  3.3重启服务
  

  4配置客户端
  在客户端软件里配置连接邮件服务时,选择使用的端口号
  

  

  +++++++++++++
  实验:
  [root@101 conf.d]# yum -y install postfix dovecot
  [root@101 conf.d]# rpm -q postfix
  postfix-2.6.6-6.el6_5.x86_64
  [root@101 conf.d]# rpm -q dovecot
  dovecot-2.0.9-19.el6.x86_64
  

  [root@101 ~]# vim /etc/postfix/main.cf
  419 home_mailbox = Maildir/
  

  [root@101 conf.d]# pwd
  /etc/dovecot/conf.d
  [root@101 conf.d]# vim 10-mail.conf
  24 mail_location = maildir:~/Maildir
  

  [root@101 ~]# service postfix start
  [root@101 ~]# service dovecot start
  

  [root@101 ~]# netstat -anptu |grep :25
  tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1765/master
  tcp        0      0 ::1:25                      :::*                        LISTEN      1765/master
  

  [root@101 ~]# netstat -anptu |grep dovecot
  tcp        0      0 0.0.0.0:993     imaps(加密后)            0.0.0.0:*                   LISTEN      2872/dovecot
  tcp        0      0 0.0.0.0:995     pop3s            0.0.0.0:*                   LISTEN      2872/dovecot
  tcp        0      0 0.0.0.0:110   (pop3)              0.0.0.0:*                   LISTEN      2872/dovecot
  tcp        0      0 0.0.0.0:143     (imap)            0.0.0.0:*                   LISTEN      2872/dovecot
  tcp        0      0 :::993                      :::*                        LISTEN      2872/dovecot
  tcp        0      0 :::995                      :::*                        LISTEN      2872/dovecot
  tcp        0      0 :::110                      :::*                        LISTEN      2872/dovecot
  tcp        0      0 :::143                      :::*                        LISTEN      2872/dovecot
  

  

  

  [root@101 ~]# cd /etc/dovecot/
  [root@101 dovecot]# cd conf.d/
  [root@101 conf.d]# vim 10-mail.conf
  [root@101 conf.d]# vim 10-ssl.conf
  [root@101 conf.d]# sed -n '12,13p' 10-ssl.conf
  ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
  ssl_key = </etc/pki/dovecot/private/dovecot.pem
  [root@101 conf.d]# ls /etc/pki/dovecot/certs/
  dovecot.pem
  [root@101 conf.d]# ls /etc/pki/dovecot/private/
  dovecot.pem
  

  [root@101 conf.d]# useradd tom
  [root@101 conf.d]# useradd jim
  [root@101 conf.d]# echo 123 |passwd --stdin tom
  更改用户 tom 的密码 。
  passwd: 所有的身份验证令牌已经成功更新。
  [root@101 conf.d]# echo 123 |passwd --stdin jim
  更改用户 jim 的密码 。
  passwd: 所有的身份验证令牌已经成功更新。
  

  

  [root@101 conf.d]# yum -y install telnet (下载连接邮件服务器工具)
  

  

  [root@101 conf.d]# telnet localhost 25 (发邮件 jim)
  Trying ::1...
  Connected to localhost.
  

  

  

  [root@101 ~]# telnet localhost 110   (接邮件 tom)
  Trying ::1...
  Connected to localhost.
  Escape character is '^]'.
  +OK Dovecot ready.
  user tom
  +OK
  pass 123
  +OK Logged in.
  list
  +OK 0 messages:
  .
  quit
  

  

  [root@101 ~]# openssl genrsa 2048 > mail.key  (传建私钥文件)
  

  

  [root@101 ~]# openssl req -new -key mail.key > mail.csr (生成证书请求文件)
  

  [root@svr7 ~]# cd /etc/pki/CA/
  [root@svr7 CA]# cat serial
  02
  [root@svr7 certs]# openssl ca -in /root/mail.csr   > mail.crt
  [root@svr7 CA]# cat index.txt
  V180306163836Z01unknown/C=CN/ST=beijing/O=tarena/OU=ope/CN=stu.tedu.cn/emailAddress=jing@tedu.cn
  V180307190945Z02unknown/C=CN/ST=beijing/O=tarena/OU=ope/CN=stu.tedu.cn/emailAddress=yaya@tedu.cn
  [root@svr7 CA]# cat serial
  03
  [root@svr7 certs]# scp mail.crt root@192.168.4.101:/root/   (把证书请求文件上传给CA服务器)
  

  

  

  

  [root@101 ~]# vim /etc/dovecot/conf.d/10-ssl.conf
  12 ssl_cert = </etc/pki/dovecot/certs/mail.crt
  13 ssl_key = </etc/pki/dovecot/private/mail.key
  [root@101 ~]# sed -n '12,13p' /etc/dovecot/conf.d/10-ssl.conf
  ssl_cert = </etc/pki/dovecot/certs/mail.crt
  ssl_key = </etc/pki/dovecot/private/mail.key
  [root@101 ~]# cp /root/mail.key /etc/pki/dovecot/private/
  [root@101 ~]# cp /root/mail.crt /etc/pki/dovecot/certs
  [root@101 ~]# service dovecot restart
  停止 Dovecot Imap:                                        [确定]
  正在启动 Dovecot Imap:                                    [确定]
  [root@101 ~]# netstat -anptu |grep dovecot
  

  

  

  [root@101 ~]# postconf (查看帮助,配置项怎么写) 发信
  [root@101 ~]# vim /etc/postfix/main.cf
  

  675 readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES
  676
  677 smtpd_use_tls = yes
  678 smtpd_tls_key_file = /etc/pki/tls/private/mail.key
  679 smtpd_tls_cert_file = /etc/pki/tls/certs/mail.crt
  

  

  

  

  

  

  

  

  

  

  

  

  ————————————————————————————————————————————————————
  

  3扫描与抓包
  3.1端口扫描(nmap)
  3.2抓包(tcpdump)
  

  3.3协议分析工具(wireshark)
  

  扫描方式:scan主动探测 sniff被动监听  capture 数据包抓包
  

  

  

  1.常用格式:(扫描)
  [root@room1pc01 桌面]# yum -y install nmap
  [root@room1pc01 桌面]# which nmap
  /usr/bin/nmap
  [root@room1pc01 桌面]# man nmap
  

  [root@room1pc01 桌面]# nmap -sP 172.40.55.244
  Starting Nmap 5.51 ( http://nmap.org ) at 2017-03-08 14:22 CST
  Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn   (检查这台主机是否在现,没有)
  Nmap done: 1 IP address (0 hosts up) scanned in 0.44 seconds
  

  [root@room1pc01 桌面]# nmap -sP 172.40.55.127 (检查这台主机是否在现)
  Starting Nmap 5.51 ( http://nmap.org ) at 2017-03-08 14:19 CST
  Nmap scan report for 172.40.55.127
  Host is up (0.00019s latency).          (检查这台主机是否在现)
  MAC Address: FC:AA:14:CD:F5:AC (Unknown)
  Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds
  [root@room1pc01 桌面]# ping 172.40.55.127
  PING 172.40.55.127 (172.40.55.127) 56(84) bytes of data.
  64 bytes from 172.40.55.127: icmp_seq=1 ttl=64 time=0.928 ms
  ^C
  --- 172.40.55.127 ping statistics ---
  

  [root@room1pc01 桌面]# nmap -A 172.40.55.127 (整台扫描)
  [root@room1pc01 桌面]# namp -sT -p 80 172.40.55.127 172.40.55.104
  

  [root@room1pc01 桌面]# nmap -sT -p 20-80,443 172.40.55.127 172.40.55.104
  

  [root@room1pc01 桌面]# nmap -sT -p 20-80,443  172.40.55.104-110
  

  [root@room1pc01 桌面]# nmap -sU -p 20-80,443  172.40.55.0/24
  

  [root@room1pc01 桌面]# nmap -sP   172.40.55.0/24
  

  [root@room1pc01 桌面]# nmap -sP -iL ip.txt   (ip.txt 中先写入ip)
  [root@room1pc01 桌面]# nmap -sT -p 110  -iL ip.txt
  

  [root@room1pc01 桌面]# nmap -sP   172.40.55.100-130 --exclude 172.40.55.103-105
  [root@room1pc01 桌面]# nmap -sT -p 80,110   172.40.55.100-130 --exclude 172.40.55.103-105
  

  [root@room1pc01 桌面]# nmap -sT -p 80,110   172.40.55.100-130 --excludefile ip.txt (不扫描这个文件中的)
  

  [root@room1pc01 桌面]# nmap -sT -p 80  172.40.55.119 |grep open
  80/tcp open  http
  

  

  

  

  

  

  

  

  ip地址  172.40.55.$ip
  

  重复执行的操作:
  vim httpd.sh
  #!/bin/bash
  while :
  do
  x=0
  for ip in 103 105 107 127 110 102
  do
  

  nmap -sT -p 80 172.40.55.$ip | grep -q open
  if [ $? -eq 0 ];then
  echo "172.40.55.$ip   web is ok"
  else
  echo "172.40.55.$ip web is stop"
  echo "172.40.55.$ip  >> /tmp/ipdown.txt
  let x++
  

  fi
  done
  

  mail -s "weberror" root < /tmp/ipdown.txt
  

  echo "web down host is $x"
  

  sleep 600
  

  done
  

  

  chmod +x httpd.sh
  

  httpd.sh &
  

  +++++++++++++++++++++++++++
  

  vim httpd.sh
  #!/bin/bash
  

  x=0
  echo "web down is " > /tmp/ipdown.txt
  for ip in 103 105 107 127 110 102
  do
  

  nmap -sT -p 80 172.40.55.$ip | grep -q open
  if [ $? -eq 0 ];then
  echo "172.40.55.$ip   web is ok"
  else
  echo "172.40.55.$ip web is stop"
  echo "172.40.55.$ip  >> /tmp/ipdown.txt
  let x++
  fi
  done
  lines=`wc -l  /tmp/ipdown.txt |awk '{print $1}' `
  if [ $lines -gt 1 ];then
  mail -s "weberror" root < /tmp/ipdown.txt
  fi
  

  echo "web down host is $x"
  

  rm -rf /tmp/ipdown.txt
  

  :wq
  

  chmod +x httpd.sh
  

  cron -e
  */10  *  *  *  *  /root/httpd.ssh
  service crond restart
  

  查看邮件:
  [root@room1pc01 桌面]# vim /etc/postfix/main.cf
  419 home_mailbox = Maildir/
  

  [root@room1pc01 桌面]# mail -f /home/httpadmin/
  .bash_logout   .bashrc        Maildir/
  .bash_profile  .gnome2/       .mozilla/
  [root@room1pc01 桌面]# mail -f /home/httpadmin/Maildir/
  Heirloom Mail version 12.4 7/29/08.  Type ? for help.
  "/home/httpadmin/Maildir/": 1 message 1 new
  >N  1 root                  Wed Mar  8 20:00  20/589   "weberror"
  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2.TCPDUMP抓包(tcpdump)
  

  [root@room1pc01 桌面]# which tcpdump
  /usr/sbin/tcpdump
  [root@room1pc01 桌面]# rpm -qf /usr/sbin/tcpdump
  tcpdump-4.0.0-5.20090921gitdf3cb4.2.el6.x86_64
  [root@room1pc01 桌面]# yun -y install tcpdump
  

  [root@room1pc01 桌面]# man  tcpdump
  

  

  [root@room1pc01 桌面]# tcpdump  (开始抓整个)
  [root@room1pc01 桌面]# tcpdump  -A  (抓的显示出屏幕上)
  [root@room1pc01 桌面]# tcpdump  -A -w /tmp/a.cap  (抓 w保存文件里)
  [root@room1pc01 桌面]# tcpdump  -A -r /tmp/a.cap   (r读出来)
  

  

  -i    -A    -w   -r
  [root@room1pc01 桌面]# tcpdump  -A -w /tmp/1.txt  tcp port 110
  

  [root@room1pc01 桌面]# tcpdump  -A -r /tmp/1.txt  |grep -i  --color user
  [root@room1pc01 桌面]# tcpdump  -A -r /tmp/1.txt  |grep -i  --color pass
  

  [root@room1pc01 桌面]# tcpdump  -A tcp portrange 20-21
  [root@room1pc01 桌面]# tcpdump  -A tcp portrange 20-21 and host 192.168.4.101 (只抓101这台)
  

  

  ____________________________________________________________________________________________________________________________________________________________
  ————————————————————————————————————————————————————————————————————————
  抓包实验,192.168.4.101开启抓包,让192.168.4.7访问它ftp抓把。保存在文件中。
  [root@101 ~]# tcpdump -A -w /tmp/t.txt tcp portrange 20-21
  tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
  ^C36 packets captured
  

  [root@svr7 opt]# ftp 192.168.4.101
  Connected to 192.168.4.101 (192.168.4.101).
  220 (vsFTPd 2.2.2)
  Name (192.168.4.101:root): ftp
  331 Please specify the password.
  Password:
  230 Login successful.
  Remote system type is UNIX.
  Using binary mode to transfer files.
  ftp> ls
  227 Entering Passive Mode (192,168,4,101,197,237).
  150 Here comes the directory listing.
  -rw-r--r--    1 0        0               4 Mar 08 00:48 1.txt
  drwxr-xr-x    2 0        0            4096 Mar 06  2015 pub
  226 Directory send OK.
  ftp> get 1.txt
  local: 1.txt remote: 1.txt
  227 Entering Passive Mode (192,168,4,101,106,217).
  150 Opening BINARY mode data connection for 1.txt (4 bytes).
  226 Transfer complete.
  4 bytes received in 0.000489 secs (8.18 Kbytes/sec)
  ftp> quit
  221 Goodbye.
  

  

  [root@101 ~]# tcpdump -A -w /tmp/t.txt tcp portrange 20-21
  tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
  

  (按ctrl+c,保存退出)
  

  ^C36 packets captured
  36 packets received by filter
  0 packets dropped by kernel
  

  [root@101 ~]# tcpdump -A -r /tmp/t.txt  (把抓到的在屏幕中显示)
  reading from file /tmp/t.txt, link-type EN10MB (Ethernet)
  09:00:17.542583 IP 192.168.4.7.58623 > 192.168.4.101.ftp:
  E..<.4@.@..........e.......?......9............
  ............
  ...........................................
  

  [root@101 ~]# tcpdump -A -r /tmp/t.txt |grep -i --color pass  (在抓包文件中检索密码)
  reading from file /tmp/t.txt, link-type EN10MB (Ethernet)
  .i......331 Please specify the password.
  ...0.i..PASS ftp
  .i.....y227 Entering Passive Mode (192,168,4,101,197,237).
  .i.D....227 Entering Passive Mode (192,168,4,101,106,217).
  

  ————————————————————————————————————————————————————————————————
  ____________________________________________________________________________________________________________________________________________________
  

  网络中用来抓包,协议分析工具是用wireshark,俗称网络鲨鱼,装好后。在应用程序里可以把这个软件打开,是用图形界面显示的,所以装的时候要有图形。抓到包后,这图形上面显示抓到的包,下面显示这个包经过的物理层,数据链路层,网络层和传输层。最下面显示的是点开哪一层,都会详细信息。(公司生产环境中抓包,一般抓的是装防火墙的这台服务器。
  

  

  3.3协议分析工具(wireshark)(网络鲨鱼)
  

  [root@room1pc01 桌面]# yum -y install wireshark wireshark-gnome
  [root@room1pc01 桌面]# rpm -qa |grep shark
  wireshark-gnome-1.8.10-17.el6.x86_64
  wireshark-1.8.10-17.el6.x86_64
  

  

  

  

  osi(开放系统互联) 物理层(网卡) 数据链路层(交换) 网络层(路由,三层)  传输层 (udp视频音频适合   tcp  )  会话   表示层  应用 http ftp smtp
  

  

  

  IP包里都包含哪些信息:目标地址 源地址 目标端口  源端口
  

  

  tcp标记位 : 建立连接SYN  确认ACK   断开FIN  发送数据PUSH   重新连接RST
  

  

  tcp/ip 四层:
  物理层(比特流)  网络层(包)  传输层(段) 应用层(协议层)
  

  为什么给ip包分段:因为数据包可能比较大,路由过不去只能分段,每个数据包会有tcp标记,。
  

  

  

  ftp(下载20 主动) ftp(访问21 被动)
  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  CA机构(CA服务器)是用来给公司服务器颁发数字证书的。有权威的也有私有自己搭建的。
  

  使用IP地址是X.X.X.88主机做CA服务器
  整体部署思路
  第一步:配置CA签署环境(给客户端发证的默认配置)
  /etc/pki/tls/openssl.cnf
  第二步:为CA服务器生成私钥(创建密钥对)
  第三步:为CA服务器创建根证书 (生成自己的根证书文件)
  第四步:发布根证书文件(把自己的根证书共享给客户端)
  第五步:客户端下载根证书
  

  1
  [root@stu ~]# rpm -qf   /etc/pki/tls/openssl.cnf
  openssl-1.0.1e-42.el6.x86_64
  [root@stu ~]#
  

  vim   /etc/pki/tls/openssl.cnf
  40 [ CA_default ]
  42 dir             = /etc/pki/CA
  43 certs           = $dir/certs
  45 database        = $dir/index.txt
  50 certificate     = $dir/my-ca.crt
  55 private_key     = $dir/private/my-ca.key
  

  84 [ policy_match ]
  85 countryName             = match
  86 stateOrProvinceName     = match
  87 organizationName        = match
  88 organizationalUnitName  = optional
  89 commonName              = supplied
  90 emailAddress            = optional
  

  128 [ req_distinguished_name ]
  130 countryName_default             = CN
  135 stateOrProvinceName_default     = beijing
  138 localityName_default    = beijing
  141 0.organizationName_default      = tarena
  148 organizationalUnitName_default  = ope
  :wq
  

  

  

  touch  /etc/pki/CA/index.txt
  echo  01  >  /etc/pki/CA/serial
  

  2
  cd  /etc/pki/CA/private/
  ]# openssl  genrsa  -des3  2048  >  my-ca.key
  chmod  600  my-ca.key
  

  

  3
  cd   /etc/pki/CA/private/
  openssl req   -new  -x509  -key  my-ca.key  -days 365  >
  

  ../my-ca.crt
  

  

  [root@stu private]# openssl req   -new  -x509  -key
  

  my-ca.key  -days 365 > ../my-ca.crt
  Enter pass phrase for my-ca.key:
  You are about to be asked to enter information that will
  

  be incorporated
  into your certificate request.
  What you are about to enter is what is called a
  

  Distinguished Name or a DN.
  There are quite a few fields but you can leave some
  

  blank
  For some fields there will be a default value,
  If you enter '.', the field will be left blank.
  -----
  Country Name (2 letter code) [CN]:
  State or Province Name (full name) [beijing]:
  Locality Name (eg, city) [beijing]:
  Organization Name (eg, company) [tarena]:
  Organizational Unit Name (eg, section) [ope]:
  Common Name (eg, your name or your server's
  

  hostname) []:ca.tedu.cn
  Email Address []:plj@tedu.cn
  [root@stu private]#
  

  [root@stu CA]# ls /etc/pki/CA/my-ca.crt
  /etc/pki/CA/my-ca.crt
  [root@stu CA]#
  

  4
  rpm  -q  httpd  ||  yum  -y  install  httpd
  mkdir  /var/www/html/certs/
  cp  /etc/pki/CA/my-ca.crt   /var/www/html/certs/
  service   httpd   start

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-461594-1-1.html 上篇帖子: linux 安全应用 1 下篇帖子: linux ulimit总结(一)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表