热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

dsa签名linux_linuxSElinux防护加密解密gpg签名与认证

SElinuxSecurity-EnhancedLinux由美国国家安全局主导开发一套强化linux安全的mac扩展模块selinux的运作机制:集成到linux内核

SElinux Security-Enhanced Linux

由美国国家安全局主导开发

一套强化linux安全的mac扩展模块

selinux的运作机制:

集成到linux内核上(2.6及以上)

操作系统提供可定制的策略,管理工具

linux安全保护模型

DAC,自主访问控制

MAC,强制访问控制

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

SElinux使用:

[root@158 ~]# sestatus 查看状态

enabled 启用模式

permissive 警告模式

disabled 禁用模式

SELINUXTYPE=targeted 保护常见的网络服务

示例:

[root@158 ~]# vim /etc/sysconfig/selinux

SELINUX=enabled 启用模式

SELINUXTYPE=targeted 保护常见的网络服务

[root@158 ~]# reboot

查看文件的安全上下文

ll -Z 文件名

[root@158 ~]# ll -Z /etc/passwd

-rw-r--r--. root root system_u:object_r:etc_t:s0 /etc/passwd

查看目录的安全上下文

ll -dZ 目录名

[root@158 ~]# ll -dZ /etc/

drwxr-xr-x. root root system_u:object_r:etc_t:s0 /etc/

查看进程的安全上下文

ps aux -Z | grep 进程名

[root@158 ~]# ps aux -Z | grep http

unconfined_u:system_r:httpd_t:s0 root 2403 1.0 0.5 188164 5784 ? Ss 16:33 0:00 /usr/sbin/httpd

unconfined_u:system_r:httpd_t:s0 apache 2405 0.0 0.3 188164 3376 ? S 16:33 0:00 /usr/sbin/httpd

..... .....

unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 root 2414 0.0 0.0 103320 856 pts/0 S+ 16:33 0:00 grep http

安全上下文格式:用户:角色:访问类型:选项

常见的访问类型:

bin t:二进制执行文件

etc t:系统配置文件

fsadm exec t:文件系统管理

admin home t:管理员账户的宿主目录

httpd sys content t:httpd网站目录

启用了selinux后的一般操作规律

移动的文件,原有的上下文属性不变

复制的文件,自动继承目标位置的上下文

创建新文件时,会自动继承父目录的安全上下文

修改文件的安全上下文文件

chcon 选项 访问类型 文件名

选项:

-t 指定的访问类型

-R 递归修改

-u,-r,分别来指定用户,角色

实例:

[root@158 ~]# ll -Z xx.html (在root下创建一个文件)

-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 xx.html

[root@158 ~]# mv xx.html /var/lib/mysql/ (把文件移动到mysql目录下)

[root@158 ~]# chcon -t mysqld_db_t /var/lib/mysql/xx.html (更改文件安全上下文)

[root@158 ~]# ll -Z /var/lib/mysql/xx.html (再次查看)

-rw-r--r--. root root unconfined_u:object_r:mysqld_db_t:s0 /var/lib/mysql/xx.html

恢复文件的安全上下文(恢复为所在位置的默认上下文属性)

restorecon 文件名

选项:

-t 指定的访问类型

-R 递归修改

实例:

[root@158 ~]# mv /var/lib/mysql/xx.html /root/(移动回root)

[root@158 ~]# ll -Z xx.html

-rw-r--r--. root root unconfined_u:object_r:mysqld_db_t:s0 xx.html

[root@158 ~]# restorecon xx.html (恢复)

[root@158 ~]# ll -Z xx.html

-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 xx.html

设置selinux布尔值(bool)

查看selinux布尔值

[root@158 ~]# getsebool -a

修改布尔值

setsebool -P 布尔选项 on/off

-P 永久修改

实例:在158服务器上配置ftp服务,允许匿名用户上传/下载文件

[root@158 ~]# vim /etc/vsftpd/vsftpd.conf

anon_upload_enable=YES(27行处,去掉#号)

[root@158 ~]# /etc/init.d/vsftpd start

修改ftp布尔值(不修改布尔值上传不了文件)

[root@158 ~]# setsebool -P allow_ftpd_anon_write on(更改ftp布尔值 -P永久更改 on开启)

[root@158 ~]# setsebool -P allow_ftpd_full_access 1

ftp> cd hydra(到hydra目录下)

ftp> lcd /root/(到root下)

ftp> put xx.sh(上传root下的xx.sh文件)

当不知道更改什么布尔值的时候该怎么做?

运行selinux日志服务,记录报错信息

[root@158 ~]# yum list | grep -i shoot

setroubleshoot

setroubleshoot-plugins.noarch

setroubleshoot-server

需要这三个包

测试:selinux日志服务

[root@158 ~]# yum -y install setroubleshoot-plugins.noarch setroubleshoot-server setroubleshoot

[root@158 ~]# reboot(需要重启主机才可以)

[root@158 ~]# setsebool -P allow_ftpd_full_access=0(把布尔值改为0)

ftp> cd hydra

ftp> lcd /root/

ftp> put install.log(测试上传文件失败)

[root@158 ~]# tail -f /var/log/messages(日志下回产生错误的问题)

Sep 11 18:36:11 158 setroubleshoot: SELinux is preventing

/usr/sbin/vsftpd from write access on the directory hydra.

For complete SELinux messages.

run sealert -l b29f9b89-94f1-4476-ad54-cc2c1225b88f

[root@158 ~]# sealert -l b29f9b89-94f1-4476-ad54-cc2c1225b88f(然后运行错误信息,它会提示解决办法)

If 您要 allow ftp servers to login to local users and read/write all files on the system, governed by DAC.

Then 您必须启用 'allow_ftpd_full_access'boolean 告知 SELinux 这个情况。

Do(解决办法)

setsebool -P allow_ftpd_full_access 1(然后运行这条命令)

ftp> cd hydra(再次测试上传文件)

ftp> lcd /root/

ftp> put install.log(上传成功)

150 Ok to send data.

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

加密与解密

加密:把明文变成密文(发送方)

解密:把密文变成明文(接受方)

算法:实现 "明文《--》密文" 转换的计算规则

密钥:实现 "明文《--》密文" 转换用到的指令或代码

加密方式:

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

非对称加密: 加密/揭秘用不同的密钥(公钥加密,私钥解密)

不可逆加密(信息摘要):基于输入的信息生成长度较短

位数固定的散列值,通常用来验证数据的完整性

Hash散列技术,MD5 SHA

加密算法:

对称加密算法:

DES

AES

非对称加密算法:

RSA

DSA

加密工具:

GPG加/解密工具:最流行的数据加密,数字签名工具(redhat自带)

[root@158 ~]# gpg --help

支持的算法:

公钥:RSA, ELG, DSA

对称加密:3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH, CAMELLIA128,

CAMELLIA192, CAMELLIA256

散列:MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224

压缩:不压缩, ZIP, ZLIB, BZIP2

语法:

gpg [选项] [文件名]

加密操作:-c

解密操作:-d(默认把解密的文件输出到屏幕)

实例:

使用gpg做对称加密/解密

[root@158 ~]# gpg -c xx.html

┌───────────────────────────

│ 请输入密码 |

│ |

│ |

│ Passphrase ________________________________________ |

│ |

│ |

└───────────────────────────

[root@158 ~]# ls

xx.html.gpg(加密后的文件)

[root@158 ~]# gpg -d xx.html.gpg > /tmp/xx.txt(解密,把内容放到tmp/xxx.txt下)

[root@158 ~]# cat /tmp/xx.txt (查看加密后的文件)

hail hydra

实例:

使用gpg做非对称加密/解密

创建密钥对:

[root@158 ~]# gpg --gen-key

//设置用户信息,私钥口令

[root@158 ~]# gpg --list-keys(列出自己的密钥)

[root@158 ~]# gpg -a --export > /tmp/xx.pub(导出公钥)

[root@158 ~]# scp /tmp/xx.pub xxx.xxx.xxx.xx.:/root(传输公钥)

加密:

[root@ceshiji ~]# gpg --import /root/xx.bup(导入158的公钥)

[root@ceshiji ~]# gpg -e -r 姓名 加密的文件(-e加密 -r创建gpg时候写的姓名)

解密:

[root@158 ~]# gpg -d 文件(-d解密,会自动调用私钥)

实例:

158主机创建密钥对,导出公钥,并把导出的公钥传给ceshiji主机

ceshiji主机导入158主机的公钥,使用公钥加密要发送的文件,并把加密后的文件传给158

158主机使用自己的私钥解密文件

[root@158 ~]# gpg --gen-key

请选择您要使用的密钥种类:

(1) RSA and RSA (default)

(2) DSA and Elgamal

(3) DSA (仅用于签名)

(4) RSA (仅用于签名)

您的选择? 1

RSA 密钥长度应在 1024 位与 4096 位之间。(位数越大越安全)

您想要用多大的密钥尺寸?(2048)2048

您所要求的密钥尺寸是 2048 位

请设定这把密钥的有效期限。

0 = 密钥永不过期

= 密钥在 n 天后过期

w = 密钥在 n 周后过期

m = 密钥在 n 月后过期

y = 密钥在 n 年后过期

密钥的有效期限是?(0) 0

密钥永远不会过期

以上正确吗?(y/n)y

真实姓名:Anonymous(这三个东西要记住,解密会用到)

电子邮件地址:Anonymous@hydra.onion

注释:tor

您选定了这个用户标识:

“Anonymous (tor) ”

更改姓名(N)、注释(C)、电子邮件地址(E)或确定(O)/退出(Q)?O

您需要一个密码来保护您的私钥。

我们需要生成大量的随机字节。这个时候您可以多做些琐事(像是敲打键盘、移动(这里速度会很慢,很慢)

鼠标、读写硬盘之类的),这会让随机数字发生器有更好的机会获得足够的熵数。

[root@158 ~]# gpg --list-keys

/root/.gnupg/pubring.gpg

------------------------

pub 1024R/A1982C18 2017-09-12

uid Anonymous (tor)

sub 1024R/31800563 2017-09-12

[root@158 ~]# gpg -a --export > /tmp/158.bup(导出公钥)

[root@158 ~]# scp /tmp/158.bup 192.168.4.10:/root/(传送公钥给ceshiji)

[root@ceshiji ~]# gpg --import /root/158.bup(导入158的公钥)

[root@ceshiji ~]# gpg -e -r Anonymous xxx.txt(用公钥加密文件)

[root@ceshiji ~]# scp xxx.txt.gpg 192.168.4.158:/root/(把加密后的文件传给158)

[root@158 ~]# gpg -d xxx.txt.gpg >/tmp/xxx.txt(158会自动调用自己的私钥解密,解密后的文件默认输出到屏幕上,可以重定向到文件)

gpg软件签名与认证

[root@158 ~]# gpg -b xx.sh(-b签名)

xx.sh.sig(签名文件)

[root@158 ~]# scp xx.sh.sig xx.sh 158.bup 192.168.4.19:/root/(把源文件和签名文件以及公钥打包发送给主机19)

[root@19 ~]# gpg --import /root/158.bup(导入公钥)

[root@19 ~]# gpg --verify xx.sh.sig

gpg: 于 2017年09月13日 星期三 03时34分11秒 CST 创建的签名,使用 RSA,钥匙号 A1982C18

gpg: 完好的签名,来自于“Anonymous (tor) ”(完好的签名,如果内容被改后则是损坏的签名)

gpg: 警告:这把密钥未经受信任的签名认证!

gpg: 没有证据表明这个签名属于它所声称的持有者。(验证指纹,指纹一样则是没问题的)

主钥指纹: 83D0 D0A8 CA01 B349 B663 B88C 82D5 700D A198 2C18

[root@19~]# gpg --fingerprint(打印指纹)

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

密钥指纹 = 83D0 D0A8 CA01 B349 B663 B88C 82D5 700D A198 2C18



推荐阅读
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 集成电路企业在进行跨隔离网数据交换时面临着安全性问题,传统的数据交换方式存在安全性堪忧、效率低下等问题。本文以《Ftrans跨网文件安全交换系统》为例,介绍了如何通过丰富的审批流程来满足企业的合规要求,保障数据交换的安全性。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 图片复制到服务器 方向变了_双服务器热备更新配置文件步骤问题及解决方法
    本文介绍了在将图片复制到服务器并进行方向变换的过程中,双服务器热备更新配置文件所出现的问题及解决方法。通过停止所有服务、更新配置、重启服务等操作,可以避免数据中断和操作不规范导致的问题。同时还提到了注意事项,如Avimet版本的差异以及配置文件和批处理文件的存放路径等。通过严格执行切换步骤,可以成功进行更新操作。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 在线教育平台的搭建及其优势
    在线教育平台的搭建对于教育发展来说是一次重大进步。未来在线教育市场前景广阔,但许多老师不知道如何入手。本文介绍了在线教育平台的搭建方法以及与传统教育相比的优势,包括时间、地点、空间的灵活性,改善教育不公平现象以及个性化教学的特点。在线教育平台的搭建将为学生提供更好的教育资源,解决教育不公平的问题。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
author-avatar
王小瑶p_35ps
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有