SELinux安全防护措施在各种网络服务的访问控制应用

SELinux 的安全防护措施主要集中在各种网络服务的">访问控制。上文(配置 Apache 、Samba、NFS)介绍了 Apache 、Samba、NFS 三种服务的 SElinux 设置,本文介绍 SElinux 下 vsftp 、MySQL、Bind DNS 三种服务的 SElinux 设置。

SELinux 环境下的 FTP 配置

vsftp 的 SELinux 的文件类型

SElinux 环境中,vsftp 服务器的 vsftpd 守护进程都是在受限的 ftpd_t 域中运行。并且和其他受限的网络服务相互隔离。下面的示例演示的是 SELinux 下的 vsftpd 进程

#ps -eZ |grep vsftpd unconfined_u:system_r:ftpd_t:s0-s0:c0.c1023 1994 ? 00:00:00 vsftpd

SELinux 策略规定 vsftpd 文件访问和进程交互的限制。例如一个通过认证的本地用户不能读写自己的主目录的文件。另外 vsftpd 不能访问 NFS 或者 CIFS 文件系统,匿名用户没有写文件的访问权限,即使 /etc/vsftpd/vsftpd.conf 配置文件中开放了读写权限也是如此。通常注册后的匿名用户只能读取 /var/ftp 目录中的文件,文件类型是 public_content_t,它资源其他服务器(Apache , Samba, NFS)也可以访问 public_content_t 类型的文件 。SElinux 一共定义了两种文件类型用于设置 vsftp 服务器。

public_content_t vsftpd:可以读取的文件和目录类型是 public_content_t。其他服务如 Apache、Samba 和 NFS 也可以,但是 public_content_t 类型的文件不能被写入,即使 Linux 权限允许。如果你需要写入或者修改,必须使用 public_content_rw_t 的类型。

public_content_rw_t:可以读取和写入的文件和目录类型是 public_content_rw_t,其他服务其他服务如 Apache,Samba 和 NFS 也可以,不过必须开放相关的布尔变量。

vsftp 的布尔变量

SELinux 对 FTP 的限制非常严格,不过系统管理员可以利用布尔值变量调整 SELinux 策略设置,定制 FTP 服务器功能。

下面是常用的布尔变量:

allow_ftpd_anon_write :关闭这个布尔变量会阻止 vsftpd 读取 public_content_rw_t 类型的文件和目录。如果允许用户通过 FTP 上传文件。必须开放这个布尔变量。 allow_ftpd_full_access:当开放这个布尔变量时只有 Linux(DAC)的权限来控制访问,通过验证的用户可以读取和写入标记为 public_content_t 或 public_content_rw_t 类型的文件。 allow_ftpd_use_cif:当开放这个布尔变量时 vsftpd 允许 cifs_t 类型的文件和目录,因此这个布尔变量启用,可以让你的 FTP 服务器可以使用 Samba 文件系统。 allow_ftpd_use_nfs vsftpd:的当开放这个布尔变量时 vsftpd 允许 nfs_t 类型的文件和目录,因此这个布尔变量启用,可以让你的 FTP 服务器可以使用 NFS 文件系统。 ftp_home_dir:当开放这个布尔变量时认证用户可以读写自己的主目录中的文件。 ftpd_connect_db:当开放这个布尔变量时允许 vsftpd 连接数据库。 httpd_enable_ftp_server:当开放这个布尔变量时容许的 httpd 作为 FTP 服务器,并且监听 FTP 端口。 tftp_anon_write:当开放这个布尔变量时允许 TFTP 访问一个公共的目录。

如果希望 FTP 服务器可以使用 NFS 和 Samba 文件系统,可以使用如下命令:

#setsebool -P allow_ftpd_use_nfs on #setsebool -P allow_ftpd_use_cifs on

另外针对启动 SElinux 后本地用户不能注册到 FTP 服务器,可以使用如下命令解决:

#setsebool -P ftp_home_dir on

假设 /var/ftp/forum 是一个公共论坛,供 ftp 用户查询和读写其中的文件,那么就需要确保 ftp 服务器可以读写修改 /var/ftp/forum 目录,此时可以使用命令把 /var/ftp/forum 目录的属性设置为 public_content_rw_t:

#semanage fcontext -a -t public_content_rw_t "/var/ftp/forum (/.*)?" #restorecon -R -v /var/ftp/forum

另外还有使用命令修改 /var/ftp/forum 的访问权限,开放布尔变量:

#
chmod 777 /var/ftp/forum #setsebool -P allow_ftpd_use_cifs on

时间: 2024-09-21 21:23:36

SELinux安全防护措施在各种网络服务的访问控制应用的相关文章

SELinux 环境下网络服务设置 , 第 1 部分

SELinux 环境下网络服务设置 , 第 1 部分:配置 Apache .Samba.NF 引言 SELinux 的安全防护措施主要集中在各种网络服务的访问控制.对于像 Apache .Samba.NFS.vsftp .MySQL.Bind dns 等服务来说,SELinux 仅仅开放了最基本的运行需求.至于连接外部网络.运行脚本.访问用户目录.共享文件等,必须经过一定的 SELinux 策略调整才能充分发挥网络服务器的作用,在安全和性能直接获取平衡. SELinux 环境下的 Apache

Ubuntu系统的网络服务与此版本的网络管理器不兼容问题解决方法

  还是手贱,在修改了网络配置和更新后,开机,机子木有无线网卡了,有线网卡也非常诡异,必须要restart network才能连出去. 在打开系统的网络连接面板时,出现系统的网络服务与此版本的网络管理器不兼容的错误. 利用万能的Google,找到了解决办法.方法比较匪夷所思,我反正木有理解,但是就这么成了... 方法就是4步走,看下面的引用: 代码如下: First open Terminal and log in as root. # su After that go the correct

JAVA WEB SERVICES 网络服务的三个标准

services|web|标准|网络 第一个标准被称为网络服务的"商业过程处理语言"是一种可编程的语言.它可规定如何把网络服务组合起来,并完成特别的任务. 第二个标准是WS-Coordination程序语言,它描述的是在任务互动时单独的网络服务如何完成服务.例如,一个软件程序员可以把网络服务插入到某个任务序列,以完成特定任务. 第三个网络服务标准为WS-Transaction,它用来确保一组交易是否全部成功或是全部失败. JAVA天堂 网络服务是一种正在兴起的软件编写方式,其功能就是让

.NET框架与网络服务

.net框架|网络 网络服务(Web Service)是基于网络的分布式应用程序的基本构造模块,而这些程序是以平台.对象模板和多语言方式构建的. 网络服务是建立在象HTTP和XML之类的开放的Internet 标准之上的,并且由此形成了可编程网络理念的基础. 图1 网络服务应用模型 这篇文章详细讲述网络服务以及为其提供支持的技术,这些技术能确保服务被集成到应用程序里去.同时本文将讲述新的Microsoft.NET框架及其对生成和使用网络服务的支持. 现在开发中最紧迫的问题是应用程序的集成化:运行

不能启动 Easy Config时如何创建一个新的网络服务

创建|网络 如果你发现Easy Config不能启动,而原有的网络服务正常使用,那么可以通过以下的方法进行创建.修改.删除网络服务.1 创建(新增加一个网络服务) 在你Oracle安装目录下..\Oracle\Ora81\NETWORK\ADMIN下找到tnsnames.ora,用notepad或其他的文本编辑器打开,会看到以下内容  # E:\ORACLE\ORA81\NETWORK\ADMIN\TNSNAMES.ORA Configuration File:E:\Oracle\Ora81\N

.NET框架与网络服务(上)

网络 .NET框架与网络服务(上)(作者:MSDN 2001年02月06日 10:47) 网络服务(Web Service)是基于网络的分布式应用程序的基本构造模块,而这些程序是以平台.对象模板和多语言方式构建的. 网络服务是建立在象HTTP和XML之类的开放的Internet 标准之上的,并且由此形成了可编程网络理念的基础. 图1 网络服务应用模型 这篇文章详细讲述网络服务以及为其提供支持的技术,这些技术能确保服务被集成到应用程序里去.同时本文将讲述新的Microsoft.NET框架及其对生成

.NET框架与网络服务(下)

网络 .NET框架与网络服务(下)(作者:MSDN 2001年02月06日 10:47) ■数据访问服务 几乎所有的网络服务都需要查询和更新永久性数据,不论是以简单文件,还是以相关数据库,或是以其它的存储类型存在.为了提供对数据的访问,服务框架包括ActiveX Data Objects+ (ADO+)类库.如同名字所暗示的那样,ADO+由ADO发展而来.ADO+为基于网络的应用程序和服务提供数据访问服务.图1阐明了ADO+的体系结构,表明任何数据,不论这些数据实际上如何存储的,都以XML或相关

在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架(一)----基础类库部分

编程|网络|异步 ///////////////////////////////////////////////////////////////////////////////////////////* 标题:在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架(一)----基础类库部分 当看到.NET中TcpListener和TcpClient的时候,我非常高兴,那就是我想要的通讯模式但是使用之后发现它们的力量太单薄了,我们需要一个更好的类库来替代它们. 下面提供了一些类,可以

另僻蹊径,提高网络服务管理效率

借用注册表,管理网络服务 许多朋友头脑中都有这样一个思维定势,那就是要管理系统中的网络服务,必须先要打开目标网络服 务的属性界面,之后通过属性界面中的各个功能参数和按钮才能完成目标网络服务的管理操作.其实管理 网络服务的方式有多种,不同的方式所能获取的管理效率可能会有所不同:这不,现在我们就通过设置系 统注册表的方法,来快速实现网络服务的启动或停用操作,同时还能实现批量操作目的: 首先以超级管理员身份登录进入本地工作站系统,单击系统桌面中的"开始"菜单,执行其中的"运 行&q