Bind

我們如何讓 Squid 進行反向 nslookup?

  • August 11, 2014

我們都知道該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

因此,我希望您可以將這些放在一起以獲得您所詢問的格式。

參考

引用自:https://unix.stackexchange.com/questions/134132