IIS + ModSecurity 설치 - 2
이전 글에서는 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 파일 적용 확인
'윈도우 이야기 > Web Server' 카테고리의 다른 글
IIS + ModSecurity 설치 - 1 (0) | 2023.10.25 |
---|---|
윈도우 서버 PHP v7.2 & CakePHP 3.7.9 설치하기 / Windows Server PHP v7.2 & CakePHP 3.7.9 Install (0) | 2020.04.27 |
SNI (Server Name Indication) / 서버 이름 표시를 이용한 https 443 포트 다중 사용 (0) | 2018.09.17 |
Windows Server 2016 미디어 서비스 설치하기 #2 (실시간 스트리밍 / Expression Encoder 4) (1) | 2018.07.20 |
Windows Server 2016 미디어 서비스 설치하기 #1 (IIS + Media Service) (7) | 2018.07.19 |
IIS + ModSecurity 설치 - 1
IIS 웹서버에 ModSecurity 모듈을 추가하려고 한다.
IIS 전용 웹방화벽 Webkinght 가 있지만, 추가 모듈 적용 여부도 테스트해야 한다.
1. ModSecurity 설치 (ModSecurityIIS_2.9.1-64b.msi)
2. IIS 설정 파일 확인 및 수정
C:\Windows\System32\inetsrv\config\applicationHost.config
<configSections> <section name="ModSecurity" overrideModeDefault="Deny" allowDefinition="Everywhere"/></sectionGroup> </configSections> 수정 |
3. IIS 에 ModSecurity 모듈 추가하기
appcmd.exe install module /name:"ModSecurity IIS" /image:"C:\Windows\System32\inetsrv\ModSecurityIIS.dll" |
4. IIS 설정 파일 재확인
C:\Windows\System32\inetsrv\config\applicationHost.config 추가 등록 내역 확인
<globalModules> <add name="ModSecurity IIS" image="C:\Windows\System32\inetsrv\ModSecurityIIS.dll" /> </globalModules> .... <modules> <add name="ModSecurity IIS" /> </modules> |
5. IIS 재시작
iisreset |
6. 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" |
7. 웹사이트 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> |
8. 서버 로컬에서 테스트
모듈 적용이 잘 됨.
이제는 테스트의 주 목적인 개별 ModSecurity.conf 를 적용하는 테스트를 한다.
일반적으로 웹서버에서 한 개의 사이트만 구동하는 것이 아니므로, 사이트별 정책 적용을 목적으로 한다.
9. C:\Program Files\ModSecurity IIS\TESTmodsecurity.conf 생성 및 수정
기존 modsecurity.conf 파일 복사 후 수정
SecRule ARGS:param "@contains Mod" "id:1,deny,status:404" SecRule ARGS:param "@contains Sec" "id:2,deny,status:405" SecRule ARGS:param "@contains Test" "id:3,deny,status:406" |
10. C:\Program Files\ModSecurity IIS\modsecurity_iis.conf 수정
Include modsecurity.conf Include modsecurity_crs_10_setup.conf Include owasp_crs\activated_rules\*.conf Include owasp_crs\base_rules\*.conf 추가 Include TESTmodsecurity.conf |
11. web.config 수정
<ModSecurity enabled="true" configFile="C:\Program Files\ModSecurity IIS\modsecurity.conf" /> 수정 <ModSecurity enabled="true" configFile="C:\Program Files\ModSecurity IIS\TESTmodsecurity.conf" /> |
12. 서버 로컬에서 테스트
로깅 설정이나 추가 차단 정책 설정은 차후에 테스트 한다.
'윈도우 이야기 > Web Server' 카테고리의 다른 글
IIS + ModSecurity 설치 - 2 (0) | 2023.10.25 |
---|---|
윈도우 서버 PHP v7.2 & CakePHP 3.7.9 설치하기 / Windows Server PHP v7.2 & CakePHP 3.7.9 Install (0) | 2020.04.27 |
SNI (Server Name Indication) / 서버 이름 표시를 이용한 https 443 포트 다중 사용 (0) | 2018.09.17 |
Windows Server 2016 미디어 서비스 설치하기 #2 (실시간 스트리밍 / Expression Encoder 4) (1) | 2018.07.20 |
Windows Server 2016 미디어 서비스 설치하기 #1 (IIS + Media Service) (7) | 2018.07.19 |
SAM 잠금 도구 (Syskey) 초기화
특정 고객사를 대상으로 침해 피해 발생.
윈도우 구버전에서 사용되는 SAM 잠금 도구 (Syskey) 를 이용한 시스템 잠금. (ko.wikipedia.org/wiki/SAM_%EC%9E%A0%EA%B8%88_%EB%8F%84%EA%B5%AC)
고객사 관리자 계정 패스워드가 노출되어 원격 접속이 가능하게 된 상태에서 syskey 로 잠금 추정.
C:\Windows\System32\config\RegBack 폴더에 기존 레지스트리 정보 파일이 있을 경우에는 복구 가능.
1. Windows 설치 CD 를 이용하여 부팅.
복구 모드 진입 후 문제 해결 선택.
고급 옵션 - 명령 프롬프트 선택
2. CMD 에서 레지스트리 파일 복사
copy c:\windows\system32\config\regback c:\windows\system32\config
복사 완료되었으면 리부팅으로 복구 작업 완료 됨.
'윈도우 이야기 > Etc' 카테고리의 다른 글
OS 업그레이드 테스트 2 (2012 R2 -> 2019) (2) | 2020.03.09 |
---|---|
Windows Server 2012 이상 버전의 가장 오래된 VSS 백업 복사본 삭제 (0) | 2019.08.23 |
node.js 모듈 설치를 위한 npm install 오류 발생 처리 (1) | 2018.09.05 |
MS-SQL 2016 장애 조치 클러스터링 테스트 : MSCS 구성 (0) | 2018.08.28 |
액티브디렉토리 (Active Directory) 및 MSCS , AlwaysOn 구축 테스트 #2 (1) | 2018.08.23 |