服务器 频道

使用Stunnel保护syslog-ng服务器(图)

三、 建立证书系统

1. 创建pem文件

    在RedHat系统上,只须执行以下命令就可以为机器生成主机身份证书:
#cd/usr/share/ssl/certs #makesyslog-ng-server.pem #makesyslog-ng-client.pem
2. 把主机身份证书复制到/etc/stunnel子目录

    服务器主机和客户主机对主机身份证书有不同的要求。客户主机只需要syslog-ng-server.pem文件中的公共密钥部分。先从syslog-ng-server.pem文件里去掉私用密钥部分,然后把syslog-ng-server.pem文件复制到每一台客户主机的/etc/stunnel子目录下。主机身份证书文件里的私用密钥部分很容易识别,它以下面这行文本开始:
-----BEGINRSAPRIVATEKEY-----
以下面这行文本结束:
-----ENDRSAPRIVATEKEY-----
    在服务器上,把整个文件复制到/etc/stunnel子目录里。类似地,把客户主机的syslog-ng-client.pem文件放到它自己的etc/stunnel子目录里。在服务器上,创建一个特殊的syslog-ng-client.pem文件来包含所有客户主机身份证书的公共密钥部分。具体做法是:先把所有客户主机的syslog-ng-client.pem文件的私用密钥部分去掉,再把剩下的内容合并到一个文件里,创建出来的文件就是服务器的特殊syslog-ng-client.pem文件。

3. 检查主机身份证书的权限

    把服务器证书的所有者设置为根用户(root)且只允许根用户读和写。以下命令将确保完成:
chownroot:rootsyslog-ng-server.pem chownroot:rootsyslog-ng-client.pem chmod700syslog-ng-server.pem chmod700syslog-ng-client.pem
4. 在服务器主机上创建stunnel配置文件

    下面这份代码清单是stunnel程序的一种服务器配置,它们保存在文件
/etc/stunnel/stunnel.conf里: cert=/etc/stunnel/syslog-ng-server.pem CAfile=/etc/stunnel/syslog-ng-client.pem [5140] accept=serverIPaddress:5140 connect=127.0.0.1:514
5. 在客户主机上创建stunnel配置文件

    下面这份代码清单是stunnel程序的一种客户配置,它们保存在文件/etc/stunnel/stunnel.conf里:
client=yes cert=/etc/stunnel/syslog-ng-client.pem CAfile=/etc/stunnel/syslog-ng-server.pem verify=3 [5140] accept=127.0.0.1:514 connect=serverIPaddress:5140
6. 在服务器主机上创建syslog-ng配置文件

    下面这份代码清单是syslog-ng程序的一种服务器配置,它们保存在文件/etc/syslog-ng.conf里:

options { long_hostnames(off); sync(0); keep_hostname(yes); chain_hostnames(no); }; source src {unix-stream("/dev/log"); pipe("/proc/kmsg"); internal();}; source stunnel {tcp(ip("127.0.0.1") port(514) max-connections(1));}; destination remoteclient {file("/var/log/remoteclient");}; destination dest {file("/var/log/messages");}; log {source(src); destination(dest);}; log {source(stunnel); destination(remoteclient);};
7. 在客户机器上创建syslog-ng配置文件

    下面这份代码清单是syslog-ng程序的一种客户配置,它们保存在文件/etc/syslog-ng.conf里:
options {long_hostnames(off); sync(0);}; source src {unix-stream("/dev/log"); pipe("/proc/kmsg"); internal();}; destination dest {file("/var/log/messages");}; destination stunnel {tcp("127.0.0.1" port(514));}; log {source(src);destination(dest);}; log {source(src);destination(stunnel);};
8. 启动stunnel和syslog-ng

    以手动方式启动stunnel和syslog-ng需要依次执行以下两条命令:
#stunnel #syslog-ng-f/etc/syslog-ng.conf
9. 在服务器上监控日志活动

    命令“tail-ffilename”是监控日志文件活动的一个好办法。请大家登录进入中央日志服务器并实时观察日志文件的记录活动。要创建活动以供监控,可以在一台客户主机上敲入“su-”,然后连续按几次回车键以模拟非法口令字。
    #tail-f/var/log/remoteclient
    如果看到的是类似下面的内容,就说明日志集中管理机制工作正常:
    Apr112:34:56chimsu(pam_unix)[8451]:authenticationfailure;
    logname=rreckuid=2112euid=0tty=ruser=rreckrhost=user=root

10. 使用logger命令直接向syslog守护进程发送消息

    有时候,可能需要直接把某些事件发送给syslog守护进程,简单易用的logger命令可以完成这一任务。比如,如果想让系统在每当有人登录时就把当前负载或当前登录用户人数记录到日志里,只须在/etc/bashrc文件里添加一行如下代码就可以收集到这些信息:
logger-pinfo"user$USERstartingashellat'w|head-1'" 这条命令将在/var/log/messages文件里写下如下日志记录项: Apr106:34:46chimrreck:userrreckstartingashellat06:34:46up 53min,3users,loadaverage:0.06,0.03,0:
0
相关文章