1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

rsyslogで複数マシンのログをリモートサーバに保存する

Posted at

rsyslogでリモートロギング

複数のLinuxマシンのログをまとめて保管しておきたい場合に、rsyslogを用いることで追加のミドルウェア導入なしにログの一元管理が可能になることを確認する。

環境

CentOS 8 * 2(rsyslog clientとrsyslog server)
rsyslog: OSインストール時に標準でインストール済み

概略図

rsyslog_architecture.png

rsyslogの動作確認

rsyslogが動作していることを確認(Activeの項目がactiveになっている)

[root@base ~]# systemctl status rsyslog
● rsyslog.service - System Logging Service
   Loaded: loaded (/usr/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2020-04-30 22:53:07 KST; 2min 54s ago

rsyslogが動作していればjournalctlコマンドでログが確認できる

journalctl --no-pager

rsyslogの設定(rsyslogサーバ側 (ログ受信側))

rsyslogの設定ファイルを開きいくつか修正を加える

vi /etc/rsyslog.conf

TCPプロトコルで514ポートからログの入力を受け付ける設定が、コメントで記載されているのでコメントを外す

# Provides TCP syslog reception
# for parameters see http://www.rsyslog.com/doc/imtcp.html
module(load="imtcp") # needs to be done just once
input(type="imtcp" port="514"

接続元のCIDRを下記のように指定

AllowedSender TCP, 127.0.0.1, 192.168.1.0/24,10.240.0.0/24

設定を反映

systemctl restart rsyslog

nmapを用いて514ポートが空いたことを確認する

[root@base ~]# nmap localhost
PORT     STATE SERVICE
~略
514/tcp  open  shell

もちろんssやnetstatで確認してもいい

他サーバからリモートで確認することもあるため、nmapを利用している

[root@base ~]# ss -ln4 | grep 514
tcp   LISTEN  0       25                   0.0.0.0:514            0.0.0.0:*     

rsyslogの設定(rsyslogクライアント側 (ログ送信側))

rsyslogの設定ファイルを編集する

vi /etc/rsyslog.conf

試しにauthprivファシリティ関連のログを、rsyslogサーバに送付するよう編集する

もともと/var/log/secureに出力しているログが、rsyslogに送信されることになる(sshのログとか)

ここで、rsyslogサーバのIPは10.240.0.1としている

authpriv.*                                              @@10.240.0.1:514

設定を反映させる

systemctl restart rsyslog

サーバ側でログを確認

tailコマンドなどで、サーバ側の/var/log/secureに出力されるログを監視してみます

[root@base ~]# tail -f /var/log/secure

クライアント側にて、authpriv関連の適当なコマンドを叩いてみます

とりあえず架空のユーザでsshアクセスを試行し、authpriv関連ログを出力させます。

[root@controller-0 ~]# ssh testuser@localhost
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

サーバ側のterminalに戻り、ログが下記のように出力されていれば成功です

[root@base ~]# tail -f /var/log/secure
Apr 30 05:22:28 controller-0 sshd[5859]: Invalid user testuser from ::1 port 44604
Apr 30 05:22:28 controller-0 sshd[5859]: input_userauth_request: invalid user testuser [preauth]
Apr 30 05:22:28 controller-0 sshd[5859]: Connection closed by ::1 port 44604 [preauth]

もちろんjournalctlコマンドを用いると、より詳細な情報を確認できます

例えば、出力元のホスト名(ここではcontroller-0)なども出力されています。

Apr 30 05:22:28 controller-0 sshd[5859]: Invalid user testuser from ::1 port 44604
Apr 30 05:22:28 controller-0 sshd[5859]: input_userauth_request: invalid user testuser [preauth]
Apr 30 05:22:28 controller-0 sshd[5859]: Connection closed by ::1 port 44604 [preauth]
1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?