dcsimg

使用syslog-ng构建安全的日志记录服务器-页面2

 By 卡拉·施罗德
第2页,共2页  |  返回第1页

启用远程日志记录

虽然可以从旧的远程客户端发送日志消息 系统日志,这真的不够用,因为它仅传输UDP数据包。因此,您还需要在所有客户端主机上安装syslog-ng。将这些行添加到 syslog-ng.conf 服务器上的客户端接受来自客户端的远程消息,并将其转储到每个主机的单个文件中:

来源s_remote {tcp(); };
目标d_clients {file(“ / var / log / HOSTS / $ HOST /”); };
日志{源(s_remote);目的地(d_clients); };

这是一个非常简单但实用的客户端主机示例,该示例收集所有本地消息并将其发送到远程服务器:

#sample syslog-ng.conf用于远程客户端
来源s_local {internal(); unix-stream(“ / dev / log”); file(“ / proc / kmsg” log_prefix(“ kernel:”)); };
目标d_loghost {tcp(“ 192.168.1.10”端口(514));};
日志{源(s_local);目的地(日志主机); };

样本syslog-ng.conf

完整的示例配置文件有点长,无法包含在此处,因此您应该看一下syslog-ng安装随附的文件。 Debian用户获得了一个定制文件,该文件复制了 系统日志 建立。让我们将示例合并到服务器的单个文件中,设置远程客户端,然后运行一些测试以查看其工作方式:

#sample syslog-ng.conf用于中央日志记录服务器
选项{

    sync (0);
    log_fifo_size(2048);
    create_dirs (yes);
    group (logs);
    dir_group (logs);
    perm (0640);
    dir_perm (0750);
    };

来源s_local {internal(); unix-stream(“ / dev / log”); file(“ / proc / kmsg” log_prefix(“ kernel:”)); };
目标d_auth {file(“ / var / log / auth.log”); };
过滤器f_auth {设施(auth,authpriv); };

来源s_remote {tcp(); };
目标d_clients {file(“ / var / log / HOSTS / $ HOST”); };

日志{源(s_remote);目的地(d_clients); };
日志{源(s_local);过滤器(f_auth);目的地(d_auth); };

每当您对syslog-ng.conf进行更改时,都必须重新启动它:

#/etc/init.d/syslog-ng重新启动

测试一切

现在,您可以在服务器和客户端上运行一些简单的测试。由于将要记录的唯一本地服务器消息是授权消息,因此可以通过在服务器上打开新的登录会话或运行来测试这些消息。 su 要么 须藤。然后检查 /var/log/auth.log。通过执行任何操作来测试客户端,然后查看是否在以下位置为远程客户端创建了新目录 / var / log / HOSTS.

另一种方法是使用有用和优秀的 记录器 命令:

#记录器“这是一个测试”
#logger -p auth.debug“这是一个测试”

这将在日志文件中创建如下一行:

4月1日16:08:42 localhost.localdomain记录器:这是一个测试

现在我们已经掌握了syslog-ng的基础知识,下周再回来学习如何针对本地和远程日志记录以自己喜欢的方式微调和组织syslog-ng以及如何安全地加密所有syslog-ng网络传输。

资源资源

本文最初于2006年4月5日发布
通过网络更新新闻获取最新消息