서버관련 지식
저번주에 DDos를 두건 처리하고 나서 생각을 정리해봅니다.
- 클라우플레어는 정말 좋은 서비스
보통 이걸 붙혀두면, 만사형통임.
사이트가 공격 당하고 계신가요? --> Under Attack..
Under Attack 는 요금제에 따라서 커스텀 가능.
(클플에서 제공하는 기본 페이지는 사용자를 놀라게 하니 꼭 변경)
- 사이트가 어느정도 버텨야 함.
사이트 최적화로 평소 트래픽보다 50% ~ 100% 들어오는건 사이트에서 소화가능해야 함.
특히 DB쪽을 최적화 해야 함.
- 좀비 PC는 국내외를 가리지 않음.
국외인경우, 해외 트래픽을 막으면 해결됨.
국내인경우는 좀더 복잡함.
- 손으로 아이피 차단하는건 사람이 할짓이 못됨
Fail2ban 등의 모듈을 이용해 자동 차단이 가능하나,
잘못 적용하면 일반 사용자를 대량으로 차단할수도 있어 조심스럽게 써야함
- apache 보다는 nginx를 쓰는 경우 DDos 방어가 쉬움.
일단 apache 는 자체 성능이 떨어지는것 같음
아이피 요청수를 제한하는 limit_zone 도 쓰기에 따라 방어하는데 도움이 됨
- limit_zone
zone을 하나 이상을 만들어서 상황별 적용
국내아이피/국외아이피에 따라서 burst 를 조정
페이지별로 burst를 조정. php 페이지에 php가 아닌페이지
- 알림서비스가 필요함
사이트가 느려지거나, 갑자기 요청수가 늘어나는걸 감지하는 기능이 필요
유료서비가 많지만, 유료서비스는 너무 비쌈. 직접 설정하여 만드는게 좋음.
- 정적 페이지(html), 동적페이지(php)
nginx 를 사용하는 경우 정적 페이지는 cdn에서 서비스 되어 충분히 버틸만함
php 와 같은 동적 페이지는 요청수가 많은 경우, mysql까지 느리게 만듬
(그누보드는 기본적으로 모든 php페이지가 db접속을 하게됨)
ddos는 대부분 / index.php 를 공격하게 되는데, 회피해야함.
그누보듸 index.php 는 느린편에 속함(캐시를 활성화 하는경우 일부개선)
공격이 들어오면, index.php 보다는 index.html로 접속시킨 다음 index.php 로 이동시킴
(이때 index.html에서 bypass cookie를 만들어 검증하는 방식이 클라우드 플레어 under attack 모드)
- 결론
최근 사이트의 DDos공격 및 취약점 공격이 많아지고 있음.
대규모의 ddos공격이 아니라면 충분히 방어가능
대규모의 공격은 클라우드플레어를 쓰는걸 추천(서비스 안되는것보다는 서비스가 조금 느린게 나은 선택)
자체 Ddos/Dos 방어 체계를 갖추는 게 중요
ps) 혼자 회고하다가 공유하면 좋을것 같아 게시물로 남깁니다.
자체적으로 under attack 을 한번 구현해보았습니다. 한번 테스트해보세요.
최초 접속시 under attack 페이지 노출.
5초(변경가능) bypass cookie 생성을 합니다.
bypass cookie 가 있는 경우, 바로 index 페이지를 노출합니다.
그누보드에서 솔그루님이 방어하는 방법을 조언글을 올려둬서 한번씩 참고하면된다.
따로 쪽지 남겼는데 친절하게 설명해줬다.
- 프론트 spa인 경우 자바스크립트를 해석하지 않은 공격은 백엔드와 통신하지 않게 됩니다.
- 일반적인 ddos라면, 타격이 적을것입니다.
- limit zone은 동일 아이피에서 요청수를 감소시키는 기능입니다.
- ddos가 들어오는 경우, 동일 아이피의 요청수가 많습니다. 이를 감소시켜야 서버가 어느정도 버틸수 있습니다.
- 평소 트래픽 2배정도는 무리없이 버틸수 있어야 한다고 봅니다.
- ddos가 들어오는 경우, 클플을 쓰더라도 트래픽이 어느정도 넘어오게 됩니다.
나머지는 답하기 애매하다고함..