tareas sonar programar integrar integracion esclavo continua configurar con jenkins port firewall slave

sonar - Jenkins Número de puerto esclavo para el firewall



integrar sonar con jenkins (3)

Usamos Jenkins 1.504 en Windows .

Necesitamos tener Master y Slave en diferentes subredes con firewall en el medio.
No podemos tener CUALQUIER CUALQUIER regla de firewall de puerto, debemos especificar los números de puerto exactos .

Sé que el maestro del puerto está escuchando.

También veo que Slave abre la conexión al Master desde el puerto arbitrario asignado dinámicamente a cada ejecución, y el puerto en el lado Master también es arbitrario.
Puedo arreglar el puerto de la Maestra al especificarlo en Administrar Jenkins> Configurar seguridad global> Puerto TCP para agentes esclavos JNLP).

¿Cómo arreglar el puerto esclavo?


ACTUALIZACIÓN : Mecanismo de conexión encontrado que se describe aquí: https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+CLI#JenkinsCLI-Connectionmechanism

Creo que podría funcionar para nosotros, pero aún sería mejor tener una conexión de puertos fijos-2-fijos.


Tengo un escenario similar, y no tuve problemas para conectarme después de configurar el puerto JNLP tal como lo describe, y agregar una sola regla de firewall que permite una conexión en el servidor que usa ese puerto. De acuerdo, es un puerto de cliente seleccionado al azar que va a un puerto de servidor conocido (se necesita una regla de host: ANY -> servidor: 1).

Desde mi lectura del código fuente, no veo una forma de configurar el puerto local para usar cuando se realiza la solicitud desde el esclavo. Es desafortunado, sería una buena característica.

Alternativas:

Use un proxy simple en su cliente que escuche en el puerto N y luego reenvíe todos los datos al servidor de Jenkins real en el host remoto utilizando un puerto local constante. Conecte su esclavo a este proxy local en lugar del servidor real de Jenkins.

Cree una compilación de esclavos Jenkins personalizada que permita una opción para especificar el puerto local que se utilizará.

Recuerde también que si está utilizando HTTPS mediante un certificado autofirmado, debe modificar la configuración del archivo jenkins-slave.xml en el esclavo para especificar la opción -noCertificateCheck en la línea de comando.


Tuvimos una situación similar, pero en nuestro caso Infosec acordó permitir cualquiera a 1, por lo que no tuvimos que arreglar el puerto esclavo, sino que corrigió el maestro al puerto JNLP de alto nivel 49187 funcionó ("Configurar seguridad global" -> "Puerto TCP para agentes esclavos JNLP ").

TCP 49187 - Fixed jnlp port 8080 - jenkins http port

Otros puertos necesarios para ejecutar esclavos como un servicio de Windows

TCP 135 139 445 UDP 137 138


Un esclavo no es un servidor, es una aplicación de tipo cliente. Los clientes de red (casi) nunca usan un puerto específico. En su lugar, solicitan al sistema operativo un puerto libre aleatorio. Esto funciona mucho mejor ya que normalmente ejecuta clientes en muchas máquinas donde la configuración actual no se conoce de antemano. Esto evita miles de informes de errores "el cliente no se iniciará porque el puerto ya está en uso" todos los días.

Necesita decirle al departamento de seguridad que el esclavo no es un servidor sino un cliente que se conecta al servidor y que absolutamente necesita tener una regla que diga al cliente: CUALQUIERA -> servidor: FIJO. El número de puerto del cliente debe ser> = 1024 (los puertos 1 a 1023 necesitan permisos especiales ) pero no estoy seguro de si realmente ganas algo agregando una regla para esto: si un atacante puede abrir puertos privilegiados, básicamente ya posee la máquina .

Si argumentan, pregúnteles por qué no requieren la misma regla para todos los navegadores web que las personas usan en su empresa.