如何解决安全狗安装依赖环境缺失的问题?
美国、香港服务器
如何解决安全狗安装依赖环境缺失的问题?
10-28 来源:
一、CentOS7(最稳,优先推荐用这个系统装安全狗)
安全狗原生适配 CentOS7,自带 python2,依赖补全命令(root 执行)
# 安装编译依赖
yum install -y gcc make kernel-devel libpcap-devel psmisc pciutils lsof
# 关闭selinux
setenforce 0
sed -i "s/^SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
# 关闭firewalld(和安全狗防火墙冲突)
systemctl stop firewalld
systemctl disable firewalld
检查 python2:CentOS7 默认自带,`python -V` 一般就是 python2.7,直接运行`./install.py`即可
## 二、CentOS Stream9 补缺失依赖(兼容尝试,仅适合想试一下)
CentOS9 默认只有 python3,没有 python2,而且包管理器是 dnf
# 1、安装编译工具、运行依赖
dnf install -y gcc make kernel-devel libpcap-devel psmisc pciutils lsof tar wget
# 2、安装python2(安全狗安装脚本必须python2)
dnf install -y python2
# 把python命令临时指向python2(安装完安全狗后建议改回去)
alternatives --set python /usr/bin/python2
# 验证:python -V 输出 Python 2.7.x
关闭冲突组件:
# 临时关闭SELinux
setenforce 0
# 永久关闭SELinux(可选)
sed -i "s/^SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
# 关闭firewalld,安全狗使用iptables
systemctl stop firewalld
systemctl disable firewalld
CentOS9 这里有两个隐藏大坑:
1. `kernel-devel`版本必须和当前运行内核完全一致
uname -r #查看当前内核版本
dnf install -y kernel-devel-$(uname -r)
如果源里面没有对应版本的 kernel-devel,直接编译失败。
2. SecureBoot 开启的情况下,就算编译出驱动模块,也无法加载,需要在 VPS 后台关闭 SecureBoot
## 三、安装时提示【某个命令不存在】单独处理
- killall:包名 `psmisc`
- lspci:包名 `pciutils`
- lsof:包名 `lsof`
- tar/wget:`tar wget`
- libpcap:`libpcap-devel`
## 四、依赖补完之后,依然失败的常见提示
1. `make error / module build failed`
**不是依赖问题!是内核不兼容,安全狗驱动不支持 5.x 内核,CentOS9 基本无解,直接放弃**
2. `ImportError: No module named xxx`
python2 缺少模块,CentOS9 的 python2 环境很残缺,很多 python 模块源里已经不提供,很难补齐
3. 安装包解压报错:安装包损坏,重新 wget 下载
rm -rf safedog_linux64.tar.gz
wget http://down.safedog.cn/safedog_linux64.tar.gz
## 五、重要的收尾(CentOS9 如果尝试失败)
既然安全狗对 CentOS9 兼容性很差,给你替代方案,功能对标安全狗:
- firewalld:四层防火墙、IP 黑白名单、端口管控
- fail2ban:SSH、宝塔登录防暴力破解(对标安全狗远程登录防护)
- 宝塔 Nginx 防火墙:Web WAF、CC、注入拦截
- Cloudflare:外层 DDoS、隐藏源 IP
三二互联专业提供香港VPS,美国VPS主机,香港云服务器租用等业务香港美国到大陆CN2 GIA速度最快