GNU/Linux >> Linux の 問題 >  >> Linux

一元化されたログ管理のためにrsyslogをセットアップする方法

このチュートリアルでは、rsyslogを集中ログ管理サーバーとして設定する方法について説明します。一元化されたログ管理とは、サーバーサービスの状態とセキュリティを監視するために、1つのログサーバー上の複数の物理サーバーまたは仮想化サーバーからあらゆる種類のログを収集することを意味します。このチュートリアルでは、rsyslogを使用します。これは、rsyslogが高性能、優れたセキュリティ、およびモジュラー設計を提供するためです。また、MySQL、Oracle、Hadoopなどの多数のデータベースソリューションにログを保存して、統合を強化することもできます。

1。予備的注意

このチュートリアルでは、32ビットバージョンのOracleLinux6.4を使用しています。構成はOracleLinuxで行われますが、CentOSとRed HatOSLinuxでも同じ手順が機能することに注意してください。このチュートリアルでは、2台のサーバーを使用します。 1つはrsyslogサーバーとして機能し、もう1つはrsyslogクライアントのワークステーション/クライアントサーバーとして機能します。このチュートリアルの終わりまでに、ユーザーがクライアントサーバーにログインすると、rsyslogサーバーがユーザーのアクティビティを自動的にログに記録することがわかります。


2。 Rsyslogのインストール

インストールフェーズでは、rsyslogパッケージとその依存関係をインストールするだけで済みます。まず、オペレーティングシステムのバージョンを確認しましょう。

[[email protected] ~]# cat /etc/issue
Oracle Linux Server release 6.4
Kernel \r on an \m
[[email protected] ~]# arch
i686
[[email protected] ~]# uname -a
Linux RSYS01 2.6.32-358.el6.i686 #1 SMP Fri Feb 22 13:37:29 PST 2013 i686 i686 i386 GNU/Linux


次に、yumユーティリティを介してrsyslogパッケージをインストールするための新しいリポジトリを構成します。


[[email protected] ~]# cd /etc/yum.repos.d/
[[email protected] yum.repos.d]# vi rsyslog.repo
[rsyslog-v7-devel]
name=Adiscon Rsyslog v7-devel for CentOS-$releasever-$basearch
baseurl=http://rpms.adiscon.com/v7-devel/epel-$releasever/$basearch
enabled=0
gpgcheck=0
protect=1
[rsyslog-v7-stable]
name=Adiscon Rsyslog v7-stable for CentOS-$releasever-$basearch
baseurl=http://rpms.adiscon.com/v7-stable/epel-$releasever/$basearch
enabled=1
gpgcheck=0
protect=1

[[email protected] yum.repos.d]# yum list rsyslog
Loaded plugins: refresh-packagekit, security
rsyslog-v7-stable | 2.5 kB 00:00
rsyslog-v7-stable/primary_db | 188 kB 00:01
Available Packages
rsyslog.i686 7.6.7-1.el6 rsyslog-v7-stable


これで、新しいバージョンのrsyslogのインストールを開始しましょう。手順は次のとおりです。


[[email protected] yum.repos.d]# yum install rsyslog -y
Loaded plugins: refresh-packagekit, security
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package rsyslog.i686 0:7.6.7-1.el6 will be installed
--> Processing Dependency: liblogging-stdlog.so.0 for package: rsyslog-7.6.7-1.el6.i686
--> Processing Dependency: libjson-c.so.2 for package: rsyslog-7.6.7-1.el6.i686
--> Processing Dependency: libgthttp.so.0 for package: rsyslog-7.6.7-1.el6.i686
--> Processing Dependency: libgtbase.so.0 for package: rsyslog-7.6.7-1.el6.i686
--> Processing Dependency: libgt for package: rsyslog-7.6.7-1.el6.i686
--> Processing Dependency: libestr.so.0 for package: rsyslog-7.6.7-1.el6.i686
--> Running transaction check
---> Package json-c.i686 0:0.11-3.el6 will be installed
---> Package libestr.i686 0:0.1.9-1.el6 will be installed
---> Package libgt.i686 0:0.3.11-1.el6 will be installed
---> Package liblogging.i686 0:1.0.4-1.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
===============================================================================================================
Package Arch Version Repository Size
===============================================================================================================
Installing:
rsyslog i686 7.6.7-1.el6 rsyslog-v7-stable 920 k
Installing for dependencies:
json-c i686 0.11-3.el6 rsyslog-v7-stable 46 k
libestr i686 0.1.9-1.el6 rsyslog-v7-stable 9.0 k
libgt i686 0.3.11-1.el6 rsyslog-v7-stable 55 k
liblogging i686 1.0.4-1.el6 rsyslog-v7-stable 23 k
Transaction Summary
===============================================================================================================
Install 5 Package(s)
Total download size: 1.0 M
Installed size: 3.2 M
Downloading Packages:
(1/5): json-c-0.11-3.el6.i686.rpm | 46 kB 00:00
(2/5): libestr-0.1.9-1.el6.i686.rpm | 9.0 kB 00:00
(3/5): libgt-0.3.11-1.el6.i686.rpm | 55 kB 00:00
(4/5): liblogging-1.0.4-1.el6.i686.rpm | 23 kB 00:00
(5/5): rsyslog-7.6.7-1.el6.i686.rpm | 920 kB 00:03
---------------------------------------------------------------------------------------------------------------
Total 114 kB/s | 1.0 MB 00:09
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : libgt-0.3.11-1.el6.i686 1/5
Installing : liblogging-1.0.4-1.el6.i686 2/5
Installing : libestr-0.1.9-1.el6.i686 3/5
Installing : json-c-0.11-3.el6.i686 4/5
Installing : rsyslog-7.6.7-1.el6.i686 5/5
Verifying : json-c-0.11-3.el6.i686 1/5
Verifying : libestr-0.1.9-1.el6.i686 2/5
Verifying : liblogging-1.0.4-1.el6.i686 3/5
Verifying : libgt-0.3.11-1.el6.i686 4/5
Verifying : rsyslog-7.6.7-1.el6.i686 5/5

Installed:
rsyslog.i686 0:7.6.7-1.el6

Dependency Installed:
json-c.i686 0:0.11-3.el6 libestr.i686 0:0.1.9-1.el6 libgt.i686 0:0.3.11-1.el6 liblogging.i686 0:1.0.4-1.el6

Complete!

[[email protected] yum.repos.d]# rsyslogd -v
rsyslogd 7.6.7, compiled with:
FEATURE_REGEXP: Yes
GSSAPI Kerberos 5 support: Yes
FEATURE_DEBUG (debug build, slow code): No
32bit Atomic operations supported: Yes
64bit Atomic operations supported: Yes
Runtime Instrumentation (slow code): No
uuid support: Yes
Number of Bits in RainerScript integers: 64

See http://www.rsyslog.com for more information.

[[email protected] ~]# rpm -qa|grep rsyslog
rsyslog-7.6.7-1.el6.i686


次に、インストールフェーズに進みましょう。このチュートリアルでは、セキュリティレイヤーをスキップして、作業を簡単にします。 SELINUXを無効にして、途中でセキュリティの向上に関連する問題が発生しないようにします。ライブセットアップでSELinuxとファイアウォールを無効にしないでください。手順は次のとおりです。

まず、SELINUXポリシーの現在のステータスを確認します。

[[email protected] ~]# getenforce
Enforcing

永続的に無効にするには、次の手順に従います。

[[email protected] ~]# cd /etc/sysconfig/
[[email protected] ~]# vi selinux

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted


その後、サーバーとクライアントの接続がブロックされないように、ファイアウォールが無効になっていることを確認しましょう。

[[email protected] ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[[email protected] ~]# /etc/init.d/iptables stop
iptables: Flushing firewall rules: [ OK ]
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Unloading modules: [ OK ]
[[email protected] ~]# /etc/init.d/iptables status
Table: filter
Chain INPUT (policy ACCEPT)
num target prot opt source destination

Chain FORWARD (policy ACCEPT)
num target prot opt source destination

Chain OUTPUT (policy ACCEPT)
num target prot opt source destination


これで、インストールフェーズが成功しました。構成フェーズに移りましょう。


3。 Rsyslog構成

すべてのパッケージ依存関係はすでにインストールされています。rsyslogの構成に注目しましょう。構成ファイルにアクセスして、次のように変更します。

[[email protected] ~]# vi /etc/rsyslog.conf 

module(load="imudp") # needs to be done just once
input(type="imudp" port="514")

$template Auditlog, "/var/log/rsyslog_client/%HOSTNAME%/%PROGRAMNAME%.log"
$template TmplMsg, "/var/log/rsyslog_client/%HOSTNAME%/%PROGRAMNAME%.log"
authpriv.* ?Auditlog

以下は、私たちが行った構成変更の説明です。

  • module(load ="imudp") #1回だけ実行する必要があります==>UDPプロトコルを介してサーバーとクライアント間でrsyslogメッセージを受信する機能を提供します
  • input(type ="imudp" port ="514") ==>rsyslogサービスにはポート514を使用します
  • $ template Auditlog、 "/var/log/rsyslog_client/%HOSTNAME%/%PROGRAMNAME%.log" ==> rsyslogサーバーに接続されているすべてのクライアントについて、システムはクライアントのホスト名フォルダーと関連するサービスのファイル名を自動的に作成します
  • $ template TmplMsg、 "/var/log/rsyslog_client/%HOSTNAME%/%PROGRAMNAME%.log" ==> rsyslogサーバーに接続されているすべてのクライアントについて、システムはクライアントのホスト名フォルダーと関連するサービスのファイル名を自動的に作成します


設定が完了したら、rsyslogサービスを開始しましょう。

[[email protected] yum.repos.d]# /etc/init.d/rsyslog restart
Shutting down system logger: [FAILED]
Starting system logger: [ OK ]
>

netstatを使用して、rsyslogサービスが稼働しているかどうかを確認します。

[[email protected] yum.repos.d]# netstat -uanp|grep rsyslog
udp 0 0 0.0.0.0:514 0.0.0.0:* 2430/rsyslogd
udp 0 0 :::514 :::* 2430/rsyslogd

上記では、rsyslogサービスが作成したポート割り当てで実行されていることがわかります。デフォルトでは、rsyslogはrsyslogサーバーをクライアントとして扱うため、自身のサーバーアクセスも監査します。それが機能しているかどうかを確認するために、/ var/logフォルダーを調べることができます。 RSYS01(サーバーのホスト名)という名前のフォルダーが存在するかどうかを確認しましょう。

[[email protected] log]# cd /var/log/
[[email protected] log]# ls -l|grep rsyslog
drwx------ 3 root root 4096 Oct 24 18:21 rsyslog_client
[[email protected] log]# cd rsyslog_client
[[email protected] rsyslog_client]# ls
RSYS01
[[email protected] rsyslog_client]# cd RSYS01/
[[email protected] RSYS01]# ls
rsyslogd.log

いいですね、すべてが魅力のように機能しているようです!次に、テストフェーズに進み、すべての構成が期待どおりに行われたと結論付けます。

4。テストフェーズ

rsyslogサービスを実行するサーバーはクライアントとしても機能するため、ローカルログインの監視が監視されているかどうかをサーバー自体で確認できます。それが正しいかどうかを確認するために、SSHサービスを使用して別のセッションでrsyslogサーバーにログインしましょう。このステップでは、サーバー自体がすでにパスワードなしの構成を構成していると想定します。手順は次のとおりです。

[[email protected] RSYS01]# ssh [email protected]
Last login: Sat Oct 22 15:45:48 2016 from 172.20.181.70
[[email protected] ~]# who
root pts/0 2016-10-22 00:21 (172.20.181.11)
root pts/1 2016-10-24 18:22 (127.0.0.1)
[[email protected] ~]# exit
logout
Connection to RSYS01 closed.

完了、それと同じくらい簡単です。 rsyslogサーバー自体にログインし、新しいセッションが作成されたら、rsyslogサービスがセッションを監査したことを確認するために再度ログインします。それでは、セッションが監査されているかどうかを確認しましょう。手順は次のとおりです。

[[email protected] ~]# cd var/log/rsyslog_client/RSYS01
[[email protected] RSYS01]# ls
rsyslogd.log sshd.log
[[email protected] RSYS01]# tail -f sshd.log
Oct 24 18:22:46 RSYS01 sshd[2536]: Accepted password for root from 192.168.43.101 port 52862 ssh2
Oct 24 18:22:46 RSYS01 sshd[2536]: pam_unix(sshd:session): session opened for user root by (uid=0)
Oct 24 18:22:50 RSYS01 sshd[2536]: Received disconnect from 192.168.43.101: 11: disconnected by user
Oct 24 18:22:50 RSYS01 sshd[2536]: pam_unix(sshd:session): session closed for user root
^C


すばらしい。サーバーでセッションが開始されると、rsyslogサービスは自動的にsshd.logファイルを作成しました。ログファイル内には、セッションで作成された時間、ポート、およびユーザーが記載された詳細のリストがあることがわかります。

これで、すべてが期待どおりに機能します。 rsyslogサーバーによって監査されるrsyslogクライアント用のワークステーションをセットアップしましょう。 rsyslogクライアントの場合は、rsyslogパッケージをインストールし、構成ファイルに簡単な変更を加えてrsyslogサーバーにリンクするだけです。手順は次のとおりです。

[[email protected] ~]# cd /etc/yum.repos.d/
[[email protected] yum.repos.d]# yum list rsyslog
Loaded plugins: refresh-packagekit, security
rsyslog-v7-stable | 2.5 kB 00:00
rsyslog-v7-stable/primary_db | 188 kB 00:01
Available Packages
rsyslog.i686 7.6.7-1.el6 rsyslog-v7-stable

[[email protected] yum.repos.d]# yum install rsyslog -y
Loaded plugins: refresh-packagekit, security
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package rsyslog.i686 0:7.6.7-1.el6 will be installed
--> Processing Dependency: liblogging-stdlog.so.0 for package: rsyslog-7.6.7-1.el6.i686
--> Processing Dependency: libjson-c.so.2 for package: rsyslog-7.6.7-1.el6.i686
--> Processing Dependency: libgthttp.so.0 for package: rsyslog-7.6.7-1.el6.i686
--> Processing Dependency: libgtbase.so.0 for package: rsyslog-7.6.7-1.el6.i686
--> Processing Dependency: libgt for package: rsyslog-7.6.7-1.el6.i686
--> Processing Dependency: libestr.so.0 for package: rsyslog-7.6.7-1.el6.i686
--> Running transaction check
---> Package json-c.i686 0:0.11-3.el6 will be installed
---> Package libestr.i686 0:0.1.9-1.el6 will be installed
---> Package libgt.i686 0:0.3.11-1.el6 will be installed
---> Package liblogging.i686 0:1.0.4-1.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

===============================================================================================================
Package Arch Version Repository Size
===============================================================================================================
Installing:
rsyslog i686 7.6.7-1.el6 rsyslog-v7-stable 920 k
Installing for dependencies:
json-c i686 0.11-3.el6 rsyslog-v7-stable 46 k
libestr i686 0.1.9-1.el6 rsyslog-v7-stable 9.0 k
libgt i686 0.3.11-1.el6 rsyslog-v7-stable 55 k
liblogging i686 1.0.4-1.el6 rsyslog-v7-stable 23 k

Transaction Summary
===============================================================================================================
Install 5 Package(s)

Total download size: 1.0 M
Installed size: 3.2 M
Downloading Packages:
(1/5): json-c-0.11-3.el6.i686.rpm | 46 kB 00:00
(2/5): libestr-0.1.9-1.el6.i686.rpm | 9.0 kB 00:00
(3/5): libgt-0.3.11-1.el6.i686.rpm | 55 kB 00:00
(4/5): liblogging-1.0.4-1.el6.i686.rpm | 23 kB 00:00
(5/5): rsyslog-7.6.7-1.el6.i686.rpm | 920 kB 00:03
---------------------------------------------------------------------------------------------------------------
Total 114 kB/s | 1.0 MB 00:09
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : libgt-0.3.11-1.el6.i686 1/5
Installing : liblogging-1.0.4-1.el6.i686 2/5
Installing : libestr-0.1.9-1.el6.i686 3/5
Installing : json-c-0.11-3.el6.i686 4/5
Installing : rsyslog-7.6.7-1.el6.i686 5/5
Verifying : json-c-0.11-3.el6.i686 1/5
Verifying : libestr-0.1.9-1.el6.i686 2/5
Verifying : liblogging-1.0.4-1.el6.i686 3/5
Verifying : libgt-0.3.11-1.el6.i686 4/5
Verifying : rsyslog-7.6.7-1.el6.i686 5/5

Installed:
rsyslog.i686 0:7.6.7-1.el6

Dependency Installed:
json-c.i686 0:0.11-3.el6 libestr.i686 0:0.1.9-1.el6 libgt.i686 0:0.3.11-1.el6 liblogging.i686 0:1.0.4-1.el6

Complete!


これで、rsyslogパッケージがクライアントワークステーションにインストールされました。それでは、rsyslog構成ファイル内で修正を加えましょう。クライアント構成の場合は、次のように構成を修正する必要があります。

[[email protected] ~]# vi /etc/rsyslog.conf

*.* @192.168.43.101:514

以上で、構成ファイルにポート514のIP192.168.43.101が含まれていることに注意してください。そのIPはrsyslogサーバーのIPです。すべてが完了したら、クライアントワークステーションでrsyslogサービスを再起動して、変更をロードしましょう。手順は次のとおりです。

[[email protected] ~]# /etc/init.d/rsyslog restart
Shutting down system logger: [FAILED]
Starting system logger: [ OK ]


次に、rsyslogサーバーに戻り、rsyslogクライアントホスト名のフォルダーがrsyslogログディレクトリに作成されているかどうかを確認します。手順は次のとおりです。

[[email protected] ~]# cd var/log/rsyslog_client/
[[email protected] rsyslog_client]# ls
RSYS01 CLIENT01


すばらしい、rsyslogクライアントのホスト名を持つフォルダが自動的に作成されていることに注意してください。これにより、構成が正しく、rsyslogクライアントがrsyslogサーバーへのUDP接続を確立できることが確認されます。

次のテスト手順では、別のユーザーとしてrsyslogクライアントにログインし、rsyslogサーバーがアクティビティをキャプチャできるかどうかを確認します。手順は次のとおりです。

::CLIENT01::
login as: shahril
[email protected]'s password:
Last login: Sun Oct 23 00:21:40 2016 from 172.20.181.11
[[email protected] ~]$ who
shahril pts/0 2016-10-24 17:01 (192.168.43.80)
[[email protected] ~]$ exit


それでは、rsyslogサーバー内のログディレクトリをチェックして、rsyslogクライアントから作成されたアクティビティをログに記録できたかどうかを確認しましょう。

[[email protected] ~]# cd var/log/rsyslog_client/
[[email protected] rsyslog_client]# cd CLIENT01/
[[email protected] CLIENT01]# ls
rsyslogd.log sshd.log
[[email protected] CLIENT01]# tail -10 sshd.log
Oct 24 17:01:47 CLIENT01 sshd[2102]: Accepted password for shahril from 192.168.43.80 port 17002 ssh2
Oct 24 17:01:47 CLIENT01 sshd[2102]: pam_unix(sshd:session): session opened for user shahril by (uid=0)


すばらしい結果は、プロセスが期待どおりに機能していることを示しています。最後のテストとして、rsyslogクライアントに再度ログインし、パッケージをインストールして、rsyslogサービスがセッションの作成以外のアクティビティをログに記録できるかどうかをテストします。手順は次のとおりです。

::CLIENT01::
login as: root
[email protected]'s password:
Last login: Sat Oct 22 10:21:40 2016 from 172.20.181.11
[[email protected] ~]# yum install firefox -y
Loaded plugins: refresh-packagekit, security
Repository 'OEL64' is missing name in configuration, using id
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package firefox.i686 0:10.0.12-1.0.1.el6_3 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
firefox i686 10.0.12-1.0.1.el6_3 OEL64 20 M

Transaction Summary
================================================================================
Install 1 Package(s)

Total download size: 20 M
Installed size: 23 M
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : firefox-10.0.12-1.0.1.el6_3.i686 1/1
Verifying : firefox-10.0.12-1.0.1.el6_3.i686 1/1

Installed:
firefox.i686 0:10.0.12-1.0.1.el6_3

Complete!

上記は、rsyslogクライアントワークステーション内にFirefoxブラウザインストーラーが正常にインストールされたことを示しています。次に、rsyslogサーバーに戻り、rsyslogがサードパーティパッケージをワークステーションにインストールするプロセスをログに記録できたかどうかを確認します。手順は次のとおりです。

[[email protected] ~]# cd var/log/rsyslog_client/
[[email protected] CLIENT01]# ls
rsyslogd.log sshd.log yum.log
[[email protected] CLIENT01]# tail -20 yum.log
Oct 25 17:13:17 CLIENT01 yum[2319]: Installed: firefox-10.0.12-1.0.1.el6_3.i686

優れたrsyslogサービスは、クライアントワークステーションでのインストールアクティビティの情報を監査することができました。


Linux
  1. CentOS7で集中型Rsyslogサーバーをセットアップする

  2. RsyslogとMySQLを使用してLogAnalyzerをセットアップする方法

  3. Rsyslogを使用して集中ログサーバーをセットアップする方法

  1. Debian11でRsyslogサーバーをセットアップする方法

  2. rsyslogを使用してリモートログサーバーを構成するにはどうすればよいですか?

  3. CentOS/RHEL 6,7 の Rsyslog でデフォルトのログ ディレクトリ (/var/log) を変更する方法

  1. LinuxでユーザーのSudo権限を設定する方法

  2. Ubuntu 20.04でRsyslogサーバーをセットアップする-その方法は?

  3. 特定のユーザーにパスワードなしのSudoを設定する方法