remot3.it을 사용하여 집에서 NAT를 넘어서는 Dockerfile
12096 단어 dockerfile레도 t3. 다른 t레모테. 다른 t
어떻게 생각해도 백도어를 걸어 NAT 넘는 것 외에 사용도가 생각나지 않기 때문에 , 우선 Dockerfile 에 써 남는다.
어쨌든 이미지
※ 라우터에는 특별히 아무것도 설정할 필요는 없다.
집에 백도어를 설치하는 절차
1. remote.it 계정을 만들고 웹 포털에 로그인
non-commercial의 personal use로 계정 만들기
2. Docker 호스트 준비
여기 CentOS 7.5 1804 사용
3. Dockerfile을 만들어 컨테이너 시작
CentOS
$ sudo yum update -y
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
$ sudo yum install -y docker-ce
$ sudo systemctl enable docker; sudo systemctl start docker; systemctl status docker
$ mkdir -p ~/docker/ubuntu && cd $_
$ vi Dockerfile
$ vi startup.sh
$ sudo docker build -t 'my/ubuntu' .
$ sudo docker logs -f $(sudo docker run -d -it my/ubuntu)
docker run 때도 -p 12345:22 같은 port forwarding 는 불필요
Dockerfile
FROM ubuntu:latest
RUN apt-get update
RUN export DEBIAN_FRONTEND=noninteractive
RUN apt-get install -y ssh curl psmisc iproute2 cron net-tools expect
RUN echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
RUN mkdir -p /root/.ssh
RUN chmod 700 /root/.ssh
RUN touch /root/.ssh/authorized_keys
RUN chmod 600 /root/.ssh/authorized_keys
RUN echo "ssh-rsa AAAAB3N********c6rzZOpGQ== [email protected]" >> /root/.ssh/authorized_keys
RUN mkdir -p /var/run/sshd
RUN curl -sL https://github.com/weaved/installer/raw/master/Ubuntu_deb/weavedconnectd_1.3-07_x86/weavedconnectd_1.3-07k_x86.deb -o /root/weavedconnectd_1.3-07k_x86.deb
RUN dpkg -i /root/weavedconnectd_1.3-07k_x86.deb
ADD startup.sh /root
RUN chmod 700 /root/startup.sh
CMD ["/root/startup.sh"]
상기의 SSH 공개키는 길었기 때문에 생략하고 있다. 누군가가 나를 등록해주더라도 특별히 기쁘지 않습니다.
startup.sh
#!/bin/bash
DATE=`date "+%Y%m%d-%H%M%S"`
TIMEOUT="30"
COMMAND="/usr/bin/weavedinstaller"
LOGIN_SELECTION="1"
LOGIN_MAIL="[email protected]"
LOGIN_PASS="yourpassword"
LOGIN_DEVICE="ubuntu-${DATE}"
MAIN_SELECTION="1"
PROTO_SELECTION="1"
PROTO_PORT_DEFAULT="y"
PROTO_APP_NAME="ubuntu-${DATE}-ssh"
EXIT_SELECTION="4"
/usr/sbin/sshd -D &
expect -c "
set timeout ${TIMEOUT}
spawn ${COMMAND}
expect \"Please select from the above options (1-4):\"; send -- \"${LOGIN_SELECTION}\n\"
expect \"Please enter your remot3.it Username (e-mail address):\"; send -- \"${LOGIN_MAIL}\n\"
expect \"Please enter your remot3.it password:\"; send -- \"${LOGIN_PASS}\n\"
expect \"Only letters, numbers, underscore, space and dash are allowed.\"; send -- \"${LOGIN_DEVICE}\n\"
expect \"Please select from the above options (1-4):\"; send -- \"${MAIN_SELECTION}\n\"
expect \"Please select from the above options (1-5):\"; send -- \"${PROTO_SELECTION}\n\"
expect \"Would you like to continue with the default port assignment?\"; send -- \"${PROTO_PORT_DEFAULT}\n\"
expect \"Only letters, numbers, underscore, space and dash are allowed.\"; send -- \"${PROTO_APP_NAME}\n\"
expect \"Please select from the above options (1-4):\"; send -- \"${EXIT_SELECTION}\n\"
interact
"
tail -f /dev/null
위의 사용자 이름과 암호는 물론 자신에게 다시 작성하십시오.
대화식 설치 프로그램은 Dockerfile에 어떻게 쓰는지 잘 모르기 때문에 삶에서 처음으로 expect와 과를 사용했습니다.
4. Docker 컨테이너 로그를 보고 기기 등록 완료를 기다립니다.
마지막으로
sudo docker logs -f $(sudo docker run -d -it my/ubuntu)
를 실행하고 있기 때문에 컨테이너 로그가 흘러 들어갑니다.아래와 같이 Main Menu로 돌아가 4) Exit를 선택하고 있으면 등록 완료이므로 CTRL+C로 빠져도 좋다.
SSH 22 sshd ubuntu-20181028-125059-ssh
------------------------------------------------------------
Device Name: ubuntu-20181028-125059
============================================================
********************** Main Menu *************************
1) Attach/reinstall remot3.it to a Service
2) Remove remot3.it attachment from a Service
3) Remove all remot3.it attachments, then exit
4) Exit
**********************************************************
Please select from the above options (1-4):
4
weavedConnectd[521]: 59609> NAT type selected at 3 with natmap 2
weavedConnectd[521]: Server Connection changed to state 4
weavedConnectd[521]: Server Connection changed to state 5
weavedConnectd[521]: Connected to server is xxx.xxx.xxx.xxx:xxxx
weavedConnectd[521]: 59729> -Updating Internal IP address of 172.17.0.2:11648 to Weaved Service.
weavedConnectd[521]: 59729> Updating Internal IP address of 172.17.0.2:11648 to Weaved Service.
5. 외부에서 컨테이너에 ssh 연결해 봅니다.
웹 콘솔로 돌아가서 장치 목록을 업데이트해 보면, 지금 등록한 장치가 나오므로 선택한다
디바이스를 클릭하면 디바이스와 함께 등록한 SSH 포트가 나오므로 선택한다
몇 초 동안 기다리면 백도어가 프록시 서버의 주소와 포트를 표시합니다.
어디서나 좋기 때문에 SSH 클라이언트를 시작하고 프록시 서버와 포트를 입력하고 연결합니다.
연결됨
6. 끝
따로 SSH 이외에 http에서도 RDP에서 무엇이든 자유롭게 백도어 어디서나 문을 넣을 수 있다.
Docker 컨테이너에 넣어 무엇에 사용한다는 츳코미도 있을지도 모른다.
사실은 라즈파이나 IoT 용도라든지 사용하는 것 같다. 고래 고기가 안 된다면 과자를 먹으면 좋지 않다.
Reference
이 문제에 관하여(remot3.it을 사용하여 집에서 NAT를 넘어서는 Dockerfile), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ryotayaguchi/items/366b8adfa4a3d0214faf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)