Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

AMP环境下限制CGI程序权限的方式

[复制链接]
cnfreeos 发表于 2006-8-15 11:26:00 | 显示全部楼层 |阅读模式
防止对shell的直接存取

   这个设置可能使一些使用系统调用的函数失效,大多数的php或perl后门都可能不被执行,即使关闭了安全模式.
要达到此目的,需要对shell,各种语言的编译器还有环境做一些设置,剥离other位的读写和执行权限. 比如你的系统中有如下帐户:

  1. root:x:0:0:root:/root:/bin/bash
  2. flydragon:x:500:501::/home/flydragon:/bin/bash
复制代码


那可以把flydragon作为管理帐户,加入wheel组.这样就和root用户同组了。直接编辑/etc/group修改wheel一行为下面这样:

wheel:x:10:root,flydragon

然后就可以对shell进行重新设置:(这步很重要,如果不做,那除了root就不能登陆了]]) chown -R root:wheel /bin/{sh,bash,ash,ksh,tcsh,zsh}

如果你的系统下还有其他shell也需要更改他们为同样的设置

然后把这些文件的权限再改成710也就是去掉other位的权限.那系统中就只有flydragon和root可以使用shell了。

chmod 710 /bin/{sh,bash,ash,ksh,tcsh,zsh}

作完这些设置后,修改/etc/shells,删除掉不应该信任的shell,保留最简单的环境.

如果你有多个管理用户,可以在wheel组里继续添加,但注意不要使用过多和root同组的用户, 更多的用户会带来更多的风险.如果你需要更多的shell登陆用户,请使用更高级的acl来打开对某个shell的权限设定,而对其他的文件保持系统原来的属性.
其他设置
php.ini的disable_functions 禁止如下函数

  1. phpinfo,passthru,exec,system,popen,chroot,escapeshellcmd,escapeshellarg,shell_exec,proc_open,proc_get_status,socket_create,socket_bind,socket_listen,socket_accept,socket_write,socket_read
复制代码


一些可以解释,编译,下载,文件传输类的程序(假如除管理员外并不需要使用这些程序),限制other位对他们的读取和执行

  1. perl
  2. php
  3. python
  4. gcc
  5. c++
  6. cc
  7. wget
  8. lynx
  9. links
  10. ftp
  11. sftp
  12. scp
  13. ......
复制代码


编译选项
如果你不需要php的命令行方式,只需要和apache集成,那你还可以在编译的时候,指定--disable-cli参数.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-1-10 00:14 , Processed in 0.021974 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表