테스트 사이트 - 개발 중인 베타 버전입니다

DDos 공격 방어 하면서 배운것.

· 3년 전 · 2348 · 6

저번주에 DDos를 두건 처리하고 나서 생각을 정리해봅니다.

 

1. 클라우플레어는 정말 좋은 서비스

 - 보통 이걸 붙혀두면, 만사형통임.

 - 사이트가 공격 당하고 계신가요? --> Under Attack.. 

 -  Under Attack 는 요금제에 따라서 커스텀 가능.

     (클플에서 제공하는 기본 페이지는 사용자를 놀라게 하니 꼭 변경)

 

2. 사이트가 어느정도 버텨야 함.

 - 사이트 최적화로 평소 트래픽보다 50% ~  100% 들어오는건 사이트에서 소화가능해야 함.

- 특히 DB쪽을 최적화 해야 함.

 

3. 좀비 PC는 국내외를 가리지 않음.

 - 국외인경우, 해외 트래픽을 막으면 해결됨.

 - 국내인경우는 좀더 복잡함. 

 

4. 손으로 아이피 차단하는건 사람이 할짓이 못됨

 - Fail2ban 등의 모듈을 이용해 자동 차단이 가능하나,

 - 잘못 적용하면 일반 사용자를 대량으로 차단할수도 있어 조심스럽게 써야함

 

5. apache 보다는 nginx를 쓰는 경우 DDos 방어가 쉬움.

 - 일단 apache 는 자체 성능이 떨어지는것 같음

 - 아이피 요청수를 제한하는 limit_zone 도 쓰기에 따라 방어하는데 도움이 됨

 

6. limit_zone

 -  zone을 하나 이상을 만들어서 상황별 적용

 - 국내아이피/국외아이피에 따라서 burst 를 조정

 - 페이지별로 burst를 조정. php 페이지에 php가 아닌페이지

 

7. 알림서비스가 필요함

 - 사이트가 느려지거나, 갑자기 요청수가 늘어나는걸 감지하는 기능이 필요

 - 유료서비가 많지만, 유료서비스는 너무 비쌈. 직접 설정하여 만드는게 좋음.

 

8. 정적 페이지(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 모드)

  

9. 결론

  - 최근 사이트의 DDos공격 및 취약점 공격이 많아지고 있음.

  - 대규모의 ddos공격이 아니라면 충분히 방어가능

  - 대규모의 공격은 클라우드플레어를 쓰는걸 추천(서비스 안되는것보다는 서비스가 조금 느린게 나은 선택)

  - 자체 Ddos/Dos 방어 체계를 갖추는 게 중요

 

 

ps) 혼자 회고하다가 공유하면 좋을것 같아 게시물로 남깁니다.

 자체적으로 under attack  을 한번 구현해보았습니다. 한번 테스트해보세요.

 http://141.164.61.26

 - 최초 접속시 under attack 페이지 노출.

 - 5초(변경가능) bypass cookie 생성을 합니다. 

 - bypass cookie  가 있는 경우, 바로 index 페이지를 노출합니다.

 

 

 

 

 

 

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 6개

오~ 좋은 정보네요.
팁자료실에도 다시 한 번 올려주세요...ㅎ

자게에 있으면 금방 아래로 밀려서 나중에 찾기 힘들어요.
3년 전
@도레미 파솔라시도~
공감합니다.
3년 전
와우! 감사합니다~ 저도 알아야하는데~ 클라우플레어밖에 몰라서..
정보 공유 감사합니다 : )
서버 관리에 대해서 무심한데 경험을 알려 주셔서 감사합니다.
3년 전
좋은 정보, 감사합니다. ^^

게시글 목록

번호 제목
1717629
1717626
1717625
1717621
1717619
1717611
1717610
1717609
1717607
1717601
1717598
1717591
1717590
1717583
1717575
1717572
1717568
1717566
1717549
1717545
1717533
1717512
1717511
1717508
1717495
1717479
1717473
1717470
1717463
1717452