Ubuntu Snort3 Development Environment
222
A Docker-based development environment for building and testing Snort 3 (Snort++) on Ubuntu 24.04 LTS. This container includes all necessary dependencies for compiling Snort 3, libDAQ, and running unit tests.
docker build -t ubuntu-snort3-dev .
You can specify a different Ubuntu version using the build argument:
docker build --build-arg UBUNTU_VERSION=22.04 -t ubuntu-snort3-dev:22.04 .
docker build -t myusername/snort3-dev:latest .
Start an interactive bash session:
docker run -it --rm ubuntu-snort3-dev
Mount a local directory to persist your work:
docker run -it --rm -v $(pwd)/workspace:/home/snorty/workspace ubuntu-snort3-dev
On Windows (PowerShell):
docker run -it --rm -v ${PWD}/workspace:/home/snorty/workspace ubuntu-snort3-dev
On Windows (Command Prompt):
docker run -it --rm -v %cd%/workspace:/home/snorty/workspace ubuntu-snort3-dev
For packet capture and network analysis:
docker run -it --rm --cap-add=NET_ADMIN --cap-add=NET_RAW ubuntu-snort3-dev
Run with a custom name for easier management:
docker run -it --name snort3-dev ubuntu-snort3-dev
To reconnect to the same container:
docker start -ai snort3-dev
# List running containers
docker ps
# List all containers (including stopped)
docker ps -a
# Stop a running container
docker stop snort3-dev
# Remove a stopped container
docker rm snort3-dev
# Remove the image
docker rmi ubuntu-snort3-dev
Once inside the container, follow these steps to build Snort 3 with unit test support:
cd $HOME
git clone https://github.com/snort3/libdaq.git
cd libdaq
./bootstrap
./configure
sudo make install
sudo ldconfig
cd $HOME
git clone https://github.com/snort3/libml.git
cd libml
./configure.sh --prefix=/usr/local
cd build
sudo make -j8 install
sudo ldconfig
cd $HOME
git clone https://github.com/snort3/snort3.git
cd snort3
./configure_cmake.sh --prefix=$HOME/install/snort3 --enable-unit-tests --enable-jemalloc
cd build
make -j$(nproc) install
export PATH=$PATH:$HOME/install/snort3/bin
# Check Snort version
$HOME/install/snort3/bin/snort -V
# Run all unit tests
$HOME/install/snort3/bin/snort --catch-test all
The container includes the following key packages:
For a complete list, see the Dockerfile.
The following environment variables are set in the container:
DEBIAN_FRONTEND=noninteractive - Prevents interactive prompts during apt operationsTZ=UTC - Sets timezone to UTCLANG=C.UTF-8 - Sets language encodingLC_ALL=C.UTF-8 - Sets locale encodingIf you encounter permission issues with mounted volumes:
# Run with user matching your host UID
docker run -it --rm --user $(id -u):$(id -g) -v $(pwd)/workspace:/home/snorty/workspace ubuntu-snort3-dev
For network packet capture functionality, ensure you run with appropriate capabilities:
docker run -it --rm --cap-add=NET_ADMIN --cap-add=NET_RAW --network=host ubuntu-snort3-dev
Feel free to submit issues and enhancement requests!
This project is provided as-is for development purposes.
Content type
Image
Digest
sha256:159bcc8e1…
Size
549.4 MB
Last updated
11 months ago
docker pull datmanslo/ubuntu-snort3-dev