如何部署RHEL clamav?

RHEL-Like

1 前言

一个问题,一篇文章,一出故事。
最近黑客攻击猖獗,笔者需要更新服务器上的杀毒软件。于是整理ClamAV的最新服务器安装。
ClamAV是用于检测木马,病毒,恶意软件和其他恶意威胁的一个开源杀毒引擎。

2 最佳实践

2.1 安装前的准备

2.1.1 系统环境

OS = RHEL 9.x x86_64
IP Address = any
Host Name = any.cmdschool.org

2.1.3 下载软件包

cd ~
wget wget https://www.clamav.net/downloads/production/clamav-1.2.1.linux.x86_64.rpm

如果不能下载或者有其他版本需求,请参阅如下连接,
https://www.clamav.net/downloads

2.2 部署软件包

cd ~
dnf install -y clamav-1.2.1.linux.x86_64.rpm

2.3 配置数据库更新工具

2.3.1 部署配置文件

cat /usr/local/etc/freshclam.conf.sample > /etc/freshclam.conf

使用如下命令编辑配置文件,

vim /etc/freshclam.conf

修改如下参数,

# Example
DatabaseDirectory /var/lib/clamav
UpdateLogFile /var/log/clamav/freshclam.log
LogSyslog yes
DatabaseOwner clamav
DatabaseMirror database.clamav.net

根据配置创建所需的运行用户

groupadd  -g 498 clamav
useradd -u 498 -g 498 -d /var/lib/clamav -s /sbin/nologin -c "Clam Anti Virus Checker" clamav

根据配置创建所需的目录或修改已有目录的权限,

mkdir -p /var/log/clamav
chown clamav:clamav /var/lib/clamav/ /var/log/clamav
chmod 775 -R /var/lib/clamav/ /var/log/clamav

2.3.2 设置selinux

setsebool -P antivirus_can_scan_system 1

2.3.3 测试更新

freshclam --config-file=/etc/freshclam.conf 

2.3.4 配置自动更新

crontab -e

加入如下配置,

47  *  *   *    *  freshclam --config-file=/etc/freshclam.conf --quiet

2.3.5 手动测试扫描

clamscan ~

如果遇到如下错误提示,

LibClamAV Error: cl_load(): No such file or directory: /usr/local/share/clamav
ERROR: Can't get file status

你可以使用如下命令解决,

ln -s /var/lib/clamav /usr/local/share/clamav

2.4 配置ClamAV守护进程

2.4.1 部署配置文件

cat /usr/local/etc/clamd.conf.sample > /etc/clamd.conf

使用如下命令编辑配置文件,

vim /etc/clamd.conf

修改如下参数,

# Example
LogFile /var/log/clamav/clamd.log
LogFileMaxSize 0
LogTime yes
LogSyslog yes
PidFile /var/run/clamav/clamd.pid
TemporaryDirectory /var/tmp
DatabaseDirectory /var/lib/clamav
LocalSocket /var/run/clamav/clamd.sock
FixStaleSocket yes
TCPSocket 3310
TCPAddr 127.0.0.1
MaxConnectionQueueLength 30
MaxThreads 50
ReadTimeout 300
User clamav
ScanPE yes
ScanELF yes
ScanOLE2 yes
ScanMail yes
ScanArchive yes
ArchiveBlockEncrypted no

然后,我们需要根据配置文件创建所需的文件夹,

mkdir -p /var/run/clamav
chown clamav:clamav /var/run/clamav

然后,你可以使用如下命令测试程序的运行,

sudo -u clamav /usr/local/sbin/clamd -F -c /etc/clamd.conf

然后,你可以使用如下命令确认程序运行的进程号,

pgrep -u clamav clamd

然后,你可以使用如下命令确认程序运行的端口,

netstat -antp | grep `pgrep -u clamav clamd`

可见如下输出,

tcp        0      0 127.0.0.1:3310          0.0.0.0:*               LISTEN      4329/clamd 

如果你需要手动退出该程序,可以使用如下命令,

kill `pgrep -u clamav clamd`

2.4.2 部署服务控制脚本

vim /usr/lib/systemd/system/clamd.service

加入如下配置,

[Unit]
Description=anti-virus daemon
Documentation=https://docs.clamav.net/
After=syslog.target network-online.target

[Service]
Type=simple
ExecStartPre=/usr/bin/mkdir -p /var/log/clamav /var/run/clamav /var/lib/clamav/
ExecStartPre=/usr/bin/chown clamav:clamav /var/run/clamav var/log/clamav /var/lib/clamav/
ExecStartPre=/usr/bin/chmod 775 -R /var/log/clamav /var/run/clamav  /var/lib/clamav/
ExecStart=/usr/bin/sudo -u clamav /usr/local/sbin/clamd -F -c /etc/clamd.conf

[Install]
WantedBy=multi-user.target

编辑完成后,你需要使用如下命令重载服务是配置生效,

systemctl daemon-reload

然后,我们使用如下命令启动服务并设置自启动,

systemctl start clamd.service
systemctl enable clamd.service
systemctl status clamd.service

另外,如果遇到SELinux无法启动问题,你可以选择关闭SELinux,

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0

参阅文档
===================

官方主页
———–
http://www.clamav.net/

官方github
————–
https://github.com/Cisco-Talos/clamav-devel

下载页面
————
http://www.clamav.net/downloads

应用场景参考
————
https://doc.owncloud.org/server/9.0/admin_manual/configuration_server/antivirus_configuration.html

测试病毒码下载地址
—————-
https://www.eicar.org/?page_id=3950

非官方教程参考
————-
https://blog.csdn.net/zwjzqqb/article/details/80204676

没有评论

发表回复

RHEL-Like
如何配置rsyncd服务?

1 前言 一个问题,一篇文章,一出故事。 由于笔者想实现文件通过rsync自动传输,但是又不想使用o …

RHEL-Like
如何用pam_google_authenticator认证模块实现SSH 2FA?

1 前言 一个问题,一篇文章,一出故事。 笔者想开启2FA以便增强SSH服务的安全性,于是便整理此文 …

RHEL-Like
如何升级RHEL clamav杀毒?

1 前言 一个问题,一篇文章,一出故事。 笔者需要卸载旧的病毒软件,然后更新rpm包的病毒软件,于是 …