독까의 이야기

# Windows Server 2025 Preview 설치 테스트

 

윈도우 서버 신규 버전 iso 등록되어 설치 테스트 진행.

 

1. Windows Server 2025 Preview 기본 설치 진행 

라이센스키 발급 전이라, "제품 키가 없습니다." 선택
하드디스크 리스트 호출
OS 설치 파티션 생성 : 기본값으로 진행
이전 버전 OS 와 동일 구성 확인 됨
제품키 없으니깐 "나중에" 눌러서 다음으로 넘어가기
관리자 계정 패스워드 설정하고 완료

 

 

2. OS 테스트

 

1) 화면 및 기능

부팅시 기본 화면
로그인 화면
진단 데이터 전송이 강제 요소인 것으로 추정.
필수 요소만 선택해서 진행
기본 바탕 화면
시스템 정보
윈도우키 클릭
우측 상단 "모든앱" 클릭시 변경
Windows Tools 아이콘
IIS 버전은 이전과 동일
고급 방화벽도 동일
윈도우 백업도 동일
우측 하단 알림 버튼 클릭시
윈도우 업데이트

 

 

2) 네트워크 설정

네트워크 설정
IP 할당 수정
기본값 : 자동(DHCP) 을 수동으로 바꿔준다.
IPv4 만 활성화 해준다.
사용할 고정 아이피 및 DNS 입력
네트워크 활성화 후 인터넷 연결 테스트 : 정상

 

 

3) 서버 역할 및 기능 설치

서버 관리자 대시보드는 기존 버전과 동일
역할 및 기능 추가 마법사
기존과 크게 달라진 것같지 않음
역할 설치 : IIS 설치
기능 설치 : .Net 3.5 / SNMP / Telnet Client / Windows Server 백업
IIS 역할 서비스 설치
.NET 3.5 포함 설치시에는 항상 오류 발생 / 이전 버전에서도 동일 오류 발생 / 개선 안 됨

 

수동으로 .NET 3.5 설치 진행 : Dism /online /enable-feature /featurename:NetFx3 /All /Source: X: \sources\sxs /LimitAccess

 

 

4) 원격 데스크톱 활성화

윈도우키 - 설정 - 시스템 - 원격 데스크톱 

원격 데스크톱 켜기
기본 설정값 / 원활한 접속을 위해서는 "디바이스에서 ~ ~ " 는 해제 한다.
네트워크 수준 인증 비활성화

 

원격 데스크톱 활성화 확인

 

 

3. 설치 후기

1) GUI 가 윈도우 11과 똑같이 변경 됨

2) 이전 버전에서 사용되던 프로그램 및 기능의 변화 없음

3) 보안 패치 종료 이슈가 없는 이상, 기존에 사용하던 OS 버전을 굳이 변경할 필요는 없음

이전 글에서는 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 일 경우, 차단 정책이 적용되지 않음
<section name="modsecurity" overridemodedefault="Allow" allowdefinition="everywhere" >

삭제 : 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 파일 적용 확인

IIS 웹서버에 ModSecurity 모듈을 추가하려고 한다.

IIS 전용 웹방화벽 Webkinght 가 있지만, 추가 모듈 적용 여부도 테스트해야 한다. 

 

1. ModSecurity 설치 (ModSecurityIIS_2.9.1-64b.msi)

 

ModSecurityIIS_2.9.1-64b.msi
6.45MB

 

체크 박스 선택이 "Default" 인데, custom 설정 예정이라 체크 해제.

 

2. IIS 설정 파일 확인 및 수정

C:\Windows\System32\inetsrv\config\applicationHost.config

    <configSections>

        <section name="ModSecurity" overrideModeDefault="Deny" allowDefinition="Everywhere"/></sectionGroup>
    </configSections>


수정
        
<section name="modsecurity" overridemodedefault="Allow" allowdefinition="everywhere">

 

 

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. 서버 로컬에서 테스트

차단룰 : 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"

 

모듈 적용이 잘 됨. 

 

이제는 테스트의 주 목적인 개별 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. 서버 로컬에서 테스트

 

로깅 설정이나 추가 차단 정책 설정은 차후에 테스트 한다.