[구조 두가지 ]
내가 한 거 : 윈도우 > 버추얼 박스 > 리눅스 > 도커
=> 윈도우 보안도 잡아야하고 리눅스 보안도 잡아야하고 포트포워딩도 해야함
윈도우 보안뚫리면 순서대로 좌라라라라락 보안 다뚫림 엑시던트
실제 서버 : 리눅스 > 도커
=> 죠앙
=====
정보) 도커 안에 있는 OS안에는 도커 못깐다
[서버]
- IP
- 윈도우 IP => SSH, FTP, DB 연결
- 어댑터
- NAT : 내부망 => 인트라넷
- NAT 네트워크 : 내부망 + 외부망 => 프리라우팅할때 쓴 nat이게 얘거임
- Host-Only : 버추얼박스가 서버로 들어올수있게함
- VirtualBow - OS를 선택 후 설정에서 NAT or NAT 네트워크
- SSH => putty 연결 데몬 => Linux Server useradd로 사용자가 생성
- FTP => Linux Server useradd로 사용자가 생성
- vsftpd.conf 로 환경설정
- chroot_list 에 등록된 사용자만 적용
- passive mode 사용 유무에 따라 변함 - 환경설정에서 설정
- LocalServer FTP - passive mode 사용안함 쓸필요없음 어차피 빠르게 접속 가능 로컬이니까
- CloudServer FTP - passive mode 사용함
- Database => Server 사용자 아이디를 그대로 사용할 필요 없음
- Server에 cms사용자 생성 / DB에서 mrp사용자 생성 => 다르게 사용자 사용 가능
- 포트포워딩
- Database => 1521(Oracle), 3306(Mysql, Maria), 5432(postgre), 27017(mongo)
- LocalServer DB => 3306
- CloudServer DB => LinuxServer에 보낼 포트, 자신의 Docker에서 오픈할 포트 필요
- Container DB => 3306
- Docker DB => 13306
- Linux Server DB => 13306 or 53306 => 같게 또는 다르게 설정해서 윈도우에 전달
- ⭐️포트를 53306으로 설정한 경우 PREROUTING으로 VirtualBox에 통보
- 13306으로 설정한 경우
- Database => 1521(Oracle), 3306(Mysql, Maria), 5432(postgre), 27017(mongo)
- Docker에서 컨테이너 만드는 방식
- Database Container
- docker run --name 컨테이너이름 -d -p 123.123.123.3:13306:3306
- 해당 아이피로만 접속한다는 뜻 => 리눅스아이피 => 내부망
- 이거를 외부에서 접속하려면 프리라우팅 필요
- 보안 좋음 / 라우팅개념 모르면 접근 못함
- docker run --name 컨테이너이름 -d -p 13306:3306
- 아이피를 안적으면 내부망,외부망 다 쓴다는 의미
- 아이피때리면 바로접근가능 / 내가쉬우니 해커에게도 쉬움 / 보안안좋음
- docker run --name 컨테이너이름 -d -p 123.123.123.3:13306:3306
- OS Container
- docker run --name 컨테이너이름 --privileged -p 123.123.123.3:7022:22
- --privileged : OS에만 쓰는 옵션 / 네트워크를 잡아주는 역할 / 안쓰면 네트워크 활성화가 안돼서 쓸모없어짐
- 123.123.123.3:7022:22 => 리눅스 아이피 쓴 경우 내부망만 접속 가능 => LocalServer 접속 후 ssh 추가 접속
- 백업서버만들때 사용
- docker run --name 컨테이너이름 --privileged -p 7022:22
- 외부에서 바로 접속 가능 내부외부망 모두 열림 => 윈도우아이피도 가능
- ⭐️포트의 범위를 설정하여 컨테이너 생성 가능
- docker run --name 컨테이너이름 --privileged -p 7022-7099:22-99 -p 8080-8085:8080-8085 -p 8005-8010
- tomcat의 경우 시작,종료 포트가 모두 있어야함!
- 단점 : 다 쓸 일이 없다고 생각되면 막아야함
- docker run --name 컨테이너이름 --privileged -p 123.123.123.3:7022:22
- Database Container