From abcbc6cada3c5e14a15a395ae071e6cd9b0dc410 Mon Sep 17 00:00:00 2001 From: Deon George Date: Mon, 15 Mar 2021 23:25:50 +1100 Subject: [PATCH] Initial checkin --- Dockerfile | 33 +++++++++++++ init | 28 +++++++++++ sshd_config | 130 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 191 insertions(+) create mode 100644 Dockerfile create mode 100755 init create mode 100644 sshd_config diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..19f43a2 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,33 @@ +# NAME leenooks/doorparty +# VERSION latest + +FROM debian:buster-slim + +# Set the default timezone for the container +RUN ln -sf /usr/share/zoneinfo/Australia/Melbourne /etc/localtime + +# Add SSH +RUN apt-get update \ + && apt-get install -yqq openssh-server \ + && apt-get -y autoremove \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + +# Add Doorparty +RUN apt-get update \ + && apt-get install -yqq golang git \ + && cd /tmp && git clone https://github.com/echicken/dpc2 && cd dpc2 \ + && go mod vendor \ + && go build -o /sbin/doorparty-connector ./cmd/doorparty-connector.go \ + && chmod +x /sbin/doorparty-connector \ + && mv configs/doorparty-connector.ini /etc \ + && apt-get -y purge golang git \ + && apt-get -y autoremove \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + +COPY doorparty-connector.ini /etc +COPY sshd_config /etc/ssh +COPY init /sbin/init + +ENTRYPOINT [ "/sbin/init" ] diff --git a/init b/init new file mode 100755 index 0000000..4da93ba --- /dev/null +++ b/init @@ -0,0 +1,28 @@ +#!/bin/bash + +GROUP=doorparty +GID=1000 +USERS=/etc/doorparty-connector.users + +set -e + +export PATH=$PATH:${SBBSEXEC} + +if [ -r ${USERS} ]; then + if ! grep -qe ^${GROUP}: /etc/group; then + groupadd -g ${GID} ${GROUP} + fi + + cat ${USERS} | while read line; do + user=$(echo ${line}|awk -F: '{print $1}') + if ! grep -qe ^${user}: /etc/passwd; then + echo "+ Adding Door Party User: ${user}" + useradd -c "Door Party User" -g ${GROUP} -MN -s /usr/sbin/nologin ${user} + echo -n $line | chpasswd + fi + done + + mkdir /run/sshd && /usr/sbin/sshd +fi + +exec /sbin/doorparty-connector /etc/doorparty-connector.ini diff --git a/sshd_config b/sshd_config new file mode 100644 index 0000000..122ee3a --- /dev/null +++ b/sshd_config @@ -0,0 +1,130 @@ +# $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $ + +# This is the sshd server system-wide configuration file. See +# sshd_config(5) for more information. + +# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin + +# The strategy used for options in the default sshd_config shipped with +# OpenSSH is to specify options with their default value where +# possible, but leave them commented. Uncommented options override the +# default value. + +Port 2022 +#AddressFamily any +#ListenAddress 0.0.0.0 +#ListenAddress :: + +#HostKey /etc/ssh/ssh_host_rsa_key +#HostKey /etc/ssh/ssh_host_ecdsa_key +#HostKey /etc/ssh/ssh_host_ed25519_key + +# Ciphers and keying +#RekeyLimit default none + +# Logging +#SyslogFacility AUTH +#LogLevel INFO + +# Authentication: + +#LoginGraceTime 2m +#PermitRootLogin prohibit-password +PermitRootLogin no +#StrictModes yes +#MaxAuthTries 6 +#MaxSessions 10 + +#PubkeyAuthentication yes +PubkeyAuthentication no + +# Expect .ssh/authorized_keys2 to be disregarded by default in future. +#AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2 + +#AuthorizedPrincipalsFile none + +#AuthorizedKeysCommand none +#AuthorizedKeysCommandUser nobody + +# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts +#HostbasedAuthentication no +# Change to yes if you don't trust ~/.ssh/known_hosts for +# HostbasedAuthentication +#IgnoreUserKnownHosts no +# Don't read the user's ~/.rhosts and ~/.shosts files +#IgnoreRhosts yes + +# To disable tunneled clear text passwords, change to no here! +#PasswordAuthentication yes +#PermitEmptyPasswords no + +# Change to yes to enable challenge-response passwords (beware issues with +# some PAM modules and threads) +ChallengeResponseAuthentication no + +# Kerberos options +#KerberosAuthentication no +#KerberosOrLocalPasswd yes +#KerberosTicketCleanup yes +#KerberosGetAFSToken no + +# GSSAPI options +#GSSAPIAuthentication no +#GSSAPICleanupCredentials yes +#GSSAPIStrictAcceptorCheck yes +#GSSAPIKeyExchange no + +# Set this to 'yes' to enable PAM authentication, account processing, +# and session processing. If this is enabled, PAM authentication will +# be allowed through the ChallengeResponseAuthentication and +# PasswordAuthentication. Depending on your PAM configuration, +# PAM authentication via ChallengeResponseAuthentication may bypass +# the setting of "PermitRootLogin without-password". +# If you just want the PAM account and session checks to run without +# PAM authentication, then enable this but set PasswordAuthentication +# and ChallengeResponseAuthentication to 'no'. +UsePAM no + +#AllowAgentForwarding yes +AllowAgentForwarding no +#AllowTcpForwarding yes +AllowTcpForwarding yes +#GatewayPorts no +X11Forwarding no +#X11DisplayOffset 10 +#X11UseLocalhost yes +#PermitTTY yes +PermitTTY no +PrintMotd no +#PrintLastLog yes +#TCPKeepAlive yes +#PermitUserEnvironment no +#Compression delayed +#ClientAliveInterval 0 +#ClientAliveCountMax 3 +#UseDNS no +#PidFile /var/run/sshd.pid +#MaxStartups 10:30:100 +#PermitTunnel no +#ChrootDirectory none +#ChrootDirectory /tmp +#VersionAddendum none + +# no default banner path +#Banner none + +# Allow client to pass locale environment variables +AcceptEnv LANG LC_* + +# override default of no subsystems +#Subsystem sftp /usr/lib/openssh/sftp-server + +# Example of overriding settings on a per-user basis +#Match User anoncvs +# X11Forwarding no +# AllowTcpForwarding no +# PermitTTY no +# ForceCommand cvs server +#DisableForwarding yes +#PermitOpen haproxy_tcp:513 +PermitOpen 10.1.3.21:15513