시스템 튜토리얼 리눅스 회피 모듈은 애플리케이션 계층 DOS 공격으로부터 웹사이트를 보호합니다.

회피 모듈은 애플리케이션 계층 DOS 공격으로부터 웹사이트를 보호합니다.

Apr 30, 2024 pm 05:34 PM
linux apache 리눅스 튜토리얼 레드햇 리눅스 시스템 리눅스 명령 리눅스 인증 빨간 모자 리눅스 리눅스 비디오

웹사이트를 오프라인 상태로 만들 수 있는 공격 방법은 다양합니다. 더 복잡한 방법에는 데이터베이스 및 프로그래밍에 대한 기술적 지식이 필요합니다. 더 간단한 방법은 "Denial Of Service"(DOS) 공격으로 알려져 있습니다. 이 공격 방법의 이름은 일반 고객이나 웹 사이트 방문자의 정상적인 서비스 요청을 거부하려는 의도에서 유래되었습니다.

evasive 模块保护您的网站免受应用层 DOS 攻击

일반적으로 DOS 공격에는 두 가지 형태가 있습니다.

    OSI 모델의 세 번째 및 네 번째 계층, 즉 네트워크 계층 공격
  1. OSI 모델의 7개 계층, 즉 애플리케이션 계층 공격
DOS 공격의 첫 번째 유형인 네트워크 계층은 대량의 정크 트래픽이 웹 서버로 흘러갈 때 발생합니다. 스팸 트래픽이 네트워크의 처리 능력을 초과하면 웹사이트가 다운됩니다.

두 번째 유형의 DOS 공격은 애플리케이션 계층에서 발생하며 정크 트래픽이 아닌 합법적인 서비스 요청을 악용합니다. 페이지 요청 수가 웹 서버의 용량을 초과하면 합법적인 방문자라도 웹 사이트를 사용할 수 없습니다.

이 문서에서는 애플리케이션 계층 공격 완화에 중점을 둘 것입니다. 네트워크 계층 공격을 완화하려면 상당한 양의 사용 가능한 대역폭과 업스트림 공급자의 협력이 필요하지만 일반적으로 네트워크 서버 구성으로는 불가능합니다.

일반 웹 서버를 구성하면 웹 페이지를 애플리케이션 계층 공격으로부터 최소한 어느 정도 보호할 수 있습니다. Cloudflare는 최근

[1] 네트워크 계층 공격 수가 감소하는 반면 애플리케이션 계층 공격 수는 증가하고 있다고 보고 [2]하므로 이러한 형태의 공격을 예방하는 것이 중요합니다.

이 글에서는 zdziarski

[3]가 개발한 Apache2 모듈 mod_evasive[4]을 사용하는 방법을 소개합니다.

또한 mod_evasive는 수백 개의 사용자 이름과 비밀번호 조합을 시도하여 공격자의 추측 시도(예: 무차별 대입 공격)를 차단합니다.

mod_evasive는 각 IP 주소의 요청 수를 기록합니다. 이 숫자가 해당 IP 주소에 대한 여러 임계값 중 하나를 초과하면 오류 페이지가 나타납니다. 오류 페이지에는 합법적인 방문에 응답할 수 있는 온라인 웹사이트보다 훨씬 적은 리소스가 필요합니다.

Ubuntu 16.04에 mod_evasive를 설치하세요

Ubuntu 16.04의 기본 소프트웨어 라이브러리에는 "libapache2-mod-evasive"라는 mod_evasive가 포함되어 있습니다. apt-get을 사용하여 설치를 완료할 수 있습니다:

으아아아

이제 mod_evasive를 구성해야 합니다.

구성 파일은 /etc/apache2/mods-available/evasive.conf에 있습니다. 기본적으로 모든 모듈 설정은 설치 후 주석 처리됩니다. 따라서 모듈은 구성 파일이 수정될 때까지 웹 사이트 트래픽을 방해하지 않습니다.

으아아아

매개변수의 첫 번째 부분의 의미는 다음과 같습니다.

  • DOSHashTableSize - 웹사이트에 액세스하고 있는 IP 주소의 현재 목록과 해당 요청 수입니다.
  • DOSPageCount - 특정 시간 간격 내 각 페이지에 대한 요청 수입니다. 시간 간격은 DOSPageInterval에 의해 정의됩니다.
  • DOSPageInterval - mod_evasive는 페이지 요청의 시간 간격을 계산합니다.
  • DOSSiteCount - DOSPageCount와 동일하지만 동일한 IP 주소에서 사이트 내의 모든 페이지에 대한 요청 수를 계산합니다.
  • DOSSiteInterval - mod_evasive는 웹사이트 요청의 시간 간격을 계산합니다.
  • DOSBlockingPeriod - IP 주소가 블랙리스트에 등록된 시간(초)입니다.

위에 표시된 기본 구성을 사용하는 경우 다음과 같은 경우 IP 주소가 블랙리스트에 추가됩니다.

  • 동일한 페이지를 초당 두 번 이상 요청합니다.
  • 초당 50개 이상의 다양한 페이지를 요청하세요.

IP 주소가 이 임계값을 초과하면 10초 동안 블랙리스트에 등록됩니다.

긴 시간이 아닐 수도 있지만 mod_evasive는 항상 블랙리스트에 등록된 IP 주소에 대한 페이지 요청을 모니터링하고 블랙리스트 시작 시간을 재설정합니다. IP 주소가 계속해서 웹 사이트를 DOS로 시도하는 한, 해당 IP 주소는 항상 블랙리스트에 올라 있습니다.

나머지 매개변수는 다음과 같습니다.

  • DOSEmailNotify - DOS 공격 정보 및 IP 주소 블랙리스트를 수신할 이메일 주소입니다.
  • DOSSystemCommand - DOS 공격이 감지되면 실행되는 명령입니다.
  • DOSLogDir - mod_evasive용 임시 파일을 저장하는 데 사용되는 디렉터리입니다.
mod_evasive
구성

默认的配置是一个很好的开始,因为它不会阻塞任何合法的用户。取消配置文件中的所有参数(DOSSystemCommand 除外)的注释,如下所示:

<IfModule mod_evasive20.c>
   DOSHashTableSize   3097
   DOSPageCount       2
   DOSSiteCount       50
   DOSPageInterval    1
   DOSSiteInterval    1
   DOSBlockingPeriod  10

   DOSEmailNotify       JohnW@example.com
   #DOSSystemCommand    "su - someuser -c '/sbin/... %s ...'"
   DOSLogDir            "/var/log/mod_evasive"
</IfModule>
로그인 후 복사

必须要创建日志目录并且要赋予其与 apache 进程相同的所有者。这里创建的目录是 /var/log/mod_evasive ,并且在 Ubuntu 上将该目录的所有者和组设置为 www-data ,与 Apache 服务器相同:

mkdir /var/log/mod_evasive
chown www-data:www-data /var/log/mod_evasive
로그인 후 복사

在编辑了 Apache 的配置之后,特别是在正在运行的网站上,在重新启动或重新加载之前,最好检查一下语法,因为语法错误将影响 Apache 的启动从而使网站宕机。

Apache 包含一个辅助命令,是一个配置语法检查器。只需运行以下命令来检查您的语法:

apachectl configtest
로그인 후 복사

如果您的配置是正确的,会得到如下结果:

Syntax OK
로그인 후 복사

但是,如果出现问题,您会被告知在哪部分发生了什么错误,例如:

AH00526: Syntax error on line 6 of /etc/apache2/mods-enabled/evasive.conf:
DOSSiteInterval takes one argument, Set site interval
Action 'configtest' failed.
The Apache error log may have more information.
로그인 후 복사

如果您的配置通过了 configtest 的测试,那么这个模块可以安全地被启用并且 Apache 可以重新加载:

a2enmod evasive
systemctl reload apache2.service
로그인 후 복사

mod_evasive 现在已配置好并正在运行了。

测试

为了测试 mod_evasive,我们只需要向服务器提出足够的网页访问请求,以使其超出阈值,并记录来自 Apache 的响应代码。

一个正常并成功的页面请求将收到如下响应:

HTTP/1.1 200 OK
로그인 후 복사

但是,被 mod_evasive 拒绝的将返回以下内容:

HTTP/1.1 403 Forbidden
로그인 후 복사

以下脚本会尽可能迅速地向本地主机(127.0.0.1,localhost)的 80 端口发送 HTTP 请求,并打印出每个请求的响应代码。

你所要做的就是把下面的 bash 脚本复制到一个文件中,例如 mod_evasive_test.sh

#!/bin/bash
set -e

for i in {1..50}; do
        curl -s -I 127.0.0.1 | head -n 1
done
로그인 후 복사

这个脚本的部分含义如下:

  • curl - 这是一个发出网络请求的命令。
    • -s - 隐藏进度表。
    • -I - 仅显示响应头部信息。
  • head - 打印文件的第一部分。
    • -n 1 - 只显示第一行。

然后赋予其执行权限:

chmod 755 mod_evasive_test.sh
로그인 후 복사

在启用 mod_evasive 之前,脚本运行时,将会看到 50 行 “HTTP / 1.1 200 OK” 的返回值。

但是,启用 mod_evasive 后,您将看到以下内容:

HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
...
로그인 후 복사

前两个请求被允许,但是在同一秒内第三个请求发出时,mod_evasive 拒绝了任何进一步的请求。您还将收到一封电子邮件(邮件地址在选项 DOSEmailNotify 中设置),通知您有 DOS 攻击被检测到。

mod_evasive 现在已经在保护您的网站啦!


위 내용은 회피 모듈은 애플리케이션 계층 DOS 공격으로부터 웹사이트를 보호합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Centos와 Ubuntu의 차이 Centos와 Ubuntu의 차이 Apr 14, 2025 pm 09:09 PM

Centos와 Ubuntu의 주요 차이점은 다음과 같습니다. Origin (Centos는 Red Hat, Enterprise의 경우, Ubuntu는 Debian에서 시작하여 개인의 경우), 패키지 관리 (Centos는 안정성에 중점을 둡니다. Ubuntu는 APT를 사용하여 APT를 사용합니다), 지원주기 (Ubuntu는 5 년 동안 LTS 지원을 제공합니다), 커뮤니티에 중점을 둔다 (Centos Conciors on ubuntu). 튜토리얼 및 문서), 사용 (Centos는 서버에 편향되어 있으며 Ubuntu는 서버 및 데스크탑에 적합), 다른 차이점에는 설치 단순성 (Centos는 얇음)이 포함됩니다.

Centos를 설치하는 방법 Centos를 설치하는 방법 Apr 14, 2025 pm 09:03 PM

CentOS 설치 단계 : ISO 이미지를 다운로드하고 부팅 가능한 미디어를 실행하십시오. 부팅하고 설치 소스를 선택하십시오. 언어 및 키보드 레이아웃을 선택하십시오. 네트워크 구성; 하드 디스크를 분할; 시스템 시계를 설정하십시오. 루트 사용자를 만듭니다. 소프트웨어 패키지를 선택하십시오. 설치를 시작하십시오. 설치가 완료된 후 하드 디스크에서 다시 시작하고 부팅하십시오.

Centos는 유지 보수를 중지합니다. 2024 Centos는 유지 보수를 중지합니다. 2024 Apr 14, 2025 pm 08:39 PM

Centos는 2024 년에 상류 분포 인 RHEL 8이 종료 되었기 때문에 폐쇄 될 것입니다. 이 종료는 CentOS 8 시스템에 영향을 미쳐 업데이트를 계속받지 못하게합니다. 사용자는 마이그레이션을 계획해야하며 시스템을 안전하고 안정적으로 유지하기 위해 Centos Stream, Almalinux 및 Rocky Linux가 포함됩니다.

Centos에서 Gitlab의 백업 방법은 무엇입니까? Centos에서 Gitlab의 백업 방법은 무엇입니까? Apr 14, 2025 pm 05:33 PM

CentOS 시스템 하에서 Gitlab의 백업 및 복구 정책 데이터 보안 및 복구 가능성을 보장하기 위해 CentOS의 Gitlab은 다양한 백업 방법을 제공합니다. 이 기사는 완전한 GITLAB 백업 및 복구 전략을 설정하는 데 도움이되는 몇 가지 일반적인 백업 방법, 구성 매개 변수 및 복구 프로세스를 자세히 소개합니다. 1. 수동 백업 gitlab-rakegitlab : 백업 : 명령을 작성하여 수동 백업을 실행하십시오. 이 명령은 gitlab 저장소, 데이터베이스, 사용자, 사용자 그룹, 키 및 권한과 같은 주요 정보를 백업합니다. 기본 백업 파일은/var/opt/gitlab/backups 디렉토리에 저장됩니다. /etc /gitlab을 수정할 수 있습니다

Docker 원리에 대한 자세한 설명 Docker 원리에 대한 자세한 설명 Apr 14, 2025 pm 11:57 PM

Docker는 Linux 커널 기능을 사용하여 효율적이고 고립 된 응용 프로그램 실행 환경을 제공합니다. 작동 원리는 다음과 같습니다. 1. 거울은 읽기 전용 템플릿으로 사용되며, 여기에는 응용 프로그램을 실행하는 데 필요한 모든 것을 포함합니다. 2. Union 파일 시스템 (Unionfs)은 여러 파일 시스템을 스택하고 차이점 만 저장하고 공간을 절약하고 속도를 높입니다. 3. 데몬은 거울과 컨테이너를 관리하고 클라이언트는 상호 작용을 위해 사용합니다. 4. 네임 스페이스 및 CGroup은 컨테이너 격리 및 자원 제한을 구현합니다. 5. 다중 네트워크 모드는 컨테이너 상호 연결을 지원합니다. 이러한 핵심 개념을 이해 함으로써만 Docker를 더 잘 활용할 수 있습니다.

센토에 하드 디스크를 장착하는 방법 센토에 하드 디스크를 장착하는 방법 Apr 14, 2025 pm 08:15 PM

Centos Hard Disk Mount는 다음 단계로 나뉩니다. 하드 디스크 장치 이름 (/dev/sdx)을 결정하십시오. 마운트 포인트를 만듭니다 ( /mnt /newdisk를 사용하는 것이 좋습니다); 마운트 명령을 실행합니다 (mount /dev /sdx1 /mnt /newdisk); 영구 마운트 구성을 추가하려면 /etc /fstab 파일을 편집하십시오. Umount 명령을 사용하여 장치를 제거하여 프로세스가 장치를 사용하지 않도록하십시오.

Docker Desktop을 사용하는 방법 Docker Desktop을 사용하는 방법 Apr 15, 2025 am 11:45 AM

Docker Desktop을 사용하는 방법? Docker Desktop은 로컬 머신에서 Docker 컨테이너를 실행하는 도구입니다. 사용 단계는 다음과 같습니다. 1. Docker Desktop 설치; 2. Docker Desktop을 시작하십시오. 3. Docker 이미지를 만듭니다 (Dockerfile 사용); 4. Docker Image 빌드 (Docker 빌드 사용); 5. 도커 컨테이너를 실행하십시오 (Docker Run 사용).

유지 보수를 중단 한 후 Centos의 선택 유지 보수를 중단 한 후 Centos의 선택 Apr 14, 2025 pm 08:51 PM

Centos는 중단되었으며 대안은 다음과 같습니다. 1. Rocky Linux (Best Compatibility); 2. Almalinux (Centos와 호환); 3. Ubuntu 서버 (구성 필수); 4. Red Hat Enterprise Linux (상업용 버전, 유료 라이센스); 5. Oracle Linux (Centos 및 Rhel과 호환). 마이그레이션시 고려 사항은 호환성, 가용성, 지원, 비용 및 커뮤니티 지원입니다.

See all articles