CentOS에서 DoS 및 DDoS 공격을 방지하도록 mod_evasive 구성

이 기사에서는 CentOS에서 DoS 및 DDoS 공격을 방지하기 위해 mod_evasive를 설치하고 구성하는 방법을 배웁니다.

이 데모에서는 CentOS 7 64비트 전용 서버를 사용했습니다.

시작하자.

mod_evasive Apache 모듈. Apache 웹 서버에 대한 DoS 및 DDoS(분산 서비스 거부) 공격 및 무차별 대입 공격을 지속하는 데 도움이 됩니다. mod_evasive는 들어오는 요청을 모니터링하고 이메일 및 시스템 로그 기능을 통해 남용을 보고하여 작동합니다. 탐지 및 네트워크 관리 도구로 의도되었으며 ipchains, 방화벽, 라우터 등과 통신하도록 신속하게 구성됩니다.

mod_evasive는 의심스러운 요청을 감시하고 다음 중 하나의 단일 IP 주소를 거부합니다.

  • 초당 몇 번 이상 동일한 페이지를 요청하는 경우
  • 동일한 자식에 대해 초당 50개 이상의 동시 요청 만들기
  • 일시적으로 블랙리스트에 있는 동안 요청하기

전제 조건

  • CentOS 7 64비트 전용 서버 또는 클라우드 서버(CentOS 6에서도 작동)
  • Apache Webserver LAMP(Linux, Apache, MySQL, PHP) 설치 및 구성
  • 메일 서버

1. 서버를 최신 상태로 유지:

# yum update -y

2. EPEL(Enterprise Linux용 추가 패키지) 설치:

# yum install epel-release -y

3. mod_evasive의 전제 조건 설치 :

# yum install httpd-devel

4. mod_evasive 설치:

# yum install mod_evasive -y

이제 mod_evasive 가 설치되었습니다.

5. Apache 구성 파일에 mod_evasive 구성을 추가하려면:

기본적으로 LoadModule 라인은 구성 파일 mod_evasive.conf에 추가됩니다 . 파일을 열고 다음 행이 아직 없으면 추가하십시오.

# vi /etc/httpd/conf.d/mod_evasive.conf

LoadModule evasive20_module modules/mod_evasive24.so

구성 파일 mod_evasive.conf를 열고 다음 항목을 확인하십시오.

DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 60
DOSEmailNotify

요구 사항에 따라 위 항목을 구성할 수 있습니다. DOSEmailNotify 를 이메일 ID로 수정 합니다.

IP 주소를 화이트리스트에 추가하려면 구성 파일에 다음 행을 추가하십시오.

DOSWhitelist 127.0.0.1

DOSWhitelist 127.0.0.*

여러 IP 주소를 추가할 수도 있습니다.

DOSLogDir 을 변경하려면 항목이 하나 더 필요합니다 . 기본적 으로 잠금 메커니즘은 /tmp 를 참조합니다 .

/var/log/ 에 새 디렉토리 생성 :

# mkdir /var/log/mod_evasive

소유권을 Apache 사용자로 설정하십시오.

# chown -R apache:apache /var/log/mod_evasive

이제 mod_evasive 구성에서 다음 줄을 편집하고 디렉터리 경로를 수정합니다.

DOSLogDir  /var/log/mod_evasive

mod_evasive 구성 파일을 저장하고 종료합니다.

다음으로 Apache를 다시 시작합니다.

# systemctl restart httpd.service

그게 다야, mod_evasive가 설치되고 구성되었습니다.

mod_evasive 구성 옵션 에 대해 자세히 알아보기
이 구성 옵션 설명은 README 파일에서 직접 가져왔습니다.

DOSHashTable크기

해시 테이블 크기는 각 자식의 해시 테이블에 대한 최상위 노드 수를 정의합니다. 이 수를 늘리면 레코드에 도달하는 데 필요한 반복 수를 줄여 더 빠른 성능을 제공하지만 테이블 공간에 더 많은 메모리를 소비합니다. 사용 중인 웹 서버가 있는 경우 이 값을 늘려야 합니다. 지정한 값은 소수 목록의 다음 소수까지 자동으로 계층화됩니다(사용된 프라이머 목록은 mod_evasive.c 참조).

DOSPageCount

이는 페이지 간격당 동일한 페이지(또는 URI)에 대한 요청 수에 대한 임계값입니다. 해당 간격의 임계값을 초과하면 클라이언트의 IP 주소가 차단 목록에 추가됩니다.

DOSSiteCount

이는 사이트 간격당 동일한 수신기에서 동일한 클라이언트가 개체에 대해 요청한 총 수에 대한 임계값입니다. 해당 간격의 임계값을 초과하면 클라이언트의 IP 주소가 차단 목록에 추가됩니다.

DOS페이지 간격

페이지 수 임계값의 간격입니다. 기본값은 1초 간격입니다.

DOSSiteInterval

사이트 수 임계값의 간격입니다. 기본값은 1초 간격입니다.

DOS차단 기간

차단 기간은 클라이언트가 차단 목록에 추가된 경우 차단되는 시간(초)입니다. 이 시간 동안 클라이언트의 모든 후속 요청은 403(금지됨)이 되고 타이머가 재설정됩니다(예: 추가 10초). 모든 후속 요청에 대해 타이머가 재설정되므로 긴 차단 기간이 필요하지 않습니다. DoS 공격의 경우 이 타이머가 계속 재설정됩니다.

DOSE메일알림

이 값이 설정되면 IP 주소가 블랙리스트에 포함될 때마다 지정된 주소로 이메일이 전송됩니다. /tmp를 사용하는 잠금 메커니즘은 지속적인 이메일 전송을 방지합니다.

메모:

MAILER가 mod_evasive.c(또는 mod_evasive20.c)에서 올바르게 설정되었는지 확인하십시오. 기본값은 "/bin/mail -t %s"입니다. 여기서 %s는 구성에 설정된 대상 전자 메일 주소를 나타내는 데 사용됩니다. 다른 유형의 메일러가 있는 Linux 또는 기타 운영 체제에서 실행 중인 경우 이를 변경해야 합니다.

DOS시스템 명령

이 값이 설정되면 IP 주소가 블랙리스트에 포함될 때마다 지정된 시스템 명령이 실행됩니다. 이것은 ip 필터 또는 기타 도구에 대한 시스템 호출을 가능하게 하도록 설계되었습니다. /tmp를 사용하는 잠금 메커니즘은 지속적인 시스템 호출을 방지합니다. %s를 사용하여 블랙리스트에 있는 IP의 IP 주소를 나타냅니다.

DOSLogDir

대체 임시 디렉토리 선택
기본적으로 "/tmp"는 잠금 메커니즘에 사용되며 시스템이 셸 사용자에게 열려 있는 경우 일부 보안 문제가 발생합니다. 권한이 없는 셸 사용자가 있는 경우 Apache가 실행 중인 사용자(일반적으로 루트)에게만 쓸 수 있는 디렉토리를 만든 다음 httpd.conf에서 설정합니다.

이 기사에서는 지원 엔지니어 가 CentOS에 대한 DoS 및 DDoS 공격을 방지하기 위해 mod_evasive를 설치 및 구성 하는 방법에 대해 설명했습니다 .


🔧 FIX: PHP 설치에 WordPress에 필요한 MySQL 확장이 누락된 것 같습니다.

🔧 FIX: PHP 설치에 WordPress에 필요한 MySQL 확장이 누락된 것 같습니다.

자체 관리 WordPress 사이트를 운영하고 싶으십니까? 엄청난. 당신은 수천만 가지를 배우게 될 것입니다. 설정의 중요한 부분 중 하나

FIX: 업데이트 후 WordPress에서 편집기에 예기치 않은 오류가 발생했습니다

FIX: 업데이트 후 WordPress에서 편집기에 예기치 않은 오류가 발생했습니다

WordPress의 새로운 블록 편집기를 사용하여 새 게시물을 작성할 수 없습니까? "편집자

WordPress 5.0에서 블록 편집기를 비활성화하고 클래식 편집기를 설치하는 방법

WordPress 5.0에서 블록 편집기를 비활성화하고 클래식 편집기를 설치하는 방법

WordPress 5.0부터 WordPress의 기본 편집기는 새로운 블록 편집기입니다. 새 편집기는 근본적으로 다릅니다.

Windows 11에서 폴더 항목을 새로 고치는 방법

Windows 11에서 폴더 항목을 새로 고치는 방법

상황에 맞는 메뉴의 새로 고침 옵션이 없는 경우 Windows 11의 파일 탐색기에서 항목을 새로 고치는 방법은 다음과 같습니다.

WordPress 데이터베이스를 가져올 때 utf8mb4_0900_ai_ci 데이터 정렬 오류를 수정하는 방법

WordPress 데이터베이스를 가져올 때 utf8mb4_0900_ai_ci 데이터 정렬 오류를 수정하는 방법

WordPress 설치를 MySQL 8 서버에서 MySQL 5.7(또는 그 이하)로 전환하는 경우 다음과 같은 문제가 발생할 가능성이 큽니다.

Gutenberg 대신 WordPress에서 Classic Editor를 기본 편집기로 설정하는 방법

Gutenberg 대신 WordPress에서 Classic Editor를 기본 편집기로 설정하는 방법

Gutenberg Editor는 곧 WordPress의 기본 편집기가 됩니다. 클래식 편집기를 선택할 수 있는 옵션이 있습니다.

WordPress 5.0 문제를 해결하는 방법

WordPress 5.0 문제를 해결하는 방법

WordPress 5.0이 마침내 출시되고 Gutenberg로 완전히 새로운 편집 경험을 제공합니다.

PHP 짧은 태그를 활성화하는 방법

PHP 짧은 태그를 활성화하는 방법

이 기사에서는 PHP 짧은 태그를 활성화하는 방법을 다루었습니다. PHP는 처럼 보이는 열기 및 닫기 태그를 사용하여 파일을 구문 분석합니다. PHP 짧은 태그를 활성화하려면

CentOS에서 DoS 및 DDoS 공격을 방지하도록 mod_evasive 구성

CentOS에서 DoS 및 DDoS 공격을 방지하도록 mod_evasive 구성

이 기사에서는 CentOS에서 DoS 및 DDoS 공격을 방지하기 위해 mod_evasive를 설치하고 구성하는 방법을 배웁니다. mod_evasive Apache 모듈.

CentOS에서 NGINX용 PHP-FPM으로 PHP를 설치하는 방법

CentOS에서 NGINX용 PHP-FPM으로 PHP를 설치하는 방법

CentOS에서 NGINX용 PHP-FPM으로 PHP를 설치하는 방법. PHP 응용 프로그램을 처리하고 포트 80에서 서버하기 위한 NGINX 웹 서버의 기본 구성입니다.