File size: 4,876 Bytes
bd5117d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
# Use the latest Ubuntu image
FROM ubuntu:focal

# Set environment variable to avoid interactive prompts
ENV DEBIAN_FRONTEND=noninteractive

# Set timezone to your desired timezone (e.g., "America/New_York")
RUN ln -fs /usr/share/zoneinfo/America/New_York /etc/localtime && \
    echo "India/Kolkata" > /etc/timezone

# Update package list, install required packages, and clean up
RUN apt-get update && \
    apt-get install -y \
    ufw\
    sudo\
    bash \
    passwd\
    sshpass\
    python3\
    keychain\
    net-tools\
    python3-pip\
    python3-venv\
    openssh-server &&\
    apt clean && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

# Create the 'admin' user with home directory and password, and 'administrator' group
#RUN useradd -m -s /bin/bash admin && \
#    echo 'admin:password' | chpasswd && \
#    useradd -m -s /bin/bash ubuntu && \
#    echo 'ubuntu:password' | chpasswd && \
#    groupadd administrator && \
#    usermod -aG administrator,sudo admin && \
#    usermod -aG administrator,sudo ubuntu

# Create the 'admin' and 'ubuntu' users with home directories and passwords, and add them to the 'sudo' group
#RUN groupadd -r admin && useradd -r -g users admin && \
#    echo 'admin:password' | chpasswd && \
#    echo 'ubuntu:password' | chpasswd && \

RUN useradd -m admin && \
    echo "admin:password" | chpasswd 
#    usermod -aG sudo admin && \
#    echo "admin ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers 

#RUN id -u ubuntu &>/dev/null || useradd -m -s /bin/bash ubuntu && \
#    usermod -aG sudo ubuntu && \
#    echo "ubuntu:password" | chpasswd && \
#    echo "ubuntu ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
    
#RUN echo "password" | su - ubuntu -c "whoami"

# Copy the application code to the container
COPY . /app

# Create necessary directories and set permissions
RUN mkdir -p /var/run/sshd /app /app/users/sshs /app/ssh && \
    chmod -R 777 /app 
    # chmod -R 777 /home/admin/.ssh && \
    #cp /app/ssh_config /home/admin/.ssh/config
    #touch /etc/sudoers

# Grant full sudo access to the 'administrator' group
#RUN sed -i 's/Defaults !requiretty/Defaults requiretty/' /etc/sudoers && \
#    echo 'admin ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers && \
#    echo 'ubuntu ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
#RUN echo "%administrator ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers

# Generate SSH host keys
#RUN ssh-keygen -A &&\
#    sudo ufw allow 2222/tcp

#RUN sudo ufw disable

#RUN rm -f /etc/ssh/ssh_host_* && \
#    yes y | ssh-keygen -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N "" && \
#    yes y | ssh-keygen -t ecdsa -b 256 -f /etc/ssh/ssh_host_ecdsa_key -N "" && \
#    yes y | ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N ""
    
    
# Secure SSH Configuration
#RUN sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config && \
#    sed -i 's/#PasswordAuthentication yes/PasswordAuthentication yes/' /etc/ssh/sshd_config && \
#    sed -i 's/#ChallengeResponseAuthentication yes/ChallengeResponseAuthentication no/' /etc/ssh/sshd_config && \
#    sed -i 's/#UsePAM yes/UsePAM no/' /etc/ssh/sshd_config && \
#    sed -i 's/#Port 22/Port 2222/' /etc/ssh/sshd_config && \
#    echo "AllowUsers *" >> /etc/ssh/sshd_config && \
#    echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config && \
#    echo "PubkeyAuthentication yes" >> /etc/ssh/sshd_config && \
#    echo "AuthorizedKeysFile .ssh/authorized_keys" >> /etc/ssh/sshd_config && \

RUN cp /app/sshd_config /etc/ssh/sshd_config && \
    cat /etc/ssh/sshd_config


# Copy all the contents of /etc/ssh to /app/ssh
RUN mkdir -p /app/ssh && cp -r /etc/ssh/* /app/ssh


# Set the permissions for the SSH keys
RUN chmod 777 /etc/ssh/ssh_* && \
    touch /app/ssh/ssh_known_hosts && \
    chmod 777 /app/ssh/ssh_* && \
    chmod 777 /home

# List contents of /etc/ssh and /app/ssh
RUN ls -l /etc/ssh/ && \
    ls -l /app/ssh/

# Install WebSSH
RUN python3 -m venv /app/WebSSHEnv && \
    /app/WebSSHEnv/bin/pip install --no-cache-dir --upgrade pip && \
    /app/WebSSHEnv/bin/pip install --no-cache-dir -r /app/WebSSH/requirements.txt && \
    /app/WebSSHEnv/bin/pip list 
    
# Expose the new SSH port
EXPOSE 2222

EXPOSE 7860

RUN chmod -R 777 /app
WORKDIR /home/admin

#USER admin


# Generate SSH keys
#RUN ssh-keygen -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N "" -y && \
#    ssh-keygen -t ecdsa -b 256 -f /etc/ssh/ssh_host_ecdsa_key -N "" -y && \
#    ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N "" -y
    

# Copy the start.sh script
#RUN chmod 777 /app/venv/lib/python3.12/site-packages/
#RUN touch /app/venv/lib/python3.12/site-packages/known_hosts
#RUN chmod 777 /app/venv/lib/python3.12/site-packages/known_hosts

#CMD [ "/usr/sbin/sshd -p 2222 &&","source /app/venv/bin/activate &&","wssh --address='0.0.0.0' --port=7860 --xsrf=False --debug=True --maxconn=4 --policy=autoadd"]


CMD ["/app/start.sh"]