독까의 이야기

# 1

신규 고객사의 서버를 세팅하던 중, 로컬 보안 정책 일부 수정을 위해 프로그램을 실행했다.

시작 - secpol.msc - 로컬 정책 - 보안 옵션 을 클릭했는데, 아래와 같은 오류 창이 호출 됐다.


신규 설치 된 서버 2대 와 테스트용으로 사용하는 서버에서 동일 증상이 확인 됐다. 

해당 장비들의 OS 는 Windows Server 2016 STD 이다. 



# 2

오류가 발생 된 서버들의 wsecedit.dll 파일을 확인해 본다. 

C:\Windows\System32\wsecedit.dll

파일의 수정 날짜가 2020.09.02 로 확인 된다. 

2020년 9월 보안 업데이트 후 파일이 변경 된 것으로 확인되었다. 


9월 보안 업데이트를 진행하지 않은 서버에서 보안 옵션 호출 및 파일 수정 날짜를 확인 한다.


보안 옵션 호출 정상이며, 파일 수정 날짜는 2020.04.08 로 확인된다. 



# 3

이전 버전의 wsecedit.dll 파일로 교체를 진행한다. 

보안 옵션 호출이 정상 실행되는 서버에서 wsecedit.dll 을 복사해서 임의 경로에 저장한다. 

여기서 두 가지 방법으로 파일 교체가 가능하다.

1) 서버 전원 종료 후 복구 모드 진입해서 CMD 에서 파일 덮어쓰기

2) wsecedit.dll 파일 사용자 권한 변경 후 삭제 / 이전 버전 파일 복사


1) 의 경우 전원 종료가 불가피하므로 지양한다. 따라서 2) 의 방식으로 해결 한다. 


일반적으로 system32 폴더 안의 파일들은 권한 문제로 삭제 및 덮어쓰기가 불가하다. 



CMD 실행 후 아래의 작업을 순차 진행한다. 


wsecedit.dll 파일의 소유권을 가져온다.

takeown /f C:\Windows\System32\wsecedit.dll 


사용자 계정에 권한을 부여한다.

cacls C:\Windows\System32\wsecedit.dll /G 사용자계정:F 


wsecedit.dll 파일을 삭제하고, 이전 버전의 파일로 대체한다.

del C:\Windows\System32\wsecedit.dll 

copy c:\wsecedit.dll c:\Windows\System32\


대체 된 파일의 수정 일자를 확인한다.

 dir -filename wsecedit.dll


이전 버전 파일로 대체 후 보안 옵션 호출 정상 확인 되었다. 



# 4

해당 오류가 Windows Server 2016 버전에 한해서 발생되는 문제인지는 명백히 확인이 되지 않았으나, 

9월 보안 업데이트를 진행한 Windows Server 2012 R2 서버에서 확인 된 wsecedit.dll 파일의 수정 일자는 2020.08.04 이다. 


보안 옵션 호출도 정상 실행된다. 



# 5

Windows Server 2016 OS 가 설치 된 서버는 2020년 9월 보안 업데이트는 넘어가는게 좋겠다. 

동일 커널을 사용하는 2019 에서도 문제가 발생할 것 같긴한데 위험을 감수하고 테스트 하고 싶지는 않다. 

MS 에서 빨리 해당 문제를 확인하고 패치를 진행해야 할텐데. 


고객사에서 윈도우용 PHP v7.2 와 CakePHP 3.7.9 설치를 요청하여 테스트 한다.

CakePHP 가 뭔지 몰라서 검색을 좀 했다. PHP 로 만들어진 프레임워크라고 한다. (https://ko.wikipedia.org/wiki/CakePHP)



1. PHP v7.2 다운로드 및 설치

IIS 에 등록 된 웹 플랫폼 설치 관리자 실행해서 PHP v7.2 입력한다. 


만약 웹 플랫폼이 설치가 안되어 있으면, 아래 첨부파일 실행해서 설치한다. 

WebPlatformInstaller_x64_en-US.msi


phpmanager도 설치하면 관리가 용이하다. (https://www.iis.net/downloads/community/2018/05/php-manager-150-for-iis-10

PHPManagerForIIS_V1.5.0.msi


호출되는 리스트에서 원하는 버전 추가 후 설치 진행한다.


IIS 에 등록 된PHP Manager 들어가서, PHP Extensions 설정을 변경한다. 

 



아래의 확장 모듈이 Enabled 로 선택되어 있어야 CakePHP 설치가 정상 진행된다.

mbstring PHP extension

intl PHP extension

simplexml PHP extension (simplexml 은 PHP 5.4 이후부터 코어에 기본 포함되어 목록에 없다.)

PDO PHP extension 


php_intl.dll 은 기본이 Disabled 니깐 Enabled 로 변경한다.


PHP 설정은 이 정도면 끝이다. 



2. CakePHP 다운로드 및 설치


설치 안내 페이지로 이동한다. 

https://book.cakephp.org/4/en/installation.html


윈도우 버전은 아래의 경로에 가서 Composer 다운로드 및 설치하라고 한다.

 


https://github.com/composer/windows-setup/releases/

Composer-Setup.5.1.0.exe



PHP 가 설치 된 경로는 알아서 잡으니깐 그냥 Next 만 계속 누르면 끝난다. 


파워쉘이나 cmd 열어서 아래 명령어 입력한다. 


composer create-project --prefer-dist cakephp/app:4.* my_app_name


ex) composer create-project --prefer-dist cakephp/app:^3.7 D:\cakephp_gunnm 



지정한 경로에 설치가 진행된다. 


종료되기 직전에 Y, n 선택하라고 나오는데 그냥 엔터치면 된다. 


cmd 를 이용해서 지정 경로인 D:\cakephp_gunnm\bin 폴더로 이동한다.

cake --help 명령으로 옵션값 확인한다. 


D:\cakephp_gunnm\bin>cake --help


config 폴더 내부 설정 파일들을 본인의 환경에 맞게 수정해야 한다. DB 접속 설정은 app.php 파일을 수정한다.

 


더 자세한 설명 및 방법은 구글하고 유튜브에 있으니깐 잘 검색하면 될 것 같다. 


윈도우 버전 업그레이드 문의가 주기적으로 들어와서 버전업 테스트를 한다.

이번 테스트는 Windows Server 2012 R2 에서 Windows Server 2019 로 바로 업그레이드가 되는지 확인해본다.

업그레이드야 되겠지만, 내부 프로그램 및 설정도 정상 작동되는지 확인하고자 한다.


# Windows Server 2019 설치 이미지 삽입 후 실행하면 아래와 같이 나온다. 그냥 권장 사항대로 클릭하고 넘어간다.


# GUI 환경이 필요하니까 두 번 째 항목으로 선택 후 진행 한다.


# 라이선스 관련 나오긴 하는데 그냥 동의 하고 넘어간다.


# 유지할 항목 선택 하라고 나오는데, 2008 에서 두 단계 이상 업그레이드 시에는 "개인 파일, 앱을 유지합니다." 가 선택이 안되는데 2012 에서는 가능하다.

Windows Server 2016 에서 기능 추가 된 업데이트 버전이 Windows Server 2019 이기 때문이 것 같다. 

윈도우 데스크톱으로 치면, 2015년에 발매 된 Windows 10 은 기능 추가 및 업데이트가 진행되어도 계속 10 네이밍을 쓰는 것과 마찬가지로 보면 될 듯 하다.

아래 링크에서 윈도우 버전별 기능 비교가 가능하니 참고.

https://www.microsoft.com/ko-kr/cloud-platform/windows-server-comparison


# 온라인으로 업데이트 다운로드 및 설치가 진행된다.

이러다가 리부팅 한 번 하고 나면 아래와 같이 2019 계열로 변경되고 또 업데이트를 한다. 언제 끝나냐.


# 리부팅 몇 번 반복되고 나서 2019 로 업그레이드가 되었다.


기존 설치 프로그램들 실행해보니 정상 작동 확인 되었다.


정품 인증은 2019 버전으로 다시 진행해야 된다.




# OS 업그레이드 테스트 종료

Windows Server 2008 R2 이하 버전 서버를 2019 까지 업그레이드 하려면

2008 -->> 2012 -->> 2019 순서대로 진행하면 될 것 같다.

2016 은 스킵해도 되니깐 어느 정도 이득 봤다고 볼 수 있지 않나 싶다.



# Windows Server 설치 및 업그레이드 MS 기술 문서

https://docs.microsoft.com/ko-kr/windows-server/get-started/installation-and-upgrade