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
#回車
#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