개인적으로 취미겸 봉사(?)로 국내의 한 대규모 게임 커뮤니티의 게임 서버와 팀스피크 서버를 관리/운영하고 있습니다. 그런데 이번 황금 연휴 기간에 갑작스러운 DDoS 공격으로 팀스피크 서버가 다운되서 다수의 커뮤니티원들이 불편을 겪게됐습니다. 다행히 이에 대한 대응과 복구는 신속하게 진행되어 몇분안에 정상화 됐습니다. 오늘은 이에 대해 포스팅하고자 합니다.
일단 이야기를 시작하기에 앞서 제가 관리중인 커뮤니티 서버에 대해서 간단하게 설명드리겠습니다.
1서버 : 대규모 게임 서버, 가정에서 사용하는 개인 PC Windows 10 사용중 (피크 타임 동접자 약 50여명)
2서버 : 소규모 게임 서버, 가정에서 사용하는 개인 PC Windows 10 사용중 (평균 동접자 약 10여명)
3서버 : 팀스피크 서버, AWS Lightsail Ubuntu 사용중 (피크 타임 동접자 약 80여명)
서버 관리자 : 메인 3명, 서브 1명(이전에 서버를 담당했던 사람으로 메인으로 서버 관리에 참여하고 있지는 않음)
이번에 공격 당한 서버는 3서버인 팀스피크 서버입니다. 5월 4일 오후 10시쯤 커뮤니티에 팀스피크 서버가 접속이 불가능하다는 글들이 올라왔습니다. 처음엔 단순한 서버 문제라고 생각했지만 최초로 서버 문제를 해결하던 사람에게 DDoS 공격인것 같다는 소식을 듣게 되었고 터미널에 접속이 불가능하니 서버를 재부팅하겠다는 얘기까지 듣고나서 심각함을 깨달았습니다.
다행히 서브 관리자 1명이 임시 팀스피크 서버를 열어 커뮤니티원들의 불편함은 금방 해결할 수 있었고 임시 서버를 운영하는 동안 저는 정확한 문제 파악을 진행하고 다른 두명은 서버 복구를 진행했습니다. 가장 먼저 제가 살펴본건 네트워크 트래픽 지표였습니다.
평상시 수신 트래픽은 피크타임 기준 최대 10MB 내외입니다. 반면 공격당시 수신 트래픽은 기가 단위까지 올라갑니다. (그래프는 1시간 평균이라 다소 낮게 나옴) 이미 그래프만 봐도 아시겠지만 최초 공격 이후인 5월 7일날 공격이 한번 더 들어왔습니다. 아마 몇몇 분들은 '무슨 서버가 저정도 트래픽도 감당을 못하냐' 라고 생각하실 수 있겠지만 팀스피크 서버는 3$ 내외의 가장 낮은 스펙의 서버입니다. 이번처럼 기가 단위의 트래픽이 들어오면 금방 죽어버릴 수 밖에 없습니다. 비싼 서버를 사용하지 않는 이유는 공격을 당하지 않으면 해당 스펙으로도 전혀 문제가 없고 서버 유지 비용은 개인 사비다 보니 가성비 측면에서 이보다 비싼 서버를 쓸 이유가 없습니다.
트래픽을 확인한 후 바로 로그 분석에 들어갔습니다.
서버 오류를 최초로 들어온 시간 근처의 로그를 찾아보니 94.23.235.222, 108.61.78.149, 37.187.252.194 총 3개의 IP주소에서 Unknown, Unknown1, Unknown2라는 이름으로 계속해서 연결을 시도했다가 끊는 것을 반복했다는 것을 확인할 수 있었습니다. 이 3개 IP주소에 대해 남은 로그의 수는 약 4100개. 지식 부족으로 정확한 이유는 알 수 없지만 저 4100개의 연결 시도와 연결 끊기를 처리하다가 서버의 메모리 고갈로 서버가 뻗어버린게 아닐까 하고 결론을 냈습니다.
일단 서버 복구는 서버 재부팅 및 고정 IP 변경, 도메인 변경이라는 임시 조치를 통해 어느정도 해결했습니다. 하지만 위 트래픽 그래프를 보시면 아시겠지만 바로 2일 후 또 공격을 당했죠.. 이에 DDoS 예방에 대해 많은 논의가 오고갔습니다. GEO IP를 이용한 필터링, 사용자명을 통한 필터링, NFO Servers로 서버 이전 등 다양한 의견이 오고갔는데..
GEO IP는 커뮤니티에 해외 접속자가 있어서 불가능했고, 사용자명을 통한 필터링은 팀스피크에 대해 잘 모르는 첫 접속자들의 접속을 어렵게 할 수 있다는 점에서 기각, 결국 NFO Servers로 서버를 이전하기로 했습니다. 1달에 10$ 라는 유지 비용을 지출해야하지만 DDoS에 대해 거의 완벽하게 방어해준다는 특징 때문에 어쩔 수 없이(?) 사용하기로 했습니다. 현재 이전은 완료했고 아직까지는 추가 장애가 발생하지 않았습니다. 실제러 NFO에서 잘 막아주고 있는건지 공격자가 포기한건지 알 수 없지만 부디 당분간은 잠잠했으면 좋겠네요..
'기타' 카테고리의 다른 글
해킹(보안) 공부 방법 (4) | 2020.06.07 |
---|---|
글또 4기 시작. (0) | 2020.03.01 |
근황 업데이트 (0) | 2020.01.18 |
2019 하반기 CJ 인적성 후기 (0) | 2019.10.22 |
2019 하반기 KT 인적성 후기 (0) | 2019.10.13 |