`
cppmule
  • 浏览: 449203 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

修改SELinux设置,使vsftp在enforcing security enhance模式下正常运行

 
阅读更多
开了SELinux和防火墙,没想到引出了vsftp的问题。FTP登录报错:500 OOPS: cannot change directory。下面来看看产生这个问题的原因和对策。

首先,分析一下冲突原因:
1. 为锁定用户在自己的home目录中,在vsftpd.conf打开chroot_local_user。
这样FTP登录用户的“/”,就是passwd中的home path,比如/var/www/a.com/。避免FTP用户跑到/etc乱闯。这样设置过,FTP登录时,会自动执行CWD /var/www/html/www.xxx.com,并且把这个目录设置为FTP进程的根目录,用户就无法离开了。
vi /etc/vsftpd/vsftpd.conf

# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
chroot_local_user=YES
# chroot_list_enable=YES
# (default follows)
# chroot_list_file=/etc/vsftpd/chroot_list
# 当然也可以用chroot_list_enable=YES的办法。但要逐个在chroot_list中指定FTP用户名,很麻烦。也容易出现疏漏。所以还是推荐用chroot_local_user来限制。



2. 下面,问题就出来了。打开SELinux后,SELinux会阻止ftp daemon读取用户home目录。所以FTP会甩出一句 “500 OOPS: cannot change directory”。无法进入目录,出错退出。

解决办法有两个:

1. 降低SELinux安全级别,把enforcing降低到permissive 
vi /etc/sysconfig/selinux

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#       enforcing - SELinux security policy is enforced.
#       permissive - SELinux prints warnings instead of enforcing.
#       disabled - SELinux is fully disabled.
SELINUX=permissive 

这时FTP的登录功能就正常了。但降低整体系统安全作为代价来解决一个小问题,这总不是最佳方案。

2. 经过研究,又找到了另一个更理想的办法。首先查看SELinux中有关FTP的设置状态:
getsebool -a|grep ftp

allow_ftpd_anon_write --> off
allow_ftpd_full_access --> off
allow_ftpd_use_cifs --> off
allow_ftpd_use_nfs --> off
allow_tftp_anon_write --> off
ftp_home_dir --> off
ftpd_connect_db --> off
ftpd_disable_trans --> on
ftpd_is_daemon --> on
httpd_enable_ftp_server --> off
tftpd_disable_trans --> off


经过尝试发现,打开ftp_home_dir或者 ftpd_disable_trans。都可以达到在enforcing级别下,允许FTP正常登录的效果。

setsebool -P ftp_home_dir 1
#CentOS6里,是这样 
setsebool -P allow_ftpd_full_access 1

service vsftpd restart

加-P是保存选项,每次重启时不必重新执行这个命令了。最后别忘了在/etc/sysconfig/selinux中,修改SELINUX=enforcing。
分享到:
评论

相关推荐

    Linux基础课件-SELinux运行模式.pptx

    在此文件中,修改 `SELINUX` 变量的值,如 `SELINUX=disabled` 表示禁用SELinux,`SELINUX=enforcing` 表示启用强制模式,`SELINUX=permissive` 则为允许模式。修改后需重启系统使更改生效。 **小结** 理解并掌握...

    SELinux-by-Example-Using-Security-Enhanced-Linux

    Authored by three leading SELinux researchers and developers, it illuminates every facet of working with SELinux, from its architecture and security object model to its policy language. This book ...

    RedHat6 建立基于防火墙和SELinux的虚拟用户vsFTP.docx

    RedHat6 建立基于防火墙和SELinux的虚拟用户vsFTP 知识点一:安装vsFTP * RedHat6 安装vsFTP需要使用yum install vsftpd命令,安装的版本为vsftpd-2.2.2-6.el6.i...* 需要配置SELinux策略,以确保vsFTP服务的正常运行

    SELinux NSAs Open Source Security Enhanced Linux.rar

    - **Enforcing模式**:当SELinux处于这种模式时,任何违反策略的行为都会被拒绝,并记录在日志中。 - **Permissive模式**:在这种模式下,违反策略的行为不会被阻止,但会被记录下来,方便调试和策略调整。 **四、...

    操作系统安全:selinux自启动.docx

    为了使SELinux在系统启动时自动启动,确保`/etc/selinux/config`中的`SELINUX`设置为`enforcing`或`permissive`,同时确保内核引导参数没有禁用SELinux。在CentOS这样的发行版中,SELinux通常是默认启用的,但根据...

    如何关闭linux下selinux服务 txt

    然而,在某些情况下,由于SELinux的安全策略限制了特定应用程序的正常运行,可能导致这些程序无法按照预期工作。例如,一些第三方软件可能会因为与SELinux策略不兼容而出现问题。因此,在特定场景下,用户可能需要...

    Lock SELinux forced mode.zip

    2. **修改配置**:在/etc/selinux/config文件中,找到`SELINUX`行并将其值设为`enforcing`以启用强制模式。 3. **重启系统**:更改后,需要重启系统使新配置生效。 4. **验证模式**:重启后,再次运行`sestatus`确认...

    selinux-example_SELinux_

    SELinux有三种运行模式:Enforcing、Permissive和Disabled。Enforcing模式下,任何违反策略的行为都会被拒绝;Permissive模式只记录违规行为但不阻止,用于调试策略;Disabled模式下,SELinux功能完全关闭。 **三、...

    Linux基础课件SELinux运行模式共10页.pdf

    Enforcing模式是SELinux的默认运行模式,在这种模式下,如果某个操作违反了策略规则,系统会拒绝该操作并记录相应的安全事件。这有助于防止未经授权的活动,增强了系统的安全性。 Permissive模式则较为宽松,它允许...

    Selinux (Security Enhanced Linux)思维导图

    在Android设备中,SELinux通常被设置为“强制”模式(enforcing mode),在此模式下,所有的安全策略都会被执行,任何违反策略的访问尝试都会被拒绝,并记录下来。在某些情况下,开发者可能会选择将SELinux设置为...

    SELinux: NSA's Open Source Security Enhanced Linux By Bill McCarty

    SELinux: NSA's Open Source Security Enhanced Linux By Bill McCarty Publisher: O'Reilly 2004 | 256 Pages | ISBN: 0596007167 | CHM | 1 MB

    selinux初始化流程

    这个文件定义了当前的SELinux安全策略类型,如`enforcing`(强制模式)或`permissive`(宽容模式)。在强制模式下,任何违反策略的行为都会被阻止;在宽容模式下,违规行为只会被记录,但不会阻止。 三、策略模块...

    SElinux管理及应用

    1. **配置文件**:主要包含在/etc/selinux/config中,用于设置SELinux的状态(如Enforcing或Permissive)、策略类型(如Targeted、Mandatory或Disabled)以及策略存储位置等。 2. **Security Context**:安全上下文...

    设置selinux出现进入系统异常解决

    ### 设置SELinux导致系统异常问题解析 #### 一、问题背景 在进行Oracle数据库的准备工作时,用户尝试修改内核及SELinux配置文件。但在这些操作之后,重启计算机时遇到了无法正常进入系统的状况。该问题具体表现为:...

    SELinux by Example Using Security Enhanced Linux

    2. **SELinux模式**:讲解Enforcing(强制)和Permissive(宽容)两种运行模式的区别,以及如何切换它们。 3. **类型 Enforcement(TE)**:这是SELinux最核心的部分,它将系统中的对象(如文件、进程)定义为特定...

    SELinux管理及应用

    - **配置选项**:通过这些配置文件可以设置SELinux的工作模式(如enforcing、permissive或disabled),以及定义具体的策略规则和类型。 - **执行模式**: - **Enforcing(强制模式)**:任何不符合策略的行为都会被...

    selinux权限配置指南.pdf

    在当今移动和网络应用不断演进的背景下,安全管理越来越受到重视,SELinux(Security-Enhanced Linux)作为Linux的一个安全模块,被广泛应用于增强系统的安全性。本文档《selinux权限配置指南.pdf》将重点讲解...

Global site tag (gtag.js) - Google Analytics