selinux 的管理

简介:

第十单元

selinux 的管理

 显示及更改 SELINUX 模式

  getenforce     ###显示selinux模式

  setenforce 0|1               ##0指permissive警告,1 表示 enforcing强制###

  wKioL1kC1SLhY0tLAADcaf_SKsI192.png

  vim     /etc/sysconfig/selinux       ###修改selinux开机状态###

  wKiom1kC1Tih2fX0AAFpa-fifHA118.png

  注:disable表示关闭,enforcing表示强制,permissive表示警告,disable状态切换到permissive状态或则enforcing状态要重启系统

 

测试:将/mnt下的文件westos用mv移动到/var/ftp/pub目录下,用lftp登入,查看当selinux为enforcing时,不能看到westos文件,当selinux为permissive时,能看到

wKioL1kINFrR1rKdAALMSaky0p8456.png

  显示 SELinux 文件上下文

1 将父目录的上下文指定给新创建的文件。这对 vimcp 和 touch 等命令其作用 , 但是 , 如果文件是在其他位置创建的并且保留了权限 ( 与 mv 或 cp -a 一样 ) 则还将保留 SELinux 上下文

2 显示上下文

 ps     axZ

 ps    -ZC

 ls     -Z

 

 修改selinux安全上下文

chcon -t                                 ####一次性定制安全上下文   


wKiom1kC1U3whruMAAKTWYIHKGw610.png

semanage         fcontext        ####永久更改文件的上下文####\

测试:将selinux的模式改成enforcing,将匿名用户家目录改成/westos,用lftp登入,查看是否能看到/westos下的文件,发现无法看到,因为安全上下文不同,用semanage         fcontext更改安全上下文。

 

semanage fcontext -l | grep westos   ###查看内核上是否有指定文件的安全上下文###

 

semanage fcontext -a -t public_content_t '/westos(/.*)?'####-a指添加,-t指安全上下文的类型(/.*)?是格式,因为*和?有特殊意义,所以加上‘’转义###

 

restorecon    -RvvF      /westos/       ###刷新/westos###

 

 

过程如下:

 

[root@localhost Desktop]# ls /westos/

westosfile1   westosfile2  westosfile4  westosfile6  westosfile8

westosfile10  westosfile3  westosfile5  westosfile7  westosfile9

[root@localhost Desktop]# vim /etc/vsftpd/vsftpd.conf   ###将匿名用户家目录改成/westos

wKiom1kINbyje64-AACkVNRWDFs284.png

[root@localhost Desktop]# systemctl restart vsftpd.service

[root@localhost Desktop]# lftp 172.25.254.212

lftp 172.25.254.212:~> ls                    ###测试发现看不到westos下的文件####

lftp 172.25.254.212:/> quit          

[root@localhost Desktop]# ps auxZ | grep vsftpd     ###查看vsftp的进程信息,显示安全上下文###

system_u:system_r:ftpd_t:s0-s0:c0.c1023 root 2426 0.0  0.0 52756  560 ?        Ss   21:29   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 root 2469 0.0  0.0 112640 936 pts/0 R+ 21:30   0:00 grep --color=auto vsftpd

[root@localhost Desktop]# ls -Zd /var/ftp/     ###ftpd_t的安全上下文可以访问public_content_t的安全上下文###

drwxr-xr-x. root root system_u:object_r:public_content_t:s0 /var/ftp/

[root@localhost Desktop]# ls -Zd /westos/  ###查看/westos的安全上下文###

drwxr-xr-x. root root system_u:object_r:default_t:s0   /westos/

[root@localhost Desktop]# semanage fcontext -l | grep westos   ###查看内核上是否有指定文件的安全上下文###

[root@localhost Desktop]# semanage fcontext -l | grep var/ftp  ###查看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

 

[root@localhost Desktop]# semanage fcontext -a -t public_content_t '/westos(/.*)?'####-a指添加,-t指安全上下文的类型(/.*)?###

[root@localhost Desktop]# semanage fcontext -l | grep westos

/westos(/.*)?                                      all files          system_u:object_r:public_content_t:s0            ###all files指目录和目录下的文件,包括新建立的文件###

[root@localhost Desktop]# ls -Zd /westos/

drwxr-xr-x. root root system_u:object_r:default_t:s0   /westos/

[root@localhost Desktop]# restorecon -RvvF /westos/   ###刷新/westos###

restorecon reset /westos context system_u:object_r:default_t:s0->system_u:object_r:public_content_t:s0

restorecon reset /westos/westosfile1 context system_u:object_r:default_t:s0->system_u:object_r:public_content_t:s0

restorecon reset /westos/westosfile2 context system_u:object_r:default_t:s0->system_u:object_r:public_content_t:s0

restorecon reset /westos/westosfile3 context system_u:object_r:default_t:s0->system_u:object_r:public_content_t:s0

restorecon reset /westos/westosfile4 context system_u:object_r:default_t:s0->system_u:object_r:public_content_t:s0

restorecon reset /westos/westosfile5 context system_u:object_r:default_t:s0->system_u:object_r:public_content_t:s0

restorecon reset /westos/westosfile6 context system_u:object_r:default_t:s0->system_u:object_r:public_content_t:s0

restorecon reset /westos/westosfile7 context system_u:object_r:default_t:s0->system_u:object_r:public_content_t:s0

restorecon reset /westos/westosfile8 context system_u:object_r:default_t:s0->system_u:object_r:public_content_t:s0

restorecon reset /westos/westosfile9 context system_u:object_r:default_t:s0->system_u:object_r:public_content_t:s0

restorecon reset /westos/westosfile10 context system_u:object_r:default_t:s0->system_u:object_r:public_content_t:s0

[root@localhost Desktop]# lftp 172.25.254.212   ###测试能否能看到###

lftp 172.25.254.212:~> ls

-rw-r--r--    1 0        0               0 Apr 23 05:43 westosfile1

-rw-r--r--    1 0        0               0 Apr 23 05:43 westosfile10

-rw-r--r--    1 0        0               0 Apr 23 05:43 westosfile2

-rw-r--r--    1 0        0               0 Apr 23 05:43 westosfile3

-rw-r--r--    1 0        0               0 Apr 23 05:43 westosfile4

-rw-r--r--    1 0        0               0 Apr 23 05:43 westosfile5

-rw-r--r--    1 0        0               0 Apr 23 05:43 westosfile6

-rw-r--r--    1 0        0               0 Apr 23 05:43 westosfile7

-rw-r--r--    1 0        0               0 Apr 23 05:43 westosfile8

-rw-r--r--    1 0        0               0 Apr 23 05:43 westosfile9

lftp 172.25.254.212:/> quit

[root@localhost Desktop]# touch /westos/westosfile11

[root@localhost Desktop]# lftp 172.25.254.100

lftp 172.25.254.100:~> ls

-rw-r--r--    1 0        0               0 Apr 23 05:30 westosfile1

-rw-r--r--    1 0        0               0 Apr 23 05:30 westosfile10

-rw-r--r--    1 0        0               0 Apr 29 01:27 westosfile11

-rw-r--r--    1 0        0               0 Apr 23 05:30 westosfile2

-rw-r--r--    1 0        0               0 Apr 23 05:30 westosfile3

-rw-r--r--    1 0        0               0 Apr 23 05:30 westosfile4

-rw-r--r--    1 0        0               0 Apr 23 05:30 westosfile5

-rw-r--r--    1 0        0               0 Apr 23 05:30 westosfile6

-rw-r--r--    1 0        0               0 Apr 23 05:30 westosfile7

-rw-r--r--    1 0        0               0 Apr 23 05:30 westosfile8

-rw-r--r--    1 0        0               0 Apr 23 05:30 westosfile9

lftp 172.25.254.100:/>

 

 

 setsebool

 

1 定义:SELinux 布尔值是更改 SELinux 策略行为的开关。是可以启用或禁用的规则。

 

selinux为了安全在默认情况下有些动作是不允许执行的,例如默认情况下不允许写权限,因为可能会导致一些病毒木马的可执行文件上传,这些规则可通过getsebool看到,可使用 SELinux 布尔值来调整策略 , 以有选择地进行调整。setsebool -P 修改 SELinux 策略 , -P指永久保留修改

:默认情况下,lftp允许本地用户上传文件,当是selinux却不允许上传,因此上传不了,用setsebool修改bool值。

 

getsebool    -a   |   grep    ftp      ###查看ftp的布尔值###

setsebool       -P     ftp_home_dir      1     ###使本地用户有写权限###

 

过程如下:

[root@localhost Desktop]# getenforce     ###selinux在Enforcing情况下默认不允许写权限,因为可能会导致一些病毒木马的可执行文件上传,因此是不安全的###

Enforcing

[root@localhost Desktop]# lftp 172.25.254.212 -u student  ##在配置文件允许上传文件,但是没有将setsebool打开情测试能否上传###

 wKioL1kINemzLVPWAADcTG-Q6DU759.png

Password:

lftp student@172.25.254.212:~> ls      

-rw-r--r--    1 1000     1000         2048 Apr 23 05:45 passwd

lftp student@172.25.254.212:~> put /etc/passwd

put: Access failed: 553 Could not create file. (passwd)   ###上传不了###

lftp student@172.25.254.212:~> quit

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

[root@localhost Desktop]# setsebool -P ftp_home_dir 1

[root@localhost Desktop]# getenforce

Enforcing

[root@localhost Desktop]# lftp 172.25.254.212 -u student

Password:

lftp student@172.25.254.212:~> ls      

-rw-r--r--    1 1000     1000         2048 Apr 23 05:45 passwd

lftp student@172.25.254.212:~> put /etc/passwd

2048 bytes transferred

lftp student@172.25.254.212:~> ls

-rw-r--r--    1 1000     1000         2048 Apr 29 02:09 passwd



















本文转自blueclo51CTO博客,原文链接: http://blog.51cto.com/12774272/1920403,如需转载请自行联系原作者




相关文章
|
6月前
SeLinux 权限配置技巧
SeLinux 权限配置技巧
135 2
|
安全 Linux 数据安全/隐私保护
SELinux详解
SELinux详解
230 0
|
安全 Linux Apache
18.1 SELinux是什么
SELinux,Security Enhanced Linux 的缩写,也就是安全强化的 Linux,是由美国国家安全局(NSA)联合其他安全机构(比如 SCC 公司)共同开发的,旨在增强传统 Linux 操作系统的安全性,解决传统 Linux 系统中自主访问控制(DAC)系统中的各种权限问题(如 root 权限过高等)。
273 0
18.1 SELinux是什么
|
网络协议 安全 Linux
使用semanage管理SELinux安全策略
Semanage是用于配置SELinux策略某些元素而无需修改或重新编译策略源的工具。
使用semanage管理SELinux安全策略
|
JavaScript 前端开发
|
JavaScript 前端开发
|
监控 安全