selinux安全防护;数据 加密 解密;抓包与扫描;协议分析软件的使用


一、selinux安全防护
二、数据 加密 解密
三、抓包与扫描
四.协议分析软件的使用
++++++++++++++++++++++++++++++
一、selinux安全防护
1.1 selinux 介绍
是一套强化linux安全的MAC扩展块
美国国家安全局主导开发
集成到linux内核(2.6及以上)
操作系统提供可定制的策略。管理工具

1.2 linux安全保护模型?
linux保护的方式:多级别保护和只保护常用的服务
   DAC自主访问控制  
   MAC强制访问控制

1.3 查看当前系统selinux的状态
[root@name451 ~]# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux  根目录
Loaded policy name:             targeted  保护常用
Current mode:                   enforcing  当前状态
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      28    版本


1.4 临时启用和禁用selinux
setenforce 1   启用
setenforce 0   禁用
1.5 永久启用或禁用selinux

vim /etc/selinux/config
enforcing---->permissive----->disabled
  强制模式---------> 宽松模式-------------->禁用
1.6 selinux使用
1.6.1 查看安全上下文(给文件或目录打的标签)
查看文件的  安全上下文   ls -Z   文件名
查看目录的   安全上下文   ls -dZ   目录名
查看进程的   安全上下文  ps aux -Z | grep -i  进程名
 
1.6.2安全上下文的组成
用户:角色:访问类型:选项
system_u:object_r:net_conf_t:s0
system_u:object_r:usr_t:s0
system_u:object_r:mysqld_db_t:s0

1.6.3常见的访问类型

bin_t    二进制执行文件
etc_t    系统配置文件
fsadm_exec_t    文件系统管理
admin_home_t    管理员账户的宿主目录
user_home_t    普通用户的宿主目录
httpd_sys_content_t    httpd网站内容
mysqld_db_t           数据库内容

1.6.4启用SELINUX之后的一般操作规律。
创建新目录或新文件  :继承父目录的安全上下文
移动文件:保持原有的访问类型不变
复印目录的文件 :继承目标目录的安全上下文

1.6.5 修改文件的安全上下文
chcon -t 访问类型   文件名   //修改单个文件
chcon -R -t 访问类型  目录名  //递归修改

1.6.6恢复文件的安全上下文
restorecon 文件名     //恢复单个文件
restorecon  -R 目录名   // 递归恢复

1.6.7修改selinux布尔值(功能开关)
查看布尔值  getsebool -a
                         -a,可列出所有的布尔值
查看某个进程的布尔值       getsebool -a  | grep -i 服务名

修改布尔值
setsebool -P 变量名  0|1
-P ,永久更改,重起仍有效
或setsebool -P 变量名  on|off
修改相关的bool值允许匿名用户上传文件
setsebool -P ftpd_full_access=1
setsebool -P ftpd_anon_write=1


setenforce 0  上传和下载都可以
setenforce 1  不允许匿名用户上传文件
在主机51上运行ftp服务,允许匿名用户上传和下载到ftp系统文件夹里

在客户端访问ftp服务器
#yunm -y install ftp
#ftp 192.168.4.51
cd 目录 #切换到某个服务目录下
get 文件名 # 下载文件
lcd 目录名  #切换客户端的系统目录下
put 文件名 #上传文件

二、数据 加密 解密
2.1 数据在传输过程中会有遇到哪些风险?
截获   ----->加密
不可否认性/篡改  ------>数字签名或做完整性校验

2.2什么是加密?把明文变为密文的过程,一般由发送负责加密
2.3什么是解密?把密文变成明文的过程,一般由接收方负责解密
2.4数据加密方式及对应的算法
对称加密:加密和解密数据时使用相同的计算规则
DES  AES
非对称加密:加密和解密数据时使用不同的计算规则(使用密钥对)算法
                     密钥对分为2个部分:公钥用来加密
                                                     私钥用来解密
RSA   DSA
2.5什么是算法:加密或解密数据时,使用的计算规则。
                        可以是口令(123456)
                        也可以是以串代码(密钥对)

2.6使用GPG工具加密
最流行的数据加密,数字签名工具软件
命令格式: gpg <选项>  

2.6.1对称加密及解密
-c加密
-d解密
gpg -c 文件名 
mv 文件名    公共文件夹   


gpg -d  加密的文件   > ~/文件名(输入解密口令)
cat ~/文件名
mdd5sum  ~/文件


2.5.2非对称加密及解密
-e 加密
-d 解密
-a --export 导出公钥
--import 导入公钥
dd if=/dev/zero of=

接收方1.创建密钥对
     rm -rf ~/.gnupg/
      gpg --gen-key
      ls ~/.gnupg/
           2.导出公钥并发送
      gpg -a --export > /tmp/userb.pub
发送方1.导入公钥
           gpg --import /tmp/userb.pub
                   ls ~/.gnupg/
          2. 加密明文文件,并发给接收方
           tail -3 /etc/paasswd > a.txt
                      cat a.txt
                   gpg -e -r userb a.txt
                  mv a.txt.gpg /tmp/
接收方解密
 gpg -d /tmp/a.txt.gpg 
输入保护密钥的密码,忘记密码就解不开了
2.5.3数据签名


签名的作用:验证文件完整性  实现不可否认性

使用私钥签名
使用公钥验证签名
 -b创建签名文件
--verify 验证签名文件
 userb 使用私钥创建签名文件
head -4 /etc/passwd > c.txt
cat c.txt
gpg -b c.txt
ls
mv  c.txt* /tmp   把签名文件和源文件放到公共文件夹
ls /tmp/c.txt*
gpg--fingerprint    输出私钥指纹
   
 usera使用导入的userb的公钥验证签名文件 
cat /tmp/c.txt
gpg --verify /tmp/c.txt.sig


三、抓包与扫描
nmap扫描
一款强大的网络探测利器工具
支持多种探测技术
ping 扫描
多端口扫描
rpm -a nmap || yum -y install nmap  检测是否安装,没有安装则安装
which nmap
man nmap 查看帮助信息
nmap 命令语法格式
#nmap [扫描的方式] [选项] <ip地址>
扫描的方式 -sS,-sT,-sU -sP
选项-A(全面扫面) -n(加快扫描速度) -P(指定ip)
nmap -sS -n -p 80 176.130.3.11只扫描176.130.3.11 的80端口是否开
常用的服务端口
21    22      23        25    53    69   80     110    3306   3128       443
ftp ssh telnet smtp dns tftp http pop3 mysql  squid  https
 
执行命令 checkstus 可以自定义检查任意任意台主机上任意服务的运行状态。
checkstus 80 144 139 143 127 12
shift 位置向左移一位
vim /root/checkstus.sh
#!/bin/bash
port=$1
shift
for ip in $*
do
    nmap -sS -n -p $port "176.130.3.$ip" |grep -i open
if [$? -eq];then
echo "176.130.3.$ip $port is open"
else 
echo "176.130.3.$ip $port is closed"
fi
done


网络抓包
tcpdump
[root@room8pc205 桌面]# which tcpdump
[root@room8pc205 桌面]# rpm -qf /usr/sbin/tcpdump //查看此命令由哪个软件提供
[root@room8pc205 桌面]# man tcpdump
 1004  tcpdump -i enp1s0
 1005  tcpdump -i enp1s0 -c 2
 1006  tcpdump -i enp1s0 -c 2 -A
 1007  tcpdump -i enp1s0 -c 2 -A -w /tmp/tcpdump.cap
 1008  tcpdump -A -r /tmp/tcpdump.cap
-i 网络接口名
-c 数字  --->抓取几个包
-A 以可阅读的方式抓取
-w 抓取的包默认输出屏幕,此选项可将包信息另存至文件
-r 文件名.cap

不加条件,抓所有。有条件,
[root@slave55 ~]# tcpdump -i eth0 -A tcp port 80
[root@slave55 ~]# tcpdump -i eth0 -A tcp port 80 and net 192.168.4.0/24
[root@slave55 ~]# tcpdump -i eth0 -A tcp port 80 and host 192.168.4.254
[root@slave55 ~]# tcpdump -i eth0 -A tcp port 80 and not host 192.168.4.254
[root@slave55 ~]# tcpdump -i eth0 -A tcp port 80 and host 192.168.4.254 or host 192.168.4.54  //抓取4.254访问80端口的数据包    或者  4.54访问任何端口所有包
[root@slave55 ~]# tcpdump -i eth0 -A tcp port 80 and \(host 192.168.4.254 or host 192.168.4.54\)


例子:
[root@lianxi56 ~]# telnet localhost 110

[root@lianxi56 conf.d]# tcpdump -i lo -A tcp port 110 -w /tmp/mail.cap
[root@lianxi56 conf.d]# tcpdump -A -r /tmp/mail.cap  | grep -i user
[root@lianxi56 conf.d]# tcpdump -A -r /tmp/mail.cap  | grep -i pass

**********************************
[root@room8pc205 桌面]# rpm -qa | grep -i wireshark
[root@room8pc205 桌面]# yum -y install wireshark*
tcp 传输协议标记位
syn  新连接标记
ack  确认链接标记
fin  断开连接标记
p   传输数据
rst  重新建立连接
抓包tcpdump:提取tcp数据的命令行工具
命令格式#
tcpdump [选项]   [过滤条件]
选项 
-i  网络接口名
tcpdump -i p8p1
-A   转换ACll码,方便阅读
tcpdump -i p8p1 -A 
-w  抓包信息存放到指定的位置
[root@room8pc205 桌面]# tcpdump -i p8p1 -A -w /tmp/a.txt

-r  把抓包信息读取出来
-c  数字   指定抓包个数
[root@room8pc205 桌面]# tcpdump -i p8p1 -A -c 2


过滤条件 
类型:host net port portrange
协议:tcp udp ip wlan  arp...
方向:src dst
多个条件组合:and  or  not
# tcpdump -i p8p1 -A  src 176.130.3.11 and port 21
#tcpdump -i p8p1 -A src 176.130.3.11 and \(port 21 or port 80\)

协议分析软件wiresshar 的使用查看ip包的具体内容
 rpm -qa |grep -i wireshark
yum -y install wireshark-*
wireshark-1.10.14-7.el7.x86_64
wireshark-gnome-1.10.14-7.el7.x86_64
::1  ipv6
127.0.0.1 ipv4
打开软件
应用层        
会话层                        应用层
表示层
传输层                        传输层
网络层                        网络层
数据链路层                   
物理层                         物理层
[root@room8pc205 桌面]# nmap 176.130.3.15

Starting Nmap 6.40 ( http://nmap.org ) at 2018-04-10 09:44 CST
Nmap scan report for static-176-130-3-15.ftth.abo.bbox.fr (176.130.3.15)
Host is up (0.00037s latency).
Not shown: 995 closed ports
PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
2049/tcp open  nfs
MAC Address: 50:9A:4C:58:FA:B7 (Unknown)
四.协议分析软件的使用

1.4 selinux配置文件
[root@host50 ~]# cat /etc/selinux/config


1.5  查看安全上下文
查看进程  ps  aux  -Z
                ps   aux  -Z  | grep  -i  进程名

查看文件  ls   -lZ  文件名

查看目录  ls    -ldZ  目录名

1.6  安全上下文的组成?
system_u:object_r:passwd_file_t:s0
system_u:object_r:net_conf_t:s0
用户:角色:访问类型:参数

1.7 常见的访问类型?

1.8 SELinux启用后的一般操作规律?
创建新文件时,新文件继承父目录的安全上下文。
移动文件时,保持原有的安全上下文不变
拷贝文件时,继承目标目录的安全上下文
1.9 修改访问类型?
]# chcon -R  -t   访问类型  目录名   //递归修改 
]# chcon -t   访问类型  文件名 
]# chcon -t httpd_sys_content_t  /var/www/html/test1.html 
1.10 恢复文件访问类型?
]# restorecon -R 目录名   //递归恢复
]# restorecon 文件名
]# restorecon /var/www/html/test2.html 
练习文件selinux 访问类型的修改 (以网站服务文件为例)

1.11  selinux布尔值  (功能开关)
查看bool值
#getsebool -a 
#getsebool -a  |  grep -i ftp

修改bool值
#setsebool  -P   选项=1|0
#setsebool  -P   选项   on|off
环境准备,启动vsftpd服务,配置允许匿名ftp用户, 可以上传和下载文件到/var/ftp/shardir目录里。
[root@host50 ~]# sed -n '29p' /etc/vsftpd/vsftpd.conf 
anon_upload_enable=YES
[root@host50 ~]# 
[root@host50 ~]# mkdir /var/ftp/shardir  
[root@host50 ~]# chmod  o+w  /var/ftp/shardir
[root@host50 ~]# systemctl  restart  vsftpd
  592  setsebool -P ftpd_anon_write=1
  593  setsebool -P ftpd_full_access on
  594  getenforce -a | grep -i ftp
  597  setenforce  1

客户端:
yum  -y  install  ftp  

lcd  切换到本机目录
get  下载 
put  上传
+++++++++++++++++++++++++++++++++++++
启用selinux日志程序记录报错信息:
启用selinux 后,修改网站服务使用的端口号为8090。


[root@host50 ~]# cat /var/log/messages | grep -n -i setroubleshoot  | tail -1
37272:Jan 28 22:38:31 host50 setroubleshoot: SELinux is preventing /usr/sbin/httpd from name_bind access on the tcp_socket port 8090. For complete SELinux messages. run sealert -l a9db74ee-ff0d-45c7-8a4d-34d4bf5bc3c4

[root@host50 ~]# sealert -l a9db74ee-ff0d-45c7-8a4d-34d4bf5bc3c4

]# semanage   port    -a  -t  http_port_t   -p   tcp   8090

+++++++++++++++++++++++++++++++
二、数据 加密 解密
2.1   为什么要加密?
2.2   什么加密?           什么是解密?
        发送方  加密         接收方  解密
2.3   什么是算法?  加/解密计算规则
                                秘钥(公钥加密  私钥解密)
                                    |——>  可以是指令 或 一段代码

2.4 加密方式?
对称加密:  加密和解密使用相同的计算规则
非对称加密:加密和解密使用不相同的计算规则

对称加密算法: DES   AES
非对称加密算法: RSA    DSA


Hash散列技术,保证数据的完整性。 md5    sha
++++++++++++++++++++++++++++++

gpg 对称加密   -c    -d

 发                                 收
usera    -------------- >  userb

usera 加密    gpg   -c    文件名

userb 解密    gpg   -d    文件名

++++++++++++++++++++++++++
gpg 非对称加密(使用密钥对)
公钥 加密
私钥 解密
发                                 收
usera    -------------- >  userb
userb(解密 )
1 创建密钥对  ~/.gnupg/
#gpg   --gen-key
#ls   ~/.gnupg/
2 导出公钥 并把公钥文件传给usera
[userb@room9pc17 ~]$ gpg --export -a  > /tmp/userb.pub
[userb@room9pc17 ~]$ cat /tmp/userb.pub 
usera(加密)
1 导入公钥文件~/.gnupg
[usera@room9pc17 ~]$ gpg --import  /tmp/userb.pub
[usera@room9pc17 ~]$ ls   ~/.gnupg
2 使用公钥加密文件 ,把加密后的文件给userb
[usera@room9pc17 ~]$ gpg -e  -r usera b.txt
[usera@room9pc17 ~]$ mv  b.txt.gpg  /tmp/
3 userb解密 
调用私钥解密 解密文件
[userb@room9pc17 ~]$ gpg -d  /tmp/b.txt.gpg   > u.txt    
                                         cat  u.txt
++++++++++++++++++++++++++++++++++
gpg数字签名   功能验证数据完整性
-b   --verify    --fingerprint
userb   
私钥签名
   26  vim  c.txt
   28  gpg -b  c.txt
         ls   c.*
   30  cp c.*   /tmp/
   33  gpg --fingerprint
usera
公钥验证签名
#gpg --verify /tmp/c.txt.sig
#cat  /tmp/c.txt
root#  sed  -i  '1s/^/aaa/'  /tmp/c.txt
usera
#cat  /tmp/c.txt
#gpg --verify /tmp/c.txt.sig
+++++++++++++++++++++++++++++++
三、抓包与扫描
3.1  扫描nmap
3.2  抓包tcpdump 
3.3  协议分析软件的使用wireshark  

3.1  扫描nmap
  180  which nmap
  181  rpm -qf  /bin/nmap
  182  rpm -q nmap
# man nmap
语法格式 
#nmap    [扫描类型]    [选项]     <ip地址>

扫描类型有哪些?  -sS   -sT  -sU   -sP 
选项有哪些?  -A   -n   -p 

ip地址表示方式?
192.168.4.53
192.168.4.100-200
192.168.4.53,57,68

#nmap  -sP  172.40.55.122
  185  nmap  -sP  172.40.55.122
  186  nmap  -sP  172.40.55.180
  187  nmap  172.40.55.180
  188  nmap -n -sT -p 80  172.40.55.180
  189  nmap -n -sT -p 25,80  172.40.55.180
  190  nmap -n -sT -p 21-100,3306  172.40.55.180
  191  nmap -n  -A 172.40.55.180

# nmap -n -sP  172.40.55.100-200     --exclude  172.40.55.143,172.40.55.158

#vim  /root/ip.txt
172.40.55.143
172.40.55.158
172.40.55.180
:wq

# nmap -n -sP  172.40.55.100-200  --excludefile   /root/ip.txt


vim /root/web.sh
#/bin/bash
for   ip   in   180   143    158  
do
    nmap  -n  -sS  -p  80  172.40.55.$ip  | grep  -q open
    if  [ $? -eq 0  ];then
         echo   " 172.40.55.$ip  80  open"
    else
         echo   " 172.40.55.$ip  80  closed"
   fi
done
:wq
+++++++++++++++++++++++++++++
#mkdir  /myself
#mv /root/web.sh   /myself/checkweb
#chmod  +x   /myself/checkweb

#vim /etc/profile
....
export  PATH=/myself:$PATH
:wq

#resource  /etc/profile
#echo $PATH
#cd  /usr/local/
#checkweb

++++++++++++++++++++++++++++++++++++
#checkweb   3306    112    130   129
#checkweb   11211    112    130   129


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rio520

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值