
No estoy 100% seguro de estar usando la terminología correcta en el título, así que si alguien sabe mejor que yo, modifíquelo.
Estoy intentando replicar un script malicioso que he visto en la naturaleza con el fin de probar mis opciones para responder. Se vincula a un montón de direcciones IP en un IPv6/64 y luego se usa para inundar IRC desde cientos o miles de direcciones IP diferentes. El hecho de que sea capaz de vincularse a diferentes direcciones le permite evitar algunas limitaciones automáticas por nombre de host y causar problemas a pesar de las medidas existentes.
Básicamente, el problema que intento resolver se reduce a esto. Estoy usando una máquina de prueba que ejecuta Ubuntu Server 13.10:
$ uname -a
Linux sandbox 3.11.0-12-generic #19-Ubuntu SMP Wed Oct 9 16:12:00 UTC 2013 i686 i686 i686 GNU/Linux
Mi red está configurada de la siguiente manera:
$ ifconfig
eth0 Link encap:Ethernet HWaddr 00:18:f8:0d:c0:d5
inet addr:192.168.2.100 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::218:f8ff:fe0d:c0d5/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:9184009 errors:0 dropped:751 overruns:0 frame:57518
TX packets:1143073 errors:12057087 dropped:0 overruns:0 carrier:23942906
collisions:0 txqueuelen:1000
RX bytes:1475317803 (1.4 GB) TX bytes:287318593 (287.3 MB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:4007947 errors:0 dropped:0 overruns:0 frame:0
TX packets:4007947 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:663390993 (663.3 MB) TX bytes:663390993 (663.3 MB)
La inet6
línea del listado eth0 me indica que todo el /64 en el que reside la dirección indicada está asignado como enlace local a esta máquina, pero no estoy 100% seguro de que esto sea cierto. En cualquier caso, el siguiente comando que estoy usando para probar la conectividad no funciona como esperaba:
$ telnet -6 -b fe80::1234:1234:1234:1234%eth0 fe80::218:f8ff:fe0d:c0d5%eth0 6667
telnet: bind: Cannot assign requested address
¿Me equivoco al suponer que todo el /64 está asignado a esta máquina? Si no es así, ¿cómo puedo configurar algo que permita que esto funcione (una solución de solo host está bien ya que es solo para pruebas)? De lo contrario, ¿qué debería hacer para vincularme correctamente a esta dirección?
Respuesta1
fe80::/64 es el prefijo de enlace local para toda la LAN Ethernet a la que está conectado eth0. Para darle a su máquina otra dirección en esa red, necesita usar algo como ifconfig
decirle a su pila IPv6 que use esa dirección antes de que pueda decirle telnet
que se vincule a ella.
No recuerdo la ifconfig
sintaxis exacta que se me viene a la cabeza, pero miro los subcomandos add
y alias
en la página de manual.