本文向大家介绍如何设定一个无ip的log服务器.
这里的 level 请自行更改到您所跑的 runlevel,您可以用 cat /etc/inittab | grep id 来看自己在哪个runlevel 上面.
cat /etc/inittab | grep id
id:5:initdefault:
|
这里就是说跑在 run level 5 上面.
设定服务器 我们需要对服务器做一些设定,让服务器把 log 送到我们的 logger 服务器去. 首先,我们需要设定 /etc/syslog.conf 把 log 送到一个有效的,但是不存在的 ip 下面.例如我们的网路是 192.168.1.0/24 其中并没有 192.168.1.123 这台机器,也就是说这个 ip 实际上是空的.我们就把 log 指向这里.您可以指向任意一个空的有效 ip.
vim /etc/syslog.conf
加入
*.info @192.168.1.123
如果您的系统是用 syslog-ng 的话
vim /etc/syslog-ng/syslog-ng.conf
destination d_loghost { udp(ip(192.168.123)
port (514)); };
filter f_info { level(info); };
log {filter(f_info); destination(d_loghost);};
|
我们还需要加入 static ARP entry 才可以. 如果您的网路只是接了记个 Hub 而已, 那么 ARP 地址一样可以好象 ip 一样,设定成虚构的. 如果您有连结 switch, 您需要加入 log 服务器的真实 MAC 地址.
我们这里加入我们 logger 服务器的真实 MAC 地址就可以了.
arp -s 192.168.1.123 00:D0:B7:DB:BF:95
在 Logger 服务器设定 snort
/etc/snort/snort.conf
var EXTERNAL_NET any
#等于 snort -d
config dump_payload
#等于 snort -C
config dump_chars_only
#设定 log 存放的 path
config logdir: /var/log/snort
# frag2 所做的动作就是把 fragmented 给我们 re-assembly
preprocessor frag2
log udp 192.168.1.1/32 any -> 192.168.1.123/32 514
(logto: "logged-packets";)
|
最后一行需要稍微解释一下:
我们这里把 snort 来做 packet logger. 也就是说,并不是把所有的东西都写入到 /var/log/snort/alert 中.而是 log any packets with match the rule without writing an alert.
udp: 是说,我们这里用 udp 的 protocol. system log 通常都是使用 udp 的.
192.168.1.1/32: 就是只我们的服务器啦,也就是送 log 的机器. 如果您是从整个一个网路段中收 log 也可以用 192.168.1.0/24.
any: any source port 任何 port
->: 这个是 direction operator 大家都知道的
192.168.1.123/35 514 就是我们给出的那个空 ip 啦, port 514
如果没有指定 logto: 的话, log 会分别保存在不同的文件中. 而指定 logto 的话,就会把 log 全部存放到我们指定的文件中,看起来方便多了.
更安全的保存 log 就可以更安全的保护服务器. snort 的功能实际上非常的强大, 这里只是一个简单的介绍而已.如果您对这些东西有兴趣.可以去
www.snort.org/docs/ 下面看到非常多的有用的文件.