Янв 13
|
Попался мне тут на глаза (на сервере) замечательный php-шелл WSO 2.5 — прилетел через Joomla, на которой крутился интернет-магазин друга (вот не зря я эту джумлу не люблю). Посему будем разбираться, как ограничить доступ злобных скрипт-киддисов с веб-шеллами к серверу.
Настраиваем php
Понятно, что php — лидер среди скриптовых языков, используемых для создания динамических веб-страниц, поэтому с ограничений его работы мы и начнем.
Для этого открываем конфиг php и вносим в него изменения.
Запрещаем скриптам выполняться в директориях, отличных от директории сайта и /tmp:
open_basedir = /var/www:/tmp
Запрещаем открывать файлы с удаленных серверов по протоколам http и ftp:
allow_url_fopen = Off
И, самое главное, отключаем все опасные модули php, которые нужны для работы web-shell`ов (пишем в одну строку):
disable_functions = popen, get_current_user, apache_get_modules, virtual, getmyinode, fileowner, filegroup, apache_get_version, apache_getenv, disk_free_space, highlight_file, symlink, disk_total_space, ini_get_all, apache_note, apache_setenv, chgrp, closelog, debugger_off, debugger_on, define_sys, define_syslog_variables, diskfreespace, dl, escapeshellarg, escapeshellcmd, exec, getmypid, getmyuid, ini_restore, leak, listen, openlog, passthru, pclose, proc_close, proc_get_status, proc_nice, proc_open, proc_terminate, shell_exec, show_source, syslog, system, url_exec, _getppid, 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, posix, posix_ctermid, posix_getcwd, posix_getegid, posix_geteuid, posix_getgid, posix_getgrgid, posix_getgrnam, posix_getgroups, posix_getlogin, posix_getpgid, posix_getpgrp, posix_getpid, posix_getpwnam, posix_getpwuid, posix_getrlimit, posix_getsid, posix_getuid, posix_isatty, posix_kill, posix_mkfifo, posix_setegid, posix_seteuid, posix_setgid, posix_setpgid, posix_setsid, posix_setuid, posix_times, posix_ttyname, posix_uname
Продолжение »