problema Samba + cpu 100%
Horst von Brand
vonbrand en inf.utfsm.cl
Mar Ago 2 22:40:32 CLT 2005
Roberto Leiva M. <rlm en floresinternacional.cl> wrote:
> 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
Esta apuntando al ejecutable correcto.
> > [Se me sospecha que "alguien" te esta corriendo un proceso que se
> > hace pasar por smbd para ocultarse.]
La otra opcion es que "algo" se haya tomado ese proceso.
> > [....]
> >
> >>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!
Diria que el programa es el correcto.
> >>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
0.0.0.0 es universalmente tomado como "cualquier direccion" en IP. O puede
ser alguna configuracion mareada que trata de contactar eso? Lo que no es
derechamente ilegal (supongo), asi que no se cae a la primera pero si
enloquece luego. Al menos es una hipotesis plausible.
> [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)
Etc. Eso seria coherente con lo que indico.
Ahora, de donde saco esa imbecilidad es otra pregunta...
[...]
> 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]
Quien es 192.168.24? Da la impresion que esta mandando tonteras?
[...]
> 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
Eso puede ser simplemente un archivo dan~ado, o algo mas siniestro...
- Verifica (via "rpm -Va") que no hayan inconsistencias en los paquetes
instalados
- Revisa con cuidado los archivos de configuracion respectivos, en
particular, que no contengan caracteres "raros" (he visto programas
enloquecidos por archivos con caracteres inesperados)
- Actualiza /todo/
--
Dr. Horst H. von Brand User #22616 counter.li.org
Departamento de Informatica Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria +56 32 654239
Casilla 110-V, Valparaiso, Chile Fax: +56 32 797513
Más información sobre la lista de distribución Linux