国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 操作系統(tǒng) > 正文

使用Dhcpstarv解決DHCP服務(wù)器沖突問(wèn)題

2024-06-28 13:28:24
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
使用Dhcpstarv解決DHCP服務(wù)器沖突問(wèn)題

場(chǎng)景:

內(nèi)網(wǎng)環(huán)境需要開(kāi)啟多個(gè)DHCP服務(wù)器,分別給不同的設(shè)備進(jìn)行PXE安裝。

存在的問(wèn)題:

多個(gè)DHCP的情況下,設(shè)備在啟動(dòng)時(shí)隨機(jī)從一個(gè)DHCP服務(wù)器獲取ip(哪個(gè)DHCP服務(wù)器先響應(yīng)就從哪個(gè)獲取)并從那個(gè)服務(wù)器讀取配置進(jìn)行引導(dǎo)安裝。

如果提供IP的DHCP服務(wù)器不是期望的那個(gè),就無(wú)法得到正確的配置文件,也就無(wú)法進(jìn)行正常引導(dǎo)安裝。

初步解決方法:

DHCP服務(wù)提供配置可以對(duì)響應(yīng)進(jìn)行限制,僅給某些設(shè)備(設(shè)備的MAC)分配IP,對(duì)其它設(shè)備的請(qǐng)求則不予響應(yīng)。

/etc/dhcpd.conf配置大致如下:

subnet 128.128.0.0 netmask 255.255.0.0 {

......

filename "pxelinux.0";

}

deny unknown-clients;

host <hostname1> { hardware ethernet <XX:XX:XX:XX:XX:XX>;}

host <hostname2> { hardware ethernet <XX:XX:XX:XX:XX:YY>;}

這樣配置以后,DHCP服務(wù)器僅會(huì)對(duì)<XX:XX:XX:XX:XX:XX> <XX:XX:XX:XX:XX:YY>這些MAC進(jìn)行響應(yīng)。

依然存在的問(wèn)題:

如果每個(gè)DHCP服務(wù)器都做了限制,僅給指定MAC分配IP,并且沒(méi)有兩個(gè)DHCP服務(wù)器同時(shí)配置了同一MAC,那么每個(gè)MAC能夠得到響應(yīng)的DHCP服務(wù)器就是唯一確定的。

但不可避免,有些DHCP服務(wù)器并沒(méi)有或者忘記設(shè)置,依然導(dǎo)致DHCP響應(yīng)泛濫,設(shè)備還是可能從不期望的DHCP服務(wù)器獲取響應(yīng)。

進(jìn)一步的解決方法:

要求每個(gè)使用的DHCP服務(wù)器在/etc/dhcpd.conf指定具體的MAC。對(duì)于那些泛濫響應(yīng)的DHCP服務(wù)器,使用Dhcpstarv將其提供的IP(DHCP 響應(yīng))消耗掉。Dhcpstarv的執(zhí)行方式就是不斷偽造一些MAC地址進(jìn)行DHCP請(qǐng)求,把DHCP服務(wù)器能夠響應(yīng)的IP地址都消耗掉。

具體操作:

當(dāng)你想啟動(dòng)DHCP服務(wù),給某臺(tái)設(shè)備進(jìn)行PXE安裝,但是發(fā)現(xiàn)同一網(wǎng)絡(luò)中還存在另一個(gè)DHCP服務(wù)器也在提供DHCP服務(wù),那么就可以使用Dhcpstarv了。

命令使用(ethX就是連接到要消耗的網(wǎng)絡(luò)的網(wǎng)卡,不要指定錯(cuò)了):

# ./dhcpstarv -v -i ethX

類似下面的輸出就說(shuō)明dhcpstarv正在消耗DHCP響應(yīng)

14:54:20 01/10/14: got address 128.128.18.199 for 00:16:36:4c:d7:48 from 128.128.18.5

14:54:20 01/10/14: got address 128.128.18.200 for 00:16:36:06:98:de from 128.128.18.5

等不再有類似的輸出結(jié)果,說(shuō)明DHCP的響應(yīng)被消耗差不多了。讓dhcpstarv程序繼續(xù)運(yùn)行,啟動(dòng)你自己的DHCP服務(wù)器。

恢復(fù)方法:

如果DHCP服務(wù)器未進(jìn)行限制MAC配置,不幸被Dhcpstarv消耗完,可以通過(guò)以下方法恢復(fù)“被攻擊”DHCP服務(wù)器:

1. 修改配置文件/etc/dhcpd.conf,增加限制MAC的配置:

deny unknown-clients;

host <hostname1> { hardware ethernet <XX:XX:XX:XX:XX:XX>;}

host <hostname2> { hardware ethernet <XX:XX:XX:XX:XX:YY>;}

2. 刪除文件 /var/lib/dhcp/db/dhcpd.leases

3. 重啟DHCP服務(wù)

如何定位攻擊來(lái)源:

Dhcpstarv在發(fā)送的DHCP請(qǐng)求包中偽造隨機(jī)的源MAC,其偽造方式是:固定前3個(gè)字節(jié)硬件設(shè)備“制造商”為“001636”,后3個(gè)字節(jié)隨機(jī)生成。源代碼位置:

dhcpstarv-0.2.1/src/main.c:130行

unsigned char vendor_mac_PRefix[] = { 0x00, 0x16, 0x36 };

但是,以太網(wǎng)幀的源MAC還是發(fā)送數(shù)據(jù)幀的網(wǎng)卡的真實(shí)MAC,因此為了定位Dhcpstarv偽造的DHCP請(qǐng)求包的來(lái)源,可以通過(guò)抓包,根據(jù)以太網(wǎng)幀中的源MAC確定Dhcpstarv的位置。

DHCP請(qǐng)求包是封裝在UDP數(shù)據(jù)報(bào),UDP數(shù)據(jù)報(bào)偏移36字節(jié)的位置即是DHCP請(qǐng)求包的源MAC,過(guò)濾UDP數(shù)據(jù)報(bào)的前3個(gè)字節(jié)為“001636”,就可以得到Dhcpstarv偽造的DHCP請(qǐng)求包。命令如下:

# tcpdump -i bond0 -ne src port 68 and udp[36:2]=0x0016 and udp[38]=0x36

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on bond0, link-type EN10MB (Ethernet), capture size 96 bytes

13:51:31.254469 00:18:82:b0:7e:22 > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 286: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:16:36:81:30:15, length 244

13:51:32.000714 00:18:82:b0:7e:22 > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 304: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:16:36:81:30:15, length 262


上一篇:zmodem使用方法

下一篇:線程之線程終止

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 孝义市| 石棉县| 灯塔市| 弥渡县| 长兴县| 葵青区| 吴江市| 扶沟县| 滨州市| 台安县| 梨树县| 舒城县| 洛浦县| 全南县| 武强县| 镇雄县| 涿州市| 长汀县| 湘潭县| 栾城县| 张家界市| 卢氏县| 建昌县| 德安县| 漳平市| 漳州市| 天镇县| 巧家县| 上高县| 健康| 彭水| 尼木县| 海盐县| 文昌市| 根河市| 永丰县| 宝清县| 湖南省| 义乌市| 邢台县| 清镇市|