
我不能 100% 確定我在標題中使用了正確的術語,所以如果有人比我更了解,請修改它。
我正在嘗試複製我在野外看到的惡意腳本,以測試我的回應選項。它綁定到 IPv6 /64 上的一堆 IP 位址,然後用於從數百或數千個不同的 IP 位址淹沒 IRC。事實上,它能夠綁定到不同的位址,這使得它能夠繞過一些自動的每主機名稱限制,並造成麻煩,儘管現有的措施已經到位。
基本上,我要解決的問題可以歸結為這一點。我正在使用運行 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)
eth0 列表行inet6
向我表明,所列地址所在的整個 /64 已分配為該計算機的本地鏈接,但我不能 100% 確定這是真的。無論如何,我用來測試連接的以下命令無法按我的預期工作:
$ telnet -6 -b fe80::1234:1234:1234:1234%eth0 fe80::218:f8ff:fe0d:c0d5%eth0 6667
telnet: bind: Cannot assign requested address
我假設整個 /64 都分配給這台機器是錯誤的嗎?如果不是,我該如何配置才能使其正常工作(僅主機解決方案就可以,因為這僅用於測試)?否則,我應該做什麼才能正確綁定到該位址?
答案1
fe80::/64 是 eth0 連接到的整個乙太網路 LAN 的連結本地前綴。要為您的電腦提供該網路上的另一個位址,您需要使用類似的方法ifconfig
來告訴您的 IPv6 堆疊使用該位址,然後才能告訴telnet
它綁定到它。
我不記得確切的ifconfig
語法,但請查看手冊頁中的add
和子命令。alias