TFTP 上传失败

dun*_*nxd 6 linux selinux centos tftp

我在 Centos 5.4 服务器上通过 xinetd 运行 TFTPD。我可以通过 tftp 很好地访问文件,所以我知道服务运行正常。但是,每当我尝试上传文件时,都会收到 0 Permission denied 消息。

我已经在 /tftpboot 中创建了该文件并将权限设置为 666。

我的 tftpd 配置有详细的日志记录 (-vvvv),但我在 /var/log/messages 中看到的是:

开始:tftp pid=20383 from=192.168.77.4

我看到有人提到 SELinux 可以阻止 TFTPD 上传,但我希望在日志中看到一些内容。我将 SELinux 设置为许可模式。

有任何想法吗?

dun*_*nxd 4

遵循http://grimwell.wikispaces.com/tftpd上的信息,特别注意“冲洗并重复”以使 selinux 策略到位。经过几次尝试后,一切都开始工作 - 上传和创建新文件。

简而言之:

  • 确保你在 centos 中安装了审计,否则 SELinux 可能不会记录任何内容!
  • 确保您的 xinetd.d/tftpd-c -v -s /tftpboot在服务器参数行中
  • 确保 tftp 将写入的目录具有 777 权限
  • 执行 tftp localhost 并尝试将文件放入目录中
  • 触摸目录中的文件,chmod 666,然后通过 tftp localhost,尝试覆盖该文件
  • 创建grep tftp /var/log/audit/audit.log | audit2allow -m tftpwriteselinux 策略。确保该策略包括写入和创建行。如果没有,请尝试再次写入和创建以在审核日志中生成警报,然后重试。
  • 使用创建可安装策略,grep tftp /var/log/audit/audit.log | audit2allow -M tftpwrite然后使用安装它semodule -i tftpwrite.pp
  • service xinetd reload并尝试使用 tftp。

灿烂。希望其他人觉得这很有用!