CentOS搭建syslog-ng服務器并啟用加密傳輸

操作步驟

Server端配置syslog-ng

  1. 安裝syslog-ng
    sudo yum install epel-release -y && sudo yum install syslog-ng -y
  2. 配置syslog-ng
    在syslog-ng的配置文件中,有5種不同的項目,每個項目以1個特殊關鍵詞開頭:
  • options
    • 用來調(diào)節(jié)syslog-ng的守護進程。
  • source
    • 告知syslog-ng從什么地方收集日志。source內(nèi)容可以包括Unix套接字、TCP或UDP套接字、文件或管道。
  • destination
    • 用來決定syslog-ng將向哪些地方發(fā)送日志,可以指定為文件、管道、Unix套接字、TCP或UDP套接字、TTY或程序等。
  • filter
    • 結合source、destination和filter使用,選擇syslog程序和日志級別。
  • log
    • 將以上關鍵字和log結合使用,可以精確定義消息日志保存的地方。
cd /etc/syslog-ng && sudo cp syslog-ng.conf syslog-ng.conf.old
sudo vi syslog-ng.conf
# add
# add a log source
source s_remote {
    tcp(ip("192.168.0.104") port(20514) max-connections(500));
};
# collect log from remote host
destination d_remote {
    # write log file to hostname path,log file named by y.m.d.log
    file("var/log/syslog-ng/${HOST}/${YEAR}.${MONTH}.${DAY}.log" perm(0644));
};
# add to log
log [
    source(s_remote); 
    destination(d_remote);
};
  1. 修改日志路徑的SELinux策略
    semanage fcontext -a -t syslog-ng "/var/log/syslog-ng(/.*)?" && restorecon /var/log/syslog-ng
  2. 添加防火墻
    firewall-cmd --zone=public --add-rich-rule='rule family=ipv4 source address=192.168.0.1/24 port port=20514 protocol=tcp accept' --permanent
  3. 啟動服務
    sudo systemctl start syslog-n
  4. 如果啟動失敗
    使用命令/usr/sbin/syslog-ng -F -p /var/run/syslogd.pid 查看具體的錯誤提示

Agent端配置syslog-ng

  1. 安裝
    sudo yum install epel-release -y && sudo yum install syslog-ng -y

  2. 修改配置文件

cd /etc/syslog-ng/ && sudo cp syslog-ng.conf syslog-ng.conf.old
sudo vi syslog-ng.conf
# add
# add a log source
source s_net {
    # tell syslog-ng read log from /dev/log;/dev/log link to /var/run/log
    unix-dgram("/dev/log");
    # if use systemctl start syslog-ng start faild,use this
    # unit-stream("/dev/log");
    # create message by internal
    internal();
};
# send log to remote syslog server
destination d_net {
    tcp("192.168.0.104" port(20514) max-connections(10));
};
# add to log
log [
    source(s_net); 
    destination(d_net);
};
  1. 啟動服務
    sudo systemctl start syslog-ng

配置加密服務

為保證日志傳輸?shù)陌踩?,為syslog-ng日志的傳遞設置加密服務。
使用服務器生成的公鑰,對client端傳送的日志文件進行加密,所有client端使用相同的公鑰進行加密。

  1. 在server端生成加密證書和私鑰
# cert dir
cd /etc/syslog-ng && sudo mkdir cert && cd cert
sudo openssl -x509 -nodes -days 365 -newkey rsa:2048 -outkey syslog_pri.key -out syslog_pub.crt
  1. 配置server的syslog-ng.conf文件
# destination在tcp或udp條目中添加
tcp(ip("192.168.0.104") port(20514) tlc(key-file("/etc/syslog-ng/cert/syslog_pri.key") cert-file("/etc/syslog-ng/cert/syslog_pub.crt") peer-verify(optional-untrusted)));
  1. 將公鑰分別復制到client端的 /etc/syslog-ng/cert 目錄中,并生成哈希名的鏈接
    openssl -x509 -noout -hash -in syslog_pub.crt && ln -s syslog_pub.crt xxxx.0
  2. 配置client端的syslog-ng.conf文件
tcp("192.168.0.104" port(20514) tlc(ca-dir("/etc/syslog-ng/cert")));
  1. 配置完成后,對server和client分別重啟syslog-ng服務
    sudo systemctl restart syslog-ng

注意

如果系統(tǒng)開啟了SELinux,在使用tcp或udp進行日志傳輸時,選擇端口時要注意SELinux中對syslog-ng端口的設定,如果使用自定的端口,還需要將端口加入到SELinux中。

semanage_sshd_port

semanage port -a -t syslogd_port_t -p tcp 30514

原文地址:CentOS搭建syslog-ng服務器并啟用加密傳輸

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容