SELinux(Security-Enhanced Linux)的FTP配置设置

  SELinux(Security-Enhanced Linux) 是美国国家安全局(NAS)对于强制访问控制的实现,是 Linux上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务 中所需要文件。SELinux 默认安装在 Fedora 和 Red Hat Enterprise Linux 上,也可以作为其他发行版上容易安装的包得到。

  最简单的办法,关闭selinux

  方法1:修改/etc/selinux/config文件中的SELINUX="" 为 disabled ,然后重启。

  方法2:用命令setenforce 0,无需重启。(setenforce的格式:setenforce [ Enforcing | Permissive | 1 | 0 ])

  方法3:在lilo或者grub的启动参数中增加:selinux=0,也可以关闭selinux。

  使用getenforce查看当前selinux是否正在运行。

  不关闭selinux,就要设置selinux的ftp权限。

  1、使用getsebool -a | grep ftp查看ftp相关设置状态,我们要将allow_ftpd_anon_write设为on。

  2、使用setsebool -P 进行设置。例:setsebool -P allow_ftpd_anon_write=on。

   或使用togglesebool进行bool值取反,例如togglesebool allow_ftpd_anon_write。

getsebool        # 获取本机selinux策略值,也称为bool值
                # selinux的设置一般通过两个部分完成的,一个是安全上下文,另一个是策略,策略值是对安全上下文的补充
setsebool -P allow_ftpd_anon_write=1        # -P 是永久性设置,否则重启之后又恢复预设值。

  3、修改selinux安全上下文,先介绍两个命令:

   命令1、ls -Z  ps -Z  id -Z  # 分别可以看到文件,进程和用户的SELinux属性

   命令2、#chcon 改变SELinux安全上下文

   chcon -u [user]  对象

       -r [role]

       -t [type]

       -R 递归

       --reference 源文件 目标文件          # 复制安全上下文

   使用方法:

    步骤1、ls -Zd /var/ftp/upload/ 通常会看到:

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

    步骤2、chcon -R -t public_content_rw_t /var/ftp/upload/

    步骤3、ls -Zd /var/ftp/upload/ 如果看到如下信息就OK了:

selinux的图形界面 可由system-config-selinux命令进入





SElinux 管理工具
yum -y install policycoreutils-newrole # Usage: System -> Management -> SElinux
------------------------------------------------------------------------
# SElinux信息与开启
ls -Z   ps -Z   id -Z        # 分别可以看到文件,进程和用户的SELinux属性

sestatus seinfo selinuxenabled getenforce        # 查看SElinux信息

setenforce [ Enforcing | Permissive | 1 | 0 ]

/etc/selinux/config                # 需要重启系统来启动SELinux新的工作模式
------------------------------------------------------------------------
#chcon 改变SELinux安全上下文

chcon -u [user]  对象
      -r [role]
      -t [type]
      -R 递归
      --reference 源文件 目标文件           # 复制安全上下文

示例:
chcon -R -t samba_share_t /tmp/abc
---------------------
# restorecon    # 恢复默认安全上下文
---------------------
# SElinux查看与设置策略

getsebool        # 获取本机selinux策略值,也称为bool值
                # selinux的设置一般通过两个部分完成的,一个是安全上下文,另一个是策略,策略值是对安全上下文的补充
setsebool -P allow_ftpd_anon_write=1        # -P 是永久性设置,否则重启之后又恢复预设值。
示例:
[root@redhat files]# setsebool -P allow_ftpd_anon_write=1
[root@redhat files]# getsebool allow_ftpd_anon_write
allow_ftpd_anon_write --> on
--------------------
注意:如果仅仅是安全上下文中设置了vsftpd进程对某一个目录的访问,配置文件中也允许可写,
但是selinux中策略中不允许可写,仍然不可写。所以基于selinux保护的服务中,安全高很多。
------------------------------------------------------------------------
# SElinux对服务的应用

selinux的设置分为两个部分,修改安全上下文以及策略,下面收集了一些应用的安全上下文,
供配置时使用,对于策略的设置,应根据服务应用的特点来修改相应的策略值。
1.3.1 SElinux与samba
1.samba共享的文件必须用正确的selinux安全上下文标记。
chcon -R -t samba_share_t /tmp/abc
如果共享/home/abc,需要设置整个主目录的安全上下文。
chcon -R -r samba_share_t /home
2.修改策略(只对主目录的策略的修改)
setsebool -P samba_enable_home_dirs=1
setsebool -P allow_smbd_anon_write=1
getsebool 查看
samba_enable_home_dirs -->on
allow_smbd_anon_write --> on /*允许匿名访问并且可写*/

1.3.2 SElinux与nfs
selinux对nfs的限制好像不是很严格,默认状态下,不对nfs的安全上下文进行标记,而且在默认状态的策略下,nfs的目标策略允许nfs_export_all_ro
nfs_export_all_ro
nfs_export_all_rw值为0
所以说默认是允许访问的。
但是如果共享的是/home/abc的话,需要打开相关策略对home的访问。
setsebool -P use_nfs_home_dirs boolean 1
getsebool use_nfs_home_dirs

1.3.3 SElinux与ftp
1.如果ftp为匿名用户共享目录的话,应修改安全上下文。
chcon -R -t public_content_t /var/ftp
chcon -R -t public_content_rw_t /var/ftp/incoming

2.策略的设置
setsebool -P allow_ftpd_anon_write =1
getsebool allow_ftpd_anon_write
allow_ftpd_anon_write--> on

1.3.4 SElinux与http
apache的主目录如果修改为其它位置,selinux就会限制客户的访问。
1.修改安全上下文:
chcon -R -t httpd_sys_content_t /home/html
由于网页都需要进行匿名访问,所以要允许匿名访问。
2.修改策略:
setsebool -P allow_ftpd_anon_write = 1
setsebool -P allow_httpd_anon_write = 1
setsebool -P allow_<协议名>_anon_write = 1
关闭selinux对httpd的保护
httpd_disable_trans=0

1.3.5 SElinux与公共目录共享
如果ftp,samba,web都访问共享目录的话,该文件的安全上下文应为:
public_content_t
public_content_rw_t
其它各服务的策略的bool值,应根据具体情况做相应的修改。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值