我们怎样才能让 Squid 进行反向 nslookup 呢?

我们怎样才能让 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 ......

我怎样才能达到这个目标?

我可以使用像%>a和一样的 Squid 日志格式%>A来得到我想要的吗?

答案1

一种方法是在文件中使用此指令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

所以我希望您可以将其组合在一起以获得您所询问的格式。

参考

相关内容