우분투에 Nginx와 ModSecurity를 설치하고 OWASP ModSecurity Core Rule Set을 적용하는 방법
Nginx 에 ModSecurity v3 모듈을 동적 모듈로 연동하고 OWASP ModSecurity Core Rule Set(CRS) 를 적용하는 방법을 설명합니다.
1. 기존 Nginx 완전 제거
sudo apt-get purge -y nginx nginx-*
sudo apt-get autoremove -y
PPA 제거
sudo add-apt-repository -y --remove ppa:ondrej/nginx
2. Nginx 설치
자동 설치 스크립트 (권장)
sudo curl -fsSL https://raw.githubusercontent.com/anti1346/zz/main/ubuntu/nginx_install.sh | bash
더보기
---
ondrej PPA 사용 (수동 설치)
sudo add-apt-repository -y ppa:ondrej/nginx
sudo apt-get update
sudo apt-get install -y nginx
---
버전 확인
$ nginx -v
nginx version: nginx/1.24.0
3. ModSecurity 빌드를 위한 필수 패키지 설치
sudo apt-get install -y \
gcc make build-essential libtool autoconf automake pkg-config \
zlib1g-dev libcurl4-openssl-dev libxml2-dev libpcre3-dev libpcre2-dev \
libyajl-dev libgeoip-dev libmaxminddb-dev liblmdb-dev libfuzzy-dev \
lua5.3-dev uuid-dev ssdeep doxygen \
openssl libssl-dev dpkg-dev
4. ModSecurity v3 다운로드 및 컴파일
cd /usr/local/src
git clone --depth 1 -b v3/master https://github.com/owasp-modsecurity/ModSecurity.git
cd ModSecurity
git submodule init
git submodule update
빌드 및 설치
bash build.sh
./configure --with-lmdb --with-ssdeep
make -j$(nproc)
sudo make install
5. Nginx ModSecurity 커넥터 다운로드
mkdir -p /usr/local/src/nginx
cd /usr/local/src/nginx
git clone --depth 1 https://github.com/owasp-modsecurity/ModSecurity-nginx.git
6. Nginx 소스 코드 다운로드 (설치 버전과 동일해야 함)
deb-src 활성화
sudo sed -i 's/# deb-src/deb-src/g' \
/etc/apt/sources.list.d/ondrej-ubuntu-nginx-jammy.list
sudo apt-get update
소스 다운로드
cd /usr/local/src/nginx
sudo apt-get source nginx
cd nginx-1.24.0
sudo apt build-dep nginx
7. ModSecurity 동적 모듈 컴파일
./configure \
--with-compat \
--with-openssl=/usr/include/openssl \
--add-dynamic-module=../ModSecurity-nginx
make modules
모듈 복사
sudo cp objs/ngx_http_modsecurity_module.so /etc/nginx/modules/
8. Nginx에 ModSecurity 모듈 로드
sudo vim /etc/nginx/nginx.conf
load_module modules/ngx_http_modsecurity_module.so;
9. ModSecurity 기본 설정
sudo mkdir -p /etc/nginx/modsec
sudo cp /usr/local/src/ModSecurity/modsecurity.conf-recommended \
/etc/nginx/modsec/modsecurity.conf
sudo cp /usr/local/src/ModSecurity/unicode.mapping \
/etc/nginx/modsec/
DetectionOnly → On 변경 권장
SecRuleEngine On
10. OWASP CRS 설치
cd /usr/local/src
wget https://github.com/coreruleset/coreruleset/archive/refs/tags/v3.3.5.tar.gz
tar -xzf v3.3.5.tar.gz
sudo mv coreruleset-3.3.5 /usr/local/
cd /usr/local/coreruleset-3.3.5
cp crs-setup.conf.example crs-setup.conf
11. ModSecurity 메인 설정 파일 작성
sudo vim /etc/nginx/modsec/main.conf
Include /etc/nginx/modsec/modsecurity.conf
Include /usr/local/coreruleset-3.3.5/crs-setup.conf
Include /usr/local/coreruleset-3.3.5/rules/*.conf
12. Nginx 서버 블록에 ModSecurity 적용
server {
modsecurity on;
modsecurity_rules_file /etc/nginx/modsec/main.conf;
}
13. 설정 검증 및 재시작
sudo nginx -t
sudo systemctl restart nginx
Nginx에 ModSecurity와 OWASP CRS가 추가되어 웹 애플리케이션의 보안이 강화됩니다. OWASP CRS의 보안 규칙이 적용되어 SQL 인젝션, 크로스 사이트 스크립팅 등과 같은 공격으로부터 보호됩니다.
참고URL
- github ModSecurity 소스 코드 다운로드 : https://github.com/owasp-modsecurity/ModSecurity
- github Nginx 커넥터 다운로드 : https://github.com/owasp-modsecurity/ModSecurity-nginx
- github OWASP ModSecurity Core Rule Set 다운로드 : https://github.com/coreruleset/coreruleset/tags
'리눅스' 카테고리의 다른 글
| [draft] sudo 명령어 (0) | 2026.03.03 |
|---|---|
| [draft] CentOS 8 Docker 컨테이너에서 systemctl 사용하기 (0) | 2026.03.03 |
| [draft] 리눅스 배포판(Linux Distros) (0) | 2026.03.03 |
| [draft] Docker Compose로 GitLab Omnibus 컨테이너를 구성하는 방법 (0) | 2026.03.03 |
| [draft] 개인 키를 사용하여 공개 키를 생성하는 방법 (0) | 2026.03.03 |