오늘은 프론트분과 소켓 관련 채팅 작업 진행 도중 생겼던 문제입니다.
MongoDB로 데이터가 제대로 들어오는지 확인을 하던 도중 갑작스럽게 데이터가 사라졌습니다.
혹시나 프론트에서 잘못 요청하면 데이터가 사라지나..? 그럴 수가 있을까? 서로 상의를 하고 있었고
그 사이에 전 docker로 생성한 mongodb 컨테이너 로그를 확인했습니다.
다양한 로그들 사이에 drop database를 발견을 할 수 있었습니다.
그래서 로그를 살펴보니 drop database가 된 후에 새롭게 collection이 생성이 된 것을 확인했습니다.
"namespace":"READ__ME_TO_RECOVER_YOUR_DATA.README"
이런 collection이 생성이 되어 있었고 데이터를 복구를 하려면 읽으라고 나와있어서
해당 데이터를 확인했습니다.
All your data is backed up.
You must pay 0.01 BTC to 16w2xEN9pcjFgECWH1LDVps4xV9m3nUMBN 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+17b6o8@onionmail.org
and we will provide a link for you to download your data.
Your DBCODE is: 17B6O8
해당 문구가 있었습니다..
너의 데이터를 복구를 하고 싶으면 48시간안에 비트코인을 지불하고 메일을 보내라
그러고 링크를 타고 너의 데이터를 다운하라고 나와있었습니다.
무슨 이런 일이 생기지.. 싶었습니다.
그래서 찾아보니 비밀번호를 생성하지 않은 db를 찾아다니며 데이터를 뽑아내는 것이였습니다.
개발 단계여서 문제가 없었지만 실제 현업에서 일어났다면 정말 큰일이라고 생각을 했고
db를 날리고 다시 설정을 하기로 했습니다.
명령어로 컨테이너를 실행을 하고
docker run -d --name {DBNAME} -v {DB_VOLUME} \
-p 27017:27017 \
-e MONGO_INIT_ROOT_USERNAME={USERNAME} \
-e MONGO_INIT_ROOT_PASSWORD={PASSWORD} \
mongo
컨테이너로 접속했습니다.
docker exec -it {CONTAINER_NAME} /bin/bash
MongoDB에 접속합니다.
mongosh -u {MONGO_INIT_ROOT_USERNAME} -p {MONGO_INIT_ROOT_PASSWORD}
이제 제가 사용 할 새로운 유저를 생성하도록 하겠습니다.
use admin
처음 접속을 하면 test로 되어 있어서 설정을 위해 admin으로 이동합니다.
유저를 생성하면 됩니다.
db.createUser(
{
user: {USERNAME},
pwd: {PASSWORD},
roles: [
{ "role" : "root", "db" : "admin" },
]
}
)
다음과 같이 설정을 한 이후
db.getUsers()
설정한 유저가 정상적으로 적용이 됐는지 다시 한번 확인합니다.
이런 과정을 거쳐 새롭게 db 구성을 완료했습니다.
(다시 해킹이 되지 않았으면 좋겠습니다..!)
'Project > Nuwa' 카테고리의 다른 글
Nuwa Project - EC2 메모리 부족 현상 (1) | 2024.03.09 |
---|---|
Nuwa Project - S3 Delete File (issue) (1) | 2024.03.08 |
Nuwa Project - Monitoring (Actuator & Prometheus & Grafana) (0) | 2024.02.27 |
Nuwa Project - 문자열 Decode (1) | 2024.02.25 |
Nuwa Project - Querydsl 정렬 (0) | 2024.02.25 |