File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -612,7 +612,65 @@ ForwardToSyslog=yes
612612
613613 详情可参考 [Debian bug #1100729](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1100729)。
614614
615+ 以下介绍使用 rsyslog TLS 加密传输日志的相关设置,下面给出的例子中服务端有证书,客户端没有(客户端会校验服务端,但是服务端不会校验客户端),在需要高安全性的场合下,建议为客户端也生成证书。生成 CA 证书与服务端(接收端)证书的部分可参考 [ nginx 一章中我们的相关介绍] ( ./network-service/nginx.md#getting-certificates ) 。
616+
617+ TLS 传输日志一般使用 TCP 6514 端口(传统非加密的 syslog 传输使用 TCP 或 UDP 的 514 端口)。两端都需要运行 rsyslog。这里使用 GnuTLS 模块(需要安装 ` rsyslog-gnutls ` 包)。
618+
619+ 服务端:
620+
621+ ``` conf title="/etc/rsyslog.d/server.conf"
622+ global(
623+ DefaultNetstreamDriver="gtls"
624+ DefaultNetstreamDriverCAFile="/path/to/ca.crt"
625+ DefaultNetstreamDriverCertFile="/path/to/server.crt"
626+ DefaultNetstreamDriverKeyFile="/path/to/server.key"
627+ )
628+
629+ module(
630+ load="imtcp"
631+ StreamDriver.Name="gtls"
632+ StreamDriver.Mode="1"
633+ # anon -- 不校验客户端
634+ StreamDriver.Authmode="anon"
635+ )
636+
637+ input(
638+ type="imtcp"
639+ port="6514"
640+ )
641+
642+ # 设置按照主机名分开的模板
643+ template(name="PerHost" type="string"
644+ string="/var/log/remote/%hostname%.log"
645+ )
646+
647+ if ($inputname == "imtcp") then {
648+ action(
649+ type="omfile"
650+ dynaFile="PerHost"
651+ )
652+ # 防止远程日志再被写入本地默认的日志文件
653+ stop
654+ }
655+ ```
615656
657+ 客户端:
658+
659+ ``` conf
660+ global(DefaultNetstreamDriverCAFile="/path/to/ca.crt")
661+
662+ action(
663+ type="omfwd"
664+ protocol="tcp"
665+ target="logserver.example.com" # 或者 IP 地址
666+ port="6514"
667+ StreamDriver="gtls"
668+ StreamDriverMode="1"
669+ # 验证远程证书的名称
670+ StreamDriverAuthMode="x509/name"
671+ StreamDriverPermittedPeers="logserver.example.com"
672+ )
673+ ```
616674
617675## 登录管理器 {#logind}
618676
You can’t perform that action at this time.
0 commit comments