0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SquidログをQRadar転送する(syslog/tls-syslog)

Last updated at Posted at 2024-02-01

環境

cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)

QRadar 7.5.0 All in One

CentOS7にSquidのインストールと設定

# yum -y install squid

コンフィグファイルの編集

# vi /etc/squid/squid.conf

Squidを利用するクライアントIPネットワークを定義

acl localhost src xxx.xxx.xxx.xxx/xx  

サービスの再起動、ステータス確認、自動起動をOnに変更

systemctl restart squid
systemctl status squid
systemctl enable squid

その他、クライアントがsquidにアクセスできるようにFirewalld(iptables)の編集も必要

Squidログをrsyslogに渡す

自動起動ファイルを編集

# vi /etc/rc.d/rc.local

以下を追加

tail -f /var/log/squid/access.log | logger -p local1.info &

システムが起動したときに自動実行されるようにします。

# chmod a+x /etc/rc.d/rc.local

linuxを再起動してこの設定を有効化します。

QRadarにログ転送

QRadarのIPアドレスを追加

# vi /etc/rsyslog.conf

以下の一文を追加します。xxxはQRadarのIPアドレスとなります。
<facility>.<priority>@:514を入力

local1.info @@xxx.xxx.xxx.xxx:514

変更を反映するためサービス再起動

systemctl restart rsyslog

QRadarでログ受信確認

QRadarのWebコンソールにアクセスし管理をクリックします。
image.png
ログ・ソースをクリックします。
image.png
ログ・ソースをクリックします。
image.png
左のペインで"squid web proxy"という項目に☑をいれます。QRadarが自動でログ種別を認識してログソースとして表示してくれます。最後のイベントが現在の時間になっていることが確認できればログが来ているという判断ができます。
image.png

ログソースの右側のプロパティからイベントをクリックしてログ内容を確認します。
image.png
ログイベント1行ごとの表示がされます。
image.png

QRadar上でTLSシスログを受けるようにログソースを定義する

※こちらの手順では、ログを暗号化することのみを主眼としています。中間者攻撃は対応できません。また自己署名書の中身を確認して接続許可する制御はありません。

先ほどのQRadarのWebコンソールから管理->ログ・ソースの順でクリックします。
image.png
新規ログ・ソースをクリックします。
image.png
単一のログ・ソースをクリックします。
image.png
ログ・ソース・タイプでsquidを探します。
image.png
Squid Web Proxyを選び次のステップへ
image.png
Syslogを選びます。文書化されていないプロトコル・タイプの表示に☑を入れます。
image.png
ワーニングができますが閉じます。
image.png
TLS Syslog(未文書化)を選びます。
image.png
次のステップに進みます。
image.png
ログ・ソースの名前を入力し次のステップへ
image.png
Log Source Identifierを入力します。IPアドレス等
image.png
テストをすることができます。
image.png
QRadarが生成した証明書の確認が行われます。
image.png
自己署名証明書のためにワーイングがでます。
image.png

rsyslogをTLSでsyslogを送るように設定

暗号化するためのパッケージをインストールします

# yum install rsyslog-gnutls

QRadarが生成した証明書を取得

QRadarにWinSCPでログインします。
/opt/qradar/conf/trusted_certificates/syslog-tls.cert(サーバ証明書)をローカルにダウンロードします。
Cert形式の証明書をpem形式に変更します。

# openssl x509 -in syslog-tls.cert -out tmp.der -outform DER
# openssl x509 -in tmp.der -inform DER -out dest.pem -outform pem

証明書を配置するディレクトリtlsを作成します

# mkdir /etc/rsyslog.d/tls

tlsディレクトリにpemファイルをca.pemという名前でコピーします。

# cp dest.pem /etc/rsyslog.d/tls/ca.pem
# vi /etc/rsyslog.conf

以下を追加します。xxx.xxx.xxx.xxxはQRadarのIPアドレス

global(DefaultNetstreamDriverCAFile="/etc/rsyslog.d/tls/ca.pem")
action(type="omfwd" protocol="tcp" port="6514"
       Target="xxx.xxx.xxx.xxx"
       StreamDriver="gtls"
       StreamDriverMode="1"
       StreamDriverAuthMode="anon")

サービスの再起動を行いエラーがないことを確認します。

証明書の中身確認

有効期限の確認 10年になります。

openssl x509 -noout -dates -in syslog-tls.cert
notBefore=Jan 18 08:27:32 2024 GMT

全文表示

#openssl x509 -text -noout -in  syslog-tls.cert
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            c6:02:ee:ff:99:0e:cc:c5
    Signature Algorithm: sha512WithRSAEncryption
        Issuer: CN=*, O=SyslogTLS_Server
        Validity
            Not Before: Jan 18 08:27:32 2024 GMT
            Not After : Jan 15 08:27:32 2034 GMT
        Subject: CN=*, O=SyslogTLS_Server
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:b5:ac:46:60:c7:3f:46:30:44:91:19:67:a6:bc:
                    0e:02:9d:5f:13:f9:86:15:6c:ab:a4:a9:e7:b7:9b:
                    de:9a:ae:0b:ef:83:47:2b:02:89:7f:6c:85:17:1f:
                    55:e8:a5:1b:e7:24:a1:a5:b3:67:52:37:c4:25:8e:
                    a0:98:ee:7f:ae:75:7e:61:3b:bd:fa:f6:f3:47:62:
                    a8:2a:2a:2d:bf:06:2e:6e:78:ca:ed:74:82:42:e7:
                    ca:79:b3:f5:e7:09:f4:ba:0a:03:62:f0:b8:e3:ad:
                    41:55:19:3b:5a:d7:0d:a5:85:7d:65:df:c4:9e:77:
                    04:a1:af:a6:47:42:ec:58:b6:db:e8:c8:32:98:a9:
                    fd:df:6c:fb:0c:6e:4a:6b:98:4a:96:3a:76:f6:59:
                    01:80:dd:2b:d1:71:7a:84:64:b4:04:56:7c:1c:a4:
                    38:6a:9c:c1:75:91:cb:dc:61:b5:55:87:38:cf:01:
                    c6:da:22:c8:b6:d8:b8:1e:d5:44:77:3c:2b:1b:91:
                    ef:6e:53:31:22:34:78:ef:4d:f1:fa:43:dc:0d:fa:
                    35:b2:82:02:13:43:f1:2f:d0:5c:d8:22:64:b2:fb:
                    5a:89:c3:a4:aa:79:b3:cc:64:43:2f:cb:8f:a0:6a:
                    ff:46:72:7b:48:43:f0:65:3d:92:8f:47:32:4d:ca:
                    f1:eb
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Subject Key Identifier:
                2A:9A:0D:4E:BB:53:6A:A8:32:C3:C7:33:3F:2E:DD:B6:7E:92:A6:5D
            X509v3 Authority Key Identifier:
                keyid:2A:9A:0D:4E:BB:53:6A:A8:32:C3:C7:33:3F:2E:DD:B6:7E:92:A6:5D

            X509v3 Basic Constraints:
                CA:TRUE
    Signature Algorithm: sha512WithRSAEncryption
         a4:8f:cc:d9:fe:80:8c:f3:8c:fd:f2:4d:6e:76:a2:a5:e3:83:
         20:cc:f2:11:b6:7e:b3:d9:7e:5c:72:be:e6:7c:8c:54:f1:b1:
         7c:da:f4:17:a3:21:a5:17:aa:35:a1:6a:bf:81:87:b3:22:40:
         e6:31:ea:8a:cb:ce:9b:6d:72:cc:ec:29:4b:e7:ab:07:fe:90:
         ed:ed:35:41:67:13:ac:af:d0:5c:32:c5:6f:42:26:77:90:e4:
         6c:4b:1a:98:b8:57:86:b8:77:63:fe:54:39:d4:ed:1b:0b:33:
         94:d9:a8:1b:35:64:99:78:75:ec:8c:fb:56:67:2b:f1:e9:06:
         41:f3:58:ff:ed:fb:7b:08:5f:de:f9:e3:29:e2:cd:cb:82:eb:
         62:03:eb:f3:cf:f8:12:37:de:6c:21:a8:81:3b:f8:fe:4d:35:
         66:59:b3:61:01:1f:d1:07:2a:a6:42:d1:6c:49:29:d4:20:ce:
         45:e5:86:0e:1d:8d:0f:ff:0b:03:d6:9b:f7:00:af:1f:c0:95:
         d5:db:c5:27:99:47:da:b4:26:d5:0a:42:29:65:76:ea:11:d0:
         6a:1a:4a:5f:0b:2f:a8:77:e7:04:98:be:f7:5c:11:4a:5a:87:
         2e:73:ae:b6:e9:e1:db:36:13:95:db:e9:7a:26:f7:7d:39:db:
         a5:b0:63:c1

ログ転送時のペイロード確認

QRadar上では以下のように確認することができます。
image.png
tcpdump -i ens192 -A host xxx.xxx.xxx.xxx(QRadarのIPアドレス)で本当に転送時にログが暗号化されているのか?確認しました。

暗号化なしsyslog通信だとアクセスログの中身が表示されていることがわかります。またログ送信プロトコルshellになっています。
image.png
TLS syslogの場合は、通信ログが暗号化されていて見えないことがわかります。ログ送信プロトコルがsyslog-tlsになっています。
image.png

考察

StreamDriverAuthMode="anon"だとrsyslog.confで指定したファイル名のファイルが存在すればよく中身を確認しません。他のモード(x509/certvalid,509/name)で試すと証明書の中身を確認しrsyslogサービス再起動時にエラーを発出します。しかしよりセキュリティを強化したい場合には不十分と思われClient認証も必要になってくると思われる。

参考にしたサイト
https://qiita.com/daisuke0115/items/1e8eeb1d2b0f87bda8c7
https://www.ibm.com/docs/sr/dsm?topic=proxy-configuring-syslog-forwarding
https://www.ibm.com/docs/ja/dsm?topic=options-tls-syslog-protocol-configuration
https://qiita.com/saeki4n/items/198407c8710d769dfa55
https://qiita.com/m-chika/items/e4936feb4087b7ddbe8b
https://www.rsyslog.com/doc/concepts/ns_gtls.html

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?