Updating

soup

We recommend using our soup script to update. Soup will automatically install all available package updates (from both Ubuntu and Security Onion) and all updated Docker images.

sudo soup

Please pay attention to the output of this command as it may request that you take specific action, such as manually restarting services. Also refer to the relevant blog entry for the update at https://blog.securityonion.net as there may be additional information there.

Snort/Suricata

Snort package upgrades will back up each of your existing snort.conf files to snort.conf.bak and migrate your HOME_NET and EXTERNAL_NET variables.

Suricata package upgrades will back up each of your existing suricata.yaml files to suricata.yaml.bak and migrate your HOME_NET and EXTERNAL_NET variables.

You’ll then need to do the following:

  • re-apply any other local customizations to your snort.conf/suricata.yaml file(s)

  • update ruleset and restart Snort/Suricata as follows:

    sudo rule-update
    

Zeek

Zeek package upgrades will attempt to migrate your Zeek config. You should double-check your config and see if there are any local customizations that you need to manually re-apply. Then restart Zeek as follows:

sudo so-zeek-restart

Elastic

If soup upgrades the Elastic stack, it should automatically reload your Kibana dashboards. If for some reason this fails and Kibana is not showing any dashboards, then simply run:

sudo so-elastic-configure-kibana

If you’ve previously added any external Elastic components (such as filebeat, winlogbeat, etc.), be sure to upgrade them to match the version of your upgraded Elastic components.

Wazuh

Wazuh package upgrades will back up /var/ossec/etc/ossec.conf and put the new ossec.conf in place. You’ll then need to do the following:

  • re-apply any other local customizations to /var/ossec/etc/ossec.conf

  • restart Wazuh as follows:

    sudo so-ossec-restart
    
  • update any existing OSSEC/Wazuh agents to the Wazuh agent version matching your Wazuh server version

MySQL

If you get any errors relating to MySQL, please see the MySQL-Upgrade-Errors section.

Initiating an update over SSH

If you’re updating your Security Onion box over an SSH connection and your connection drops, then your update process may be left in an inconsistent state. It is therefore recommended to run byobu so that your session will continue to run on the Security Onion box even if your connection drops. Byobu is very handy and we recommend running it all the time to avoid forgetting about it before an update.

# install byobu
sudo apt-get install byobu

# enable byobu
byobu-enable

# you're now ready to update

For more information about byobu, please see https://help.ubuntu.com/community/Byobu.

Distributed deployments

If you have a distributed deployment with a master server and separate sensor boxes and/or storage nodes, always update the master server first before updating other boxes. Then make sure to update the remaining boxes shortly thereafter. This will help to ensure that all boxes in your deployment are running the same code versions and help to avoid any incompatibilities.

Using salt and soup to update your entire deployment

salt and soup

Content Inspection

If your Security Onion box(es) go through a firewall, proxy, or other network security device that does content inspection, you may need to add an exception for ppa.launchpad.net.

Standard Ubuntu package management tools

The soup command described above is the recommended method to install updates. If you instead choose to use standard Ubuntu package management tools to install updates, there are some caveats to be aware of:

  • Docker - Ubuntu package management tools don’t update our Docker images (used for the Elastic Stack currently)

  • MySQL - if you’ve already run Setup, please see the recommended procedure for updating the MySQL packages.

  • PF-RING and new kernel packages
    You may be prompted to update your kernel packages and PF-RING at the same time. If you do so, the PF-RING kernel module may get built for your current kernel and not for the newly installed kernel and upon reboot services will fail. To avoid this, you should install just the PF-RING kernel module by itself and then install the kernel and any other remaining package updates. Here’s a one-liner that will do that:
    sudo apt-get update ; sudo apt-get install securityonion-pfring-module ; sudo apt-get dist-upgrade
    

    If you accidentally install both the kernel and PF-RING packages at the same time and then reboot and find out that PF-RING services (Snort and Suricata) are failing, you can reinstall the securityonion-pfring-module package:

    sudo apt-get install --reinstall securityonion-pfring-module
    

    Security Onion 14.04

    Please note: If you’re still running the old Security Onion 14.04, soup will continue to install Ubuntu updates until Ubuntu stops releasing updates for 14.04. However, there won’t be any more Security Onion updates for version 14.04 as all development will be on version 16.04 moving forward.

Upgrades

To upgrade from Security Onion 14.04 to Security Onion 16.04, please see the Upgrading-from-14.04-to-16.04 section.