es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La conexión a ClamAV con curl falla, pero clamdscan tiene éxito.

Tengo ClamAV instalado en un equipo RHEL 8. clamd está en ejecución, escuchando en el puerto 3310.
Si ejecuto el comando ‘clamdscan’ en el mismo servidor, tiene éxito.
Según la página de manual de clamd, creé un archivo de texto con comandos de clamd en él:
PING
VERSION
SHUTDOWN

Luego me conecto a clamd a través de curl y envío este archivo, utilizando el siguiente comando y esperando una respuesta, pero falla:

curl -v -T archivo-de-comandos ftp://127.0.0.1:3310

Obtengo esta salida:

  • Trying 127.0.0.1…
  • TCP_NODELAY establecido
    % Total % Received % Xferd Average Speed Time Time Time Current
    Dload Upload Total Spent Left Speed
    0 0 0 0 0 0 0 0 –:–:– –:–:– –:–:– 0* Conectado a 127.0.0.1 (127.0.0.1) puerto 3310 (#0)
    0 0 0 0 0 0 0 0 –:–:– 0:00:30 –:–:– 0< COMANDO AGOTADO POR TIEMPO DE LECTURA
  • fallo en la lectura de la respuesta
    0 0 0 0 0 0 0 0 –:–:– 0:00:30 –:–:– 0
  • Cerrando la conexión 0
    curl: (56) fallo en la lectura de la respuesta

Así que me pregunto si clamdscan está haciendo algún truco que me estoy perdiendo.
Cualquier ayuda sería apreciada.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Posible solución para el problema de ClamAV y Curl

    De acuerdo con el escenario proporcionado, ClamAV está instalado en un sistema RHEL 8 y clamd está escuchando en el puerto 3310. El comando clamdscan se ejecuta correctamente en el mismo equipo. Sin embargo, al usar curl para conectarse a clamd y enviar un archivo de texto que contiene algunos comandos, la conexión falla debido a “COMMAND READ TIMED OUT” (tiempo de espera agotado al leer un comando).

    Una posible razón para este problema podría ser que el formato del archivo de texto creado no coincida. Clamd espera que el archivo de texto esté en un formato específico, como que cada comando esté separado por una nueva línea y que no haya espacio vacío o línea en blanco entre los comandos.

    Por lo tanto, se recomienda revisar el archivo de texto y asegurarse de que cumpla con el formato requerido. Además, otros factores como el tamaño del archivo, la latencia de la red o la carga en el servidor también pueden afectar la conexión con clamd.

    Otra posible solución es utilizar el comando nc (netcat) para probar la conectividad con clamd. Podemos utilizar el siguiente comando para enviar comandos a través de nc a clamd y verificar la respuesta:

    echo PING | nc 127.0.0.1 3310
    

    Si la respuesta es ‘PONG’, indica que la conectividad con clamd está funcionando correctamente. De manera similar, podemos probar otros comandos reemplazando ‘PING’ por otros comandos como ‘VERSION’ o ‘SHUTDOWN’.

    En general, es posible que el problema no esté relacionado con el comando clamdscan, sino con otros factores que afectan la conexión con clamd al usar curl. Por lo tanto, revisar el formato del archivo de texto y utilizar otros comandos como nc para realizar pruebas pueden ayudar a identificar y resolver el problema.

Comments are closed.