summarylogtreecommitdiffstats
path: root/nessus.install
blob: 4b91e9d7e51eb4050761c388635400b8a6f25f06 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
NESSUS_NAME="Nessus"
NESSUS_PRODUCT="nessus"
NESSUS_PREFIX="/opt/nessus"
NESSUS_SERVICE_NAME="nessusd"
NESSUS_SERVICE_BIN="${NESSUS_PREFIX}/sbin/nessus-service"
NESSUSD_BIN="${NESSUS_PREFIX}/sbin/nessusd"

pre_install() {
  if [[ -f /usr/lib/systemd/system/${NESSUS_SERVICE_NAME}.service ]]; then
    systemctl stop ${NESSUS_SERVICE_NAME}.service
  fi

  # Because we did not used to shut down on uninstall, we might have some random nessusd's running on the system (see NES-3585)
  # We therefore need to do a killall before we install a new nessusd

  # Look at all the proc entries and kill all nessus-service and nessusd processes with the correct path
  for dir in /proc/[0-9]*; do
    full_exe_path=$(readlink ${dir}/exe)
    pid=$(basename ${dir})
    if [[ "$full_exe_path" == "$NESSUS_SERVICE_BIN"* || "$full_exe_path" == "$NESSUSD_BIN"* ]]; then
      kill $pid
    fi
  done
}

post_install() {
  if [ "$NESSUS_PRODUCT" != "agent" ]; then
    echo "Unpacking $NESSUS_NAME Core Components..."
    ${NESSUS_PREFIX}/sbin/nessuscli install ${NESSUS_PREFIX}/var/nessus/plugins-core.tar.gz
  fi

  test -f ${NESSUS_PREFIX}/etc/nessus/nessusd.conf || ${NESSUS_PREFIX}/sbin/nessusd -g

  test -f ${NESSUS_PREFIX}/etc/nessus/nessus-fetch.rc && {
    echo "Fetching the newest plugins from nessus.org..."
    rm -f ${NESSUS_PREFIX}/lib/nessus/plugins/MD5
    ${NESSUS_PREFIX}/sbin/nessuscli update --plugins-only
    ${NESSUS_PREFIX}/sbin/nessusd -R
  }

  if [ "$NESSUS_PRODUCT" = "agent" ]; then
    echo " - First, link this agent to the Nessus Manager with the '$NESSUS_PREFIX/sbin/nessuscli agent' command."
    echo "   Type '$NESSUS_PREFIX/sbin/nessuscli agent help' for more info."
    echo " - You can start $NESSUS_NAME by typing systemctl start $NESSUS_SERVICE_NAME"
  else
    echo
    echo " - You can start $NESSUS_NAME by typing systemctl start $NESSUS_SERVICE_NAME"
    echo " - Then go to https://"$(hostname)":8834/ to configure your scanner"
    echo
  fi

  echo " - See https://wiki.archlinux.org/index.php/Nessus for documentation."
  echo
  ldconfig
}

pre_remove() {
  if [[ -f /usr/lib/systemd/system/${NESSUS_SERVICE_NAME}.service ]]; then
    systemctl stop ${NESSUS_SERVICE_NAME}.service
  fi
}

post_remove() {
  test -f ${NESSUS_PREFIX}/sbin/nessusd || { \
    rm -f ${NESSUS_PREFIX}/var/nessus/plugins-code.db
    rm -f ${NESSUS_PREFIX}/var/nessus/plugins-desc.db
  }
}