Kali如何自动重启OpenVAS?

14 人参与

每次重启kali系统都要手动启动OpenVAS服务,这种重复操作对安全测试人员来说确实是个负担。想象一下,凌晨三点紧急进行渗透测试时,还要先花时间启动漏洞扫描服务,这种体验实在不够优雅。

系统服务的本质

OpenVAS在kali中默认不会随系统自启动,这与其服务架构密切相关。OpenVAS由多个组件构成:openvassd(扫描引擎)、gsad(Web接口)和openvasmd(管理后台),这些组件需要按照特定顺序启动。手动执行openvas-start命令实际上是在协调这些服务的启动顺序。

systemd服务配置方案

最可靠的方案是利用systemd创建自定义服务。首先需要创建一个服务文件:

sudo nano /etc/systemd/system/openvas.service

文件内容应该包含完整的服务定义:

[Unit]
Description=OpenVAS Vulnerability Scanner
After=network.target

[Service]
Type=forking
ExecStart=/usr/bin/openvas-start
ExecStop=/usr/bin/openvas-stop
TimeoutSec=300

[Install]
WantedBy=multi-user.target

保存后执行sudo systemctl enable openvas.service启用服务,下次系统启动时OpenVAS就会自动运行。

crontab的巧妙运用

如果不想修改系统服务,crontab提供了另一种选择。在终端输入crontab -e,添加这行配置:

@reboot sleep 60 && /usr/bin/openvas-start

这里的60秒延迟确保网络服务完全就绪后再启动OpenVAS,避免因依赖问题导致启动失败。

监控与故障排查

自动化启动后,监控变得尤为重要。可以创建一个简单的健康检查脚本:

#!/bin/bash
if ! pgrep -x "gsad" > /dev/null; then
    /usr/bin/openvas-start
fi

将这个脚本加入crontab,每分钟检查一次服务状态,确保OpenVAS持续可用。

性能考量

自动启动虽然方便,但需要考虑资源消耗。OpenVAS在空闲时占用约2GB内存,如果系统资源紧张,可以通过修改服务文件添加启动参数来限制资源使用。

选择哪种方案取决于具体需求。系统服务方案更适合专用测试环境,而crontab方案在个人设备上更灵活。无论哪种方式,自动化后的OpenVAS都能在渗透测试中提供更流畅的体验。

参与讨论

14 条评论
  • 社恐小点点

    crontab里加sleep 60挺机智的

    回复
  • DesertSong

    有人试过那个健康检查脚本吗?

    回复
  • 阿敏

    资源占用2G有点大啊

    回复
  • Ghostfyre

    凌晨三点还要手动启动也太真实了😂

    回复
  • 企鹅博士

    看不懂,太技术了

    回复
  • Eldertide

    直接用systemctl enable就行?

    回复
  • 灵雾徘徊

    要是服务启动失败咋排查?

    回复
  • 一只废喵

    终于不用每次敲命令了

    回复
  • 鬼火浮灯

    这个systemd方法靠谱,之前搞过类似的

    回复
  • 透明的记忆迷宫

    有没有更省内存的方案?

    回复
  • 洋葱圈魔法师

    半夜测试还得手动启动,太折腾了

    回复
    1. ObsidianHaze

      @ 洋葱圈魔法师 同感,半夜起来搞这个太折磨了

      回复
  • NatsuFlame

    crontab那个延迟60秒很关键

    回复
  • 月照伊

    资源消耗那部分挺有用的

    回复