tpotce/docker/cowrie/Dockerfile

73 lines
2.5 KiB
Text
Raw Normal View History

FROM alpine:latest
2019-10-21 20:59:36 +00:00
#
# Include dist
ADD dist/ /root/dist/
2019-10-21 20:59:36 +00:00
#
# Get and install dependencies & packages
RUN sed -i 's/dl-cdn/dl-2/g' /etc/apk/repositories && \
apk -U add \
2019-02-26 13:07:07 +00:00
bash \
2018-05-04 16:29:55 +00:00
build-base \
git \
gmp-dev \
libcap \
libffi-dev \
mpc1-dev \
mpfr-dev \
2019-02-26 13:25:06 +00:00
openssl \
2018-05-04 16:29:55 +00:00
openssl-dev \
py3-pip \
2019-10-21 20:59:36 +00:00
python3 \
python3-dev \
py3-bcrypt \
py3-mysqlclient \
py3-requests \
py3-setuptools && \
#
# Setup user
addgroup -g 2000 cowrie && \
2018-05-04 16:29:55 +00:00
adduser -S -s /bin/ash -u 2000 -D -g 2000 cowrie && \
2019-10-21 20:59:36 +00:00
#
2019-02-26 13:07:07 +00:00
# Install cowrie
mkdir -p /home/cowrie && \
cd /home/cowrie && \
git clone --depth=1 https://github.com/micheloosterhof/cowrie -b v2.1.0 && \
2019-02-26 13:07:07 +00:00
cd cowrie && \
mkdir -p log && \
cp /root/dist/requirements.txt . && \
pip3 install -r requirements.txt && \
2019-10-21 20:59:36 +00:00
#
2018-05-04 16:29:55 +00:00
# Setup configs
export PYTHON_DIR=$(python3 --version | tr '[A-Z]' '[a-z]' | tr -d ' ' | cut -d '.' -f 1,2 ) && \
setcap cap_net_bind_service=+ep /usr/bin/$PYTHON_DIR && \
cp /root/dist/cowrie.cfg /home/cowrie/cowrie/cowrie.cfg && \
chown cowrie:cowrie -R /home/cowrie/* /usr/lib/$PYTHON_DIR/site-packages/twisted/plugins && \
2019-10-21 20:59:36 +00:00
#
2018-05-04 16:29:55 +00:00
# Start Cowrie once to prevent dropin.cache errors upon container start caused by read-only filesystem
2019-02-26 13:07:07 +00:00
su - cowrie -c "export PYTHONPATH=/home/cowrie/cowrie:/home/cowrie/cowrie/src && \
cd /home/cowrie/cowrie && \
/usr/bin/twistd --uid=2000 --gid=2000 -y cowrie.tac --pidfile cowrie.pid cowrie &" && \
2018-05-04 16:29:55 +00:00
sleep 10 && \
2019-10-21 20:59:36 +00:00
#
# Clean up
2018-05-04 16:29:55 +00:00
apk del --purge build-base \
git \
gmp-dev \
libcap \
2018-03-30 21:47:59 +00:00
libffi-dev \
2018-05-04 16:29:55 +00:00
mpc1-dev \
mpfr-dev \
2019-02-26 13:07:07 +00:00
openssl-dev \
2019-10-21 20:59:36 +00:00
python3-dev \
py3-mysqlclient && \
rm -rf /root/* /tmp/* && \
2018-05-04 16:29:55 +00:00
rm -rf /var/cache/apk/* && \
rm -rf /home/cowrie/cowrie/cowrie.pid && \
unset PYTHON_DIR
2019-10-21 20:59:36 +00:00
#
# Start cowrie
2019-02-26 13:07:07 +00:00
ENV PYTHONPATH /home/cowrie/cowrie:/home/cowrie/cowrie/src
WORKDIR /home/cowrie/cowrie
2018-03-30 21:47:59 +00:00
USER cowrie:cowrie
2018-05-04 16:29:55 +00:00
CMD ["/usr/bin/twistd", "--nodaemon", "-y", "cowrie.tac", "--pidfile", "/tmp/cowrie/cowrie.pid", "cowrie"]