kalilinux 2024.01 安装openvas(gvm)发现ospd-openvas服务启动问题解决记录

kalilinux 2024.01 安装openvas(gvm)发现ospd-openvas服务启动问题解决记录

环境:

系统:kalilinux-2024.01

操作平台:vmware-workstation 17pro

软件:gvm 23.11.0

引用问题解决出处链接:

https://forum.greenbone.net/t/latest-version-on-kali-fails-to-start/17504/15

https://blog.csdn.net/lyace2010/article/details/131887536

安装简易过程:
1,更新kali:
	sudo apt update && sudo apt upgrade -y

2,安装openvas:
	sudo apt install gvm -y

3,初始化配置:
	sudo gvm-setup #初始化过程会比较漫长

4,检查gvm安装检查:
	sudo gvm-check-setup
问题:

在这里插入图片描述

└─$ journalctl -xeu ospd-openvas.service
Apr 26 10:00:11 serve-the-people ospd-openvas[526906]:   File "/usr/bin/ospd-openvas", line 8, in <module>
Apr 26 10:00:11 serve-the-people ospd-openvas[526906]:     sys.exit(main())
Apr 26 10:00:11 serve-the-people ospd-openvas[526906]:              ^^^^^^
Apr 26 10:00:11 serve-the-people ospd-openvas[526906]:   File "/usr/lib/python3/dist-packages/ospd_openvas/daemon.py", line 1245, in main
Apr 26 10:00:11 serve-the-people ospd-openvas[526906]:     daemon_main('OSPD - openvas', OSPDopenvas, NotusParser())
Apr 26 10:00:11 serve-the-people ospd-openvas[526906]:   File "/usr/lib/python3/dist-packages/ospd/main.py", line 152, in main
Apr 26 10:00:11 serve-the-people ospd-openvas[526906]:     daemon.init(server)
Apr 26 10:00:11 serve-the-people ospd-openvas[526906]:   File "/usr/lib/python3/dist-packages/ospd_openvas/daemon.py", line 501, in init
Apr 26 10:00:11 serve-the-people ospd-openvas[526906]:     client = MQTTClient(
Apr 26 10:00:11 serve-the-people ospd-openvas[526906]:              ^^^^^^^^^^^
Apr 26 10:00:11 serve-the-people ospd-openvas[526906]:   File "/usr/lib/python3/dist-packages/ospd_openvas/messaging/mqtt.py", line 39, in __init__
Apr 26 10:00:11 serve-the-people ospd-openvas[526906]:     super().__init__(client_id=client_id, protocol=mqtt.MQTTv5)
Apr 26 10:00:11 serve-the-people ospd-openvas[526906]: TypeError: Client.__init__() missing 1 required positional argument: 'callback_api_version'
Apr 26 10:00:11 serve-the-people ospd-openvas[526906]: Exception ignored in atexit callback: <function exit_cleanup at 0x7fd2cf330f40>
Apr 26 10:00:11 serve-the-people ospd-openvas[526906]: Traceback (most recent call last):
Apr 26 10:00:11 serve-the-people ospd-openvas[526906]:   File "/usr/lib/python3/dist-packages/ospd/main.py", line 74, in exit_cleanup
Apr 26 10:00:11 serve-the-people ospd-openvas[526906]:     sys.exit()
Apr 26 10:00:11 serve-the-people ospd-openvas[526906]: SystemExit:
Apr 26 10:00:11 serve-the-people ospd-openvas[526906]: Exception ignored in: <function Client.__del__ at 0x7fd2cd8ac5e0>
Apr 26 10:00:11 serve-the-people ospd-openvas[526906]: Traceback (most recent call last):
Apr 26 10:00:11 serve-the-people ospd-openvas[526906]:   File "/usr/lib/python3/dist-packages/paho/mqtt/client.py", line 874, in __del__
Apr 26 10:00:11 serve-the-people ospd-openvas[526906]:     self._reset_sockets()
Apr 26 10:00:11 serve-the-people ospd-openvas[526906]:   File "/usr/lib/python3/dist-packages/paho/mqtt/client.py", line 1133, in _reset_sockets
Apr 26 10:00:11 serve-the-people ospd-openvas[526906]:     self._sock_close()
Apr 26 10:00:11 serve-the-people ospd-openvas[526906]:   File "/usr/lib/python3/dist-packages/paho/mqtt/client.py", line 1119, in _sock_close
Apr 26 10:00:11 serve-the-people ospd-openvas[526906]:     if not self._sock:
Apr 26 10:00:11 serve-the-people ospd-openvas[526906]:            ^^^^^^^^^^
Apr 26 10:00:11 serve-the-people ospd-openvas[526906]: AttributeError: 'MQTTClient' object has no attribute '_sock'
Apr 26 10:00:11 serve-the-people systemd[1]: ospd-openvas.service: Can't open PID file /run/ospd/ospd-openvas.pid (yet?) after start: No such file or directory
Apr 26 10:00:11 serve-the-people systemd[1]: ospd-openvas.service: Failed with result 'protocol'.
░░ Subject: Unit failed
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░ 
░░ The unit ospd-openvas.service has entered the 'failed' state with result 'protocol'.
Apr 26 10:00:11 serve-the-people systemd[1]: Failed to start ospd-openvas.service - OSPd Wrapper for the OpenVAS Scanner (ospd-openvas).
░░ Subject: A start job for unit ospd-openvas.service has failed
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░ 
░░ A start job for unit ospd-openvas.service has finished with a failure.
░░ 
░░ The job identifier is 7625 and the job result is failed.
Apr 26 10:00:11 serve-the-people systemd[1]: ospd-openvas.service: Consumed 1.122s CPU time.
░░ Subject: Resources consumed by unit runtime
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░ 
░░ The unit ospd-openvas.service completed and consumed the indicated resources.
lines 141-189/189 (END)

解决:
方法:在greenbone的GitHub下载mqtt.py覆盖kali /usr/lib/python3/dist-packages/库名/messaging 的两处,库分别是notus和ospd-openvas
链接:1,https://github.com/greenbone/notus-scanner/blob/main/notus/scanner/messaging/mqtt.py
	 2,https://github.com/greenbone/ospd-openvas/blob/main/ospd_openvas/messaging/mqtt.py
修改kalilinux路径:
	1,/usr/lib/python3/dist-packages/notus/scanner/messaging 
	2,/usr/lib/python3/dist-packages/ospd_openvas/messaging
根据链接下载对应的mqtt.py对要修改路径进行覆盖即可;
然后再次允许 sudo gvm-check-setup
sudo greenbone-feed-sync --type all

修改openvas初始密码及允许从其他设备访问:
sudo runuser -u _gvm -- gvmd --user=admin --new-password=password #admin填入你想要更改的用户名,最后的password填你要设置的密码

sudo sed -i 's/127.0.0.1/0.0.0.0/g' /lib/systemd/system/gsad.service
sudo gvm-stop
sudo systemctl daemon-reload
sudo gvm-start
更新升级漏洞库
sudo gvm-feed-update
扫描出现问题:

在这里插入图片描述

解决:
获取扫描仪id:
sudo runuser -u _gvm -- gvmd --get-scanners #会出现两id, 只复制OpenVAS id即可
获取用户id:
sudo runuser -u _gvm -- gvmd --get-users --verbose
修改扫描仪:
sudo runuser -u _gvm -- gvmd --modify-scanner [scanner id] --value [user id]

出现Scanner modified 即修改成功

md --get-users --verbose
修改扫描仪:
sudo runuser -u _gvm – gvmd --modify-scanner [scanner id] --value [user id]

出现Scanner modified 即修改成功
``

$ sudo gvm-setup [sudo] wangyichen 的密码: [>] Starting PostgreSQL service [>] Creating GVM's certificate files [>] Creating PostgreSQL database [i] User _gvm already exists in PostgreSQL [i] Database gvmd already exists in PostgreSQL [i] Role DBA already exists in PostgreSQL [*] Applying permissions NOTICE: role "_gvm" has already been granted membership in role "dba" by role "postgres" GRANT ROLE [i] Extension uuid-ossp already exists for gvmd database [i] Extension pgcrypto already exists for gvmd database [i] Extension pg-gvm already exists for gvmd database [>] Migrating database [>] Checking for GVM admin user [*] Configure Feed Import Owner [*] Update GVM feeds Running as root. Switching to user '_gvm' and group '_gvm'. Trying to acquire lock on /var/lib/openvas/feed-update.lock Acquired lock on /var/lib/openvas/feed-update.lock ⠹ Downloading Notus files from rsync://feed.community.greenbone.net/community/vulnerability-feed/22.04/vt-data/notus/ to /var/lib/notus ⠹ Downloading NASL files from rsync://feed.community.greenbone.net/community/vulnerability-feed/22.04/vt-data/nasl/ to /var/lib/openvas/plugins Releasing lock on /var/lib/openvas/feed-update.lock Trying to acquire lock on /var/lib/gvm/feed-update.lock /var/lib/gvm/feed-update.lock is locked by another process. Waiting 5 seconds before next try. Trying to acquire lock on /var/lib/gvm/feed-update.lock /var/lib/gvm/feed-update.lock is locked by another process. Waiting 5 seconds before next try. Trying to acquire lock on /var/lib/gvm/feed-update.lock /var/lib/gvm/feed-update.lock is locked by another process. Waiting 5 seconds before next try. Trying to acquire lock on /var/lib/gvm/feed-update.lock /var/lib/gvm/feed-update.lock is locked by another process. Waiting 5 seconds before next try. Trying to acquire lock on /var/lib/gvm/feed-update.lock
03-09
<think>好的,用户遇到了GVM设置过程中锁文件的问题,具体是/var/lib/gvm/feed-update.lock被另一个进程锁定。我需要根据提供的引用信息和系统知识来思考解决方案。 首先,锁文件通常用于防止多个进程同时修改同一资源。如果之前的进程异常终止,锁文件可能未被正确删除,导致后续操作失败。用户提到的引用中有关于重新安装和修改配置的步骤,但可能未涉及锁文件处理。 接下来,我需要检查可能的解决方法。常见的处理方式包括手动删除锁文件,但需要先确认没有正在运行的进程。查看引用中的命令,比如使用ps aux | grep gvm查找相关进程,或者用lsof检查锁文件被哪个进程占用。如果发现残留进程,应该终止它们后再删除锁文件。 另外,用户可能已经尝试过sudo gvm-feed-update,但报错。引用中提到修改权限,比如chmod 666 /var/log/gvm/openvas.log,但锁文件问题可能需要不同的处理。同时,引用[5]提到Kali版本的问题,可能需要检查系统兼容性或更新GVM。 可能的步骤是:1. 检查并终止相关进程;2. 删除锁文件;3. 确保权限正确;4. 重新运行gvm-setup或feed-update。此外,可能需要重启服务或系统,如引用中的systemctl daemon-reload和openvas-start。 需要提醒用户谨慎操作,避免误删重要文件,并建议备份数据。如果问题依旧,可能需要重新安装GVM,如引用[3]中的安装步骤。</think>### 逐步解决方案 #### 问题描述 GVM在设置过程中因锁文件`/var/lib/gvm/feed-update.lock`被锁定而无法继续,通常是因为某个进程异常终止未释放锁。 --- #### 步骤1:确认进程状态 **检查是否有正在运行的GVM相关进程**: ```bash ps aux | grep -E "gvm|openvas|gsad" ``` - 如果存在残留进程(如`gvm-feed-update`或`gvmd`),记录其PID(例如`1234`),执行终止命令: ```bash sudo kill -9 1234 ``` --- #### 步骤2:手动删除锁文件 **删除锁文件并重置权限**: ```bash sudo rm -f /var/lib/gvm/feed-update.lock sudo chmod -R 775 /var/lib/gvm/ ``` - 注意:直接删除锁文件可能导致数据不一致,需确保无活跃进程[^2][^3]。 --- #### 步骤3:重启GVM服务 **重新加载服务启动**: ```bash sudo systemctl daemon-reload sudo systemctl restart gvm.service gvmd.service ``` - 如果服务启动失败,检查日志: ```bash tail -f /var/log/gvm/* ``` --- #### 步骤4:强制更新漏洞库 **手动触发更新**: ```bash sudo -u gvm greenbone-feed-sync --type SCAP sudo gvm-feed-update ``` - 若报错持续,尝试修复数据库: ```bash sudo runuser -u postgres -- /usr/share/openvas/rebuild_postgres_database.sh ``` --- #### 步骤5:彻底重装(终极方案) **卸载并重新安装GVM**: ```bash sudo apt purge gvm* openvas* -y sudo rm -rf /var/lib/gvm /etc/gvm sudo apt install gvm -y sudo gvm-setup ``` - 此步骤会清除所有配置,需谨慎操作[^5]。 --- ### 关键引用说明 1. **锁文件冲突**:GVM的漏洞库更新进程异常终止时,锁文件未释放,需手动清理[^2]。 2. **权限问题**:GVM组件需特定用户权限(如`gvm`用户),权限错误可能导致进程崩溃[^3]。 3. **Kali兼容性**:Kali 2021+版本的内核与GVM存在兼容性问题,需检查官方补丁或降级。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值