服务器 频道

OpenBSD高性能防火墙系统配置攻略

四、关注防火墙日志

 pf日志简介

    pf的包日志是由pflogd完成的,它通过监听pflog0接口然后将包以tcpdump二进制格式写入日志文件(一般在/val/log/pflog)。过滤规则定义的日志和log-all关键字所定义的日志都是以这种方式记录的。

    读取日志文件

    由pflogd生成的二进制格式日志文件不能通过文本编辑器读取,必须使用tcpdump来查看日志。
    使用如下格式查看日志信息:
    # tcpdump -n -e -ttt -r /var/log/pflog
    使用tcpdump(8)查看日志文件并不是实时的,若要实时查询日志信息需加上pflog0参数:
    # tcpdump -n -e -ttt -i pflog0

 通过syslog记录日志

    很多情况下需要将防火墙的日志记录以ascii代码格式存储,或者(同时)把这些日志存到远程的日志服务器上。这些可以通过两个小的脚本文件实现,是对openbsd配置文件和syslogd(8),日志守护进程的少许修改。syslogd进程以ascii格式存储日志,同时可以将日志存储到远程日志服务器。 首先我们必须建立一个用户,pflogger,使用 /sbin/nologin shell.最简单的建立用户的方法是使用adduser(8)。

    完成后建立如下两个脚本:
/etc/pflogrotate file=/home/pflogger/pflog5min.$(date " %y%m%d%h%m") kill -alrm $(cat /var/run/pflogd.pid) if [ $(ls -l /var/log/pflog | cut -d " " -f 8) -gt 24 ]; then mv /var/log/pflog $file chown pflogger $file kill -hup $(cat /var/run/pflogd.pid) fi /home/pflogger/pfl2sysl for logfile in /home/pflogger/pflog5min* ; do tcpdump -n -e -ttt -r $logfile | logger -t pf -p local0.info rm $logfile done
    编辑root的cron 任务:
    # crontab -u root -e
    增加如下两行:
# rotate pf log file every 5 minutes 0-59/5 * * * * /bin/sh /etc/pflogrotate
    为用户pflogger建立一个cron任务:
    # crontab -u pflogger -e

    增加如下两行:

    将下行增加到 /etc/syslog.conf:
local0.info /var/log/pflog.txt

    如果需要日志记录到远程日志服务器,增加:
    local0.info @syslogger
    确定主机syslogger已在hosts(5)中定义。
    建立文件 /var/log/pflog.txt 使 syslog 可以向该文件写入日志:
    # touch /var/log/pflog.txt
    重启syslogd使变化生效:
    # kill -hup $(cat /var/run/syslog.pid)
    所有符合标准的包将被写入/var/log/pflog.txt. 如果增加了第二行,这些信息也将被存入远程日志服务器syslogger。
    脚本 /etc/pflogrotate 将执行,然后删除 /var/log/pflog ,因此
rotation of pflog by newsyslog(8) 不再必需可以被禁用。然而, /var/log/pflog.txt 替代 /var/log/pflog and rotation of it 要被启用。   改变 /etc/newsyslog.conf 如下:
#/var/log/pflog 600 3 250 * zb /var/run/pflogd.pid
/var/log/pflog.txt 600 7 * 24
    pf 将日志以ascii格式记录到/var/log/pflog.txt. 如果这样配置 /etc/syslog.conf, 系统将把日志存到远程服务器。存储过程不会马上发生,但是会在符合条件的包出现在文件中前5-6分钟实现。

总结:本文详细介绍利用两台PC机,在0penBSD系统上架设基于Pfsync和Carp的具有故障冗余功能的防火墙,让网络不中断,并且防火墙可以自己切换。

    参考文献:

    有关将 OpenBSD 作为防火墙使用的详细信息,请阅读由 Hoang Q. Tran 提供的这个页面上的相关信息。
网络链接:http://www.muine.org/~hoang/openpf.html
Firewall Failover with pfsync and CARP
网络链接:http://www.countersiege.com/doc/pfsync-carp/
Firewalling with OpenBSD's PF packet filter
网络链接: http://home.nuug.no/~peter/pf/en/long-firewall.html
目前国内关于OpenBSD的书籍比较少,介绍pf防火墙的更是寥寥无几,笔者推荐一本:
THE BOOK OF PF:A No-Nonsense Guide to the OpenBSD Firewall
作者:Peter N.M. Hansteen
December 2007, 184 页
ISBN-13 978-1-59327-165-7


    图 4 THE BOOK OF PF 封面
0
相关文章