Как dd будет записывать данные на диск

Lo primero que debe saber es cómo funciona el protocolo UPnP IGD. Usted elige un puerto UDP local aleatorio y desde él envía una solicitud de descubrimiento a la dirección de multidifusión bien conocida -239.255.255.250 y al puerto UDP 1900. El servidor UPnP IGD (que se ejecuta en su enrutador )escucha esas consultas de multidifusión y las envía devuelva la respuesta UDP de unidifusión desde el puerto elegido al azar a su dirección IP y al puerto desde el que se envió la solicitud de descubrimiento. Pero dicha respuesta no está emparejada por el módulo de iptables de conntrack con su solicitud enviada, por lo que iptables elimina la respuesta recibida. Es por eso que ayudó habilitar todos los puertos UDP o deshabilitar el firewall. En esa respuesta UDP, se encuentra la ubicación de su servidor y cliente UPnP IGD y luego establezca una conexión TCP clásica con el servidor UPnP IGD. Entonces, el único problema es cómo escribir una regla para recibir una respuesta UDP a esa solicitud de descubrimiento de multidifusión.

Vía ipset es posible. Lo describí en respuesta enhttps://serverfault.com/a/911286:

$ ipset create upnp hash:ip,port timeout 3
$ iptables -A OUTPUT -d 239.255.255.250/32 -p udp -m udp --dport 1900 -j SET --add-set upnp src,src --exist
$ iptables -A INPUT -p udp -m set --match-set upnp dst,dst -j ACCEPT

En IPv6, los paquetes UPnP se envían a la dirección de multidifusión ff02 ::co ff05 ::c. Entonces las reglas se verían como:

$ ipset create upnp6 hash:ip,port timeout 3 family inet6
$ ip6tables -A OUTPUT -d ff02::c/128 -p udp -m udp --dport 1900 -j SET --add-set upnp6 src,src --exist
$ ip6tables -A OUTPUT -d ff05::c/128 -p udp -m udp --dport 1900 -j SET --add-set upnp6 src,src --exist
$ ip6tables -A INPUT -p udp -m set --match-set upnp6 dst,dst -j ACCEPT

Algunos servidores UPnP (pero no todos )periódicamente (p. cada 30 s )se anuncian a sí mismos a través de un paquete UDP de multidifusión a una dirección/puerto bien conocido -. Si tiene dicho servidor y también un cliente que está escuchando estos paquetes de multidifusión,entonces la regla de iptables es muy simple:

$ iptables -A INPUT -d 239.255.255.250/32 -p udp -m udp --dport 1900 -j ACCEPT

Y equivalente para IPv6:

$ ip6tables -A INPUT -d ff02::c/128 -p udp -m udp --dport 1900 -j ACCEPT
$ ip6tables -A INPUT -d ff05::c/128 -p udp -m udp --dport 1900 -j ACCEPT

En tu pregunta, describiste algo similar a la regla de iptables anterior, pero cometiste un gran error :Especificaste puerto de origen , en lugar de destino:--sport 1900. Los paquetes UPnP UDP se envían desde puertos de origen aleatorios al puerto de destino fijo 1900.

También describió que el inspector upnp -puede detectar su enrutador UPnP IGD después de agregar el puerto 1900 al (confiable, probablemente tanto el origen como el destino ), pero fue más lento que deshabilitar el firewall. Esto coincide perfectamente con la descripción anterior del anuncio periódico, ya que el inspector upnp -estaba esperando cuando su enrutador envió el siguiente paquete de anuncio.

0
23.09.2016, 15:33
1 ответ

Вы не указали счетчик, поэтому dd прочитал ввод полностью. Укажите количество, например,

dd if=BIN of=/dev/mmcblk0 bs=1k count=1 seek=1; sync

Это должно записать один блок размером 1k. (Кроме того, просто отметим, что поиск заставляет dd пропускать первые 1024 байта - это предназначено, требуется?)

0
28.01.2020, 04:49

Теги

Похожие вопросы