tpotce/docker/dionaea/Dockerfile

127 lines
3.4 KiB
Text
Raw Normal View History

FROM ubuntu:24.04
ENV DEBIAN_FRONTEND noninteractive
2020-01-02 17:37:08 +00:00
#
# Include dist
2022-03-08 23:36:03 +00:00
COPY dist/ /root/dist/
2020-01-02 17:37:08 +00:00
#
2022-01-24 01:31:31 +00:00
# Determine arch, get and install packages
RUN ARCH=$(arch) && \
2022-01-24 01:31:31 +00:00
if [ "$ARCH" = "x86_64" ]; then ARCH="amd64"; fi && \
if [ "$ARCH" = "aarch64" ]; then ARCH="arm64"; fi && \
echo "$ARCH" && \
cd /root/dist/ && \
# Setup apt
2022-01-24 01:31:31 +00:00
apt-get update -y && \
2024-12-05 20:12:18 +00:00
apt-get upgrade -y && \
2021-10-05 15:26:02 +00:00
apt-get install wget -y && \
2022-01-24 01:31:31 +00:00
wget http://ftp.us.debian.org/debian/pool/main/libe/libemu/libemu2_0.2.0+git20120122-1.2+b1_$ARCH.deb \
http://ftp.us.debian.org/debian/pool/main/libe/libemu/libemu-dev_0.2.0+git20120122-1.2+b1_$ARCH.deb && \
2024-12-05 20:12:18 +00:00
apt-get install ./libemu2_0.2.0+git20120122-1.2+b1_$ARCH.deb \
2022-01-24 01:31:31 +00:00
./libemu-dev_0.2.0+git20120122-1.2+b1_$ARCH.deb -y && \
apt-get install -y --no-install-recommends \
build-essential \
ca-certificates \
check \
cmake \
cython3 \
git \
libcap2-bin \
libcurl4-openssl-dev \
libev-dev \
libglib2.0-dev \
libloudmouth1-dev \
libnetfilter-queue-dev \
libnl-3-dev \
libpcap-dev \
libssl-dev \
libtool \
libudns-dev \
procps \
python3 \
python3-dev \
python3-boto3 \
python3-bson \
python3-setuptools \
python3-yaml \
fonts-liberation && \
2020-01-02 17:37:08 +00:00
#
# Get and install dionaea
git clone https://github.com/t3chn0m4g3/dionaea -b 0.11.1 /root/dionaea/ && \
cd /root/dionaea && \
mkdir build && \
cd build && \
cmake -DCMAKE_INSTALL_PREFIX:PATH=/opt/dionaea .. && \
make && \
make install && \
2020-01-02 17:37:08 +00:00
#
# Setup user and groups
addgroup --gid 2000 dionaea && \
adduser --system --no-create-home --shell /bin/bash --uid 2000 --disabled-password --disabled-login --gid 2000 dionaea && \
setcap cap_net_bind_service=+ep /opt/dionaea/sbin/dionaea && \
2020-01-02 17:37:08 +00:00
#
# Supply configs and set permissions
chown -R dionaea:dionaea /opt/dionaea/var && \
rm -rf /opt/dionaea/etc/dionaea/* && \
mv /root/dist/etc/* /opt/dionaea/etc/dionaea/ && \
cp /root/dist/cpu_check.py / && \
2020-01-02 17:37:08 +00:00
#
# Setup runtime and clean up
apt-get purge -y \
build-essential \
ca-certificates \
check \
cmake \
cython3 \
git \
libcurl4-openssl-dev \
libemu-dev \
libev-dev \
libglib2.0-dev \
libloudmouth1-dev \
libnetfilter-queue-dev \
libnl-3-dev \
libpcap-dev \
libssl-dev \
libtool \
libudns-dev \
python3 \
python3-dev \
python3-boto3 \
python3-bson \
2021-10-05 15:26:02 +00:00
python3-yaml \
wget && \
#
apt-get install -y \
ca-certificates \
python3 \
python3-boto3 \
python3-bson \
2024-02-28 20:05:03 +00:00
python3-psutil \
python3-yaml \
libcurl4 \
libemu2 \
libev4 \
libglib2.0-0 \
libnetfilter-queue1 \
libnl-3-200 \
libpcap0.8 \
libpython3.12 \
libudns0 && \
2020-01-02 17:37:08 +00:00
#
apt-get autoremove --purge -y && \
apt-get clean && \
2024-09-11 10:42:17 +00:00
rm -rf /root/* \
/var/lib/apt/lists/* \
/tmp/* \
/var/tmp/* \
/root/.cache \
/opt/dionaea/.git
2020-01-02 17:37:08 +00:00
#
# Start dionaea
STOPSIGNAL SIGINT
#
# Dionaea sometimes hangs at 100% CPU usage, if detected container will become unhealthy and restarted by tpotinit
HEALTHCHECK --interval=5m --timeout=30s --retries=3 CMD python3 /cpu_check.py $(pgrep -of dionaea) 99
2018-03-31 15:18:28 +00:00
USER dionaea:dionaea
CMD ["/opt/dionaea/sbin/dionaea", "-u", "dionaea", "-g", "dionaea", "-c", "/opt/dionaea/etc/dionaea/dionaea.cfg"]