当前位置: 亚洲城ca88 > 亚洲城 > 正文

红帽认证程序员亚洲城,Linux基础教程学习笔记

时间:2019-06-15 11:53来源:亚洲城
Linux基础教程学习笔记22——处理SELinux安全   Linux 安全珍视形式 一、ugo方式主动访问调控DAC 简介 DAC,自己作主访问调整 亚洲城,文件的权能调整ugo  rwx 本单元涵盖的核心: MAC,强制访

Linux基础教程学习笔记22——处理SELinux安全

 

Linux 安全珍视形式

一、ugo方式主动访问调控DAC

简介

DAC,自己作主访问调整

亚洲城,文件的权能调整ugo  rwx

本单元涵盖的核心:

MAC,强制访问调整

二、selinux强制访问调节MAC

 复习基本SELinux 概念

SELinux 

各类文件能源都有一个符号,特定标志的进度,只好访问特定标识的能源,无法访问别的财富,就算财富的权能设置为777(rwx)

 显示和设置SELinux 形式

一套强化Linux安全的MAC扩大模块

三、查看和装置文件和进度的广安标识

 显示和装置SELinux 文件上下文

U.S.国家安全局基本开拓

应用-Z的选项能够查阅文件和进程的号子,以httpd服务为例子:

 通过SELinux 布尔值调度战术行为

SELinux的周转搭飞机制

[root@linuxidc tmp]# ls -Z

 监控SELinux 攻略争论景况

集成Linux内核(2.6及以上)

--wx-----x. root  root  unconfined_u:object_r:user_tmp_t:s0 a1

                                                基本SELinux 安全性概念

操作系统提供可定制的国策,管理工科具

-----w----. root  root  unconfined_u:object_r:user_tmp_t:s0 a4

SELinux (安全巩固型Linux )是保卫安全你的系统的另一种艺术。

[root@test ~]# cat /etc/redhat-release 

---------x. root  root  unconfined_u:object_r:user_tmp_t:s0 a5

假定大家盼望允许远程佚名访问Web 服务器,大家无法不透过防火墙打发轫口。可是,那代表恶意人

Red Hat Enterprise Linux Server release 7.2 (Maipo)

[root@linuxidc html]# ps auxZ|grep httpd

员能够尝试利用安全漏洞以及,假设她们损坏Web 服务器进程,得到apache 用户和apache 组的权

[root@test ~]# uname -r

system_u:system_r:httpd_t:s0    root      5477  0.1  0.4 213692  4904 ?        Ss

限来强行进入系统。该用户/ 组具备document root ( /var/www/html )等的读取权限以及/tmp 、

3.10.0-327.el7.x86_64

[root@linuxidc html]# ls -ldZ /var/www/html/

/var/tmp 和兼具人均可写的别样其余文件/ 目录的写入权限。

[root@test ~]# rpm -qa | grep -i selinux

drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html/

SELinux 是一组可鲜明哪些进度能访问哪些文件、目录、端口等的保山规则。每一个文件、进度、目录和

selinux-policy-3.13.1-60.el7.noarch

在根下创造二个www的目录,并在/var/www/html上面做一个www的软链接:

端口都存有极其的平安标签,称为SELinux 上下文。上下文只是三个称谓, SELinux 计谋使用它来规定

libselinux-2.2.2-6.el7.x86_64

[root@linuxidc html]# mkdir /www

有个别进程是还是不是能访问文件、目录或端口。暗中同意情况下,该攻略不一样意任何交互,因而鲜明的条条框框授予访

selinux-policy-targeted-3.13.1-60.el7.noarch

[root@linuxidc html]# ln -s /www/ www

问权限。假诺未有允许规则,则不允许访问。

libselinux-utils-2.2.2-6.el7.x86_64

[root@linuxidc html]# ls

SELinux 的靶子之一是保险用户数量免受已泄漏的系统服务的威慑。

libselinux-python-2.2.2-6.el7.x86_64

index.html  iso  ks.cfg  www

ELinux 模式

查看当前SELinux的图景

/www目录的暗许的上上下文为,未有标识为httpd:

为了拓展故障排除,大家得以如今禁止使用SELinux 爱戴,使用SELinux 格局。

[root@test ~]# sestatus 

[root@linuxidc html]# ls -ldZ /www/

在勒迫情势中, SELinux 主动拒绝访问尝试读取类型上下文为tmp_t 的文本的Web 服务器。在劫持

SELinux status:                 enabled

drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 /www/

方式中, SELinux 不仅仅记录同期提供保证。

SELinuxfs mount:                /sys/fs/selinux

假使这时运营httpd服务,展开浏览器,访问www目录,会唤起不被允许:

准予格局常常用于对标题展开故障排除。在批准格局中,尽管未有明了规则, SELinux 也允许具有交

SELinux root directory:         /etc/selinux

亚洲城 1

互,并且记录全体被拒绝的相互。此格局能够用来鲜明你是或不是有SELinux 难点。没有要求重新指导就能够从

Loaded policy name:             targeted

修改/www目录的上下文,使其上下文与/var/www/html一致,再张开www目录就可以访问:

强制情势转为许可情势,或再从许可情势转回强制格局。

Current mode:                   permissive

[root@linuxidc html]# chcon -R --reference=/var/www/html/ /www

其多个情势禁止使用,将完全禁止使用SELinux 。您必须重新教导工夫通透到底禁止使用SELinux ,只怕从禁止使用形式

Mode from config file:          enforcing

[root@linuxidc html]# ls -ldZ /www/

转为强制方式只怕可格局。semanage fcontext 可用与浮现或修改restorrecon 用来设置默许文件上下文的平整。它选择扩张正

Policy MLS status:              enabled

drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /www/

则表达式来钦命路径和文书名。fcontext 规则中最常用的增加正则表明式是(/.*)?, 表示随便地包容/ 后

Policy deny_unknown status:     allowed

亚洲城 2

跟任何数据的字符。本质上,它将递归地与在表明式后边列出的目录以及该目录中的全部内容相相称。

Max kernel policy version:      28

应用restorecon命令能够还原来的书文件财富的暗中同意上下文:

restorecon 是policycoreutil 软件包的一局地, semanage 是policycoreutil-python 软件包的一部

[root@test ~]# ls /etc/selinux/

[root@linuxidc html]# ls -ldZ /www/

分。[email protected] ~]# mkdir /virtual

[root@test ~]# ls /sys/fs/selinux/

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

[[email protected] ~]# touch /virtual/index.html

[root@test ~]# setenforce 0|1  #0:permissive 1:enforcing

使用chcon命令只可以临时转移文件能源的上下文,重启计算机则会回复暗许值,要想永世的更改私下认可的上下文,则需采用semanage命令:

[[email protected] ~]# ls -Zd /virtual/

[root@test ~]# getenforce  #查看当前SELinux状态

[root@linuxidc html]# semanage fcontext -a -t httpd_sys_content_t '/www(/.*)?'

drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 /virtual/

[root@test ~]# vim /etc/selinux/config #配置文件

应用restorcon命令再苏醒私下认可上下文,则苏醒的是时尚安装的上下文

[[email protected] ~]# ls -Z /virtual/

# This file controls the state of SELinux on the system.

行使-d选项能够去除暗中认可的上下文:

-rw-r--r--. root root unconfined_u:object_r:default_t:s0 index.html

# SELINUX= can take one of these three values:

[root@linuxidc html]# semanage fcontext -d -t httpd_sys_content_t '/www(/.*)?'

[[email protected] ~]# semanage fcontext -a -f "" -t httpd_sys_content_t '/virtual(/.*)?'

#     enforcing - SELinux security policy is enforced.#强制运营

四、selinux的二种情势

[[email protected] ~]# restorecon -RFvv /virtual/

#     permissive - SELinux prints warnings instead of enforcing.#宽松/允许格局

1、enforcing

restorecon reset /virtual context system_u:object_r:default_t:s0-

#     disabled - No SELinux policy is loaded.#禁用

行使getenforce能够查看系统当下的方式:

>system_u:object_r:httpd_sys_content_t:s0

SELINUX=enforcing

[root@linuxidc html]# getenforce 

restorecon reset /virtual/index.html context system_u:object_r:default_t:s0-

# SELINUXTYPE= can take one of three two values:

Enforcing

>system_u:object_r:httpd_sys_content_t:s0

#     targeted - Targeted processes are protected,

不适合selinux方式则会报告警察方,同不日常间会阻止相关的操作

[[email protected] ~]# ls -Zd /virtual/

#     minimum - Modification of targeted policy. Only selected processes are protected. 

2、permissive

drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /virtual/

#     mls - Multi Level Security protection.  #提供多档期的顺序,全面包车型大巴广元防守战略

切换到permissive模式,使用setenforce

[[email protected] ~]# ls -Z /virtual/

SELINUXTYPE=targeted#推荐介绍,仅爱惜最分布/关键的互连网服务,别的不限制

[root@linuxidc html]# setenforce 0

-rw-r--r--. root root system_u:object_r:httpd_sys_content_t:s0 index.html管理SELinux 布尔值

SELinux计策设置

[root@linuxidc html]# getenforce 

SELinux 布尔值是改造SELinux 战术行为的按键。SELinux 布尔值是可以启用或剥夺的规则。安全管

一,安全上下文

Permissive

理员能够利用SELinux 布尔值来调动政策,以有选取地举行调整。繁多软件包都兼备man page

进程  ps aux -Z

不符合selinux形式的操作,permissive会有警报,然则不会堵住相关的操作;

*_selinux(8), 个中详细表达了所采纳的局部布尔值; man -k ‘_selinux’ 能够轻易地找到那几个手册。

目录  ls -dZ 目录名

3、disable

getsebool 用于展现布尔值, setsebool 用于修改布尔值。setsebool -P 修改SELinux 战术,以永久

文件  ls -lZ 文件名

在/etc/selinux/config文件中可永远修改selinux格局:

保留修改。semanage boolean -l 将体现布尔值是不是恒久。

[root@test ~]# ls -lZ /etc/passwd

五、修改selinux格局的布尔值

[[email protected] ~]# getsebool -a

-rw-r--r--. root root system_u:object_r:passwd_file_t:s0 /etc/passwd

选用getsebool -a命令查看所有的布尔值

abrt_anon_write --> off

[root@test ~]# ls -dZ /var/www/html/

[root@linuxidc html]# getsebool -a

.....

drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html/

abrt_anon_write --> off

[[email protected] ~]# getsebool httpd_enable_homedirs

[root@test ~]# ls -dZ /var/lib/mysql/

abrt_handle_event --> off

httpd_enable_homedirs --> off

drwxr-x--x. mysql mysql system_u:object_r:mysqld_db_t:s0 /var/lib/mysql/

abrt_upload_watch_anon_write --> on

[[email protected] ~]# setsebool httpd_enable_homedirs on

[root@test ~]# ps aux -Z | grep httpd

假使搭建了某些服务,在客户端访问该服务,写不进任何事物,能够按以下步骤检查:

[[email protected] ~]# semanage boolean -l |grep httpd_enable_homedirs

system_u:system_r:httpd_t:s0    root      5965  0.1  0.4 226128  5052 ?        Ss   22:33   0:00 /usr/sbin/httpd -DFOREGROUND

1、检查安插文件是或不是展开了相关的写权限;

httpd_enable_homedirs

system_u:system_r:httpd_t:s0    apache    5966  0.0  0.3 228212  3144 ?        S    22:33   0:00 /usr/sbin/httpd -DFOREGROUND

2、文件系统权限

-> off Allow httpd to read home directories

康宁上下文的结缘

3、selinux上下文和布尔值是还是不是展开了相关的权柄

[[email protected] ~]# getsebool httpd_enable_homedirs

用户:剧中人物:访问类型:选项

图形化管理selinux可以设置相关的包,使用system-config-selinux命令;

httpd_enable_homedirs --> on

常见访问类型

正文永世更新链接地址:http://www.linuxidc.com/Linux/2015-03/115455.htm

[[email protected] ~]# setsebool -P httpd_enable_homedirs on

bin_t #二进制试行文书

亚洲城 3

[[email protected] ~]# semanage boolean -l |grep httpd_enable_homedirs

etc_t#系统布局文件

httpd_enable_homedirs

fsadm_exec_t#文件系统处理

-> on

admin_home_t#协会者账户的宿主目录

Allow httpd to read home directories

user_home_t#普通用户的宿主目录

 

httpd_sys_content_t#httpd网站内容

正文出自 “linux运转” 博客

SELinux启用后一般的操作原理

本单元涵盖的焦点: 复习基本SELinux 概念 展现和装置SELinux 情势 呈现和装置SELinux 文件上下文 通过SELinux 布尔值调解计谋行为 监察和控制SEL...

新建文件或新建目录 会承袭父目录的安全上下文

[root@test ~]# touch /root/1.txt

[root@test ~]# ls -dZ /root/

dr-xr-x---. root root system_u:object_r:admin_home_t:s0 /root/

[root@test ~]# ls -lZ /root/1.txt 

-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 /root/1.txt

拷贝时承袭指标目录的天水上下文

[root@test ~]# cp /root/1.txt  /var/www/html/

[root@test ~]# ls -lZ /var/www/html/1.txt 

-rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/1.txt

运动时保留源文件的张掖上下文

[root@test ~]# rm -rf /var/www/html/1.txt 

[root@test ~]# mv /root/1.txt  /var/www/html/

[root@test ~]# ls -lZ /var/www/html/1.txt 

-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 /var/www/html/1.txt

修改安全上下文

chcon  修改安全上下文

选取:-t:钦点访问类型

-u,-r:分别用来钦点用户,剧中人物

-纳瓦拉:递归修改

[root@test ~]# ls -lZ /var/www/html/1.txt 

-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 /var/www/html/1.txt

[root@test ~]# chcon -t httpd_sys_content_t /var/www/html/1.txt 

[root@test ~]# ls -lZ /var/www/html/1.txt 

-rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/1.txt

restorecon  重新载入参数安全上下文

— 苏醒为所在地方的暗中同意上下文属性

-路虎极光:递归复苏

[root@test ~]# touch /root/2.txt

[root@test ~]# mv /root/2.txt  /var/www/html/

[root@test ~]# ls -lZ /var/www/html/2.txt 

-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 /var/www/html/2.txt

[root@test ~]# restorecon /var/www/html/2.txt 

[root@test ~]# ls -lZ /var/www/html/2.txt 

-rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/2.txt

二.SELinux布尔值:(功能开关)

getsebool 查看

-a 可列出装有布尔值

setsebool 设置

-P 永世改换,重启照旧有效

启用SELinux日志程序

[root@test ~]# rpm -qa | grep shoot

setroubleshoot-plugins-3.0.59-1.el7.noarch

setroubleshoot-3.2.24-1.1.el7.x86_64

setroubleshoot-server-3.2.24-1.1.el7.x86_64

练习:启用SELinux,允许本机的ftp服务,允许无名氏用户上传和下在文书

[root@test ~]# yum -y install vsftpd

[root@test ~]# mkdir /var/ftp/sharedir

[root@test ~]# chmod o w /var/ftp/sharedir/

[root@test ~]# cp /etc/hosts /var/ftp/sharedir/

[root@test ~]# vim /etc/vsftpd/vsftpd.conf 

29 anon_upload_enable=YES

[root@test ~]# systemctl restart vsftpd

[root@test ~]# getsebool -a | grep ftp

[root@test ~]# setsebool -P ftpd_full_access=on

[root@test ~]# setsebool -P ftpd_anon_write=on

[root@ftptest ~]# yum -y install ftp.x86_64

[root@ftptest ~]# ftp 192.168.4.12

Connected to 192.168.4.12 (192.168.4.12).

220 (vsFTPd 3.0.2)

Name (192.168.4.12:root): ftp

Password:

ftp> cd sharedir

ftp> lcd /root#设定本地接受目录地方

ftp> put test.txt#上传本半夏件

ftp> get hosts#下在文书

练习 启用SELinux,修改本机网址服务监听的端口8090

[root@test ~]# sed -i '42s/80/8090/' /etc/httpd/conf/httpd.conf 

[root@test ~]# grep -n 8090 /etc/httpd/conf/httpd.conf

42:Listen 8090

[root@test ~]# systemctl restart httpd

Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.

[root@test ~]# grep -i "setroubleshoot" /var/log/messages | tail -1

Jan  3 01:43:44 test setroubleshoot: SELinux is preventing /usr/sbin/httpd from name_bind access on the tcp_socket port 8090. For complete SELinux messages. run sealert -l b044047d-64e3-425b-aa88-50ffb248f814

[root@test12 ~]# sealert -l b044047d-64e3-425b-aa88-50ffb248f814#运维日志文件提供的消除方案 在里边寻找化解办法

...

If you want to allow /usr/sbin/httpd to bind to network port 8090

Then you need to modify the port type.

Do

# semanage port -a -t PORT_TYPE -p tcp 8090

   其中 PORT_TYPE 是以下之一:http_cache_port_t, http_port_t, jboss_management_port_t, jboss_messaging_port_t, ntop_port_t, puppet_port_t。

...

[root@test ~]# semanage port -a -t http_port_t  -p tcp 8090

[root@test ~]# systemctl restart httpd

[root@test ~]# netstat -pantu | grep httpd

tcp6       0      0 :::8090                 :::*                    LISTEN      9668/httpd 

RHCE 的考试中有一道难题是:

    配置SELinux

    确认保证您的多少个虚拟机的SELinux处于强制启用格局 

    大家供给做的是在两台虚拟机器上推行如下操作:

        # setenforce 1                            #安排当前SELinux状态为  enforcing (强制运维) 

        # getenforce                               #翻开当前SELinux状态

        Enforcing

        # vim /etc/selinux/config         #修改配置文件 配置为 enforcing (强制运营) 

        # sed -n "7p" /etc/selinux/config

        SELINUX=enforcing

RHCE 的试验中还恐怕有两道标题是会涉及道SELinux

    Samba共享

    Samba共享的SELinux开关【getsebool  -a】

    # setsebool  -P  samba_export_all_rw=on

    Web服务开放非标准端口

    # semanage  port  -a  -t  http_port_t  -p tcp 8909

    

    大概遭逢的标题:

    实施semanage或setsebool时也许破产或死机

    原因:内部存款和储蓄器不足

    消除办法:

    将虚拟机关机,然后再重新开机,重新安装

    或然,增加1G交流空间后再重复设置

    具体计划格局 请看 

    

编辑:亚洲城 本文来源:红帽认证程序员亚洲城,Linux基础教程学习笔记

关键词: 亚洲城ca88