歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> 3、SElinux加密、解密

3、SElinux加密、解密

日期:2017/3/3 11:53:00   编辑:Linux技術

selinux

一.SELINUX的運行模式

修改文件/etc/selinux/config

設置 SELINUX=disabled 禁用

設置 SELINUX=permissive 寬松模式

設置 SELINUX=enforcing 強制模式

二.查看當前運行模式

[root@localhost ~]# getenforce

Enforcing

三.臨時修改運行模式

[root@localhost ~]# setenforce

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

#yum -y install setrouble* //排錯軟件,提示selinux發生的錯誤

#reboot //安裝完軟件需重啟

四.配置SELINUX的兩個主要方面

1.SELINUX上下文環境

(1)查看一個文件的上下文環境

[root@localhost html]# ls -Z

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

[root@localhost html]# ls -Zd

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

[root@localhost html]#

只關心httpd_sys_content_t,對照目錄的ls -Zd 的httpd_sys_content_t去修改文件的上下文環境

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

[root@localhost 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

加密解密

[root@localhost html]# tr 'a-z' 'A-Z' //把字母轉換成大寫

hellow

HELLOW

^C

[root@localhost html]# cat index.html | tr 'a-z' 'A-Z' //把文件字母轉換成大寫輸出

BBB

[root@localhost html]# tr 'a-z' 'A-Z' < index.html //把文件字母轉換成大寫輸出

WSYHT

[root@localhost 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 驗證簽名

本文出自 “wsyht的博客” 博客,請務必保留此出處http://wsyht2015.blog.51cto.com/9014030/1790278

Copyright © Linux教程網 All Rights Reserved