mirror of
				https://github.com/telekom-security/tpotce.git
				synced 2025-11-04 06:22:54 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			135 lines
		
	
	
	
		
			4 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			135 lines
		
	
	
	
		
			4 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
FROM ubuntu:22.04
 | 
						|
ENV DEBIAN_FRONTEND noninteractive
 | 
						|
#
 | 
						|
# Include dist
 | 
						|
COPY dist/ /root/dist/
 | 
						|
#
 | 
						|
# Check if APT_PROXY is set and configure apt to use the proxy
 | 
						|
RUN bash -c 'if [ -n "${http_proxy}" ]; then \
 | 
						|
                 echo "Using APT proxy at ${http_proxy}"; \
 | 
						|
                 echo "Acquire::http::Proxy \"${http_proxy}\";" > /etc/apt/apt.conf.d/01proxy; \
 | 
						|
               else \
 | 
						|
                 echo "APT proxy not configured, proceeding without proxy"; \
 | 
						|
             fi' && \
 | 
						|
#    bash -c 'echo "Acquire::http::Proxy::ports.ubuntu.com DIRECT;" > /etc/apt/apt.conf.d/99force-no-proxy' && \
 | 
						|
#
 | 
						|
# Determine arch, get and install packages
 | 
						|
    ARCH=$(arch) && \
 | 
						|
      if [ "$ARCH" = "x86_64" ]; then ARCH="amd64"; fi && \
 | 
						|
      if [ "$ARCH" = "aarch64" ]; then ARCH="arm64"; fi && \
 | 
						|
    echo "$ARCH" && \
 | 
						|
    cd /root/dist/ && \
 | 
						|
# Setup apt
 | 
						|
    apt-get update -y && \
 | 
						|
    apt-get install wget -y && \
 | 
						|
    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 && \
 | 
						|
    apt install ./libemu2_0.2.0+git20120122-1.2+b1_$ARCH.deb \
 | 
						|
                ./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-yaml \
 | 
						|
		fonts-liberation && \
 | 
						|
#
 | 
						|
# Get and install dionaea
 | 
						|
    # git clone --depth=1 https://github.com/dinotools/dionaea -b 0.11.0 /root/dionaea/ && \
 | 
						|
    git clone --depth=1 https://github.com/dinotools/dionaea /root/dionaea/ && \
 | 
						|
    cd /root/dionaea && \
 | 
						|
    git checkout 4e459f1b672a5b4c1e8335c0bff1b93738019215 && \
 | 
						|
    mkdir build && \
 | 
						|
    cd build && \
 | 
						|
    cmake -DCMAKE_INSTALL_PREFIX:PATH=/opt/dionaea .. && \
 | 
						|
    make && \
 | 
						|
    make install && \
 | 
						|
#
 | 
						|
# 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/bin/dionaea && \
 | 
						|
#
 | 
						|
# 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 / && \
 | 
						|
#
 | 
						|
# 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 \
 | 
						|
      python3-yaml \ 
 | 
						|
      wget && \ 
 | 
						|
#
 | 
						|
    apt-get install -y \
 | 
						|
      ca-certificates \
 | 
						|
      python3 \
 | 
						|
      python3-boto3 \
 | 
						|
      python3-bson \
 | 
						|
      python3-psutil \
 | 
						|
      python3-yaml \
 | 
						|
      libcurl4 \
 | 
						|
      libemu2 \
 | 
						|
      libev4 \
 | 
						|
      libglib2.0-0 \
 | 
						|
      libnetfilter-queue1 \
 | 
						|
      libnl-3-200 \
 | 
						|
      libpcap0.8 \
 | 
						|
      libpython3.10 \
 | 
						|
      libudns0 && \
 | 
						|
#
 | 
						|
    apt-get autoremove --purge -y && \
 | 
						|
    apt-get clean && \
 | 
						|
    rm -rf /root/* \
 | 
						|
           /var/lib/apt/lists/* \
 | 
						|
           /tmp/* \
 | 
						|
           /var/tmp/* \
 | 
						|
           /root/.cache \
 | 
						|
           /opt/dionaea/.git
 | 
						|
#
 | 
						|
# 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
 | 
						|
USER dionaea:dionaea
 | 
						|
CMD ["/opt/dionaea/bin/dionaea", "-u", "dionaea", "-g", "dionaea", "-c", "/opt/dionaea/etc/dionaea/dionaea.cfg"]
 |