|
|
|
@ -64,61 +64,19 @@ Common configure options
|
|
|
|
|
|
|
|
|
|
Enables `DPDK <https://www.dpdk.org/>`_ packet capture method.
|
|
|
|
|
|
|
|
|
|
Dependencies
|
|
|
|
|
^^^^^^^^^^^^
|
|
|
|
|
|
|
|
|
|
For Suricata's compilation you'll need the following libraries and their development headers installed::
|
|
|
|
|
|
|
|
|
|
libjansson, libpcap, libpcre2, libyaml, zlib
|
|
|
|
|
|
|
|
|
|
The following tools are required::
|
|
|
|
|
|
|
|
|
|
make gcc (or clang) pkg-config rustc cargo
|
|
|
|
|
|
|
|
|
|
Rust support::
|
|
|
|
|
|
|
|
|
|
rustc, cargo
|
|
|
|
|
|
|
|
|
|
Some distros don't provide or provide outdated Rust packages.
|
|
|
|
|
Rust can also be installed directly from the Rust project itself::
|
|
|
|
|
|
|
|
|
|
1) Install Rust https://www.rust-lang.org/en-US/install.html
|
|
|
|
|
2) Install cbindgen - if the cbindgen is not found in the repository
|
|
|
|
|
or the cbindgen version is lower than required, it can be
|
|
|
|
|
alternatively installed as: cargo install --force cbindgen
|
|
|
|
|
3) Make sure the cargo path is within your PATH environment
|
|
|
|
|
e.g. echo 'export PATH=”${PATH}:~/.cargo/bin”' >> ~/.bashrc
|
|
|
|
|
e.g. export PATH="${PATH}:/root/.cargo/bin"
|
|
|
|
|
Dependencies and compilation
|
|
|
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
|
|
Ubuntu/Debian
|
|
|
|
|
"""""""""""""
|
|
|
|
|
|
|
|
|
|
.. note:: The following instructions require ``sudo`` to be installed.
|
|
|
|
|
|
|
|
|
|
Minimal::
|
|
|
|
|
|
|
|
|
|
# Installed Rust and cargo as indicated above
|
|
|
|
|
sudo apt-get install build-essential git libjansson-dev libpcap-dev \
|
|
|
|
|
libpcre2-dev libtool libyaml-dev make pkg-config zlib1g-dev
|
|
|
|
|
# On most distros installing cbindgen with package manager should be enough
|
|
|
|
|
sudo apt-get install cbindgen # alternative: cargo install --force cbindgen
|
|
|
|
|
|
|
|
|
|
Recommended::
|
|
|
|
|
|
|
|
|
|
# Installed Rust and cargo as indicated above
|
|
|
|
|
sudo apt-get install autoconf automake build-essential ccache clang curl git \
|
|
|
|
|
gosu jq libbpf-dev libcap-ng0 libcap-ng-dev libelf-dev \
|
|
|
|
|
libevent-dev libgeoip-dev libhiredis-dev libjansson-dev \
|
|
|
|
|
libmagic-dev libnet1-dev libpcap-dev libpcre2-dev libtool \
|
|
|
|
|
libyaml-0-2 libyaml-dev m4 make pkg-config python3 \
|
|
|
|
|
python3-dev python3-yaml sudo zlib1g zlib1g-dev
|
|
|
|
|
cargo install --force cbindgen
|
|
|
|
|
|
|
|
|
|
Extra for iptables/nftables IPS integration::
|
|
|
|
|
|
|
|
|
|
sudo apt-get install libnetfilter-queue-dev libnetfilter-queue1 \
|
|
|
|
|
libnetfilter-log-dev libnetfilter-log1 \
|
|
|
|
|
libnfnetlink-dev libnfnetlink0
|
|
|
|
|
.. literalinclude:: ../../scripts/docs-ubuntu-debian-minimal-build.sh
|
|
|
|
|
:caption: Minimal dependencies for Ubuntu/Debian
|
|
|
|
|
:language: bash
|
|
|
|
|
:start-after: # install-guide-documentation tag start: Minimal dependencies
|
|
|
|
|
:end-before: # install-guide-documentation tag end: Minimal dependencies
|
|
|
|
|
|
|
|
|
|
CentOS, AlmaLinux, RockyLinux, Fedora, etc
|
|
|
|
|
""""""""""""""""""""""""""""""""""""""""""
|
|
|
|
@ -130,46 +88,50 @@ repository in most distros. You can enable it possibly by
|
|
|
|
|
one of the following ways::
|
|
|
|
|
|
|
|
|
|
sudo dnf -y update
|
|
|
|
|
sudo dnf -y install dnf-plugins-core
|
|
|
|
|
# AlmaLinux 8
|
|
|
|
|
sudo dnf -y install epel-release dnf-plugins-core
|
|
|
|
|
# AlmaLinux 8 / RockyLinux 8
|
|
|
|
|
sudo dnf config-manager --set-enabled powertools
|
|
|
|
|
# AlmaLinux 9
|
|
|
|
|
# AlmaLinux 9 / RockyLinux 9
|
|
|
|
|
sudo dnf config-manager --set-enable crb
|
|
|
|
|
# Oracle Linux 8
|
|
|
|
|
sudo dnf config-manager --set-enable ol8_codeready_builder
|
|
|
|
|
# Oracle Linux 9
|
|
|
|
|
sudo dnf config-manager --set-enable ol9_codeready_builder
|
|
|
|
|
|
|
|
|
|
Minimal::
|
|
|
|
|
|
|
|
|
|
# Installed Rust and cargo as indicated above
|
|
|
|
|
sudo dnf install -y gcc gcc-c++ git jansson-devel libpcap-devel libtool \
|
|
|
|
|
libyaml-devel make pcre2-devel which zlib-devel
|
|
|
|
|
cargo install --force cbindgen
|
|
|
|
|
|
|
|
|
|
Recommended::
|
|
|
|
|
|
|
|
|
|
# Installed Rust and cargo as indicated above
|
|
|
|
|
sudo dnf install -y autoconf automake diffutils file-devel gcc gcc-c++ git \
|
|
|
|
|
jansson-devel jq libcap-ng-devel libevent-devel \
|
|
|
|
|
libmaxminddb-devel libnet-devel libnetfilter_queue-devel \
|
|
|
|
|
libnfnetlink-devel libpcap-devel libtool libyaml-devel \
|
|
|
|
|
lua-devel lz4-devel make pcre2-devel pkgconfig \
|
|
|
|
|
python3-devel python3-sphinx python3-yaml sudo which \
|
|
|
|
|
zlib-devel
|
|
|
|
|
cargo install --force cbindgen
|
|
|
|
|
.. literalinclude:: ../../scripts/docs-almalinux9-minimal-build.sh
|
|
|
|
|
:caption: Minimal dependencies for RPM-based distributions
|
|
|
|
|
:language: bash
|
|
|
|
|
:start-after: # install-guide-documentation tag start: Minimal RPM-based dependencies
|
|
|
|
|
:end-before: # install-guide-documentation tag end: Minimal RPM-based dependencies
|
|
|
|
|
|
|
|
|
|
Compilation
|
|
|
|
|
^^^^^^^^^^^
|
|
|
|
|
"""""""""""
|
|
|
|
|
|
|
|
|
|
Follow these steps from your Suricata directory::
|
|
|
|
|
|
|
|
|
|
./scripts/bundle.sh
|
|
|
|
|
./autogen.sh
|
|
|
|
|
./configure # you may want to add additional parameters here
|
|
|
|
|
# ./configure --help to get all available parameters
|
|
|
|
|
make -j8 # j is for paralleling, you may de/increase depending on your CPU
|
|
|
|
|
# j is for adding concurrency to make; the number indicates how much
|
|
|
|
|
# concurrency so choose a number that is suitable for your build system
|
|
|
|
|
make -j8
|
|
|
|
|
make install # to install your Suricata compiled binary
|
|
|
|
|
# make install-full - installs configuration and rulesets as well
|
|
|
|
|
|
|
|
|
|
Rust support
|
|
|
|
|
""""""""""""
|
|
|
|
|
|
|
|
|
|
Rust packages can be found in package managers but some distributions
|
|
|
|
|
don't provide Rust or provide outdated Rust packages.
|
|
|
|
|
In case of insufficient version you can install Rust directly
|
|
|
|
|
from the Rust project itself::
|
|
|
|
|
|
|
|
|
|
1) Install Rust https://www.rust-lang.org/en-US/install.html
|
|
|
|
|
2) Install cbindgen - if the cbindgen is not found in the repository
|
|
|
|
|
or the cbindgen version is lower than required, it can be
|
|
|
|
|
alternatively installed as: cargo install --force cbindgen
|
|
|
|
|
3) Make sure the cargo path is within your PATH environment
|
|
|
|
|
echo 'export PATH="~/.cargo/bin:${PATH}"' >> ~/.bashrc
|
|
|
|
|
export PATH="~/.cargo/bin:${PATH}"
|
|
|
|
|
|
|
|
|
|
Auto-Setup
|
|
|
|
|
^^^^^^^^^^
|
|
|
|
|