selinux控制
Selinux
一、selinux--核心級控制
selinux
1.selinux工作模式
vim /etc/sysconfig/selinux
# This file controls the state of SELinuxon the system.
# SELINUX= can take one of these threevalues:
# enforcing - SELinux security policy is enforced. #強制模式
# permissive - SELinux prints warnings instead of enforcing. #警告模式
# disabled - No SELinux policy is loaded.
SELINUX=disabled #關閉
# SELINUXTYPE= can take one of these twovalues:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes areprotected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
2.檢視selinux工作模式
[root@localhost ~]# getenforce
Disabled
3.更改工作狀態
setenforce 0 #表示工作在permissive模式,可以檢視檔案
setenforce 1 #表示工作在enfrocing模式,即強制模式
注意:若更改了狀態,一定要重啟系統。
二、安全上下文修改
1.selinux檔案上下文通常是由父目錄指定的,即在建立檔案時,將父目錄的安全上下文指定給新建檔案。若檔案是在別處建立,再利用mv或cp -a等命令移至其他位置,該檔案仍將保持原來的selinux上下文。
如:修改匿名使用者登入FTP伺服器的家目錄是/linux,檢測是否可以檢視家目錄中問題
[root@foundation90 ~]# lftp 172.25.254.109
lftp 172.25.254.109:~> ls #檢視家目錄內容,未顯示家目錄中內容,知存在安全上下文問題
2.顯示檔案的安全上下文
ls -Z /目錄名 #檢視某目錄的安全上下文
ps -lZ /目錄名
ps auxZ | grep /目錄名
顯示內容中“?”表示安全上下文不同
3.臨時修改安全上下文
chcon -t public_content_t /linux #指定linux檔案的安全上下是public_content_t
三、semanage
1.getenfoce #檢視工作在enforcing狀態
2.mkdir /westos
mkdir -p /westos/{1..3}
3.修改匿名使用者登入FTP伺服器的家目錄
vim/etc/vsftpd/vsftpd.conf
anon_root=/westos
4.匿名登入FTP伺服器
[root@foundation9 ~]# lftp 172.25.254.109
lftp 172.25.254.109:~> ls
lftp 172.25.254.109:/> ls
可以看出此時不能顯示家目錄/westos中的內容,存在安全上下文問題
5.檢視安全上下文
[root@localhost109 ~]# ps auxZ | grepvsftpd
system_u:system_r:ftpd_t:s0-s0:c0.c1023root 3979 0.0 0.0 52760 564 ? Ss 21:29 0:00 /usr/sbin/vsftpd/etc/vsftpd/vsftpd.conf
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023root 4014 0.0 0.0 112640 936 pts/1 R+21:31 0:00 grep --color=auto vsftpd
內容顯示:vsftp只能檢視並顯示安全上下文是ftpd_t的檔案
[root@localhost109 ~]# ls -lZ /var/ftp
drwxr-xr-x. root rootsystem_u:object_r:public_content_t:s0 pub #安全上下文型別是public_content_t
[root@localhost109 ~]# ls -lZ /westos/
-rw-r--r--. root rootunconfined_u:object_r:default_t:s0 file #安全上下文型別是預設型別
6.修改安全上下文
(1)chcon -t 命令可以臨時更改安全上下文型別。
所謂臨時更改即核心中並沒有記錄某檔案的特殊安全上下文。所以若要永久更改安全上下文,則需要將特殊安全上下文型別記錄在為檔案中。
(2)先檢視核心是否有記錄某檔案的特殊安全上下文,命令如下:
semanage fcontext -l | grep /westos #檢視關於/westos的安全上下文,若無顯示,即沒有記錄
semanege fcontext -l | grep /var/ftp #檢視/var/ftp的安全上下文
[root@localhost109 ~]# semanage fcontext -l| grep /var/ftp
/var/ftp(/.*)? all files #包括該目錄及目錄中的內容以及將要新建的檔案 system_u:object_r:public_content_t:s0
/var/ftp/bin(/.*)? all files system_u:object_r:bin_t:s0
/var/ftp/etc(/.*)? all files system_u:object_r:etc_t:s0
/var/ftp/lib(/.*)? all files system_u:object_r:lib_t:s0
/var/ftp/lib/ld[^/]*\.so(\.[^/]*)* regular file system_u:object_r:ld_so_t:s0
(3)將/westos安全上下文修改為與/var/ftp相同的上下文
根據以上內容顯示,修改命令格式如下:
semanage fcontext -a -t public_content_t '/westos(/.*)?'
-a #表示新增安全上下文檔案
-t #安全上下文型別
7.重新整理安全上下文,完成修改
restorecon -RvvF /westos/
8.匿名登入FTP,ls 進行測試
二、布林值更改
1.FTP伺服器預設的本地使用者具有寫功能--vsftpd的配置檔案中write_enable=YES,則具有上傳功能
2.setenfoce 1 #為安全起見,selinux應處於強制模式
3.[root@foundation9 ~]# lftp 172.25.254.109-u student
Password:
lftp student@172.25.254.109:~> ls
lftp student@172.25.254.109:~> put/etc/passwd
put: Access failed: 553 Could not createfile. (passwd) #上傳失敗,553表示許可權使用者許可權太小
4.檢視使用者許可權
[root@localhost109 ~]# ls -l /home/student
total 4
-rw-r--r--. 1 student student 2367 Apr 2822:08 passwd #使用者無寫許可權
[root@localhost109 ~]# chmod u+w/home/student #新增寫許可權
再測試:lftpstudent@172.25.254.109:~> put /etc/passwd
put: Access failed: 553 Could not create file. (passwd) #上傳失敗
5.setenforce 0 #使工作在警告狀態
[root@localhost ~]# setenforce 0
[root@localhost ~]# getenforce
Permissive
本地使用者可以上傳檔案,但為了安全起見,selinux為強制狀態
6.可以通過更改布林值,開發個使用者的某些功能。
getsebool -a | grep ftp #檢視FTP伺服器各功能的狀態
[root@localhost ~]# getsebool -a | grep ftp
ftp_home_dir --> off #使用者上傳文家的功能處於關閉狀態
ftpd_anon_write --> off
ftpd_connect_all_unreserved --> off
ftpd_connect_db --> off
ftpd_full_access --> off
ftpd_use_cifs --> off
ftpd_use_fusefs --> off
ftpd_use_nfs --> off
ftpd_use_passive_mode --> off
httpd_can_connect_ftp --> off
httpd_enable_ftp_server --> off
sftpd_anon_write --> off
sftpd_enable_homedirs --> off
sftpd_full_access --> off
sftpd_write_ssh_home --> off
tftp_anon_write --> off
tftp_home_dir --> off
setsebool -P ftp_home_dir 1 #永久開啟上傳檔案功能
setsebool -P ftp_home_dir 0 #關閉該功能
7.本地使用者登入FTP伺服器上傳檔案
相關文章
- Linux系統下安全控制策略SELinux解析Linux
- 基於linux下的selinux強制訪問控制Linux
- SELinuxLinux
- SELinux: 如何讓selinux對某些命令放行,自定義selinux規則。Linux
- switch_selinux.sh | 開啟或禁用SELinuxLinux
- 檢視 SELinux狀態及關閉SELinuxLinux
- SELinux Introduce - SELinux技術簡介(轉)Linux
- 檢視selinux的狀態以及關閉selinuxLinux
- 淺析SELinuxLinux
- 關閉selinuxLinux
- SELinux tipsLinux
- 【資訊保安】SELinuxLinux
- SeLinux分析工具Linux
- SELinux如何永久禁用Linux
- SELinux簡單配置Linux
- SElinux配置與管理Linux
- SELinux 安全模型——TELinux模型
- 什麼是seLinux?Linux關閉seLinux有什麼影響?Linux
- Linux中selinux是什麼意思?SELinux的主要作用有哪些?Linux
- 解決SELinux對網站目錄許可權控制的不當的問題Linux網站
- CentOS 8 禁用 SELinux 教程CentOSLinux
- selinux實戰手冊Linux
- selinux常用命令Linux
- Unable to load SELinux PolicyLinux
- RHEL5SELinux:AbenchmarkLinux
- 說說SELinux工作原則Linux
- SELinux has to be disabled on RHEL/OEL 5Linux
- 揭開SELinux的秘密(轉)Linux
- SELinux簡介和解決方法Linux
- Android SELinux許可權AndroidLinux
- 使用semanage管理SELinux安全策略Linux
- Linux——防火牆、SELinux規則Linux防火牆
- linux2unit10selinuxLinux
- Linux下selinux簡單梳理Linux
- SElinux的開啟和關閉Linux
- SElinux以及防火牆的關閉Linux防火牆
- centos:開啟和關閉selinuxCentOSLinux
- RHEL 6: semanage SELinux 命令找不到Linux