🚩 주요 경로
경로 | 설명 |
/etc/nginx/sites-available/test-server | 도메인 이름으로 접근하는 경우에만 프록시 서버로 연결되도록 설정 |
vim /etc/nginx/modsec/modsecurity.conf | 룰 지정 |
/etc/nginx/modsec/owasp-modsecurity-crs/rules | 무료 룰 설치 디렉터리 |
/etc/nginx/modsec/main.conf | 룰 지정 파일 |
1. 네트워크 구성도
2. modsecurity 설치
가상 시스템 이름 | ubuntu20.04 |
호환성 | VMware Workstation |
CPU | 1 |
메모리 | 2GB |
하드디스크 | 100GB |
네트워크 어댑터 | VMware(dhcp) |
sudo -i
apt update && apt install nginx -y
apt-get install -y apt-utils autoconf automake build-essential git libcurl4-openssl-dev libgeoip-dev liblmdb-dev libpcre++-dev libtool libxml2-dev libyajl-dev pkgconf wget zlib1g-dev
git clone --depth 1 -b v3/master --single-branch https://github.com/SpiderLabs/ModSecurity
cd ModSecurity
git submodule init
git submodule update
./build.sh
./configure
make
make install
git clone --depth 1 https://github.com/SpiderLabs/ModSecurity-nginx.git
wget http://nginx.org/download/nginx-1.18.0.tar.gz
tar zxvf nginx-1.18.0.tar.gz
cd nginx-1.18.0
./configure --with-compat --add-dynamic-module=../ModSecurity-nginx
make modules
cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/ngx_http_modsecurity_module.so
vim /etc/nginx/nginx.conf
load_module modules/ngx_http_modsecurity_module.so;
/etc/nginx/nginx.conf 파일 상단에 다음 내용 추가 (vim /etc/nginx/nginx.conf)
load_module modules/ngx_http_modsecurity_module.so;
1. modsecurity 설정 및 차단 활성화
mkdir /etc/nginx/modsec
wget -P /etc/nginx/modsec/ https://raw.githubusercontent.com/SpiderLabs/ModSecurity/v3/master/modsecurity.conf-recommended
mv /etc/nginx/modsec/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf
2. sed를 이용해 특전 문석의 원하는 부분 수정
sed -i 's/SecRuleEngine DetectionOnly/SecRuleEngine On/' /etc/nginx/modsec/modsecurity.conf
3. /etc/nginx/modsec/main.conf 파일을 다음과 같이 작성 vim /etc/nginx/modsec/main.conf
# From https://github.com/SpiderLabs/ModSecurity/blob/master/ # modsecurity.conf-recommended # # Edit to set SecRuleEngine On Include "/etc/nginx/modsec/modsecurity.conf" # Basic test rule SecRule ARGS:testparam "@contains test" "id:1234,deny,status:403"
4. /etc/nginx/sites-available/default에 다음 두라인 추가 vim /etc/nginx/sites-available/default
server {
# ... modsecurity on;
modsecurity_rules_file /etc/nginx/modsec/main.conf;
}
5. NGINX 설정 오류 확인과 unicode.mapping 복제
find / -name unicode.mapping
/root/ModSecurity/unicode.mapping
cp /root/ModSecurity/unicode.mapping /etc/nginx/modsec/unicode.mapping
nginx -t
service nginx restart
3. 웹 방화벽 프록시 설정
4. modsecurity 로그 확인 및 무료 룰 적용
Section | Description |
A | Audit log header (mandatory) |
B | Request headers |
C | Request body |
D | Reserved |
E | Response body |
F | Response headers |
G | Reserved |
H | Audit log trailer, which contains additional data |
I | Compact request body alternative (to part O) which excludes files |
J | Information on uploaded files |
K | Contains a list of all rules that matched for the transaction |
Z | Final boundary (mandatory) |
cd ~
wget https://github.com/coreruleset/coreruleset/archive/v3.2.0.tar.gz
tar -xvf v3.2.0.tar.gz
mkdir /etc/nginx/modsec/owasp-modsecurity-crs
cp coreruleset-3.2.0/crs-setup.conf.example /etc/nginx/modsec/owasp-modsecurity-crs/crs-setup.conf
cp -r coreruleset-3.2.0/rules /etc/nginx/modsec/owasp-modsecurity-crs/rules
cd /etc/nginx/modsec/owasp-modsecurity-crs/rules
ls
# id 가 동일한 룰이 존재할 경우 오류 발생
vim /etc/nginx/modsec/modsecurity.conf
5. modsecurity ESXi 이전 및 테스트
'프로젝트 > [ESXi]인프라 구축 및 모니터링' 카테고리의 다른 글
8. Splunk 튜토리얼 (2) | 2024.11.27 |
---|---|
7. 방화벽에서 VLAN 인터페이스 할당 (0) | 2024.11.26 |
5. pfsense 방화벽 정책 설정(개발자 대역) (0) | 2024.11.22 |
4. IDS와 IPS 스노트 룰 패턴 탐지 실습 (2) | 2024.11.21 |
3. Securityonion을 활용한 IDS(Suricata) 구축 (0) | 2024.11.20 |