LoginSignup
0
0

Amazon Linux 2 の ClamAV で ERROR: Could not connect to clamd on LocalSocket /run/clamd.scan/clamd.sock: Permission denied

Last updated at Posted at 2023-10-04

はじめに

オープンソースのアンチウイルスソフトの ClamAV で思わぬ権限エラーに遭遇しました。一応対処できたのでその方法をここに残しておきます。

TL;DR

/usr/lib/systemd/system/clamd@.service(サービス起動スクリプト)で /run/clamd.scan/ の所有者グループに tomcat を指定することで解決。

/usr/lib/systemd/system/clamd@.service
[Service]
~~~
ExecStartPost = /bin/bash -c 'chown root:tomcat -R /run/clamd.scan/'
~~~

システム構成

役割 名称
OS Amazon Linux 2
Webサーバー Tomcat 8.5
アンチウイルスソフト ClamAV

エラー内容

Tomcat 経由でファイルアップロードを実行したらエラーになりました。

試しに以下の様にコマンドを実行してみたところ、エラーが発生しました。

$ sudo -u tomcat clamdscan test.txt
ERROR: Could not connect to clamd on LocalSocket /run/clamd.scan/clamd.sock: Permission denied

----------- SCAN SUMMARY -----------
Infected files: 0
Total errors: 1
Time: 0.000 sec (0 m 0 s)
Start Date: 2023:10:03 16:12:09
End Date:   2023:10:03 16:12:09

施策1- 未解決 :disappointed_relieved:

chown -R root:tomcat /run/clamd.scan/ を実施してみたところ、エラーは出なくなったのですが、システムを再起動したらこの設定が元に戻ってしまいました。

施策2- 未解決 :disappointed_relieved:

/etc/clamd.d/scan.conf を修正しました。

/etc/clamd.d/scan.conf
-#LocalSocketGroup virusgroup
+LocalSocketGroup tomcat

しかし、エラーが出る状況を改善できませんでした。
ディレクトリのアクセス権限が tomcat ではないのが悪いみたいです。

$ sudo ls -al  /run/clamd.scan/
合計 0
drwx--x---  2 clamscan virusgroup   60 10月  3 16:09 .
drwxr-xr-x 31 root     root       1040 10月  3 16:09 ..
srw-rw-rw-  1 root     tomcat        0 10月  3 16:09 clamd.sock

施策3 - 解決 :thumbsup:

施策1 の方針が良さそうなので、あとはシステムを再起動しても設定が反映されるようにすれば良いはずです。

というわけで、以下の様に clamd の起動スクリプトで ExecStartPost を設定しました。
※参考資料:https://qiita.com/JhonnyBravo/items/a28074c20fa9adf02be3

/usr/lib/systemd/system/clamd@.service
[Service]
~~~
ExecStartPost = /bin/bash -c 'chown root:tomcat -R /run/clamd.scan/'
~~~

システムを再起動してもエラーが出なくなりましたー。

$ sudo -u tomcat clamdscan test.txt
test.txt: OK

----------- SCAN SUMMARY -----------
Infected files: 0
Time: 0.003 sec (0 m 0 s)
Start Date: 2023:10:03 17:50:58
End Date:   2023:10:03 17:50:58

まとめ

アップロードされたファイルのウイルスチェックを ClamAV を使って実装してみましたが、思わぬ権限エラーに遭遇しました。ClamAV の設定ファイルだけではうまく解決できなかったので、サービス起動スクリプトで強引に所有者を変更することで解決できました。

ここではあっさり記載していますが、実際にはエラーを解決するまでに 2 時間程費やしました。

ITシステムにおける問題解決のアプローチ方法が多岐にわたることを改めて実感しました。:smiley:

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