!!! 环境说明:本次安装环境为CentOS 7环境中断外网离线安装,此安装文档适用于CentOS 7 - CentOS-stream 9(理论上支持)

一.环境安装

1.输入以下命令检查是否存在gcc编译环境:

gcc -v

如果上述命令無任何输出或者输出 找不到gcc命令,则说明无gcc环境,

2.将以下文件(gcc.tar.gz)上传至目标服务器 /usr/local/gcc 目录下

远程登录至目标服务器,进入到 上述文件,目录下执行以下命令

tar -zxvf gcc.tar.gz

解压gcc压缩包,进入gcc文件夹

3.离线安装依赖
进入gcc文件夹,执行一下命令进行依赖安装

rpm -Uvh *.rpm --nodeps --force

服务器返回以下内容没有出现ERROR以及异常信息即可

准备中...                          ################################# [100%]
正在升级/安装...
   1:pkgconfig-1:0.27.1-4.el7         ################################# [  3%]
   2:zlib-1.2.7-17.el7                ################################# [  6%]
   3:openssl-libs-1:1.0.2k-12.el7     ################################# [  9%]
   4:mpfr-3.1.1-4.el7                 ################################# [ 12%]
   5:libmpc-1.0.1-3.el7               ################################# [ 15%]
   6:cpp-4.8.5-28.el7                 ################################# [ 18%]
   7:ntpdate-4.2.6p5-28.el7.centos    ################################# [ 21%]
   8:zlib-devel-1.2.7-17.el7          ################################# [ 24%]
   9:libcom_err-devel-1.42.9-11.el7   ################################# [ 27%]
  10:libsepol-devel-2.5-8.1.el7       ################################# [ 30%]
  11:libverto-devel-0.2.5-4.el7       ################################# [ 33%]
  12:pcre-8.32-17.el7                 ################################# [ 36%]
  13:pcre-devel-8.32-17.el7           ################################# [ 39%]
  14:libselinux-devel-2.5-12.el7      ################################# [ 42%]
  15:libstdc++-devel-4.8.5-28.el7     ################################# [ 45%]
  16:keyutils-libs-devel-1.5.8-3.el7  ################################# [ 48%]
  17:krb5-devel-1.15.1-18.el7         ################################# [ 52%]
  18:kernel-headers-3.10.0-862.el7    ################################# [ 55%]
  19:glibc-headers-2.17-222.el7       ################################# [ 58%]
  20:glibc-devel-2.17-222.el7         ################################# [ 61%]
  21:gcc-4.8.5-28.el7                 ################################# [ 64%]
  22:autogen-libopts-5.18-5.el7       ################################# [ 67%]
  23:ntp-4.2.6p5-28.el7.centos        ################################# [ 70%]
  24:gcc-c++-4.8.5-28.el7             ################################# [ 73%]
  25:openssl-devel-1:1.0.2k-12.el7    ################################# [ 76%]
  26:openssl-1:1.0.2k-12.el7          ################################# [ 79%]
  27:openssl098e-0.9.8e-29.el7.centos.################################# [ 82%]
  28:tcl-1:8.5.13-8.el7               ################################# [ 85%]
  29:pcre2-utf16-10.23-2.el7          ################################# [ 88%]
  30:pcre2-10.23-2.el7                ################################# [ 91%]
正在清理/删除...
  31:openssl-1:1.0.2k-25.el7_9        ################################# [ 94%]
  32:openssl-libs-1:1.0.2k-25.el7_9   ################################# [ 97%]
  33:zlib-1.2.7-20.el7_9              ################################# [100%]

3验证安装结果

执行以下命令

gcc -v

服务器返回以下信息即为安装成功

使用内建 specs。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
目标:x86_64-redhat-linux
配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
线程模型:posix
gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC)

至此环境已经安装完毕

二.服务安装

将clamav安装包( clamav-1.1.0-rc.linux.x86_64.rpm )上传至服务器 /usr/local/clamav 目录下,
若您不使用我们提供的安装包,可以在以下地址下载到最新的clamav服务(不确定是否需要魔法)

clanmav官网下载页http://www.clamav.net/downloads
点击linux可以下拉框选择系统对应位数的安装包下载,下载之后将rpm包上传至服务器目录下

执行以下命令进行本地服务安装

 yum localinstall -y /usr/local/clamav/clamav-1.1.0-rc.linux.x86_64.rpm

没有异常日志即为安装成功
服务安装完成之后配置文件会默认保存至 /usr/local/etc/目录下,后续修改配置文件将在此文件夹下进行

三.环境配置

1.添加用户和用户组

groupadd clamav
useradd -g clamav clamav

2.创建日志目录、病毒库目录和套接字目录

#创建目录
mkdir -p /usr/local/clamav/logs
#创建病毒库目录(后续离线更新病毒库需要更改这个目录下面的三个文件 daily.cvd,bytecode.cvd,main.cvd)
mkdir -p /usr/local/clamav/update
#创建套接字目录
mkdir -p /usr/local/clamav/socket

3.手动创建日志文件

#创建服务运行日志
touch /usr/local/clamav/logs/clamd.log
#创建病毒库更新日志
touch /usr/local/clamav/logs/freshclam.log

4.文件授权,将病毒库目录,日志目录,套接字目录赋权给clamav用户及其用户组

 chown clamav:clamav /usr/local/clamav/logs/clamd.log
 chown clamav:clamav /usr/local/clamav/logs/freshclam.log
 chown clamav:clamav /usr/local/clamav/logs
 chown clamav:clamav /usr/local/clamav/update
 chown clamav:clamav /usr/local/clamav/socket

5.修改配置文件

1.复制配置文件

cp  /usr/local/etc/clamd.conf.sample /usr/local/etc/clamd.conf
cp /usr/local/etc/freshclam.conf.sample /usr/local/etc/freshclam.conf

2.修改服务配置文件,执行已下命令

vim /usr/local/etc/clamd.conf

3.将Example行进行注释(行首加上 # ),然后往下翻找到以下几项去掉注释(去掉行首的 # )
修改成如下样式

# 服务日志地址
LogFile /usr/local/clamav/logs/clamd.log
# pid服务信息文件地址
PidFile /usr/local/clamav/update/clamd.pid
# 病毒库地址
DatabaseDirectory /usr/local/clamav/update
# 套接字文件地址
LocalSocket /usr/local/clamav/socket/clamd.socket
 
# TCP port address.
# Default: no
# 服务对外端口默认3310
TCPSocket 3310
 
# TCP address.
# By default we bind to INADDR_ANY, probably not wise.
# Enable the following to provide some degree of protection
# from the outside world. This option can be specified multiple
# times if you want to listen on multiple IPs. IPv6 is now supported.
# Default: no
# 此处ip地址修改成当前部署机器的ip地址
# 绑定对外服务ip
TCPAddr 192.168.0.1
 
# Maximum length the queue of pending connections may grow to.
# Default: 200
# 连接队列数量,支持同时连接客户端数
MaxConnectionQueueLength 30
 
# Close the connection when the data size limit is exceeded.
# The value should match your MTA's limit for a maximum attachment size.
# Default: 100M
# 流最大长度(你可以理解为单次扫描的文件大小为多大)
StreamMaxLength 3000M
 
# Limit port range.
# Default: 1024
StreamMinPort 1024
# Default: 2048
StreamMaxPort 32000

4.修改病毒库配置文件

vim /usr/local/etc/freshclam.conf

5.将Example行进行注释(行首加上 # ),然后往下翻找到以下几项去掉注释(去掉行首的 # )
修改成如下样式

DatabaseDirectory /usr/local/clamav/update
UpdateLogFile /usr/local/clamav/logs/freshclam.log
PidFile /usr/local/clamav/update/freshclam.pid
DatabaseMirror database.clamav.net

6.更新环境配置文件

执行以下命令修改库文件,使配置生效

vim /etc/ld.so.conf
#在文件末尾加上这一行
/usr/local/lib64
#ESC :wq保存退出,执行下面的命令使配置生效
ldconfig

7.更新病毒库(本地导入)

1.执行以下命令进行在线病毒库更新(离线更新病毒库请移步方法2)

/usr/local/bin/freshclam

2.以下内容为离线更新病毒库文件

如果要进行离线更新病毒库请在可访问外网的机器上面访问以下三个地址下载病毒库文件,放到指定位置(本说明文档演示地址为/usr/local/clamav/update),现场实际按照需求进行修改,
注意,配置文件中的路径也当做对应的修改

主病毒库文件main.cvd https://database.clamav.net/main.cvd
代码病毒库文件bytecode.cvd https://database.clamav.net/bytecode.cvd
主病毒库更新文件daily.cvd https://database.clamav.net/daily.cvd

后续需要离线更新病毒库重复步骤2即可

8.执行以下命令开启服务

/usr/local/sbin/clamd

注意:该命令执行成功是没有成功信息返回的,没有异常信息输出则为启动成功,验证方法如下

执行以下命令

ps ln|grep clamd
#或者
ps aux|grep clamd

有内容返回指定到/usr/local/sbin/clamd服务则启动成功

9.开启防火墙(选配)

如果应用和clamav服务部署在一台机器上可以忽略此步骤,如果应用服务和clamav服务不在同一台服务器上则必须执行以下操作
执行以下命令开启防火墙端口

#如果使用的是firewalld服务请执行下列命令
#添加3310端口至白名单
firewall-cmd --zone=public --add-port=3310/tcp --permanent
#查看3310端口是否开放
firewall-cmd --query-port=3310/tcp
#重启防火墙使配置生效
firewall-cmd --reload

#如果使用的是iptables服务请执行以下命令
#开放3310端口
iptables -A INPUT -p tcp --dport 3310 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 3310 -j ACCEPT
#保存并重启iptables服务
service iptables save & service iptables restart
#查看已经开放的端口
iptables -L -n