Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 공부
- CloudWatch
- Kubernetes
- tampermonkey
- minikube
- AWS EKS
- Spring
- kotlin
- APM
- PETERICA
- 정보처리기사실기 기출문제
- Kubernetes 자격증
- Elasticsearch
- CKA 기출문제
- 코틀린 코루틴의 정석
- MySQL
- 기록으로 실력을 쌓자
- kotlin spring
- Linux
- CKA
- AI
- aws
- 정보처리기사 실기 기출문제
- Java
- Pinpoint
- kotlin querydsl
- 정보처리기사 실기
- IntelliJ
- mysql 튜닝
- kotlin coroutine
Archives
- Today
- Total
피터의 개발이야기
Docker를 사용하여 MongoDB 설치 및 iptime 외부접속 포트 설정 본문
반응형
ㅁ 들어가며
MongoDB를 활용할 기회가 있어서 사용법을 공부하기 위해 Docker로 mongoDB를 생성하였다. 잠시 테스트용이라 빠르게 실행하는 방법으로 정리하였다.
update 24.1.10
ㄴ 빠르게 실행하면서 보안 설정을 1도 하지 않았는데... 하루도 안되어서 해킹당하네요. 마지막에 해킹당한 정황을 정리하였습니다.
ㅁ MongoDB Docker 이미지 다운로드
$ docker pull mongo
Using default tag: latest
latest: Pulling from library/mongo
005e2837585d: Pull complete
e60b3ed21100: Pull complete
81fcf60fea85: Pull complete
05da3aee34af: Pull complete
c0f2bf503f32: Pull complete
e7e4d672dd05: Pull complete
f1bc5c150557: Pull complete
3c174931be51: Pull complete
500987cab84a: Pull complete
Digest: sha256:d14158139a0bbc1741136d3eded7bef018a5980760a57f0014a1d4ac7677e4b1
Status: Downloaded newer image for mongo:latest
docker.io/library/mongo:latest
ㅁ MongoDB Docker 컨테이너 생성 및 실행
$ docker run --name mongodb-container -v ~/data:/data/db -d -p 27017:27017 mongo
b32b2da6d8d4f9af21ba427c4af7f3d3fdc9ef1ef592e41cd0dd4f029338175d
ㅁ MonoDB 생성 확인
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b32b2da6d8d4 mongo "docker-entrypoint.s…" 13 seconds ago Up 12 seconds 0.0.0.0:27017->27017/tcp mongodb-container
bd08535c1dda productiveops/dokemon:latest "/dokemon" 13 days ago Up 13 days 0.0.0.0:9090->9090/tcp dokemon
826d098fe478 nginx:latest "/docker-entrypoint.…" 4 weeks ago Up 3 weeks 0.0.0.0:80->80/tcp webserver
ㅁ IPTIME 포트포워드 설정
ㅇ mongoDB의 외부 접속을 위해 IN-BOUND 포트 포워드를 설정하였다.
ㅁ Robo 3T - mongoDB Client로 접속 테스트
ㅇ 사용한 Robo 3T 버젼정보
ㅇ 테스트용으로 빠르게 실행기 때문에 다른 보안 사항은 패스
ㅇ iptime에서 무료로 제공하는 서브도메인을 받아서 XXXX.iptime.org로 Address를 설정하고 접속한다.
ㅇ 테스트로 goEun이라는 콜랙션을 만들어 test: test 데이터를 생성하였다.
ㅁ 해킹 상황
{
"_id" : ObjectId("659d696aac68fdcf9b567b2d"),
"content" : "All your data is backed up. You must pay 0.01 BTC to 164hyKPAoC5ecqkJ2ygeGoGFRcauWRLujV In 48 hours, your data will be publicly disclosed and deleted. (more information: go to http://iplis.ru/data1)After paying send mail to us: rambler+1oyt3c@onionmail.org and we will provide a link for you to download your data. Your DBCODE is: 1OYT3C"
}
ㅁ 조치방법
IPTIME 포트포워드 설정에서 설정한 inbound port를 다른 port로 변경하였다. 이렇게 하면 기본 포트로 mongoDB에 접속하려는 기본 프로토콜은 방어할 수 있게 된다. 최소한으로 inbound port는 변경하는 것이 좋을 것 같다.
ㅇ 컨테이너 데이터 삭제
ㄴ 컨테이너의 기동 시 로컬의 ~/data를 컨테이너의 /data/db에 마운트 해놓은 상태이다.
ㄴ 필요없는 데이터라 ~/data의 데이터를 초기화 하였다.
ㅇ 컨테이너 삭제 및 재설치
## 컨테이너 정지
$ docker stop mongodb-container
mongodb-container
## 컨테이너 삭제
$ docker rm mongodb-container
mongodb-container
## 컨테이너 재설치
$ docker run --name mongodb-container -v ~/data:/data/db -d -p 27017:27017 mongo
c30a2bfc022e314cac20b51be598fa0e02b600c573cd3b5cc4d6b996e4413702
## 컨테이너 확인
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c30a2bfc022e mongo "docker-entrypoint.s…" 34 seconds ago Up 34 seconds 0.0.0.0:27017->27017/tcp mongodb-container
ㄴ 삭제 후 설치한 그대로 다시 세팅하였다.
ㄴ 걸리는 시간은 2분 정도였다.
ㅁ 함께 보면 좋은 사이트
반응형
'DevOps' 카테고리의 다른 글
[HeyForm] HeyForm 구축하여 local에서 사용해보기, 메일서버가 필요 실패 (0) | 2024.04.04 |
---|---|
[HeyForm] docker로 HeyForm 설치하기 (0) | 2024.04.04 |
[DevOps] 청록색 배포, A/B 테스트 및 카나리아 배포 (0) | 2023.10.23 |
[docker] MariaDB을 localStorage로 설치하기 (0) | 2023.07.30 |
[DevOps] fluentd와 fluentbit의 차이점 (1) | 2022.08.15 |
Comments