gcp로 운영 중이던 웹페이지가 db를 읽어오지 못하는 현상이 생겼다. 아래는 웹페이지에서 볼 수 있는 문구.

마지막 따옴표 사이에 읽어와야할 db명이 적혀있다.

java.sql.SQLSyntaxErrorException: Could not connect to address=(host=127.0.0.1)(port=3306)(type=master) : Unknown database 'wifi '

문제를 파악하기 위해 서버로 접근하여 확인해본 결과 db가 없어졌다. 

sql파일을 가지고 있어서 다시 올리면 그만인데 문제는 며칠 간격으로 db가 계속 사라진다는 것.. 

처음 웹페이지를 운영해본터라 서버 문제인 줄 알고 로그는 확인도 안 하고 반복해서 sql만 새로 올렸다.

반복되는 오류에 뒤늦게 로그를 확인해봐야겠다는 생각이 들었다. 문제는 mariaDB만 그런 건지 db를 올리면 기본값이 로그를 남기지 않게끔 되어있었다. 그래서 이번에는 로그를 남기게 설정해놓고 주기적으로 들어가서 확인해 보았다. 

 

결론

 새벽 4시경에 누군가 db에 접속하여 자료를 건드는 로그를 발견.

지워진 당일날 확인하니 db자체는 남아있지만 안에 있는 테이블과 자료들은 없다. readme를 읽어보니 데이터를 복구하고싶으면 토르 브라우저로 접속하여 비트코인을 보내란다.. 즉 랜섬웨어다. 

처음에는 기존 db도 안남겨놓고 readme만 있었는데, 나는 readme가 mariaDB에서 작성된 기본 db로 착각해서 열어볼 생각을 안 했었다.

돈 안 보내고 쭉 지켜봤더니 이번에는 내 데이터는 백업되어 있단다.. 48시간 내로 돈 안 주면 유출할 거라는 문구로 변경되어 있다. 나름 신기한 경험을 해보았고 로그의 중요성을 깨달았다. 로그 볼 생각 안 했으면 계속 반복해서 sql만 올렸을 테니.. 해당 gcp서버는 파기 후 다시 가동하면 그만이다. 다만 걱정되는 건 어떤 경로로 감염이 된 건지를 잘 모르겠다.

'web > errors' 카테고리의 다른 글

서버 재부팅 후 도메인 연결 안되는 문제  (0) 2021.06.10

구글 클라우드 플랫폼으로 서버를 가동 중, ssh으로 접속 시, [time out]으로 접근이 불가능한 상태였다.

간단하게 인스턴스 재부팅을 진행. ssh접속은 가능해졌으나, 이후에 문제가 발생했다. godaddy에서 구매한 도메인으로는 연결이 안 되는 현상.. 톰캣이 실행이 안되었나 확인해보니 외부 ip로는 접속이 잘된다...

 

이때부터 아무 잘못없는 고대디에 가서 도메인 초기화 -> 네임서버 재연결만 시도했었다. 여기서 또 삽질했던 것이 고대디가 미국 회사라 그런지 네임서버 바꾸는데도 에러.. 채팅으로 고대디 직원에게 직접 문의를 해서 변경을 부탁해야 적용이 되었는데, 문제는 아무리 연결을 해봐도 채팅 연결이 안 된다.. 무한 "chat Loading..." 열심히 구글링 해본 결과 접속 지역이 미국 이외의 경우라면 해당 증상이 생긴단다. -_- vpn으로 접속지역을 미국으로 바꾸니까 그제야 채팅 연결이 되고 초기화했던 네임서버를 재연결. 여기까지 오는 데에도 며칠 걸렸다. 그렇게 도메인 설정 초기화 후 네임서버까지 재연결 했으나, 여전히 등장한 'ERR_CONNECTION_REFUSED' 에러.

 

이후에 또 다시 헤맸는데, 결론은 기존의 80 포트를 8080으로 리다이렉팅 해놓았던 설정이 재부팅으로 인해 지워진 것이다. 이사실을 알고 난 뒤 도메인에 8080 포트로 접속해보니 잘된다. 즉 도메인 연결은 잘 되어 있었고 접속이 안 되는 포트로 접속하고 있었던 것... 

알고 나니 너무나 허탈했다. 다음에도 삽질하지 않기 위해 이 글을 남긴다.

 

iptables를 이용하여 80포트 8080으로 리다이렉팅

 

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

 

이후 잘 적용되었는지 확인하기 위한 명령어 

 

iptables -t nat -L

 

**재부팅돼도 초기화되지 않게 저장하는 명령어라는데,, 내 서버 환경에서는 해당 명령어가 수행되지 않는다.. 해결하기 전까지 재부팅하게 되면 80 포트 리다이렉팅을 까먹지 않도록 하자.**

service iptables save

----> 다행히도 빠르게 해결했다. service iptables save는 RHEL, Red Hat, CentOS에서 사용하는 명령어였고, 우분투에서는 다른 명령어로 접근을 해야 했다. 

sudo /sbin/iptables-save

 

이제 부터는 재부팅을 해도 80 포트 리다이렉팅 설정이 지워지지 않는다.

'web > errors' 카테고리의 다른 글

데이터 베이스가 주기적으로 삭제되는 현상  (2) 2021.06.25

+ Recent posts