Rename the container-side logging module decnet_logging → syslog_bridge (canonical at templates/syslog_bridge.py, synced into each template by the deployer). Drop the stale per-template copies; setuptools find was picking them up anyway. Swap useradd/USER/chown "decnet" for "logrelay" so no obvious token appears in the rendered container image. Apply the same cloaking pattern to the telnet template that SSH got: syslog pipe moves to /run/systemd/journal/syslog-relay and the relay is cat'd via exec -a "systemd-journal-fwd". rsyslog.d conf rename 99-decnet.conf → 50-journal-forward.conf. SSH capture script: /var/decnet/captured → /var/lib/systemd/coredump (real systemd path), logger tag decnet-capture → systemd-journal. Compose volume updated to match the new in-container quarantine path. SD element ID shifts decnet@55555 → relay@55555; synced across collector, parser, sniffer, prober, formatter, tests, and docs so the host-side pipeline still matches what containers emit.
29 lines
1.4 KiB
Docker
29 lines
1.4 KiB
Docker
ARG BASE_IMAGE=honeynet/conpot:latest
|
|
FROM ${BASE_IMAGE}
|
|
|
|
USER root
|
|
|
|
# Replace 5020 with 502 in all templates so Modbus binds on the standard port
|
|
RUN find /opt /usr /etc /home -name "*.xml" -exec sed -i 's/<port>5020<\/port>/<port>502<\/port>/g' {} + 2>/dev/null || true
|
|
RUN find /opt /usr /etc /home -name "*.xml" -exec sed -i 's/port="5020"/port="502"/g' {} + 2>/dev/null || true
|
|
|
|
# Install libcap and give the Python interpreter permission to bind ports < 1024
|
|
RUN (apt-get update && apt-get install -y --no-install-recommends libcap2-bin 2>/dev/null) || (apk add --no-cache libcap 2>/dev/null) || true
|
|
RUN find /home/conpot/.local/bin /usr /opt -type f -name 'python*' -exec setcap 'cap_net_bind_service+eip' {} \; 2>/dev/null || true
|
|
|
|
# Bridge conpot's own logger into syslog-relay's RFC 5424 syslog pipeline.
|
|
# entrypoint.py is self-contained (inlines the formatter) because the
|
|
# conpot base image runs Python 3.6, which cannot import the shared
|
|
# syslog_bridge.py (that file uses 3.9+ / 3.10+ type syntax).
|
|
COPY entrypoint.py /home/conpot/entrypoint.py
|
|
RUN chown conpot:conpot /home/conpot/entrypoint.py \
|
|
&& chmod +x /home/conpot/entrypoint.py
|
|
|
|
# The upstream image already runs as non-root 'conpot'.
|
|
# We do NOT switch to a 'logrelay' user — doing so breaks pkg_resources
|
|
# because conpot's eggs live under /home/conpot/.local and are only on
|
|
# the Python path for that user.
|
|
USER conpot
|
|
|
|
ENTRYPOINT ["/usr/bin/python3", "/home/conpot/entrypoint.py"]
|