[转]SELinux相关指令工具

[转]http://www.cnblogs.com/zgx/archive/2011/08/31/2160330.html

检查SELinux是否已经启用.

[root@localhost ~]# sestatusSELinux status: disabled

常用命令如下:

sestatus

查询系统的selinux目 前的狀态

selinuxenabled

查询系统的selinux支 援是否有启用

setenforce

设定selinux运 作狀态

getsebool

列出所有selinux bool数值清单列表与内容

setsebool

设定selinux bool数值内容

chcon

变更档案目录security context

restorecon

恢復档案目录的预设的security context

fixfiles

修正档案目录的预设的security context

semanage

SELiux policy管理程式

secon

检视行程、档案等等项目的SELinux context

audit2why

检视SELinux audit讯息内容

sealert

SELinux 讯息诊断用户端程式

下面列出几个常用的:

1、sestatus工具

查询系统的selinux目前的状态

例如:root@monitor:~#sestatus

SELinuxstatus:enabled

SELinuxfsmount:/selinux

Currentmode:permissive

Modefromconfigfile:permissive

Policyversion:21

Policyfromconfigfile:targeted

2、selinuxenabled工具

检查系统selinux是否开启,是通过返回值进行判断selinux是否已经启动,0:表示已经启动selinux;1:表示已经关闭selinux

例如:selinuxenabled;echo?,返回的结果为:1

3、setenforce工具

功能:设定切换selinux的运行状态(0或者1),前提是开启了selinux,同时这种切换只对当前有效,如果重新启动的话,就没有效了(注意:如果关闭了selinux,那么就必须配置/etc/selinux/config文件)

语法:setenforce[Enforcing|Permissive|1|0]

说明如下:

enforcing或者1,表示开启强制模式

permissive或者0,表示开启警告但是无限制模式

例如:下面这个例子

root@monitor:~#sestatus|grep-imod

Currentmode:permissive

Modefromconfigfile:permissive

root@monitor:~#setenforce1

root@monitor:~#sestatus|grep-imod

Currentmode:enforcing

Modefromconfigfile:permissive

4、getsebool与setsebool工具

说明:SELinux规范了许多boolean数值清单档案,提供开启或关闭功能存取项目,而这些值都存放在/selinux/booleans/目录内相关档案,这些档案里的值只有两种:1(启用)或0(关闭)

1)getsebool

说明:列出所有selinuxbool数值清单列表与内容

使用方式:getsebool[-a]

例如以下范例:

#getseboolftpd_disable_trans

ftpd_disable_trans-->off

#getsebool-a

NetworkManager_disable_trans-->off

allow_cvs_read_shadow-->off

allow_daemons_dump_core-->on

allow_daemons_use_tty-->off

allow_execheap-->off

allow_execmem-->on

allow_execmod-->off

..........

2)setsebool

说明:设定selinuxbool数值清单列表与内容

使用方式:setsebool[-P]booleanvalue|bool1=val1bool2=val2bool3=val3......

参数配置:-P表示设定该项目永久套用

使用范例:

setseboolftpd_disable_trans=on(on或者1)

setsebool-Pftpd_disable_trans=off(off或者0)

5、chcon

说明:变更档案目录的securitycontext

使用方式:

chcon[OPTION]...CONTEXTFILE...

chcon[OPTION]...--reference=RFILEFILE...

参数如下:

-uUSER:setuserUSERinthetargetsecuritycontext

-rROLE:setroleROLEinthetargetsecuritycontext

-tTYPE:settypeTYPEinthetargetsecuritycontext

范例:

chcon-tvar_t/etc/vsftpd/vsftpd.conf

chcon--reference=/var/www/htmlindex.html

注意事项:若是变更于目录上,后续于该目录内建立的档案目录会套用目录本身type设定

6、restorecon

说明:恢复档案目录的预设的securityContext

规格来源:/etc/selinux/<POLICY>/contexts/files/目录内的file_contexts与file_contexts.local

常用参数如下:

-r|-R:包含子目录与其下档案目录

-F:恢復使用预设的項目(就算是檔案符合存取规范)

-v:显示执行过程

使用方式:restorecon[FRrv][-eexcludedir]pathname...]

使用范例如下:

restorecon/etc/ntp.conf

restorecon-v/etc/ntp.conf

restorecon-v-F/etc/ntp.conf

手动配置新增恢复规则

1)档案名称

/etc/selinux/<POLICYTYPE>/contexts/files/file_contexts.local

2)新增配置范例

/var/ftp(/.*)?system_u:object_r:public_content_t

3)注意

可以使用semanage程式来维护会比较方便

7、fixfiles

说明:修正档案目录的预设的securityContext,依据/etc/selinux/<POLICY>/contexts/files/内相关档案修正

使用方式:

fixfiles{check|restore|[-F]relabel}[[dir]...]

fixfiles-Rrpmpackage[,rpmpackage...]{check|restore}

参数:

-R:使用指定的rpm套件所提供的檔案清單

使用范例:

fixfilescheck/etc

fixfilesrestore/etc

fixfiles-Frelabel/

fixfiles-Rsetupcheck

8、audit2why

说明:检视SELinuxaudit讯息内容,提供检视/var/log/audit/audit.log内的记录资讯说明

使用范例:audit2why</var/log/audit/audit.log

注意:需要搭配启动auditd服务程式一起使用

9、sealert

说明:SELinux讯息诊断用户端程序

参数如下:

-H,--html_output:使用网页格式输出(搭配-aor-l使用)

-l,--lookupidID:检视指定ID的警示讯息

使用范例:

sealert-lxxxxx-xxxxx-xxxx

sealert-H-lxxxxx-xxxxx-xxxx>output.html

注意:需要搭配setroubleshoot服务一起使用

setroubleshoot服务启动后,会依据audit服务提供的资讯给予适当问题诊断,然后输出于/var/log/messages,该档案内会有相关输出资讯提供除错检视

10、semanage

说明:selinuxpolicy维护工具

使用方式:semanage{login|user|port|interface|fcontext|translation}-l[-n]

使用范例:

semanagelogin-l

semanageuser-l

semanageport-l

semanageport-a-thttp_port_t-Ptcp81

semanagefcontext-a-thttpd_sys_Context_t"/home/users/(.+)/public_html(/.*)?“

11、secon

说明:检视程式、档案与使用者等相关SELinuxContext

使用方式:

secon[-hVurtscmPRfLp][CONTEXT]

secon[--file]FILE|[--link]FILE|[--pid]PID

参数:

-u,--user:showtheuserofthesecuritycontext

-r,--role:showtheroleofthesecuritycontext

-t,--type:showthetypeofthesecuritycontext

-f,--fileFILE:getsthecontextfromthespecifiedfileFILE

-p,--pidPID:getsthecontextfromthespecifiedprocessPID

使用范例:

secon-u

secon-r

secon-t

secon--file/etc/passwd

secon --pid <pid>

SELinux让php程序无法远程连接数据库

setsebool -P httpd_can_network_connect_db=1

相关推荐