使用Stunnel保护syslog-ng服务器(图)
三、 建立证书系统
1. 创建pem文件
在RedHat系统上,只须执行以下命令就可以为机器生成主机身份证书:
服务器主机和客户主机对主机身份证书有不同的要求。客户主机只需要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)且只允许根用户读和写。以下命令将确保完成:
下面这份代码清单是stunnel程序的一种服务器配置,它们保存在文件
下面这份代码清单是stunnel程序的一种客户配置,它们保存在文件/etc/stunnel/stunnel.conf里:
下面这份代码清单是syslog-ng程序的一种服务器配置,它们保存在文件/etc/syslog-ng.conf里:
下面这份代码清单是syslog-ng程序的一种客户配置,它们保存在文件/etc/syslog-ng.conf里:
以手动方式启动stunnel和syslog-ng需要依次执行以下两条命令:
命令“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文件里添加一行如下代码就可以收集到这些信息:
1. 创建pem文件
在RedHat系统上,只须执行以下命令就可以为机器生成主机身份证书:
2. 把主机身份证书复制到/etc/stunnel子目录#cd/usr/share/ssl/certs
#makesyslog-ng-server.pem
#makesyslog-ng-client.pem
服务器主机和客户主机对主机身份证书有不同的要求。客户主机只需要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)且只允许根用户读和写。以下命令将确保完成:
4. 在服务器主机上创建stunnel配置文件chownroot:rootsyslog-ng-server.pem
chownroot:rootsyslog-ng-client.pem
chmod700syslog-ng-server.pem
chmod700syslog-ng-client.pem
下面这份代码清单是stunnel程序的一种服务器配置,它们保存在文件
5. 在客户主机上创建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
下面这份代码清单是stunnel程序的一种客户配置,它们保存在文件/etc/stunnel/stunnel.conf里:
6. 在服务器主机上创建syslog-ng配置文件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
下面这份代码清单是syslog-ng程序的一种服务器配置,它们保存在文件/etc/syslog-ng.conf里:
7. 在客户机器上创建syslog-ng配置文件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);};
下面这份代码清单是syslog-ng程序的一种客户配置,它们保存在文件/etc/syslog-ng.conf里:
8. 启动stunnel和syslog-ngoptions ...{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);};
以手动方式启动stunnel和syslog-ng需要依次执行以下两条命令:
9. 在服务器上监控日志活动#stunnel
#syslog-ng-f/etc/syslog-ng.conf
命令“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
相关文章
