热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

CentOS上系统安装vsFTPd后防火墙和SELinux需要做的设置

刚装好的centoslinux系统启动vsftpd(ftp服务器)后,按照网上的说法打开了本地用户的访问权限,理论上应该具备所有的写权限(毕竟是localusr不是匿名账户),但开始不知道问什么只能打开文件夹,连里面的原有文件的都看不到,更别提什么写权限了。后来发现

刚装好的centos linux系统启动vsftpd(ftp服务器)后,按照网上的说法打开了本地用户的访问权限,理论上应该具备所有的写权限(毕竟是local usr不是匿名账户),但开始不知道问什么只能打开文件夹,连里面的原有文件的都看不到,更别提什么写权限了。后来发现禁用了防火墙和SElinux(或把SELinux设置成允许模式)后,就一切正常了。后来想想,这么做太不负责任了,于是调试,看看到底怎么设置防火墙和SELinux才可以让ftp通过。

   经过调试发现和防火墙没关系,开启防火墙,只要允许ftp通过就可以。但SElinux只要设置为强制模式就不行。最后的解决方案很简单只要以root权限执行这一句:

[root@jxzl ~]# setsebool ftp_home_dir=1

ftp就可以正常使用了。
防火强开启,允许ftp协议。SELinux状态仍为强制,但允许ftp用户访问它自己home目录。

到底问题算是解决了,不过后面附带说明一下,这中间用的一些有用的东西。

[root@jxzl ~]# vi /var/log/messages

可以查看系统日志。我就是从这里找到问题的原因的。日志里面用这样一段话:

   Oct 24 12:12:19 jxzl setroubleshoot: SELinux 正在阻止 ftp 在后台读取用户的主目录 (./D0C2CEC4BCFEBCD020283329). For complete SELinux messages. run sealert -l fa63d4bd-d6d2-4e6e-aa68-59753d8058a6

然后按照他的提示执行sealert -l fa63d4bd-d6d2-4e6e-aa68-59753d8058a6可以看到另一段提示如下:

[root@jxzl ~]# sealert -l fa63d4bd-d6d2-4e6e-aa68-59753d8058a6

摘要:

SELinux 正在阻止 ftp 在后台读取用户的主目录
(./D0C2CEC4BCFEBCD020283329).

详细的描述:

[SELinux is in permissive mode, the operation would have been denied but was
permitted due to permissive mode.]

SELinux 拒绝了 ftp 守护进程访问用户家目录
(./D0C2CEC4BCFEBCD020283329) 。有 人试图通过您的 ftp
守护进程登录一个用户帐户。如果您将您的 ftp 设置
成只允许匿名访问,这可能是入侵尝试的信号。

正在允许访问:

如果你想让 ftp 允许用户访问他们的主目录,你需要开启
ftp_home_dir 布尔值: "setsebool -P ftp_home_dir=1"

以下命令将允许这个权限:

setsebool -P ftp_home_dir=1

附加的信息:

源上下文                  root:system_r:ftpd_t
目标上下文               root:object_r:user_home_t
目标对象                  ./D0C2CEC4BCFEBCD020283329 [ dir ]
Source                        vsftpd
Source Path                   /usr/sbin/vsftpd
Port                          <未知的>
Host                          jxzl.*.*.*

Source RPM Packages           vsftpd-2.0.5-16.el5_4.1
Target RPM Packages          
策略 RPM                    selinux-policy-2.4.6-279.el5
Selinux 激活                True
策略类型                  targeted
MLS 激活                    True
强制模式                  Permissive
插件名称                  ftp_home_dir
主机名                     jxzl.*.*.*
平台                        Linux jxzl.*.*.*2.6.18-194.el5 #1 SMP Fri
                              Apr 2 14:58:35 EDT 2010 i686 i686
警告记数                  1
First Seen                    Sun Oct 24 12:12:19 2010
Last Seen                     Sun Oct 24 12:12:19 2010
Local ID                      fa63d4bd-d6d2-4e6e-aa68-59753d8058a6
行数                       

原始 Audit 消息          

host=jxzl.*.*.* type=AVC msg=audit(1287893539.341:482): avc:  denied  { create } for  pid=5635 comm="vsftpd" name=D0C2CEC4BCFEBCD020283329 scOntext=root:system_r:ftpd_t:s0 tcOntext=root:object_r:user_home_t:s0 tclass=dir

host=jxzl.*.*.* type=SYSCALL msg=audit(1287893539.341:482): arch=40000003 syscall=39 success=yes exit=0 a0=88671c0 a1=1ff a2=e958fc a3=e960b0 items=0 ppid=5631 pid=5635 auid=0 uid=500 gid=500 euid=500 suid=500 fsuid=500 egid=500 sgid=500 fsgid=500 tty=(none) ses=20 comm="vsftpd" exe="/usr/sbin/vsftpd" subj=root:system_r:ftpd_t:s0 key=(null)


推荐阅读
  • CentOS下ProFTPD的安装与配置指南
    本文详细介绍在CentOS操作系统上安装和配置ProFTPD服务的方法,包括基本配置、安全设置及高级功能的启用。 ... [详细]
  • 随着Linux操作系统的广泛使用,确保用户账户及系统安全变得尤为重要。用户密码的复杂性直接关系到系统的整体安全性。本文将详细介绍如何在CentOS服务器上自定义密码规则,以增强系统的安全性。 ... [详细]
  • CentOS7通过RealVNC实现多人使用服务器桌面
    背景:公司研发团队通过VNC登录到CentOS服务器的桌面实现软件开发工作为防止数据外泄,需要在RealVNC设置禁止传输文件、访问粘贴板等策略过程&# ... [详细]
  • 本文详细介绍了如何在 CentOS 7 及其衍生发行版(如 Red Hat, Oracle, Scientific Linux 7)上安装和完全卸载 GitLab。包括安装必要的依赖关系、配置防火墙、安装 GitLab 软件包以及常见问题的解决方法。 ... [详细]
  • 本文详细探讨了如何根据不同的应用场景选择合适的PHP版本,包括多版本切换技巧、稳定性分析及针对WordPress等特定平台的版本建议。 ... [详细]
  • 实现Win10与Linux服务器的SSH无密码登录
    本文介绍了如何在Windows 10环境下使用Git工具,通过配置SSH密钥对,实现与Linux服务器的无密码登录。主要步骤包括生成本地公钥、上传至服务器以及配置服务器端的信任关系。 ... [详细]
  • 本文探讨了服务器系统架构的性能评估方法,包括性能评估的目的、步骤以及如何选择合适的度量标准。文章还介绍了几种常用的基准测试程序及其应用,并详细说明了Web服务器性能评估的关键指标与测试方法。 ... [详细]
  • WebBenchmark:强大的Web API性能测试工具
    本文介绍了一款名为WebBenchmark的Web API性能测试工具,该工具不仅支持HTTP和HTTPS服务的测试,还提供了丰富的功能来帮助开发者进行高效的性能评估。 ... [详细]
  • 本文回顾了作者在求职阿里和腾讯实习生过程中,从最初的迷茫到最后成功获得Offer的心路历程。文中不仅分享了个人的面试经历,还提供了宝贵的面试准备建议和技巧。 ... [详细]
  • 如何在Win10系统下通过VMware 14 Pro安装CentOS 7
    本文详细介绍了在Windows 10操作系统中使用VMware Workstation 14 Pro搭建CentOS 7虚拟环境的步骤,包括所需工具、安装过程及系统配置等。 ... [详细]
  • 本文详细介绍了如何在CentOS 6.5系统上安装和配置Redis 3.0.6,包括必要的环境准备、软件包下载、编译安装及基本功能测试。 ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • 本文详细介绍了在 CentOS 系统中如何创建和管理 SWAP 分区,包括临时创建交换文件、永久性增加交换空间的方法,以及如何手动释放内存缓存。 ... [详细]
  • Node.js在服务器上的多种部署策略
    本文探讨了Node.js应用程序在服务器上部署的几种有效方法,包括使用Screen、PM2以及通过宝塔面板进行简易管理。 ... [详细]
  • 利用 Calcurse 在 Linux 终端高效管理日程与任务
    对于喜爱使用 Linux 终端进行日常操作的系统管理员来说,Calcurse 提供了一种强大的方式来管理日程安排、待办事项及会议。本文将详细介绍如何在 Linux 上安装和使用 Calcurse,帮助用户更有效地组织工作。 ... [详细]
author-avatar
兰勇2502919543
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有