윈도우 이야기/Web Server
IIS + ModSecurity 설치 - 2
독까
2023. 10. 25. 16:12
이전 글에서는 Custom 설정으로 진행했고, 이번에는 Default 로 진행하려고 한다.
우선 Modsecurity 설치 후 프로그램 삭제해도, applicationHost.config 에는 Modesecurity 모듈이 남아 있다.
따라서, 해당 항목을 찾아서 직접 삭제해줘야 깨끗하게 테스트 가능하다.
<add name="ModSecurity IIS" image="C:\Windows\System32\inetsrv\ModSecurityIIS.dll"/> <add name="ModSecurity IIS"/> |
1. ModSecurity 설치
처음부터 끝까지 Default 로 진행하면 된다. 이전 글에서 체크 해제 했던 부분도 기본으로 한다.
2. IIS 설정 파일 확인 및 수정
C:\Windows\System32\inetsrv\config\applicationHost.config
설치형으로 진행하면, 모듈 및 전역 설정이 포함되어 있다.
일부 값을 수정 및 전역 설정 삭제 한다.
<section name="ModSecurity" overrideModeDefault="Deny" allowDefinition="Everywhere" /></sectionGroup> <add name="ModSecurity IIS (32bits)" image="%SystemRoot%\SysWOW64\inetsrv\ModSecurityIIS.dll" preCondition="bitness32" /> <add name="ModSecurity IIS (64bits)" image="%SystemRoot%\System32\inetsrv\ModSecurityIIS.dll" preCondition="bitness64" /> <ModSecurity enabled="true" configFile="C:\Program Files\ModSecurity IIS\modsecurity_iis.conf" /> <add name="ModSecurity IIS (32bits)" preCondition="bitness32" /> <add name="ModSecurity IIS (64bits)" preCondition="bitness64" /> 수정 : Deny 일 경우, 차단 정책이 적용되지 않음 삭제 : Web 전역 설정이 적용되어 정상 호출값도 차단 됨 <modsecurity enabled="true" configfile="c:\program files\modsecurity iis\modsecurity_iis.conf" > |
3. modsecurity.conf 수정
C:\Program Files\ModSecurity IIS\modsecurity.conf SecRuleEngine DetectionOnly 주석 처리 SecRuleEngine On : 구문 추가 차단 테스트 항목 추가 SecRule ARGS:param "@contains test" "id:1,deny,status:401" SecRule ARGS:param "@contains cmd" "id:2,deny,status:402" SecRule ARGS:param "@contains gunnm" "id:3,deny,status:403" |
4. 웹사이트 web.config 수정
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <directoryBrowse enabled="true" /> <ModSecurity enabled="true" configFile="C:\Program Files\ModSecurity IIS\modsecurity.conf" /> </system.webServer> </configuration> |
5. 테스트
이전 글과 동일하게 입력 및 확인
개별 conf 파일 적용 확인