problema Samba + cpu 100%

Roberto Leiva M. rlm en floresinternacional.cl
Mar Ago 2 16:56:00 CLT 2005


Horst von Brand wrote:
> Roberto Leiva (Trabajo) <rlm en floresinternacional.cl> wrote:
> 
>>Tengo un Fedora Core 3 - kernel 2.6.12-1.1372_FC3
>>
>>con Samba 3 version:
>>
>>[root en Fc3SrvSmb ~]# smbd -V
>>Version 3.0.10-1.fc3
> 
> 
>>En este servidor esta instalado Cups 1.1.22. Existen clientes win 98, 2k,
>>xp los cuales montan sus respectivas unidades e impresora (50 estaciones
>>aprox), ademas clientes con linux que tambien montan unidades e impresora
>>( 50 + ).
> 
> 
>>Esta semana la carga de CPU esta continuamente trabajando al 100%, siendo
>>que no se ha hecho ningun cambio.  EL proceso en cuestion es el smbd que
>>inicia el root (no es el proceso padre sino uno que se inicia al rato de
>>haber levantado el servicio). Si bajo el servicio Samba cierra todos los
>>procesos smbd , menos el que emplea el 100% cpu (no muestra ningun error
>>la salida del comando service smbd stop, lo tengo que matar con kill).
> 
> 
> Humm... eso es bastante sospechoso.
> 
> Que te dice para el proceso <pid> que te juega chueco:
> 
>     ls -l /proc/<pid>/exe

lrwxrwxrwx  1 root root 0 ago  2 16:13 /proc/3515/exe -> /usr/sbin/smbd

> 
> [Se me sospecha que "alguien" te esta corriendo un proceso que se hace
>  pasar por smbd para ocultarse.]
> 
> [[Si, pueden haber millones de explicaciones legitimas tambien]]
> 
> [....]
> 
> 
>>Preguntas:
>>
>>Que puede estar pasando ? alguna ayuda ?
> 
> 
> Veamos...
> 
> 
>>Es posible ver realmente lo que esta realizando el proceso PID 3515 (
>>lectura disco, escritura, sobre que cliente esta trabajando (mayor
>>informacion) ?
> 
> 
> Con gdb(1) puedes atacharte a un proceso en ejecucion y controlarlo.
> Supongo que solo como root (cuidado!) en este caso. Con gcore (no tiene
> manual aca) puedes crear un core del proceso:
> 
>   gcore <pid>
> 
> y analizar eso con calma.
> 
> La entrada /proc/<pid>/ contiene toda clase de informacion divertida sobre
> el proceso del caso. Y un humilde strings(1) o nm(1), etc aplicados al
> ejecutable sirven de mucho a la hora de investigar programas "raros".

lo estudiare y revizare!

> 
> 
>>Sera problema de algun cliente que cause esto (virus troyano etc etc).
> 
> 
> Puede ser. Bastante artesanal (hay maneras /mucho/ mas efectivas de ocultar
> actividades nefastas), pero es lo que hay.
> 
> 
>>PD: con los logs no pude aclarecer nada =(
> 
> 
> Que revisaste de los logs?

Los log estan de la siguiente forma configurados:
log file = /var/log/samba/%m.log ( por maquina )

segun "yo", deberian aparecer logs con el ip de la maquina o su nombre.

cosas raras:

file: 0.0.0.0.log
[2005/08/02 02:00:05, 0] lib/util_sock.c:get_peer_addr(1000)
   getpeername failed. Error was El otro extremo de la conexión no está conectado
[2005/08/02 02:00:05, 0] lib/access.c:check_access(328)
[2005/08/02 02:00:05, 0] lib/util_sock.c:get_peer_addr(1000)
   getpeername failed. Error was El otro extremo de la conexión no está conectado
   Denied connection from  (0.0.0.0)
[2005/08/02 02:00:05, 1] smbd/process.c:process_smb(1084)
[2005/08/02 02:00:05, 0] lib/util_sock.c:get_peer_addr(1000)
   getpeername failed. Error was El otro extremo de la conexión no está conectado
   Connection denied from 0.0.0.0
[2005/08/02 02:00:05, 0] lib/util_sock.c:write_socket_data(430)
   write_socket_data: write failure. Error = Conexión reinicializada por la máquina remota
[2005/08/02 02:00:05, 0] lib/util_sock.c:write_socket(455)
   write_socket: Error writing 5 bytes to socket 22: ERRNO = Conexión reinicializada por la máquina 
remota
[2005/08/02 02:00:05, 0] lib/util_sock.c:send_smb(647)
   Error writing 5 bytes to client. -1. (Conexión reinicializada por la máquina remota)
[2005/08/02 02:00:05, 2] smbd/server.c:exit_server(571)
   Closing connections
[...]


file: nmbd.log

[2005/08/02 16:42:24, 2] nmbd/nmbd_incomingdgrams.c:process_host_announce(130) 
                          process_host_announce: incorrect name type for destination from IP 
192.168.168.24 (was 1e) should be 0x1d. Allowing packe
t anyway. 
                        [2005/08/02 16:42:25, 2] nmbd/nmbd_incomingdgrams.c:process_host_announce(130)
   process_host_announce: incorrect name type for destination from IP 192.168.168.43 (was 1e) should 
be 0x1d. Allowing packet anyway.
[2005/08/02 16:42:30, 2] nmbd/nmbd_incomingdgrams.c:process_host_announce(130) 
                          process_host_announce: incorrect name type for destination from IP 
192.168.168.49 (was 1e) should be 0x1d. Allowing packe
t anyway. 
                        [2005/08/02 16:42:30, 2] nmbd/nmbd_incomingdgrams.c:process_host_announce(130)
   process_host_announce: incorrect name type for destination from IP 192.168.168.38 (was 1e) should 
be 0x1d. Allowing packet anyway.
[2005/08/02 16:42:31, 2] nmbd/nmbd_incomingdgrams.c:process_host_announce(130) 
                          process_host_announce: incorrect name type for destination from IP 
192.168.168.39 (was 1e) should be 0x1d. Allowing packe
t anyway. 
                        [2005/08/02 16:43:46, 2] nmbd/nmbd_incomingdgrams.c:process_host_announce(130)
   process_host_announce: incorrect name type for destination from IP 192.168.168.24 (was 1e) should 
be 0x1d. Allowing packet anyway.
[...]  !!! todas las ip son de printserver ( este log se repite cada 2 min aprox )

file: smbd.log

[...]

[2005/08/02 08:49:10, 0] tdb/tdbutil.c:tdb_log(725)
   tdb(/var/cache/samba/printing/S_PS17_LPT2.tdb): rec_read bad magic 0xd9fee666 at offset=150172
[2005/08/02 08:49:25, 0] tdb/tdbutil.c:tdb_log(725)
   tdb(/var/cache/samba/printing/S_PS17_LPT2.tdb): rec_read bad magic 0xd9fee666 at offset=150172
[2005/08/02 08:49:25, 0] tdb/tdbutil.c:tdb_log(725)
   tdb(/var/cache/samba/printing/S_PS17_LPT2.tdb): rec_read bad magic 0xd9fee666 at offset=150172
[2005/08/02 08:49:40, 0] tdb/tdbutil.c:tdb_log(725)

[...]  este error se repite con algunas colas de impresion CUPS


y existen alrededor de 100 archivos logs mas ( por cada maquina que esta conectada )


--
Roberto Leiva M
Santiago - Chile


Más información sobre la lista de distribución Linux