偷看你在幹嘛!golang實現, 基於dnsmasq的dns請求擷取

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

源碼地址

什麼是dnsmasq(摘自網路)

Dnsmasq 提供 DNS 緩衝和 DHCP 服務功能。作為網域名稱解析伺服器(DNS),dnsmasq可以通過緩衝 DNS 請求來提高對訪問過的網址的連線速度。作為DHCP 伺服器,dnsmasq 可以為區域網路電腦提供內網ip地址和路由。DNS和DHCP兩個功能可以同時或分別單獨實現。dnsmasq輕量且易配置,適用於個人使用者或少於50台主機的網路。此外它還內建了一個 PXE 伺服器。
更多詳細 https://wiki.archlinux.org/index.php/Dnsmasq_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)

什麼是dnsmasq_admin?

這個東西是針對dnsmasq產生的日誌做篩選,將使用者產生的訪問記錄發送到指定的電腦上, 然後管理員可以審查這些網址,並且可以屏蔽這些網址的訪問。

原理

這就是一個小工具, 實用go完成, 原理是這樣:

  1. dnsmasq 開啟調試日誌,指定一個日誌輸出地址。
  2. 擷取源碼並編譯得到可執行程式。
  3. 在root下執行。將程式指定到日誌, 比如開機運行:/home/gao/dnsmasq_admin /var/log/dnsmasq.log > /var/log/dnsmasq_amdin.log 2>&1 &
  4. 在收到任何使用者的dns訪問記錄時, 這個程式會主動向另外一個啟動了dnsmasq_admin地方發送資料。接受的地方就可以控制服務是否要將這個網域名稱重新導向到127.0.0.1這些停用網域名稱上。

這個程式分兩種模式運行, 一種是分析模式, 一種是監控模式。 可以從http.go 的代碼中看出目的來:

func init() {    http.HandleFunc("/api/send", addNewFetch)   //監控位置用來接收分析模式下發送的訊息。     http.HandleFunc("/api/addHost", addHosts)   //追加hosts到dns伺服器    http.HandleFunc("/", list)          // 查看列表    http.HandleFunc("/ip", listWithIp)  //某個ip的列表    go http.ListenAndServe(":22225", nil) //啟動的連接埠。 }

在監控模式下, 直接存取http://localhost:22225 查看所有使用這個dns伺服器的ip地址

192.168.0.41192.168.0.60

點擊任意一個ip地址, 可以得到這個ip下的使用者所有的dns請求。

192.168.0.60 suggestion.baidu.com Block192.168.0.60 sdup.360.cn Block192.168.0.60 cdndownload.alipay.com Block192.168.0.60 stat.sd.360.cn Block192.168.0.60 tr.p.360.cn Block192.168.0.60 image.baidu.com Block192.168.0.60 t10.baidu.com Block192.168.0.60 fm.dl.126.net Block

部署

然後,怎麼讓人用這個dnsmasq, 你可以將路由器裡面,串連外網的dns伺服器位址選項填寫成你的dnsmasq地址。 然後所有的dhcp使用者會自動使用你的dns服務。

dnsmasq記錄日誌的設定

dnsmasq.conf:

log-querieslog-facility=/var/log/dnsmasq.log

更多關於dnsmasq的資訊:

https://wiki.archlinux.org/index.php/Dnsmasq_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)

如果你想更多的瞭解dnsmasq_admin

貌似你可以從這裡找到我 @ablegao

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.