我使用 NGINX 和 PHP-FPM 运行一些 PHP 网页。最近,我为遇到 WordPress 安全问题的朋友托管了网站,并完成了所有升级、WP 和插件。
但不知怎的,我今天发现他的网站在 PHP-FPM 中运行的用户正在运行系统命令,例如/usr/bin/host
我没有发现任何被覆盖的文件,并且运行命令在php.ini
for中被禁用php-fpm
。
有没有办法找到命令是如何运行的,它们是直接由 PHP 进程运行,还是服务器上有一些脚本被执行?
我可以限制哪些用户可以访问命令吗?
有关 Linux 服务器安全性的好书/文章,我可以在哪里搜索更多信息?
服务器运行最新的 Ubuntu LTS 14.04,以及 Ubuntu 版本的 NGINX 和 PHP。
答案1
我可以限制哪些用户可以访问命令吗?
是的,您可以通过扩展disable_functions
php.ini 文件中的参数(位置取决于您的设置,例如/etc/php5/cgi/php/ini
)
disable_functions = system,exec,shell_exec,escapeshellcmd,show_source,leak,ini_restore,pfsockopen,popen,eproc_c,posix_kill,posix_setuid,posix_setpgid,posix_setsid,proc_open,proc_terminate,proc_get_status,proc_nice,proc_close,passthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority