优秀的编程知识分享平台

网站首页 > 技术文章 正文

驰网飞飞教你如何保护Linux系统安全——SELinux安全防护

nanyue 2024-11-04 13:08:35 技术文章 4 ℃

SELinux安全防护


1、将Linux服务器的SELinux设为enforcing强制模式

2、从/root目录下移动一个包文件到FTP下载目录,调整策略使其能够被下载


步骤一:将Linux服务器的SELinux设为enforcing强制模式


1)固定配置:修改/etc/selinux/config文件

确认或修改SELINUX为enforcing模式:

[root@proxy ~]# vim /etc/selinux/config

SELINUX=enforcing //设置SELinux为强制模式

SELINUXTYPE=targeted //保护策略为保护主要的网络服务安全


2)临时配置:使用setenforce命令

查看当前SELinux状态,如果是disabled则需要根据第1)步的配置重启系统;如果是permissive则使用setenforce命令修改为enforcing即可:

[root@proxy ~]# getenforce //查看当前状态为警告模式

Permissive

[root@proxy ~]# setenforce 1 //设置SELinux为强制模式

[root@proxy ~]# getenforce //查看当前模式为强制模式

Enforcing

[root@proxy ~]# setenforce 0 //设置SELinux为强制模式

[root@proxy ~]# getenforce //查看当前模式为警告模式

Permissive


步骤二:在SELinux启用状态下,调整策略打开vsftpd服务的匿名上传访问


1)配置一个允许匿名上传的vsftpd服务作为测试环境

[root@proxy ~]# setenforce 1

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

.. ..

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

anonymous_enable=YES //开启匿名访问

anon_upload_enable=YES //允许上传文件

anon_mkdir_write_enable=YES //允许上传目录

[root@proxy ~]# systemctl start vsftpd //启动服务

//默认Vsftpd共享目录为/var/ftp/



步骤三:从/root目录下移动2个包文件到FTP下载目录,调整文件的安全上下文


1)建立两个FTP下载用的测试文件

由root用户创建两个测试压缩包,一个直接建立到/var/ftp/目录下,另一个先在/root/下建立,然后移动至/var/ftp/目录。

//测试文件1,直接在ftp目录下创建文件

[root@proxy ~]# tar -czf /var/ftp/log1.tar /var/log

[root@proxy ~]# ls -lh /var/ftp/

-rw-r--r--. 1 root root 8M 8月 16 10:16 log1.tar

[root@proxy ~]# ls -Z /var/ftp/

-rw-r--r--. root root unconfined_u:object_r:public_content_t:s0 log1.tar


//测试文件2,在/root下建立,然后移动至/var/ftp目录

[root@proxy ~]# tar -czf log2.tar /var/log

[root@proxy ~]# mv log2.tar /var/ftp/

[root@proxy ~]# ls -lh /var/ftp/

-rw-r--r--. 1 root root 8M 8月 16 10:16 log2.tar

[root@proxy ~]# ls -Z /var/ftp/

-rw-r--r--. 1 root root unconfined_u:object_r:admin_home_t:s0 log2.tar


3)通过FTP方式测试下载

使用wget命令分别下载这两个包文件,第二个包将会下载失败(看不到文件)。

[root@proxy ~]# wget ftp://192.168.4.5/log1.tar //下载第一个文件,成功

[root@proxy ~]# wget ftp://192.168.4.5/log2.tar //下载第二个文件,失败


4)检查该测试包的安全上下文,正确调整后再次下载第二个包成功。

文件已经存放到共享目录下,但客户端无法访问下载,是因为被SELinux拦截了!

[root@proxy ~]# ls -Z /var/ftp/

-rw-r--r--. root root unconfined_u:object_r:public_content_t:s0 log1.tar

-rw-r--r--. 1 root root unconfined_u:object_r:admin_home_t:s0 log2.tar

[root@proxy ~]# chcon -t public_content_t /var/ftp/d2.tar.gz

[root@proxy ~]# ls -Z /var/ftp/log2.tar

-rw-r--r--. root root unconfined_u:object_r:public_content_t:s0 log2.tar

[root@proxy ~]# wget ftp://192.168.4.5/log2.tar //再次下载,成功


注意:上例中的chcon操作可替换为(效果相同): restorecon /var/ftp/log2.tar.gz 或者 chcon --reference=/var/ftp/log1.tar.gz /var/ftp/log2.tar.gz

Tags:

最近发表
标签列表