实验室服务器想安装clamav杀毒软件,但在安装过程中遇到了许多问题,在走了许多弯路加查找了N多资料后终于是安装好了,这里做个记录,供需要的友友参考。
- 首先在clamav官网上下载rpm文件,然后将该文件上传至服务器,安装命令如下:
rpm -ivh --prefix=/usr/local/clamav clamav-0.104.2.linux.x86_64.rpm
- 配置库文件路径:
sudo vim /etc/ld.so.conf
在打开的文件中补充:
/usr/local/clamav/lib64
然后更新:
sudo ldconfig
- 参考这篇博客,建立 clamav的日志目录及日志文件:
sudo mkdir -p /usr/local/clamav/logs
sudo mkdir -p /usr/local/clamav/update
sudo touch /usr/local/clamav/logs/clamd.log
sudo touch /usr/local/clamav/logs/freshclam.log
修改配置文件:
cp /usr/local/clamav/etc/clamd.conf.sample /usr/local/clamav/etc/clamd.conf
cp /usr/local/clamav/etc/freshclam.conf.sample /usr/local/clamav/etc/freshclam.conf
编辑clamd.conf:
vim /usr/local/clamav/etc/clamd.conf
添加以下内容:
#Example //注释掉这一行
LogFile /usr/local/clamav/logs/clamd.log
PidFile /usr/local/clamav/update/clamd.pid
DatabaseDirectory /usr/local/clamav/update
编辑freshclam.conf:
vim /usr/local/clamav/etc/freshclam.conf
添加以下内容:
#Example //注释掉这一行
#添加以下内容
DatabaseDirectory /usr/local/clamav/update
UpdateLogFile /usr/local/clamav/logs/freshclam.log
PidFile /usr/local/clamav/update/freshclam.pid
注意这里配置文件中DatabaseDirectory指定了病毒库的目录,并且需要将Example那一行注释掉,否则后边运行时会提示找不到病毒库。
4. 官网下载病毒库文件(一般是三个,以cvd为后缀),并上传/usr/local/clamav/update目录下,然后运行clamav:
clamscan -r -i/home
如果运行报错:
clamscan: error while loading shared libraries: libclamav.so.9: cannot open shared object file: No such file or directory
先检查一下这个链接文件是否存在:
find / -name 'libclamav.so.12'
终端预期输出是:
/usr/local/clamav/lib64/libclamav.so.12
表明是存在这个链接文件的,因此需要检查第2步是否编辑成功并更新了ldconfig,或者也可通过:
echo "/usr/local/clamav/lib64/" | sudo tee -a /etc/ld.so.conf.d/clamav.conf
解决问题。
如果在执行完这一步后,重新运行clamscan提示:
/lib64/libc.so.6: version `GLIBC_2.28‘ not found (required by……
恭喜你解锁隐藏boss!网上有很多帖子提到GLIBC是比较底层的动态链接库,升级具有一定的风险,可能升级后会导致ls\cd等常规指令都无法执行,因此注意备份,谨慎对待!
出现该错误是因为当前系统下没有安装GLIBC_2.28,目前网上推荐的安装方法有两种:第一种是源码编译,下载GLIBC_2.28源码,通过config和make编译安装,实测这种方式在configure时会出错,提示系统缺少某几个库或找不到头文件,主要与prefix指定的搜索目录有关。要解决这个错误需要搜索头文件,甚至需要升级make,比较繁琐;
第二种是通过官方Debian软件包升级的方法,这种方法需要联网,参考这位博主的分享,主要步骤如下:
先搜索系统里GLIBC的版本:
strings /lib/x86_64-linux-gnu/libc.so.6 | grep GLIBC_
一般可以看到返回结果里没有GLIBC_2.28。
编辑apt的软件源:
sudo vim /etc/apt/sources.list
加入如下网址:
deb http://security.debian.org/debian-security buster/updates main
更新软件源:
sudo apt update
注意,这里容易出现签名无效(带有KEYEXPIRED、EXPKEYSIG)的错误,参考这篇博客,此时我们需要加入公钥:
gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 公钥
这里公钥就是上面无效的签名,一般是一串数字或者字母,如988C2166等。
然后终端提示:
gpg: download key from keyserver.ubuntu.com
gpg: key xxx: public key is imported.
……
gpg: total amount:1
gpg: xxx is imported.
然后加入:
sudo gpg --armor --export 988C2166 | sudo apt-key add -
终端可能会提示not secure,最终显示OK表示导入成功。
网上还有一些方法,比如通过
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 密钥
这种方式导入,或者访问 keyserver.ubuntu.com查找密钥新建文件导入,实测前者会提示argument not valid,后者干脆直接找不到。只有上边这种方式解决了。
解决完公钥的问题重新update一下apt的软件源,然后安装包含GLIBC_2.28的库:
sudo apt update
sudo apt install libc6
然后重新检查一下GLIBC_2.28是否已经安装成功:
strings /lib/x86_64-linux-gnu/libc.so.6 | grep GLIBC_
如果运行报错:
LibClamAV Error: cl_load: No such file or directory: /usr/local/share/clamav
Error: Can't get file status
表明需要下载病毒库。请返回第三步检查一下配置文件,是否已经指定好病毒库目录,目录下是否有下载的病毒库文件。如果并未修改配置文件或者修改了还是不生效,那么可以通过如下指令在线下载病毒库:
sudo freshclam
通过testing database中看到下载路径为/var/lib/clamav。
将下载的病毒库复制到/usr/local/share/clamav/目录下:
sudo cp /var/lib/clamav/bytecode.cvd /usr/local/share/clamav/
sudo cp /var/lib/clamav/daily.cvd /usr/local/share/clamav/
sudo cp /var/lib/clamav/main.cvd /usr/local/share/clamav/
或者也可以通过其他机器访问官网下载这3个病毒库文件,并将其上传至/usr/local/share/clamav/目录下。
如果运行报错:
LibClamAV Error: cli_loaddbdir(): No supported database files found in /usr/local/share/clamav
ERROR: Can't open file or directory
出现该错误是因为如果通过apt-install安装clamAV病毒库,则其默认路径和源码安装的病毒库路径不同,前者默认路径是/var/lib/clamav,后者是/usr/local/share/clamav。因此,解决方法是:
cd /usr/local/share/clamav
wget http://database.clamav.net/main.cvd
wget http://database.clamav.net/daily.cvd
wget http://database.clamav.net/bytecode.cvd
即将病毒库文件下载至指定文件目录下。如果出现Permission denied错误,通过
sudo chmod 777 //usr/local/share/clamav
开放该目录的写权限,最后再改成755即可。
完结撒花~感谢博文中提到的各位博主!