IT/WEBWAS

DDoS 공격에 대비한 NginX 설정 방법

동구멍폴로 2023. 2. 5. 11:38
반응형

 DDoS (Distributed Denial of Service)는 네트워크 서비스의 과도한 요청으로 인해 서버가 장애를 일으키는 공격의 종류로,  이 공격은 많은 장치나 컴퓨터를 통해서 동시에 공격을 시작하여, 타겟 서버가 특정 요청을 처리하지 못하게 만든다.

 이는 일반적으로 웹사이트, 인터넷 서비스, 온라인 게임 등에 대한 접속을 막는 것으로 끝나며, 보안 취약점을 악용하여 공격을 하는 경우도 있다.

 DDoS에 대비하여, nginx 에서 설정할 수 있는 사항에 대해 아래와 같이 알아본다.

 

1) 요청 수 제한 방법

-  nginx 는 연결수 제한과 요청속도 제한이 모두 가능하다. 이를 통해 DDoS 공격시 하나의 Client 에서 발생하는 트래픽에 대한 제한이 가능하다. 
- nginx 의 설정파일에 아래와 같이 설정시 적용가능하며, 설정파일의 각 요소에 대한 설명은 다음과 같다.

  1. limit_req_zone $binary_remote_addr : 특정 IP 설정
  2. zone=one:10m : one 이라고 설정된 존에 할당된 Shared 메모리 10 메가 바이트
  3. rate=10r/s; : 초당 10개 리퀘스트 
  4. limit_req zone=one burst=20; : one 존에 최대 20개 가능
http {
    limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
    server {
        limit_req zone=one burst=20;
        ...
    }
}

2) 특정 IP 차단

- 기타 Web 과 마찬가지로 특정 IP에 대한 Blocking 처리가 가능하다.
- nginx 의 설정파일에 아래와 같이 remote_addr 변수에 설정하면 되며, return 시킬 response code 도 설정가능하다.

-  다건일 경우 | 를 사용하여 추가하며, * 처리도 가능하다.

server {
    if ($remote_addr ~* (1\.1\.1\.1|2\.2\.2\.2)) {
        return 403;
    }
    ...
}

 

참고 : Web 설정 외  기타 설정

  1. CDN 사용
    CDN(Content Delivery Network)을 사용하면 실제 서버로 유입되는 트래픽의 일부를 처리하여 부하감소의 효과가 있을 수 있고, 이를 통해 실제 서버로 영향을 미칠 수 있는 DDoS 공격을 사전 차단할 수 있다.
  2. Server-side 캐싱 활성화
    빈번하게 request 되는 컨텐트에 대해 캐싱 처리시에 요청의 수를 감소시켜 서버 부하 감소의 효과가 있다.
반응형