El kit de desarrollo Intel que he estado usando incluye una función de administración remota (también vea la página de manual de Ubuntu aquí ) que permite reinicios remotos en caso de que el sistema operativo se bloquee.
Tiene la capacidad de escuchar un puñado de puertos (16992 y 16993, para ser específicos) en una dirección IP que comparte con el sistema operativo. (ya sea al espiar las solicitudes de DHCP o al emitir las suyas; no estoy seguro, pero de cualquier manera usa una dirección MAC compartida en este modo)
Lo tengo ejecutándose en una dirección IP separada, porque me preocupa un posible caso de uso: ¿cómo evita AMT que la pila de la red host entre en conflicto con él?
En otras palabras, el software de administración Intel ahora está escuchando [al menos] dos puertos TCP, fuera de banda y sin el conocimiento del sistema operativo. Digamos que inicio una conexión TCP a un host remoto, y la pila de host elige 16992 o 16993 como el puerto local para escuchar [para los paquetes que regresan a la caja].
¿Los paquetes que regresan del host remoto no se "ennegrecen" y nunca llegan al sistema operativo? ¿O hay alguna medida preventiva, como un controlador Intel en el kernel de Linux sabiendo que TCP debe evitar el puerto 16992? (parece poco probable ya que esta es una característica independiente del sistema operativo). ¿O tal vez la interfaz de administración puede reenviar el tráfico enviado al puerto 16992 que no pertenece a una sesión de administración conocida de nuevo a la pila de host?
De cualquier manera, soy reacio a usar esto para cargas intensivas de red hasta que entiendo cómo funciona. Busqué en la documentación de Intel y tampoco pude encontrar nada allí.
Supongo que esto podría probarse iniciando alrededor de 30,000 conexiones TCP y verificando si la conectividad funciona incluso si el puerto se superpone. Pero aún no he tenido la oportunidad de hacerlo.
(Nota al pie: me doy cuenta de que esta pregunta es similar a ¿Cómo una computadora basada en Intel vPro mantiene la conectividad IP?, Pero esa pregunta aborda la conectividad en general, no la conectividad a los puertos TCP específicos que se superponen con la pila del host).
fuente
nc -p 16992 example.com 22
y ver qué sucede.Respuestas:
Después de configurar AMT para escuchar en una dirección IP compartida, ejecuté la prueba mencionada por kasperd en los comentarios anteriores. (contra mi propio host remoto con un servidor SSH, no en realidad
example.com
, por supuesto) Aquí está el resultado:Caso de prueba positivo (utilizando un puerto no utilizado por AMT):
Caso de prueba negativo (usando un puerto utilizado por AMT):
(Después de unos minutos, el caso de prueba negativo agotó el tiempo de espera y regresó al indicador de shell).
Como puede ver, los paquetes que regresan al puerto 16992 se descartaron antes de llegar a la pila TCP / IP del host.
Recomendación: si la red confiable es importante para usted, ¡no habilite AMT en la misma dirección IP que su pila TCP / IP de host!
fuente
Hay un hilo controvertido en el mapeo del foro de Intel entre la IP del host y la IP del dispositivo Intel AMT con la sugerencia de que
y una explicación:
Confirmo que usar DHCP con AMT y Host conduce a problemas de enrutamiento. por ejemplo, ping engañoso:
fuente
Todos los paquetes del host remoto con "puertos AMT" nunca llegan a ningún sistema operativo. Son interceptados por Intel ME / AMT. Por defecto son los puertos 16992-16995, 5900 (AMT ver. 6+), 623, 664.
fuente
Lo que debe tenerse en cuenta es que AMT está pensado como tecnología OOBM de cliente, no como servidor uno. Por lo tanto, sí, puede suceder que su computadora decida usar puertos AMT, pero solo en caso de que lo haya configurado específicamente para hacerlo. La mayoría de los sistemas operativos vienen con puertos efímeros preconfigurados en el rango de 49152 a 65535 como lo sugiere la especificación de la IANA, algunas distribuciones de Linux con 32768 a 61000 y Windows antiguo con 1025–5000.
Entonces, desde mi punto de vista, es seguro usar IP compartida para AMT ya que sus puertos no están en un rango efímero (a menos que sepa lo que hace y cambie esta configuración en particular) y ninguna aplicación debe usarlo como puerto de escucha.
fuente
Una solución podría ser configurar los puertos para la pila TCP de Windows mediante
netsh
.De manera predeterminada, Windows usa el puerto 49152 >> 65636 (o lo que sea el límite superior) Por lo tanto, es muy seguro usar AMT. Puede establecer el rango de puertos con
netsh
. Por ejemplo, siempre uso alrededor de 1000 puertos para máquinas perimetrales.Además, Intel elimina los comandos AMT y pasa todo el resto del tráfico en esos puertos (¡16991-16995 en realidad!) Al SO (si hay un SO). Entonces, si tuviera una aplicación que abriera un puerto en el rango de AMT, el tráfico aún pasará a través del sistema operativo a la aplicación, porque como dije, Intel solo elimina los comandos de administración de AMT. Es poco probable que su aplicación envíe comandos AMT.
fuente