도커(docker)를 이용하여 nc 서버 구축하는법
Table Of Contents
도커(docker)를 이용하여 nc 서버 구축하는법
-
도커(docker)란?
도커(docker)는 어플리케이션을 쉽게 구축하고 테스트등의 다양한 기능을 사용할 수 있는 플랫폼입니다.
쉽게 말해서 도커로 한 운영체제안에 여러개의 운영체제를 쉽게 구축하고 배포할 수 있습니다.
-
도커파일 빌드
-
도커파일이란?
도커파일을 작성한 다음 빌드하게되면 도커 파일안에 있었던 설정대로 이미지가 만들어지게 됩니다.
작성된 도커파일을 빌드하면 Dockerfile에 작성된 명령어들을 한줄씩 실행하는것을 실시간으로 볼 수 있습니다.
-
nc 서버를 구축하기 위한 도커파일 작성
파일 이름 설명 Dockerfile Dockerfile를 이용하여 앱의 환경을 정의합니다. docker-compose.yml 격리 된 환경에서 함께 실행할 수 있도록 앱을 구성하는 서비스를 정의 합니다. -
Dockerfile
FROM ubuntu:16.04 RUN apt-get update RUN apt-get upgrade -y RUN apt-get install -y xinetd ENV TERM=linux RUN useradd -m attack WORKDIR /home/attack ADD nctest /home/attack ADD attack /etc/xinetd.d RUN chmod 460 /home/attack/* RUN chown attack:root /home/attack/* RUN chmod +x /home/attack/nctest RUN echo "attack 10001/tcp" >> /etc/services CMD ["/usr/sbin/xinetd","-dontfork"]
-
docker-compose.yml
version: '2.2' services: nctest: build: ./ ports: - "10001:10001"
-
attack
service attack { disable = no flags = REUSE socket_type = stream protocol = tcp user = attack wait = no server = /home/attack/nctest }
-
nctest
#include <stdio.h> void init(){ setvbuf(stdin, (char *)NULL, _IONBF, 0); setvbuf(stdout, (char *)NULL, _IONBF, 0); setvbuf(stderr, (char *)NULL, _IONBF, 0); } int main(){ init(); printf("Hello Guest\n"); printf("nc Server Test\n"); }
nc 서버 실행할때 사용되는 프로그램을 c언어로 작성한 다음 밑의 명령어를 실행하면 된다.
root@root:~$ gcc -o nctest nctest.c
Dockerfile, docker-compose.yml, attack, nctest 총 4개의 파일을 만든 다음
docker-compose up -d
명령어를 실행하면 정상적으로 도커가 빌드될시에
이와 비슷한 구조로 돌아가고있다고 보면 된다.
이제 nc 0.0.0.0 10001 으로 접속하면 성공적으로 결과가 나오게된다.
root@ip-10-0-2-102:/home/ubuntu/nctest# nc 0.0.0.0 10001 Hello Guest nc Server Test
-
-
nc 서버 연결 안됨
만약 위와 비슷하게 도커(docker)를 이용하여 nc 서버를 만들었는데 연결이 안되는 경우는 대표적으로
- /etc/services에 서비스 이름과 port를 추가하지 않은 경우
- /etc/xinetd.d/ 에 적어놓은 서비스 이름과 /etc/services에 적은 서비스 이름이 다를 경우
- /etc/xinetd.d/ 에 잘못된 실행파일 경로를 넣은 경우
크게 3가지로 꼽히지만 구축하는 환경이 어떻게 되어있냐에 따라 달라질것같다.
마무리
만약 구축에 어려움이 있다면 미리 적어놓은 파일 다운로드한 다음 위에서 입력한 명령어들과 동일하게 실행하면 된다.
도커 컨테이너 각티슈 케이스
도커 컨테이너 모양의 각티슈 케이스를 이번에 좋은 기회로 얻게 되었습니다.
솔직히 각티슈 케이스에는 별 신경을 안썻는데 이런 템도 있다는게 좀 신기해서 써보고 있는데
같이 전공 하시는 분들은 이쁘다고 좋아하시는 반응입니다 ㅋㅋ
https://incatos.shop/surl/P/11
해당 링크에 들어가, 구매가 가능하고 만약 도커에 관심이 있으신 분들이라면 계속 두고두고 써먹을 수 있으니 한번 추천 드립니다 :)