웹사이트 검색

Debian/Ubuntu에서 Apache를 사용하여 ModSecurity를 설정하는 방법


Apache 웹 서버는 사용자 정의가 가능하며 필요에 맞게 다양한 방법으로 구성할 수 있습니다. Apache를 원하는 대로 구성하는 데 사용할 수 있는 타사 모듈이 많이 있습니다.

ModSecurity는 Apache 웹 서버에 기본으로 제공되는 오픈 소스 WAF(웹 애플리케이션 방화벽)입니다. 처음에는 Apache 모듈이었으나 해가 지나면서 완전한 기능을 갖춘 웹 앱 방화벽으로 성장했습니다. 이제 Nginx는 물론 IIS에서도 지원됩니다.

ModSecurity는 사전 정의된 규칙 세트를 기준으로 웹 서버로 들어오는 요청을 검사합니다. 일반적으로 SQL 주입, XSS, 세션 등 다양한 웹 애플리케이션 공격으로부터 웹사이트를 보호하는 CRS(핵심 규칙 세트)라는 규칙 세트를 제공합니다. 다른 악용 중 하이재킹.

ModSecurity 애플리케이션 방화벽은 외부 공격으로부터 사이트를 보호하는 PCI DSS 규정 준수의 핵심 부분을 구성합니다. 모듈이 활성화되면 웹 서버의 리소스에 액세스할 수 있는 권한이 부족하다는 것을 의미하는 '403 금지 오류'가 발생합니다.

이 가이드에서는 DebianUbuntuApache와 함께 작동하도록 ModSecurity를 설정하고 구성하는 방법을 보여줍니다. > 리눅스.

1단계: Ubuntu에 ModSecurity 설치

첫 번째 단계는 ModSecurity를 설치하는 것입니다. 먼저 다음과 같이 패키지 목록을 새로 고치는 것부터 시작하겠습니다.

sudo apt update

다음으로, 다른 종속성 및 라이브러리와 함께 ModSecurity 패키지를 설치합니다.

sudo apt install libapache2-mod-security2

그런 다음 모듈을 활성화하십시오.

sudo a2enmod security2

그런 다음 Apache 웹 서버를 다시 시작하여 변경 사항을 적용하십시오.

sudo systemctl restart apache2

이제 ModSecurity가 성공적으로 설치되었습니다. 이제 구성해 보겠습니다.

2단계: Ubuntu에서 ModSecurity 구성

기본적으로 ModSecurity는 의심스러운 활동을 감지하고 기록하도록 구성되어 있습니다. 우리는 추가 단계를 거쳐 의심스러운 활동을 탐지하고 차단하도록 구성해야 합니다.

아래 명령에 제공된 대로 기본 ModSecurity 구성 파일(modsecurity.conf-recommended)을 새 파일에 복사합니다.

sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf

원하는 텍스트 편집기를 사용하여 파일을 엽니다.

sudo nano /etc/modsecurity/modsecurity.conf

다음 줄을 찾으세요.

SecRuleEngine DetectionOnly

다음으로 설정하세요:

SecRuleEngine On

변경 사항을 저장하고 파일을 종료합니다.

Apache에 변경사항을 적용하려면 웹서버를 다시 시작하세요.

sudo systemctl restart apache2

3단계: OWASP ModSecurity 핵심 규칙 세트 다운로드

다음 단계는 GitHub 페이지에서 최신 OWASP ModSecurity 핵심 규칙 세트(CRS)를 다운로드하는 것입니다.

표시된 대로 OWASP git 저장소를 복제합니다.

git clone https://github.com/coreruleset/coreruleset.git

디렉토리로 이동합니다.

cd coreruleset/

crs-setup.conf.example 파일을 modsecurity 디렉토리로 이동하고 이름을 crs-setup.conf로 바꾸세요.

sudo mv crs-setup.conf.example /etc/modsecurity/crs-setup.conf

또한 rules 디렉터리도 modsecurity 디렉터리로 이동합니다.

sudo mv rules/ /etc/modsecurity/

다음으로 security2.conf 파일을 편집합니다.

sudo nano /etc/apache2/mods-enabled/security2.conf

다음 줄이 포함되어 있는지 확인하세요.

IncludeOptional /etc/modsecurity/*.conf
Include /etc/modsecurity/rules/*.conf

그런 다음 변경 사항을 유지하려면 Apache를 다시 시작하세요.

sudo systemctl restart apache2

이제 ModSecurity 구성을 테스트해 보겠습니다.

4단계: Ubuntu에서 ModSecurity 구성 테스트

마지막으로 ModSecurity가 의심스러운 HTTP 트래픽을 감지하고 차단할 수 있는지 테스트해야 합니다. 이를 달성하려면 기본 가상 호스트 파일을 편집해야 합니다.

sudo nano /etc/apache2/sites-available/000-default.conf

다음으로 웹 브라우저에서 액세스할 때 특정 URL에 대한 액세스를 차단하는 차단 규칙을 만듭니다.

'Virtualhost' 닫는 태그 앞에 이 줄을 추가하세요.

SecRuleEngine On
SecRule ARGS:testparam "@contains test" "id:254,deny,status:403,msg:'Test Successful'"

'id' 및 'msg' 태그를 원하는 값으로 자유롭게 설정하세요.

그런 다음 Apache 웹 서버를 다시 시작하여 가상 호스트 구성 파일에 대한 변경 사항을 적용합니다.

sudo systemctl restart apache2

웹 브라우저에서 끝에 ?testparam=test가 표시된 URL을 방문해 보세요.

http://server-ip/?testparam=test

리소스에 대한 액세스가 차단되었음을 나타내는 '403 금지 오류'가 표시됩니다.

다음과 같이 오류 로그를 확인하여 클라이언트가 차단되었는지 추가로 확인할 수 있습니다.

cat /var/log/apache2/error.log | grep “Test Successful”

이는 원치 않는 트래픽을 감지하고 차단하기 위해 ModSecurity를 성공적으로 설정했음을 확인하는 것입니다. 이 가이드에서는 Debian/Ubuntu 시스템에서 ApacheModSecurity를 설정하는 과정을 안내했습니다.