Установка Kali Linux в Docker и доступ к его графическому интерфейсу через браузер.

Вопрос или проблема

Я довольно нов в Docker и всем, что с этим связано. Я хотел бы установить Kali Linux в качестве контейнера Docker и получить доступ к его графическому интерфейсу через браузер. Как мне это сделать? Я использую Portainer в качестве графического интерфейса для управления контейнерами Docker.

Если возможно, я хотел бы иметь доступ к графическому интерфейсу Kali через домен. Я уже использую nginx proxy manager в контейнере Docker на своем компьютере. Я также установил рабочую среду в контейнере, но не знаю, как к ней получить доступ.

Спасибо за вашу помощь заранее.

PS: Прошу прощения, если этот вопрос глупый или что-то в этом роде, как я уже сказал, я новичок в работе с Docker и всем таким, так что простите меня.

Уважаемый, пожалуйста, используйте приведенный ниже Dockerfile для развертывания контейнера Kali Docker, а для доступа к нему через веб, пожалуйста, нажмите здесь.

#Цель: Установка графического интерфейса Kali в Docker
From kalilinux/kali-rolling
#RUN apt-get install apt-utils -y
ENV DEBIAN_FRONTEND noninteractive
ENV TZ=Asia/Kolkata DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt install tzdata -y && apt install net-tools vim man file -y
RUN apt-get install kali-linux-headless -y
RUN  apt-get install -y vim perl wget tar man sudo adduser netstat-nat net-tools curl w3m
RUN useradd -m  -s /bin/bash kali
RUN usermod -aG sudo kali && echo "kali ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/kali
RUN chmod 044 /etc/sudoers.d/kali
USER kali:kali
WORKDIR /home/kali
#реализация браузера
RUN apt-get install openssl shellinabox -y
#RUN echo -e "# TCP порт, на котором веб-сервер shellinboxd слушает\nSHELLINABOX_PORT=443\n#укажите IP-адрес целевого SSH-сервера\nSHELLINABOX_ARGS=\"--o-beep -s /:SSH:192.168.1.7\"\n# если вы хотите ограничить доступ к shellinaboxd только с localhost\nSHELLINABOX_ARGS=\"--o-beep -s /:SSH:192.168.1.7 --localhost-only"\" >> /etc/default/shellinabox
CMD ["/bin/bash"]
#docker run -itd --privileged #вставьте_сюда_id_целевого_образа /usr/sbin/init #команда для запуска systemctl внутри контейнера Docker

Ответ или решение

Установка Kali Linux в Docker и доступ к его GUI через браузер

Если вы хотите начать работать с Kali Linux в Docker и получить доступ к графическому интерфейсу через браузер, вы находитесь на правильном пути. В данном ответе мы подробно рассмотрим, как установить Kali Linux в контейнер и настроить доступ к его GUI при помощи вашего текущего сетевого окружения и инструментов управления Docker, таких как Portainer и Nginx Proxy Manager.

1. Подготовка окружения

Перед тем как приступить к установке Kali Linux, убедитесь, что на вашем устройстве установлены следующие компоненты:

  • Docker: Убедитесь, что Docker и Docker Compose установлены и правильно настроены.
  • Portainer: Это удобный инструмент для управления контейнерами и их образами через веб-интерфейс.
  • Nginx Proxy Manager: Он будет использоваться для управления доменными именами и проксированием запросов.

2. Создание Dockerfile для Kali Linux

Для начала, создайте Dockerfile, который будет содержать инструкции по установке Kali Linux и необходимых пакетов. Пример Dockerfile представлен ниже:

# Purpose: Установка Kali GUI в Docker
FROM kalilinux/kali-rolling

# Переменные окружения
ENV DEBIAN_FRONTEND noninteractive
ENV TZ=Asia/Kolkata

# Обновление и установка необходимых инструментов
RUN apt-get update && \
    apt-get install -y tzdata && \
    apt-get install -y kali-linux-headless vim perl wget tar man sudo curl

# Создание пользователя kali
RUN useradd -m -s /bin/bash kali && \
    usermod -aG sudo kali && \
    echo "kali ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/kali && \
    chmod 044 /etc/sudoers.d/kali

USER kali
WORKDIR /home/kali

# Установка shellinabox для доступа к GUI
RUN apt-get install -y openssl shellinabox

# Настройка shellinabox
RUN echo '# TCP port that shellinboxd listens on' > /etc/default/shellinabox && \
    echo 'SHELLINABOX_PORT=443' >> /etc/default/shellinabox && \
    echo 'SHELLINABOX_ARGS="--o-beep -s /:SSH:127.0.0.1"' >> /etc/default/shellinabox

# Запуск bash
CMD ["/bin/bash"]

Сохраните этот код как Dockerfile в отдельной директории.

3. Сборка и запуск контейнера

Теперь, когда у нас есть Dockerfile, вы можете собрать образ и запустить контейнер. Используйте следующую команду в терминале:

docker build -t kali-linux-docker .
docker run -d --privileged -p 443:443 --name kali-container kali-linux-docker

4. Настройка доступа через Nginx Proxy Manager

  1. Откройте интерфейс Nginx Proxy Manager.
  2. Создайте новый прокси-хост, указывая:
    • Domain Names: ваше доменное имя (например, kali.yourdomain.com).
    • Forward Hostname / IP: localhost или IP-адрес вашего Kali контейнера (например, 172.17.0.2, если это актуально).
    • Forward Port: 443.
  3. Сохраните изменения.

5. Доступ к интерфейсу

Теперь вы можете получить доступ к GUI вашего Kali Linux через браузер, перейдя по адресу https://kali.yourdomain.com.

Заключение

Следуя указанным шагам, вы сможете установить Kali Linux в контейнере Docker и получить доступ к его графическому интерфейсу через браузер с помощью Nginx Proxy Manager. Не стесняйтесь задавать дополнительные вопросы или искать помощь в сообществе, если вам потребуется более детальная информация. Удачи в вашем обучении и исследовании новых технологий!

Оцените материал
Добавить комментарий

Капча загружается...