1. 绪论
1.1. 一些抱怨和提醒
- 由于飞牛是debian系统的整合呈现, 应用的安装也是遵循debian系统的规范, 呈现分布式安装的奇观, 一旦出错那是整个clamav系统都出错, 还导致了不能随便卸载依赖(到后期会出现一个奇怪bug, 由于依赖卸载不掉, 会导致clamav用户区的卡死, 导致无法正常识别权限, 建议叫飞牛官方来修,debian本身没有)
- 由于飞牛错综复杂的权限配置与不宽裕的软件分布模式, 导致安装的过程中clamav不可避免的会与其他系统文件产生冲突, 特别的权限的配置, 直接导致了clamav中的扫描系统处于半瘫痪状态, 需要开启实时防护功能从端口处单独建立出一个服务作为安全扫描器
1.2. 应用前论
- clamav是一个较为强大杀毒防入侵的开源应用, 本质上是个扫描器, 主要原因在于他病毒库更新的很快, 作为root安装到debian底层中可以起到很好的文件护航功能, 能起到不错的防nas遭遇挖矿病毒或文件勒索场景
- clamav拥有实时保护, 指定区域扫描等功能, 并且功能独立, 可直接结合shell脚本做出自定义目录与时间的扫描器
- 可以安装入docker, 但是不建议, 通过渗透入侵的账户不一定是你的账户, 病毒塞到哪里是黑客和病毒文件决定的, 直接安装到物理机为最好
1.3. 安装流程
flowchart LR
物理机下载部署 --> 手动升级主体 --> 指定物理机某个非系统文件夹进行文件的新配置--> 进行权限配置 --> 服务启动
1.4. 安装版本覆盖
1.0.7->1.4.2
2. 具体安装流程
2.1. 下载安装
- 去官方下载clamav1.0.8的deb包, 但不要安装
- 直接使用debian apt 安装系统库版本debian包
apt install clamav clamav-daemon # 非root用户记得加上 sudo提权
#这个是安装本体和扫描器, 但是在实际安装的时候会同时安装clamav clamav-base clamav-daemon clamav-freshclam clamdscan
# 默认安装就行, 这个部分先别管
PS: clamav本体的版本并不需要依赖包, 只沿着特定路线做
2.2. 安装包安装
dpkg -i 你的clamav文件.deb
2.3. 指定非系统文件储存区安装
- 自己创建个文件夹整合clamav数据文件, 你的飞牛clamav晴雨表就有了, 如果发现无法部署在非系统文件夹, 你现在的系统状态就无法让clamav形成实时扫描器
- 例: 创建文件夹与文件(下面这些都是要创造的)
/vol [x] /指定的文件夹/ clamd.pid
/vol [x] /指定的文件夹/ 指定的病毒文件夹
/vol [x] /指定的文件夹/ 指定的病毒文件夹/freshclam.pid
/vol [x] /指定的文件夹/指定的log文件夹
/vol [x] /指定的文件夹/指定的log文件夹/clamav.log
/vol [x] /指定的文件夹/指定的log文件夹/clamd.log
/vol [x] /指定的文件夹/指定的log文件夹/freshclam.log
- 就比如我的:
touch /vol1/1000/Security/clamav/clamd.pid
touch /vol1/1000/Security/clamav/data
touch /vol1/1000/Security/clamav/data/freshclam.pid
touch /vol1/1000/Security/clamav/log
touch /vol1/1000/Security/clamav/log/clamav.log
touch /vol1/1000/Security/clamav/log/clamd.log
touch /vol1/1000/Security/clamav/log/freshclam.log
这些都是加密前的文件路径, 给大家一点提示
2.4. 修改配置
- clamav本体和扫描器走的路径是不一样的,
/usr/local/etc
中是clamav本身的使用路径, /etc/clamav/
是扫描器以及数据库的路径, 都得改, 要不然会出现双份安装的场景
- 在修改的时候还得注意版本, debian本身1.0.7的安装模式和1.0.8--1.4.2版本的安装模式不一样
- 扫描器不能改版本, 但是本体可以直接升级安装
2.4.1. 配置文件路径
/usr/local/etc # clamav本身路径
/usr/local/etc/clamd.conf
/usr/local/etc/freshclam.conf
/etc/clamav/ # clamav 扫描库路径
/etc/clamav/clamd.conf
/etc/clamav/freshclam.conf
2.4.2. 1.0.7版本安装
2.4.2.1. 本体路径配置文件修改
cd /usr/local/etc
vim clamd.conf
#Example 注释掉
#下方内容添加至conf中
LogFile /vol [x]/指定的文件夹/指定的log文件夹/clamd.log
PidFile /vol [x]/指定的文件夹/ clamd.pid
DatabaseDirectory /vol [x]/指定的文件夹/ 指定的病毒文件夹
LogRotate yes
TCPSocket 自己设置的端口
TCPAddr 0.0.0.0 # 锁死防火墙建议0.0.0.0, 如果没有锁死建议127.0.0.1
OnAccessIncludePath /home # 设置目录, 下面也是
OnAccessIncludePath /etc
OnAccessIncludePath /var
OnAccessIncludePath /vol1
cd /usr/local/etc
vim freshclam.conf
#Example 注释掉
#下方内容添加至conf
DatabaseDirectory /vol [x] /指定的文件夹/ 指定的病毒文件夹
UpdateLogFile /vol [x] /指定的文件夹/指定的log文件夹/freshclam.log
PidFile /vol [x] /指定的文件夹/ 指定的病毒文件夹/freshclam.pid
LogRotate yes
2.4.2.2. 扫描器配置文件修改
cd /etc/clamav/
vim clamd.conf
LogFile /vol [x] /指定的文件夹/指定的log文件夹/clamav.log # 指定日志文件的位置
DatabaseDirectory /vol [x] /指定的文件夹/ 指定的病毒文件夹
LogTime yes # 是否在日志中记录时间
ScanOnAccess yes # 将通过 'clamd' 启用实时保护,以便在访问文件时对其进行扫描
OnAccessIncludePath /home # 设置目录, 下面也是
OnAccessIncludePath /etc
OnAccessIncludePath /var
OnAccessIncludePath /vol1
cd /etc/clamav/
vim freshclam.conf
DatabaseDirectory /vol [x] /指定的文件夹/ 指定的病毒文件夹 # 指定病毒数据库的存储位置
UpdateLogFile /vol [x] /指定的文件夹/指定的log文件夹/freshclam.log # 指定更新日志文件的位置
DatabaseOwner clamav # 指定病毒数据库的所有者, 在下方权限设置中
2.4.3. 1.0.8 开始多加的步骤
su root
cd /usr/local/etc
cp clamd.conf.sample clamd.conf
cp freshclam.conf.sample freshclam.conf
2.5. 权限配置
权限的配置有些繁琐, 为了避免clamav无法访问的情况, 建议都做一遍权限访问特质
useradd clamav
chown -R clamav:clamav /vol [x] /指定的文件夹/ clamd.pid
chown -R clamav:clamav /vol [x] /指定的文件夹/ 指定的病毒文件夹
chown -R clamav:clamav /vol [x] /指定的文件夹/ 指定的病毒文件夹/freshclam.pid
chown -R clamav:clamav /vol [x] /指定的文件夹/指定的log文件夹
chown -R clamav:clamav /vol [x] /指定的文件夹/指定的log文件夹/clamav.log
chown -R clamav:clamav /vol [x] /指定的文件夹/指定的log文件夹/clamd.log
chown -R clamav:clamav /vol [x] /指定的文件夹/指定的log文件夹/freshclam.log
2.6. 服务启动
- 病毒库下载:
freshclam # 先手动下载安装一次
systemctl start clamav-freshclam.service # 开始病毒库自动更新
systemctl enable clamav-freshclam.service # 开启病毒库自动更新开机启动
systemctl status clamav-freshclam.service # 查看自动运行库运行情况
- 本体服务启动:
systemctl start clamd.service # 启动本体守护线程
systemctl status clamd.service # 检查本体守护线程运行情况
systemctl enable clamd.service # 让服务器启动的时候启动本体线程服务
- 扫描器服务启动:
systemctl start clamav-daemon
systemctl status clamav-daemon
systemctl enable clamav-daemon.service
3. 问题修理
3.1. 使用freshclam显示无权限
升级包版本->1.0.8
dpkg -i 1.0.8.deb
3.2. status服务显示报错怎么办
- 第一种解决办法: 继续向上升级为1.4.2, 因为升级成的包会显示1.0.7的拒绝错误
- 第二种解决办法: 看你创建文件夹的log文件, 有文件其实就说明在正常使用, 只不过在飞牛中不显示
PS: 这就是飞牛的bug了, 明明正常运行, 但是就是要跟你报错没权限, 你自己丢个病毒特征码文件到系统中一下给你逮了, 但是飞牛就是不显示, Debian中这个流程后操作权限正常, 飞牛中就不正常, 而且1.0.7已经不提供支持了, 并且文件路径走的是一个隐藏目录, 所有导致输出报错, 当
freshclam
不报错而是正常下载的时候,其实clamav就已经开始正常运行了
3.3. systemctl start clamd.service报错无权限
飞牛系统启动了acl权限控制方案, 需要在安装病毒库与运行日志的文件夹启用clamav用户rwx权限,在检查本体服务就可以发现应用正常运行