Internal-Dns

調製解調器拒絕登錄憑據 如果我嘗試通過 http://modem/ 連接。如果我與 http://<ipaddr>/ 連接,則工作正常

  • March 5, 2015

這是一個真正的蟲子:)

我的調製解調器是中興 ZXHN H108L,連接到 linux 防火牆/路由器/網關。網關是一個 Slackware 14.0 系統,在其上執行 DNS、DHCP、VPN 和透明代理。網關有 2 個硬體 NIC。eth1連接到調製解調器(192.168.231.117),並eth0連接到內網(192.168.112.0/24)。

我使用 dns 為幾個 Intranet 和 vpnnet 主機命名。調製解調器有一個方便的名稱“modem.skails.office”(或者如果我坐在這個 Intranet 上的 PC 中,則只是“調製解調器”)。來自/var/named/skails.office.hosts

modem                   A       192.168.231.117

nslookup從 Intranet 的所有 pc 正確解析調製解調器地址。

root@stargaze:~# nslookup modem
Server:     127.0.0.1
Address:    127.0.0.1#53

Name:   modem.skails.office
Address: 192.168.231.117

root@stargaze:~# nslookup modem.skails.office
Server:     127.0.0.1
Address:    127.0.0.1#53

Name:   modem.skails.office
Address: 192.168.231.117

因此,當我嘗試從網關的瀏覽器(firefox)訪問調製解調器時,我輸入http://192.168.231.117/. 我提供了憑據,並且可以正常登錄。

http://modem/如果我嘗試通過發出地址或來做同樣的事情http://modem.skails.office/,我仍然會看到登錄視窗,但它不會接受我的憑據。我真的不知道這裡可能是什麼問題。

我曾經tcpdump -i eth1 host modem and port 80記錄一次成功和不成功的登錄嘗試並獲取狀態頁面。

  1. 成功的 tcpdump wget --user admin --password 1234 "http://192.168.231.117/status/status_deviceinfo.htm" -O -

連接到 192.168.231.117:80… 已連接。

已發送 HTTP 請求,等待響應… 401 Unauthorized

Reusing existing connection to 192.168.231.117:80。

HTTP 請求已發送,等待響應… 200 OK

長度:未指定

$$ text/html $$

  1. 不成功的 tcpdump wget --user admin --password 1234 "http://modem/status/status_deviceinfo.htm" -O -

正在解析調製解調器 (modem)… 192.168.231.117 正在

連接到調製解調器 (modem)|192.168.231.117|:80… 已連接。

HTTP 請求已發送,等待響應… 401 Unauthorized

Reusing existing connection to modem:80

已發送 HTTP 請求,等待響應… 401 未

授權授權失敗。

你能從中得到什麼嗎?您是否需要我可能沒有想到的任何其他數據?我該如何進一步調查此事?

調製解調器的 Web 伺服器並非旨在處理HostHTTP 標頭中的 IP 以外的其他內容,因此您會獲得未定義的行為,在這種情況下,這意味著當您在該Host標頭中發送其 IP 以外的內容時身份驗證失敗。

通常,除非您使用虛擬主機(它允許在指向同一 IP 的多個域下託管多個站點,並使用該Host標頭來判斷請求了哪個站點),否則您應該完全忽略該標頭,該標頭的開發人員韌體顯然沒有做。如果他們實際上(不必要地)使用虛擬主機,我不會感到驚訝,這就是為什麼只有Host設置為路由器 IP 的特定標頭允許您進行身份驗證,因為其他所有內容都與該虛擬主機不匹配。

該名稱與它沒有任何關係,只是 curl/wget 根據該 DNS 名稱自動設置正確的主機標頭。如果您可以刪除或覆蓋該標頭並將其設置回調製解調器的 IP,那麼它將正常工作(用於wget --header="Host:" ...刪除標頭)。

引用自:https://serverfault.com/questions/671908