3、SElinux加密、解密

selinux

一.SELINUX的运行模式

修改文件/etc/selinux/config

设置 SELINUX=disabled 禁用

设置 SELINUX=permissive 宽松模式

设置 SELINUX=enforcing 强制模式

二.查看当前运行模式

[[email protected] ~]# getenforce

Enforcing

三.临时修改运行模式

[[email protected] ~]#  setenforce

usage:  setenforce [ Enforcing | Permissive | 1 | 0 ]  //1代表强制,0代表宽松

#yum -y install setrouble*    //排错软件,提示selinux发生的错误

#reboot   //安装完软件需重启

四.配置SELINUX的两个主要方面

1.SELINUX上下文环境

(1)查看一个文件的上下文环境

[[email protected] html]# ls -Z

-rw-r--r--. root root unconfined_u:object_r:net_conf_t:s0 index.html //文件的上下文环境

[[email protected] html]# ls -Zd

drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 .//目录上下文环境

[[email protected] html]#

只关心httpd_sys_content_t,对照目录的ls -Zd 的httpd_sys_content_t去修改文件的上下文环境

(2)修改selinux上下文环境值

[[email protected] html]# chcon -t httpd_sys_content_t index.html

(2.1)把文件恢复到所在目录的默认值

#restorecon -Rv /var/www/html  //-R带表递归恢复上下文环境值,包括子文件和子文件夹

#restorecon -v /var/www/html/index.html //只修改一个文件的上下文环境,-v打印出来

从其他目录拷贝过来的文件,会继承他原目录的上下文环境

而从其他目录移动过来的文件,则会继承移动目标文件夹的上下文环境

SELINUX布尔值

4.windows通过samba访问linux

(1)安装samba

(2) # smbpasswd -a root

(3) service smb start 启动服务

(4) 在windows下用UNC路径访问,能够看到root的家目录,但是双击打不开

(5) # getsebool -a | grep samba

(6) # sebsebool -P samba_export_all_rw 1 //r,读,w写,1代表打开读写,也可写成rw=on

(7) 再次在windows下用UNC路径访问,可以打开root的家目录

2.例二. 实现FTP匿名用户上传

(1) # mkdir -m 757 /var/ftp/incoming

(2)vim /etc/vsftpd/vsftpd.conf

anon_upload_enable=YES     修改vsftpd.conf打开匿名上传

(3) 上传文件测试,

ftp 192.168.10.1 -> 回车  -> ftp -> 回车 ->

ftp> cd incoming

ftp> lcd /etc    //lcd改变本地目录

ftp> put passwd

如果已经安装setroubleshoot,屏幕右上角会弹出提示,根据提示修改,

#chcon -t public_content_rw_t /var/ftp/incoming  //修改上下文环境

# getsebool -a | grep ftp > 获得与ftp 相关的selinux布尔值

# setsebool -P allow_ftpd_anon_write 1   //打开布尔值,也可写成write=on

(4)再次尝试上传,成功

ftp 192.168.1.2

ftp>jack 用jack登陆

ftp>密码

提示不能更改目录

# getsebool -a | grep ftp   > 获得与ftp 相关的selinux布尔值

# setsebool -P ftp_home_dir 1  //打开布尔值,允许访问目录

vimdiff vsftpd.conf  vsftpd.conft //比较两个文件的不同之处

六.安装setroubleshoot   (troubleshooting) 排错

# yum install -y setroubleshoot*

重启

有任何的selinux违规行为,系统都会给出提示和解决方案

如果是图形界面下,屏幕右上角会弹出消息。如果是字符终端下,可以查看日志文件

vim /var/log/messages

run sealert -l 17876b7e-c588-4d5e-a900-ca093341fc38

在终端在运行这行则会有相关帮助信息提示

# sealert -l 17876b7e-c588-4d5e-a900-ca093341fc38

七.获得SELINUX设置的帮助

(1)man ftpd selinux

man httpd selinux

man samba selinux

(2)有些服务配置文件中也有说明

vim /etc/samba/smb.conf

加密解密

[[email protected] html]# tr ‘a-z‘ ‘A-Z‘   //把字母转换成大写

hellow

HELLOW

^C

[[email protected] html]# cat index.html | tr ‘a-z‘ ‘A-Z‘ //把文件字母转换成大写输出

BBB

[[email protected] html]# tr ‘a-z‘ ‘A-Z‘ < index.html  //把文件字母转换成大写输出

WSYHT

[[email protected] html]# tr ‘a-y‘ ‘b-z‘ //加密

hellow

ifmmpx

^C

GnuPG加密工具

对称加密

非对称加密

签名

gpg --version //查看版本

对称加密

加密操作:  -c

解密操作:  -d

对称加密

终端1(bob)

ssh -X [email protected] //-X表示可以打开图形界面

echo "bob" > bob.txt

gpg -c bob.txt   //加密

cp bob.txt.gpg /tmp

终端2 (jack)

ssh -X [email protected] //-X表示可以打开图形界面

cp /tmp/bob.txt.gpg .

gpg -d bob.txt  //解密输出到屏幕 (不写-d也行)

gpg -d bob.txt.gpg > bob.txt //解密并重定向到bob.txt这个文件

非对称加密

终端1(bob)

ssh -X [email protected] //-X表示可以打开图形界面

#gpg --gen-key

#回车

#回车

#0

#y

#wsyht

#[email protected]

#回车

#O

#输入保护私钥的密码

提示框点右边选项

随便按乱按字母生成密钥

#gpg --list-keys   //查看公钥信息

#gpg --list-secret //查看私钥信息

#gpg --export -a > /tmp/bob.key //导出公钥,-a表示用ASCII码形式输出 (1)

#cat /tmp/bob.key

#gpg --fingerprint  //打印指纹信息

#cp /tmp/bob.txt.asc .   //拷贝javk已加密的文件到当前文件夹 (4)

#gpg bob.txt.asc

#ls

终端2(jack)

#ssh -X [email protected] //-X表示可以打开图形界面

#gpg --import /tmp/bob.key   //导入公钥  (2)

#gpg --list-keys //可以查看公钥

#gpg --list-secret //查看不了私钥,没有密钥对

#man gpg

#gpg -ear bob bob.txt    e,加密,a,ASCIID码输出,r,接收者,bob用户名

#y

#cat bob.txt.asc

#cp /bob.txt.asc /tmp  //拷贝用公钥加密的文件到tmp (3)

三.使用GPG签名

1.签名可实现的功能:

(1)身份认证,表明用户确实是他声称的那个人

(2)数据完整性,数据一旦被篡改,签名就会失效

(3)认可,不可抵赖

终端1(bob)

2.bob发送签名文件给jack

#echo ‘bob file‘ > bob.txt

#gpg -b bob.txt  //签名

#ls

bob.txt bob.txt.sig

2.2把原文和签名文件发送给jack

#cp bob.txt* /tmp

终端2(jack)

2.3验证签名

#cp /tmp/bob.txt*

#ls

bob.txt bob.txt.sig

#gpg --verify bob.txt.sig 验证签名

时间: 2024-10-09 18:13:47

3、SElinux加密、解密的相关文章

AJAX+REA实现前后台数据交互的加密解密

AJAX+REA实现前后台数据交互的加密解密 1.创建js文件Encryption.js /**  * 加密解密  */ /** RSA加密用 生成key */ function bodyRSA(){ /** 1024位的key参数写130,2014位的key参数写260 */ setMaxDigits(130); /** ajax 调用后台方法,取回公钥 */ var keyR ;     $.ajax({      url: "/GHGL/Key/pk",//请求后台的url,本例

加密解密过程

1,首先来说说有关加密解密有关的信息 信息安全标准NIST(National Institute of Standards and Technology)美国国家标准与技术研究院 openssl有CIA C:保密性: 数据保密性 隐私性 A:完整性: 数据完整性 系统完整性 I:可用性 真实性:一个实体是真实的,可被验证的. 可追溯性:一旦被攻击,能够追溯攻击源在哪 2,OSI规定的X.800 1)安全攻击: 被动攻击:窃听 主动攻击:1,伪装 2,重播 3,消息修改 4,拒绝攻击等 2)安全服

加密解密

在现代密码学中,加密方法大致可分为对称密钥加密(对称加密)和公开密钥加密(非对称加密). 一. 对称加密(Symmetric-key algorithm,或对等加密: Reciprocal cipher ) 对称加密,即加密和解密使用同一个密钥,或者知道一方密钥能够轻易计算出另一方密钥.其解密(decryption)算法等同于加密算法,也就是说,要还原对等加密的密文,套用加密同样的算法即可得到明文. 对称加密的速度比非对称加密快很多,在很多场合都需要对称加密. 对称加密又可分为分组密码(分组加密

C/C++使用openssl进行摘要和加密解密(md5, sha256, des, rsa)

openssl里面有很多用于摘要哈希.加密解密的算法,方便集成于工程项目,被广泛应用于网络报文中的安全传输和认证.下面以md5,sha256,des,rsa几个典型的api简单使用作为例子. 算法介绍 md5:https://en.wikipedia.org/wiki/MD5 sha256:https://en.wikipedia.org/wiki/SHA-2 des: https://en.wikipedia.org/wiki/Data_Encryption_Standard rsa: htt

c#中base64加密解密

using System; using System.Text; namespace Common { /// <summary> /// 实现Base64加密解密 /// </summary> public sealed class Base64 { /// <summary> /// Base64加密 /// </summary> /// <param name="codeName">加密采用的编码方式</param

C#DES加密解密字符串

1.添加引用 using System.Security.Cryptography; using System.IO; 2.添加默认密匙向量 //默认密钥向量 private static byte[] Keys = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF }; 3.添加加密解密类 /// <summary> /// DES加密字符串 /// </summary> /// <param name="encry

Discuz论坛写出的php加密解密处理类(代码+使用方法)

PHP加密解密也是常有的事,最近在弄相关的东西,发现discuz论坛里的PHP加密解密处理类代码,感觉挺不错,在用的时候,要参考Discuz论坛的passport相关函数,后面我会附上使用方法,先把类代码帖上来: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 <?php /*

C#加密解密(DES,AES,Base64,md5,SHA256,RSA,RC4)

一:异或^简单加解密(数字类型) 1:原理: 异或用于比较两个二进制数的相应位,在执行按位"异或"运算时,如果两个二进制数的相应位都为1或者都为0,则返回0;如果两个二进制数的相应位其中一个为1另一个为0,则返回1. //对数字加密 int P_int_Num, P_int_Key;//定义两个值类型变量 string Encryptstr = (P_int_Num ^ P_int_Key).ToString();//加密数值 //对数字解密 int P_int_Key, P_int_

非对称技术栈实现AES加密解密

非对称技术栈实现AES加密解密 正如前面的一篇文章所述,https协议的SSL层是实现在传输层之上,应用层之下,也就是说在应用层上看到的请求还是明码的,对于某些场景下要求这些http请求参数是非可读的,这就要求在前端和后端不同的技术栈上完成信息的加密解密.当然我们通常完成这样专业的功能都会考虑使用相应的框架或者程序库来完成功能,前端或者NodeJS平台通常是JavaScript语言,JavaScript主流的加密解密库分别是SjclJS和CryptoJS, 本文以CryptoJS为例进行讨论.另