tpotce/docker/conpot/Dockerfile

80 lines
3.5 KiB
Text
Raw Normal View History

2018-08-22 13:43:27 +00:00
FROM alpine
# Include dist
ADD dist/ /root/dist/
# Setup apt
2018-05-04 16:29:55 +00:00
RUN apk -U --no-cache add \
build-base \
file \
git \
libev \
libtool \
2018-03-25 18:35:32 +00:00
libcap \
libxslt \
2018-08-22 13:43:27 +00:00
libxslt-dev \
2018-08-20 15:06:10 +00:00
mariadb-dev \
pkgconfig \
2018-08-22 13:43:27 +00:00
python3 \
python3-dev \
2018-02-27 17:49:58 +00:00
py-cffi \
py-cryptography \
tcpdump \
wget && \
# Setup ConPot
2018-08-22 13:43:27 +00:00
git clone --depth=1 https://github.com/mushorg/conpot /opt/conpot && \
cd /opt/conpot/ && \
2018-03-25 18:35:32 +00:00
# Patch to accept ENV for MIB path
2018-08-28 13:47:20 +00:00
sed -i "s/tmp_mib_dir = tempfile.mkdtemp()/tmp_mib_dir = tempfile.mkdtemp(dir=os.environ['CONPOT_TMP'])/" /opt/conpot/conpot/protocols/snmp/snmp_server.py && \
2018-08-22 13:43:27 +00:00
# Increase logging for debug mushorg/conpot/issues/#399
cp /root/dist/command_responder.py /opt/conpot/conpot/protocols/http/ && \
# Change template default ports if <1024
sed -i 's/port="2121"/port="21"/' /opt/conpot/conpot/templates/default/ftp/ftp.xml && \
sed -i 's/port="8800"/port="80"/' /opt/conpot/conpot/templates/default/http/http.xml && \
sed -i 's/port="6230"/port="623"/' /opt/conpot/conpot/templates/default/ipmi/ipmi.xml && \
sed -i 's/port="5020"/port="502"/' /opt/conpot/conpot/templates/default/modbus/modbus.xml && \
sed -i 's/port="10201"/port="102"/' /opt/conpot/conpot/templates/default/s7comm/s7comm.xml && \
sed -i 's/port="16100"/port="161"/' /opt/conpot/conpot/templates/default/snmp/snmp.xml && \
sed -i 's/port="6969"/port="69"/' /opt/conpot/conpot/templates/default/tftp/tftp.xml && \
sed -i 's/port="16100"/port="161"/' /opt/conpot/conpot/templates/IEC104/snmp/snmp.xml && \
sed -i 's/port="6230"/port="623"/' /opt/conpot/conpot/templates/ipmi/ipmi/ipmi.xml && \
pip3 install --no-cache-dir -U pip setuptools && \
pip3 install --no-cache-dir . && \
cd / && \
rm -rf /opt/conpot /tmp/* /var/tmp/* && \
2018-08-22 13:43:27 +00:00
setcap cap_net_bind_service=+ep /usr/bin/python3.6 && \
2018-08-24 16:01:27 +00:00
# Fix kamstrup not starting error / #398 Workaround
2018-08-22 13:43:27 +00:00
ln -s /usr/lib/python3.6/site-packages/conpot/protocols/kamstrup/meter_protocol /usr/lib/python3.6/site-packages/conpot/protocols/kamstrup_meter && \
ln -s /usr/lib/python3.6/site-packages/conpot/protocols/kamstrup/management_protocol /usr/lib/python3.6/site-packages/conpot/protocols/kamstrup_management && \
2018-03-25 18:35:32 +00:00
2018-02-27 17:49:58 +00:00
# Get wireshark manuf db for scapy, setup configs, user, groups
mkdir -p /etc/conpot /var/log/conpot /usr/share/wireshark && \
wget https://github.com/wireshark/wireshark/raw/master/manuf -o /usr/share/wireshark/manuf && \
2018-03-25 18:35:32 +00:00
cp /root/dist/conpot.cfg /etc/conpot/conpot.cfg && \
2018-08-22 13:43:27 +00:00
cp -R /root/dist/templates /usr/lib/python3.6/site-packages/conpot/ && \
2018-02-27 17:49:58 +00:00
addgroup -g 2000 conpot && \
2018-05-15 16:24:10 +00:00
adduser -S -s /bin/ash -u 2000 -D -g 2000 conpot && \
# Clean up
2018-05-04 16:29:55 +00:00
apk del --purge \
build-base \
2018-02-27 17:49:58 +00:00
cython-dev \
file \
git \
libev \
libtool \
libxslt-dev \
mariadb-dev \
pkgconfig \
2018-08-22 13:43:27 +00:00
python3-dev \
2018-02-27 17:49:58 +00:00
py-cffi \
wget && \
rm -rf /root/* && \
rm -rf /var/cache/apk/*
2018-03-25 18:35:32 +00:00
# Start conpot
2018-04-26 15:18:23 +00:00
USER conpot:conpot
2018-08-24 16:01:27 +00:00
#CMD exec /usr/bin/conpot --temp_dir $CONPOT_TMP --template $CONPOT_TEMPLATE --logfile $CONPOT_LOG --config $CONPOT_CONFIG
CMD exec /usr/bin/conpot -v --temp_dir $CONPOT_TMP --template $CONPOT_TEMPLATE --logfile $CONPOT_LOG --config $CONPOT_CONFIG