• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글

22번 포트 열지 않고 외부에서 내부 Shell 접속하기 - Shellinabox docker 경유

jerry80 jerry80 630

2

6

외부에서 가끔 ssh 접속을 해야할 필요는 있고, 22번포트를 열어두기는 찝찝하고 (포트포워딩으로 변경해도 포트스캔하면 다 보인다고 고수분들께서 경고하시고..)

 

방법을 찾다가 아래와 같이 하면 될것 같아서 간단히 방법을 공유합니다. (이것도 위험한지는 자신은 없습니다만, 최소한 22번 포트는 열지 않고 가능하기에...)

 

1. 먼저 shell in a box docker 패키지를 설치합니다.

    명령어로는  "docker run -p 4200:4200 -e SIAB_PASSWORD=xyz678abc -e SIAB_SUDO=true sspreitzer/shellinabox:latest " 이것 한줄이고 포테이너, yacht등 다른 도커 관리 패키지에서도 비슷하게 설치하면 될것 같습니다.  github 주소는 https://github.com/sspreitzer/shellinabox-container-image 이고 사용하는 파라미터에 대한 설명이 있습니다.

 

2. Optional : Shell in a box 서비스를 reverse proxy 에 등록 (안해도 될것 같습니다만, 이렇게 하면 4200번 포트마저도 열필요가 없으니까요)

 

3. 브라우저에서 host_ip:4200 또는 리버스 프록시에 등록해두었으면 shell.host_domain_name 등으로 접속하면 로그인 창이 뜹니다.

기본 로그인 사용자는 guest, 비번은 위 도커 실행 명령어에 설정한 대로 입니다. 

 

4. 이 도커 컨테이너는 완전 깡통이고, 파일 시스템도 호스트와 분리되어있습니다.

 

따라서 호스트에 ssh 접속하기 위해서 "ssh user_id@local_host_ip (192.168.x.x)" 를 입력하고 로그인하면 호스트의 쉘에 접근할 수 있습니다.

 

끝입니다. 나스 호스트이외에도 다른 리눅스 머신등이 공유기 아래에 있으면 4번 단계에서, 주소만 맞춰서 입력하면 되고요.

 

Shellinabox를 도커가 아닌 네이티브로 설치하면 불편함이 덜하겠지만, 어차피 불편함을 감수하고 포트를 닫고 쓰는 것이고,  호스트와 도커 컨테이너의 사용자/비번을 다르게 설정하면 보안상 더 좋을 것 같기도 하고.. 그렇습니다.

 

별거아니지만, 혹시 도움이 될까 싶어서...

신고공유스크랩
6
profile image 1등
달소 2022.10.24. 11:53

오호... 이런식의 우회는 꽤 괜찮죠!

아니면 아파치 과카몰리같은 원격 접속툴을 사용하시는것도 괜찮아보입니다.(OTP와 같은 2fa도 지원합니다)

profile image
jerry80 글쓴이 2022.10.24. 12:14
달소

과카몰리는 한번 해보다 뭔가 꼬였는지 잘 안돼서 그만 두었고.. DSM에 버추얼머신으로 리눅스 설치해두고, 이리 들어가서 써도 되기는 합니다만, 위에 적은 방법이 더 가벼운것 같아요. ^^

profile image
달소 2022.10.24. 13:09
jerry80

아무래도 vm보다 도커가 훨씬가볍죠! 리버스프록시나 포트포워딩도 되니 충분히 좋은것같습니다!

2등
나다용 2022.10.27. 17:15

폐쇄망에서 작업중인데.. 혹시 이 shellinabox를 터미널로 접근할 수 도 있을까요..?

예를 들면 젠킨스 빌드 > 터미널 접근 > 원격 서버 제어

너른호수 2022.10.28. 15:36
나다용

이 shell in a box는 wetty처럼 터미널을 웹페이지로 띄워주기 때문에 쉘간 접속 경로로는 못 쓸 것 같습니다.

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story

등록된 글이 없습니다.