Filter by 카테고리

아파치 IP 접속 커넥션 수 제한하기

()

개요

지난 주 동일 IP를 통해서 다중 세션으로 서버에서 과도한 트래픽이 발생하여 원인 파악 결과 중국에서 서버에 DDOS 공격을 일으킨 것을 확인 하였다

DDOS차단은 여러가지가 있으나 커넥션 수를 제한하여 트래픽을 제어할 수 있는 방법을 소개한다


조건

아래와 같은 상황에서 테스트 되었다

  • APACHE 2.4 64BIT VS16
  • PHP 7 이상
  • WINDOWS 10 이상 64비트 환경

모듈 설치 파일

해당 파일은 WINDOWS 환경에서 작동하도록 VS16으로 컴파일 되었다

서버가 VC로 컴파일 되었거나 다른 버전일 경우는 https://www.apachehaus.com/cgi-bin/download.plx#MODULES24">APACHE HAUS 사이트에서 확인 바란다


설치방법

압축을 풀고 mod_limitipconn.so 파일을 APACHE24\MODULES 폴더에 복사 붙여넣기 한다

APACHE24\CONF\httpd.conf 파일을 메모장으로 열고 아래 내용을 so 모듈 라이브러리에 추가한다

ExtendedStatus On
    LoadModule limitipconn_module modules/mod_limitipconn.so

그리고 아래에 다음과 같은 명령어를 추가한다

<IfModule mod_limitipconn.c>

    # Set a server-wide limit of 10 simultaneous downloads per IP,
    # no matter what.
    MaxConnPerIP 10

    <Location /images>
        # This section affects all files under http://your.server/somewhere
        MaxConnPerIP 10
        # exempting images from the connection limit is often a good
        # idea if your web page has lots of inline images, since these
        # pages often generate a flurry of concurrent image requests
        NoIPLimit image/*
        NoIPLimit text/*

				# exclude local IP addresses from limits
        LocalIP 127.0.0.1
    </Location>

명령어에 대한 해석

MaxConnPerIP 10 - 최대 10개까지 동일 ip 접근을 허용한다
 <Location /video> - 비디오 폴더는 별도의 제한을 설정한다       
MaxConnPerIP 5  - 비디오 폴더 접근은 최대 5개까지 동일 ip 접근을 허용한다
NoIPLimit image/*  - 비디오 폴더 내  image, text는 별도의 제한을 주지 않는다      
NoIPLimit text/*			 
LocalIP 127.0.0.1  - 127.0.0.1 아이피는 예외로 설정한다

 </Location>

이 게시물은 얼마나 유용했습니까?

별을 클릭하여 등급을 매깁니다!

평균 평점 / 5. 투표 수:

지금까지 투표가 없습니다! 이 게시물을 평가하는 첫 번째 사람이 되세요.

리플 남기기