Это похоже на мышей: если Вы видите один, там существует сто проживания. Если Вы видите знаки компромисса, необходимо предположить, что целая система поставлена под угрозу. Вот почему все предлагают, чтобы Вы переустановили систему вместо того, чтобы провести много времени, смотря. Я встретился с несколькими ситуациями, где машина была поставлена под угрозу, и системные администраторы думали, что они разгребли бардак, только для сожаления о нем позже.
Руткитам очень свойственно заменить системные двоичные файлы, такие как PS, вершина, netstat. И это также характерно для троянского ssh. Так, поиск причуд контрольной суммы в тех файлах является главным подходом. Если Вы находитесь в основанной на об/мин системе, об/мин-V обычно является хорошим инструментом, или dpkg-проверьте на Debian/Ubuntu. Или можно проверить контрольные суммы непосредственно (но предостеречься предварительной ссылки, которая изменяет двоичные файлы на лету по причинам скорости). Это не надежно, но много нападений деточки сценария не покрывают эти трассировки. (Другими словами, если Вы находите что-то, хорошее. Если Вы не находите что-то, не оказывается, что Вы являетесь чистыми.)
Другие вещи искать: порты, показанные открытыми от внешнего nmap
которые не выглядят открытыми через netstat
на машине и pids в /proc
которые не обнаруживаются в ps
. И если Вы, оказывается, включаете удаленный системный журнал, ищете логины ssh, которые не имеют записей в lastlog.
Похоже, настоящая проблема заключается в вашем приложении FastCGI. Взгляните на его журнал ошибок или другой вывод, который он мог создать.
В общем, возможно, вам требуется дополнительная конфигурация FastCGI для передачи данных вашему приложению. Более крупная установка может включать такие параметры:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param HTTPS $https if_not_empty;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
Опять же, вывод вашего FastCGI-приложения должен сказать вам больше, это также может быть полностью не связанной с nginx проблемой
На случай, если это может помочь кому-то еще с теми же симптомами, описанными выше:
В моем случае параметр REQUEST_URI настраивался правильно в файле conf для конкретного модуля, включенном из nginx. conf файл. Однако, поскольку файл fastcgi_params также был включен, REQUEST_URI был указан дважды. Комментарий к файлу fastcgi_params устранил проблему.
Я столкнулся с той же проблемой, когда забыл преобразовать свой CGI в FastCGI, добавив эти три строки вывода перед содержимым CGI:
print "HTTP/1.0 200 OK"
print "Content-type: text/plain"
print ""