Bind
我們如何讓 Squid 進行反向 nslookup?
我們都知道該
access.log
文件記錄了 Squid 的訪問資訊:1286536351.746 41762 192.168.1.17 TCP_MISS/200 5340945 GET http://v15.lscache3.c.youtube.com/videoplayback? - DIRECT/122.160.120.150 video/x-flv 1286536351.746 41762 192.168.1.18 TCP_MISS/200 5340945 GET http://v15.lscache3.c.youtube.com/videoplayback? - DIRECT/122.160.120.150 video/x-flv
我們也知道 Squid 使用文件
/etc/resolv.conf
來確定它正在處理的 DNS 伺服器,所以如果我們想讓 Squid 處理本地 DNS 伺服器,我們在文件中輸入本地 DNS 伺服器/etc/resolv.conf
。如果本地 DNS 伺服器有這樣的記錄(在其反向區域 (1.168.192.in-addr.arpa) 中)怎麼辦:
$TTL 60 ; 1 minute 17 PTR Mark. 18 PTR Mike.
我可以配置 Squid 進行反向查找(詢問日誌文件中 IP 地址的名稱)並將名稱添加到
access.log
記錄中,例如:我想做這個記錄:
1286536351.746 41762 192.168.1.17 ......
變成這樣:
1286536351.746 41762 192.168.1.17 Mark ......
我怎樣才能做到這一點?
我可以使用 Squid 日誌格式,如
%>a
和%>A
來獲得我想要的嗎?
一種方法是在
squid.conf
文件中使用此指令來獲取日誌文件以顯示 FQDN 而不是 IP:log_fqdn on
來源:http ://www.squid-cache.org/Doc/config/log_fqdn/
但這將省略
<IP> <Name>
您在問題中顯示的格式。為此,如果您查看logformat
指令的文件,則會列出以下預設格式:logformat squid %ts.%03tu %6tr %>a %Ss/%03>Hs %<st %rm %ru %[un %Sh/%<a %mt logformat common %>a %[ui %[un [%tl] "%rm %ru HTTP/%rv" %>Hs %<st %Ss:%Sh logformat combined %>a %[ui %[un [%tl] "%rm %ru HTTP/%rv" %>Hs %<st "%{Referer}>h" "%{User-Agent}>h" %Ss:%Sh logformat referrer %ts.%03tu %>a %{Referer}>h %ru logformat useragent %>a [%tl] "%{User-Agent}>h"
這些選項被列為參數,您可以在建構自己的格式時使用:
>a Client source IP address >A Client FQDN
因此,我希望您可以將這些放在一起以獲得您所詢問的格式。
參考