
Я не на 100% уверен, что использую правильную терминологию в названии, поэтому, если кто-то знает лучше меня, пожалуйста, исправьте ее.
Я пытаюсь воспроизвести вредоносный скрипт, который я видел в дикой природе, чтобы протестировать свои варианты реагирования на него. Он привязывается к куче IP-адресов на IPv6 /64 и затем используется для затопления IRC с сотен или тысяч различных IP-адресов. Тот факт, что он может привязываться к различным адресам, позволяет ему обходить некоторые автоматические ограничения по именам хостов и вызывать проблемы, несмотря на существующие меры.
В принципе, проблема, которую я пытаюсь решить, сводится к следующему. Я использую тестовую машину под управлением 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
Моя сеть настроена следующим образом:
$ 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)
Строка inet6
листинга eth0 указывает мне, что весь /64, на котором находится указанный адрес, выделен как link-local для этой машины, но я не уверен на 100%, что это правда. В любом случае, следующая команда, которую я использую для проверки подключения, не работает так, как я ожидал:
$ telnet -6 -b fe80::1234:1234:1234:1234%eth0 fe80::218:f8ff:fe0d:c0d5%eth0 6667
telnet: bind: Cannot assign requested address
Я не прав, предполагая, что весь /64 выделен этой одной машине? Если это не так, как мне настроить что-то, что позволит этому работать (решение Host-only подойдет, так как это только для тестирования)? В противном случае, что мне следует сделать вместо этого, чтобы правильно привязаться к этому адресу?
решение1
fe80::/64 — это префикс локальной связи для всей локальной сети Ethernet, к которой подключен eth0. Чтобы дать вашей машине другой адрес в этой сети, вам нужно использовать что-то вроде того, ifconfig
чтобы указать вашему стеку IPv6 использовать этот адрес, прежде чем вы сможете telnet
привязаться к нему.
Я не помню точный ifconfig
синтаксис наизусть, но посмотрите на подкоманды add
и alias
на странице руководства.