Cómo comprobar si nginx en Linux está cargado
1. Cambie los atributos del directorio y del archivo y prohíba la escritura
find -type f -name \*.php -exec chmod 444 {}
find - type d -exec chmod 555 {}\;
Nota: Por supuesto, se deben excluir el directorio de carga, el directorio de caché, etc.;
Al mismo tiempo, es mejor deshabilite la función chmod. Los atacantes pueden modificar archivos a través de chmod. El atributo de solo lectura y luego modificar el archivo
2. Configuración peligrosa de PHP
Deshabilite algunas funciones PHP peligrosas, como como:
passthru, exec, system, chroot, scandir.chgrp, chown, shell_exec, proc_open, proc_get_status, ini_alter,
ini_alter, ini_restore, dl, openlog, syslog, readlink, symlink, popepassthru, stream_socket_server, escapeshellcmd, popen, dl,
syslog, show_source
Configuración de seguridad 3.nginx
Restringir ciertos directorios para ejecutar archivos php p>
ubicación~^/images/.*\. (php|php5)$
{
denyall;
}
ubicación~^/static/.*\.(php |php5)$
{
denyall;
}
ubicación~*^/data/(adjunto|avatar)/ *\.(php|php5)$
{
denyall;
}
Nota: Estas restricciones de directorio deben escribirse en
ubicación~.*\.(php|php5)$
{
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
incluye fcgi.conf;
}
De lo contrario, la restricción no ¡trabajar!
Corrección de error de Path_info:
Incluir fcgi.conf en la parte superior del fcgi.conf genérico
if ($request_filename ~* (. *)\.php ) {
establecer $php_url $1;
}
if (! -e $php_url.php) {
return 404;
}
4. Encuentre troyanos relacionados con PHP en Linux
Los troyanos dirigidos a PHP generalmente incluyen lt;?php eval($_POST[cmd]) ;? gt; orlt;?php afirmar($_POST[cmd]);? gt;
buscar /data/wwwroot/* -type f -name "*.php".|xargs grep "eval(" gt; /root/scan.txt
También hay una puerta trasera para cargar archivos arbitrarios, por lo que puede utilizar el método anterior para buscar todos los archivos que contengan "move_uploaded_file".uploaded_f
ile "file.
Otra puerta trasera común de una oración:
grep -r --include=*.php '[^a-z]eval($_POST' . gt; grep. txt
grep -r --include=*.php 'file_put_contents(.*$_POST\[. *\]);' gt; Los resultados se escriben en un archivo y se analizan lentamente después de la descarga. Otras funciones son similares a los troyanos y las puertas traseras. Si es necesario, puede encontrar una función para todos los archivos en todo el sitio. También se debe incluir la carga de imágenes, por lo que se debe realizar una gran limpieza.
5. Busque archivos que hayan sido modificados en los últimos 3 días:
find /data/www -mtime -3 -type f -name \*.php
Atención: atacante es posible evitar esta búsqueda modificando el atributo de tiempo del archivo a través de la función táctil, por lo que el tacto debe estar prohibido
Buscar todos los archivos de imágenes
Buscar en todos los archivos de imágenes gif y jpg. Se ha agregado algún contenido de imagen al script de puerta trasera de php. La extensión de algunos archivos php reales se cambiará a gif. Esta situación es difícil de detectar en visualización normal. este tipo de puerta trasera troyana para un cliente. Se incluye un archivo de imagen en el script php. Después de verificar el código fuente del archivo de imagen, encontraremos que es un script php.
Está bien. es un trabajo de operación y mantenimiento muy importante. Si tiene otras buenas formas de fortalecer la seguridad, compártalas.
Consejos: si la pantalla anterior está en blanco o el diseño de la página es confuso y el contenido no. Para ver si está completo y otros problemas que afectan la lectura, haga clic aquí para explorar el texto original.
Regrese a la página de inicio de ScriptBuilder. Si le gusta la tecnología de secuencias de comandos, bienvenido a unirse al grupo QQ: 246889341, conozca nuevos amigos en. el grupo y la tecnología de intercambio^_^
Buscar programas de puerta trasera en Linux
Cada proceso tendrá un PID, y cada PID tendrá un directorio correspondiente en el directorio /proc. es una implementación del sistema Linux (el kernel actual es 2.6).
Los programas de puerta trasera comunes no se pueden encontrar en los visores de procesos (como ps), porque estas herramientas comunes e incluso las bibliotecas del sistema son básicamente manipuladas después de que el sistema está dañado. comprometido (una gran cantidad de rumores circulan en Internet sobre el rootkit. Este método es ineficaz si se trata de un troyano a nivel de kernel
Debido a la relativa complejidad de modificar el kernel del sistema (si el kernel lo tiene). modificado, o si es un troyano a nivel de kernel, es más difícil de encontrar. Básicamente, todavía puedes encontrar rastros de troyanos en /proc
Pensando:
Si el ID del proceso existe en /proc y no se puede ver (ocultar) en ps. Debe haber algún problema con este proceso.
Bash Shell:
#! /bin/bash
str_pids="`ps -A | awk '{print $1}''"
para i en /proc/[[:digit:]]*; hacer
Si echo "$str_pids" | grep -qs `basename "$i"` entonces
if echo "$str_pids" | `.entonces
:
else
echo "PID de Rootkit: $(basename "$i")"
fi< / p>
hecho
DISCUSIÓN:
La complejidad de comprobar si un sistema (Linux) ha sido invadido depende principalmente de si el intruso ha completado suficiente "trabajo de limpieza". Para los intrusos que han hecho sus deberes, la eliminación será una tarea meticulosa y dolorosa, a menudo realizada con la ayuda de herramientas especializadas de terceros (herramientas de código abierto como tripwire, como aide).
La implementación y el uso de herramientas profesionales son relativamente problemáticos y no todos los administradores dominan su uso.
De hecho, el propio sistema Linux ya proporciona un mecanismo de "suma de comprobación" para comprobar si los programas del sistema han sido modificados. Por ejemplo, la función -V proporcionada por el sistema de administración de paquetes rpm:
rpm -Va
Comprueba todos los paquetes de software en el sistema y genera información del archivo que se modificó durante el proceso de instalación. . Sin embargo, el sistema rpm también puede dañarse, por ejemplo modificarse.