2009년 2월 27일 금요일

DreamSpark!!, 한글버전 소프트웨어 업데이트 및 고등학교 학생에까지 사용 영역 확대!!

DreamSpark홈페이지 : https://www.dreamspark.com 



마이크로소프트의 최신 기술 SW 들을 무료로 다운로드 받도록 함으로서 글로벌 IT 인재로서의 성장을 지원

학생인증 방법
  - ISIC 국제학생증을 통한 인증
 - DreamSpark 자유이용권을 이용한 인증
 - Live@Edu 도입학교 학생들은 학교에서 발급받은 Live ID 로 로그인만 하면 이용가능
 - Live@Edu 도입학교 :
           서강대학교, 건국대학교,동양공업전문대학, 신구대학, 백석예술대학, , 열린사이버대학교,
           서울여자간호대학교, 상명대학교, 신라대학교, 고신대학교

고등학교 학생들도 이용가능
 - 고등학교의 관리자/선생님이 신청하여 인증 코드를 발급받아 이용 가능 
 - 고등학교 신청사이트 https://www.dreamspark.com/HighSchool/Default.aspx

후원기관 : 지식경제부 SW 산업진흥원


무료제공 SW 리스트 https://www.dreamspark.com 에서 확인

  - Visual Studio 2008 Professional Edition : 전문가용 소프트웨어 개발 도구 (한글버전 제공)
 - Visual Studio 2005 Professional Edition :  전문가용 소프트웨어 개발 도구 (한글버전 제공)
 - Expression Studio 2 :  
   최신 인터랙티브 디자인 도구 세트, 아래의 4개 제품이 포함되어 있습니다. (한글버전 제공)
        - Expression Media :  디지털 자산 관리 도구 
        - Expression Blend :  애플리케이션 제작 디자인 도구
        - Expression Web :  웹사이트 제작 디자인 도구
        - Expression Design :  일러스트 그래픽 디자인 도구
 
 - Windows Server 2008 Standard Edition :  서버 운영 체제 (한글버전 제공)
 - SQL Server 2008 Developer Edition:  데이터베이스 소프트웨어 (한글버전 제공)
 - CCR & DSS Toolkit 2008 Academic Edition (NEW) :  분산환경 소프트웨어 서비스 제작도구
 - Robotics Developer Studio 2008 (NEW):  로보틱스애플리케이션 개발 도구 
 - XNA Game Studio 3.0 (NEW) : 크로스 플랫폼 게임개발 도구
 - XNA Creators Club 12 Month Trial Subscription : 
   XNA Studio 로 만든 게임을 XBOX360 에 포팅하고 여러자료를 받을 수 있는 유료 멤버십
 
이외에도 Express Edition 제품들과 IT Academy Student Pass 온라인 e-learning 코스 포함

2009년 2월 25일 수요일

IIS 7 - Smooth Streaming with Sliverlight 2

Smooth Streaming 는 IIS 7 의 모듈중에 하나로 이전에 배포되었던 Bit Rate Throttling Module 을 좀더 확장한 것으로 보면 좋을것 같습니다.

Smooth Streaming - Beta - x86
http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1829

Smooth Streaming for IIS 7.0 - Managing Your Presentations
http://learn.iis.net/page.aspx/569/smooth-streaming-for-iis-70---managing-your-presentations/

Smooth Streaming for IIS 7.0 - Exploring Bit Rate Changes
http://learn.iis.net/page.aspx/568/smooth-streaming-for-iis-70---exploring-bit-rate-changes/

Microsoft Sliverlight 2 에서는 여러 단계의 Bit Rate 로 인코딩을 하는 것을 지원하는데,. IIS 7 에 Smooth Streaming 모듈을 설치하고 각 미디어 파일 설정에 대역폭 비율을 정해주면 클라이언트의 네트워크나 성능에 따라서 끊김이 없으면서도 최대의 고화질로 스트리밍이 가능하도록 해주는 모듈 입니다.

물론, 현재는 베타 상태이기는 하지만,. 실버라이트 2.0 기반 스트리밍을 계획하고 있다면 최적화된 고품질 동영상을 클라이언트에게 제공해 줄수 있다는 점은 너무나 매력적인것 같습니다.


IIS 7 콘텐츠 압축(Compression) 성능

IIS 7 Compression. Good? Bad? How much?
http://weblogs.asp.net/owscott/archive/2009/02/22/iis-7-compression-good-bad-how-much.aspx

IIS 7의 콘텐츠 압축에 관련해서, 압축 성능에 관련해서 성능 비교 자료가 잘 정리되어 있는 포스트 입니다. IIS 7 기반 웹사이트에서 압축을 고려하고 있다면 데이터 시트를 한번쯤 검토해 보는것도 좋을것 같습니다.


IIS튜닝 - Http 압축을 통한 트래픽 확장 (IIS 6)
http://www.wssplex.net/TipnTech.aspx?Seq=198

콘텐츠에 따라 다르지만, 압축의 효과는 매우 많은 장점을 가지고 있습니다.

2009년 2월 23일 월요일

IIS 7, Denial of Service Attacks 차단 모듈

IIS 7 이 모듈화 되면서 이미 예견된 일이기는 하지만, 시간이 갈수록 점점 다양한 모듈이 개발되고 있는것 같습니다. 이번은 대량접속(도스 공격과 비슷한....) 차단 모듈 입니다.

Dynamic IP Restrictions Extension
http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1825

도스공격 단어 그 자체 일수도 있고, 그와 같은 방법을 이용하는 패스워드 공격등 특정 호스트 또는 다중 호스트에서의 대량 접속을 차단하는 모듈 입니다.

현재 베타 상태이기는 하나, 테스트 해보기에는 크게 무리는 없어 보입니다.
RC 단계까지만 되도 현재 IIS 7 환경에서, 도스 형태의 공격이 우려되는 사이트에는 적용을 해보는 것도 괜찮을것 같습니다.

GUI 옵션으로는, 동시접속수, 최대요청수, 요청간격초, 차단시간초, 차단후동작, 로깅 등입니다. 헤더를 분석해서 패턴을 추적하는 등의 복잡한 알고리즘이 아닌 IP 주소와 그 요청수를 지정된 임계치를 초과하는 경우 차단하는 방식 입니다.

이 모듈은, 서버 단위 뿐만 아니라 웹사이트 단위 레벨까지 적용이 가능 합니다. GUI 설정화면을 제공하므로 쉽게 설정이 가능 합니다.

2009년 2월 20일 금요일

SMTPSVC / ID: 100

원본 : SMTPSVC
이벤트 ID : 100
종류 : 경고
설명 :

서버가 로그온 실패: 알 수 없는 사용자 이름이거나 암호가 틀립니다.  오류로 인해 Windows NT 계정 'inna'에 로그온하지 못했습니다. 데이터는 오류 코드입니다.


이렇게 나오네요.. 로그파일 확인하니

2009-02-18 14:30:05 114.44.143.161 jjoumoacd.com 0 251 18 -
2009-02-18 14:30:05 114.44.143.161 jjoumoacd.com 0 18 10 -
2009-02-18 14:30:05 114.44.143.161 jjoumoacd.com 0 36 10 -
2009-02-18 14:30:08 114.44.143.161 jjoumoacd.com 0 18 10 -
2009-02-18 14:30:08 114.44.143.161 jjoumoacd.com 0 36 10 -
2009-02-18 14:30:10 114.44.143.161 jjoumoacd.com 0 18 10 -
2009-02-18 14:30:10 114.44.143.161 jjoumoacd.com 0 36 10 -
2009-02-18 14:30:12 114.44.143.161 jjoumoacd.com 0 18 10 -
2009-02-18 14:30:12 114.44.143.161 jjoumoacd.com 0 36 10 -
2009-02-18 14:30:12 114.44.143.161 jjoumoacd.com 0 36 10 -

이부분으로 생각됩니다...

근데 중요한건 방화벽에서 해당  IP대역을 접속못하게 했는데도 어떻게 들어오는걸까요?
이 서버는 웹서버라서 pop3,smtp 포트를 전부 막아놓은 상태입니다..

2009년 2월 19일 목요일

Unable to register with Framework



서버에 로그인을 하면, 종종 위와 같은 팝업 메시지가 뜨는데요. 실행 경로는 로그인 할때 보이는 것이므로 주로 Run 에 등록되어 있습니다.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"Popup"="\"C:\\Program Files\\RAID Web Console 2\\MegaPopup\\Popup.exe\""

위 처럼 등록되어 있는데, Popup.exe 는 Intel Raid Manager 프로그램에 포함된 유틸 입니다. 물론 "Unable to register with Framework" 는 위와 같은 경우 외에도 다양한 상황에서 발생하는 것 같습니다.

Popup.exe 의 로그를 보면,. 

(Popup Log)(Error) D:\downloads\UNIV_POPUP_Development\app_viva\UNIV_Popup\Common\Communicator.cpp 747 : Unable to Register with Framework, Re-trying.

(Popup Log)(Fatal) D:\downloads\UNIV_POPUP_Development\app_viva\UNIV_Popup\Common\Communicator.cpp 759 : All try failed to register with Framework, Program is terminating.

(Popup Log)(Info) D:\downloads\UNIV_POPUP_Development\app_viva\UNIV_Popup\Common\Communicator.cpp 712 : Event Notification Application failed to listen on port 49152

(Popup Log)(Info) D:\downloads\UNIV_POPUP_Development\app_viva\UNIV_Popup\Common\Communicator.cpp 727 : Event Notification Application will listen on port 49153

위 로그에 나온 소스 경로는 당최 먼지..... -_-;;;


18-unable-to-register-with-framework.png

ASP.NET 에서 WMI 를 이용하여 IIS 제어 예제

WMI Functions from ASP.NET
http://www.codeproject.com/KB/aspnet/addhostheader.aspx

물론 위 예제는, \root\MicrosoftIISv2 네임스페이스를 접근하여 웹사이트를 생성등 제어하는 것이지만 기본 네임스페이스인 \root\cimv2 등에 접근 하면 시스템의 다양한 정보를 얻어 올수가 있습니다.

다만,. WMI 에 접근하기 위해서는 위 예제처럼 네트워크 서비스 계정, 인터넷 게스트 계정등에 또는 응용프로그램풀 실행 계정에 접근을 허용해 주어야 하기 때문에 보안 측면에서 볼때, 공개 서비스인 웹을 이용하는 방법은 잘관리되는 환경이 아니라면 추천할 만한 접근 방법은 아닙니다.

2009년 2월 17일 화요일

C#, Windows Installer 를 통한 설치 프로그램 목록 얻어오기

다음 코드는, Microsoft Windows Installer 를 통해서 설치된 프로그램 목록을 가져오는 초간단 예제 입니다. 그외 Installer 로 설치된것은 MSI 데이터 베이스에 목록이 없으니깐 Uninstall 같은 레지스트리 목록을 가져오는 등등의 방법을 사용해야 겠죠.^^

using WindowsInstaller;

Installer wi = (Installer)Activator.CreateInstance(Type.GetTypeFromProgID("WindowsInstaller.Installer"));
StringList sl = wi.Products;

foreach (string pn in sl)
{
    Console.WriteLine(wi.get_ProductInfo(pn, "ProductName"));
}

get_ProductInfo(pruduct, attribute) 에서 사용할수 있는 속성(attribute) 값은,

 "HelpLink"
 "HelpTelephone"
 "InstallDate"
 "InstallLocation"
 "InstalledProductName"
 "InstallSource"
 "LocalPackage"
 "ProductID"
 "Publisher"
 "PackageName"
 "RegCompany"
 "RegOwner"
 "URLInfoAbout"
 "URLUpdateInfo"
 "VersionMinor"
 "VersionMajor"
 "VersionString"
 "Transforms"
 "Language"
 "AssignmentType"
 "PackageCode"
 "PackageName"
 "ProductIcon"
 "ProductName"
 "Version"
 "InstanceType"

위의 COM 개체를 사용할려면, Microsoft Windows Installer Object Library 를 Interop 해와야 합니다. 실행을 하면 다음처럼 프로그램 목록이 나옵니다.

Microsoft ASP.NET 2.0 AJAX Extensions 1.0
Compatibility Pack for the 2007 Office system
Microsoft Office PowerPoint Viewer 2007 (Korean)
Microsoft .NET Compact Framework 1.0 SP3 Developer
Windows Live Messenger
MSXML 6 Service Pack 2 (KB954459)
Microsoft .NET Framework 3.0 Service Pack 2
.......

이게 필요했던 이유가 문자열 값중 "MsiExec.exe /I{9CAEFF6D-8A27-48F4-8340-509F6A248CAD}" 실행경로를 제어판을 이용하지 않고 프로그램을 삭제하기 위해서 였습니다.

이것보다 더 좋은 방법이 있을까요?...
아시는 분이라면 댓글 부탁드립니다.

2009년 2월 11일 수요일

2009년 2월 마이크로소프트 보안 공지

제목: Internet Explorer 누적 보안 업데이트 (961260)
http://www.microsoft.com/korea/technet/security/bulletin/MS09-002.mspx

요약: 이 보안 업데이트는 비공개적으로 보고된 취약점 2건을 해결합니다. 이 취약점들은 모두 사용자가 Internet Explorer를 사용하여 특수하게 조작된 웹 페이지를 볼 경우 원격 코드 실행을 허용할 수 있습니다. 시스템에 대한 사용자 권한이 적게 구성된 계정의 사용자는 관리자 권한으로 작업하는 사용자에 비해 영향을 적게 받습니다. 보안 업데이트는 악용 가능 조건을 발생시키는 Internet Explorer의 오류 처리 방식을 수정하여 이러한 취약점을 해결합니다.

심각도:긴급 - Windows XP, Windows Vista에서 실행하는 Internet Explorer 7보통 - Windows Server 2003, Windows Server 2008에서 실행하는 Internet Explorer 7

취약점으로 인한 영향: 원격 코드 실행


제목: Microsoft Exchange의 취약점으로 인한 원격 코드 실행 문제점 (959239)
http://www.microsoft.com/korea/technet/security/bulletin/MS09-003.mspx

요약: 이 보안 업데이트는 Microsoft Exchange Server에서 발견되어 비공개적으로 보고된 취약점 2건을 해결합니다. 첫 번째 취약점은 특수하게 조작된 TNEF 메시지가 Microsoft Exchange Server에 전달될 경우 원격 코드 실행을 허용할 수 있습니다. 이 취약점 악용에 성공한 공격자는 Exchange Server 서비스 계정 권한을 사용하여 영향을 받는 시스템을 완전히 제어할 수 있습니다. 두 번째 취약점은 특수하게 조작된 MAPI 명령이 Microsoft Exchange Server에 전달될 경우 서비스 거부 문제를 일으킬 수 있습니다. 이 취약점 악용에 성공한 공격자는 Microsoft Exchange System Attendant 서비스와 EMSMDB32 공급자를 사용하는 기타 서비스가 응답을 중지하도록 만들 수 있습니다. 보안 업데이트는 Microsoft Exchange Server에서 TNEF 메시지 및 MAPI 명령을 해석하는 방법을 수정하여 취약점을 해결합니다.

심각도:긴급 - Exchange 2000 Server, Exchange Server 2003, Exchange Server 2007

취약점으로 인한 영향: 원격 코드 실행


제목: Microsoft SQL Server의 취약점으로 인한 원격 코드 실행 문제점 (959420)
http://www.microsoft.com/korea/technet/security/bulletin/MS09-004.mspx

요약: 이 보안 업데이트는 비공개적으로 보고된 Microsoft SQL Server의 취약점을 해결합니다. 신뢰할 수 없는 사용자가 영향을 받는 시스템에 액세스하거나 영향을 받는 시스템에 SQL 주입 공격이 발생할 경우 이 취약점으로 인해 원격 코드가 실행될 수 있습니다. SQL Server 7.0 서비스 팩 4, SQL Server 2005 서비스 팩 3 및 SQL Server 2008이 설치된 시스템은 이 문제의 영향을 받지 않습니다. 보안 업데이트는 확장 저장 프로시저에 전달되는 입력 매개 변수의 유효성을 검사하여 취약점을 해결합니다.

심각도:중요 - SQL Server 2000, SQL Server 2005, SQL Server 2000 Desktop Engine (WMSDE), Windows Internal Database (WYukon)

취약점으로 인한 영향: 원격 코드 실행

2009년 2월 7일 토요일

IIS 관련 레지스트리 값

List of registry keys affecting IIS7 behavior
http://blogs.iis.net/ksingla/archive/2007/12/30/list-of-registry-keys-affecting-iis7-behavior.aspx

Common (keys read by many parts of IIS)
WAS
IISADMIN
W3WP
ASP
IIS Manager and WMSVC
W3TP (Keys affecting thread pool manager used by WAS and worker process)

에 해당하는 레지스트리 경로 및 값을 정리해 놓은 포스트.

IIS 7, 오프라인 파일을 이용한 Configuration 공유 구성

IIS 7 는 동일한 컨텐츠로 운영되는 IIS 웹서버 끼리 설정파일을 공유가 가능하도록 해주는 기능이 있는데요., 이 공유는 보통의 파일 공유 방식 입니다.

그런데,. .Config 의 원본을 제공하는 서버가 죽는 경우에는 참조하는 서버들 모두 웹서버 작동오류가 발생 합니다. 그런것을 대비하여 DFS(분산파일시스템) 을 이용하는데요,.

Setting up Shared configuration on IIS 7.0
http://blogs.iis.net/wonyoo/archive/2009/01/12/setting-up-shared-configuration-on-iis-7-0.aspx

위 포스트를 참고해 보면 제어판의 "오프라인 파일"을  이용하여 원본 서버가 죽더라도 캐시된 파일을 이용하여 참조 서버에서는 정상적으로 작동이 가능하도록 팁을 공개하고 있습니다.

"오프라인 파일" 은 그 이전 운영체제의 보조프로그램의 "동기화" 와 같습니다.

IIS, Explorer 8.0 에서 Explorer 7 호환모드(EmulateIE7)로 작동하도록 헤더 설정

곧 정식으로 발표될 Explorer 8.0 에서의 기본 Html 렌더링은 웹표준에 보다 충실하게 표현을 합니다.

그래서 기존에 웹표준에 잘 맞지 않는 Explorer 에만 맞춘 웹사이트의 경우 깨져 보일수가 있는데요, Microsoft 에서 이에 대한 대안으로 각 웹페이지의 head 태그를 추가하거나 헤더에 특정 값을 추가하는 경우 IE 7 호환 모드로 작동이 되도록 기능을 추가 하였습니다.



Explorer 8.0 에서 렌더링하는 Html 표준에 맞지 않는 경우 위처럼 페이지가 깨져 보이는 아이콘이 보이며, 클릭하는 경우 IE 7 호환 모드에서 작동하게 됩니다. 이는 사용자의 동작이 필요한 경우 입니다.

IE 7 호환 모드로 작동하게 할려면, 웹서버의 헤더에 다음 문자열이 추가 되면 됩니다.

IE=EmulateIE7

웹서버별로, 관리 스크립트 또는 명령어, GUI 설정 화면등 다양한 방법으로 추가가 가능 합니다.

IIS 7 에서는,

appcmd.exe set config -section:system.webServer/httpProtocol /+"customHeaders.[name='X-UA-Compatible',value='IE=EmulateIE7']" /commit:apphost

applicationhost.config 파일에서 수정하여 적용하는 경우,

<httpProtocol>
     <customHeaders>
          <clear />
          <add name="X-Powered-By" value="ASP.NET" />
          <add name="X-UA-Compatible" value="IE=EmulateIE7" />
     </customHeaders>
     <redirectHeaders>
          <clear />
     </redirectHeaders>
</httpProtocol>

GUI 모드에서는,


위와 같이 등록해 줍니다. 물론 위와 같이 등록을 해주면 applicationhost.config 에서 수정을 해준것처럼 해당 웹사이트의 web.config 에도 동일한 코드가 추가 됩니다.


IIS 6 에서도, GUI 모드는 거의 같은 방법이고, 관리 스크립트에서는 다음과 같이 하면 됩니다.

먼저, adsutil get w3svc/HttpCustomHeaders 를 실행하여, 기존에 등록된 헤더 목록을 확인 합니다. 그런 다음에, 기존 헤더와 새로 추가할 헤더를 같이 등록해 줍니다. (*추가 방식이 아닌 Set 이므로 기존 헤더를 같이 명시해 주지 않으면 덮어 쓰기가 됩니다.)

adsutil set w3svc/HttpCustomHeaders "X-Powered-By: ASP.NET" "X-UA-Compatible: IE=EmulateIE7"

참고로, html 웹페이지에서 특정 페이지만 추가할 경우 다음과 같이 html head 태그에 추가해 주면 됩니다.

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />



06-ie8-ie7-emul.png
06-ie7-header.png

IIS 7, 모듈(Module) 관련 문서 모음

본 웹사이트에 소개된 IIS 7 모듈에 관련된 포스트 모음 입니다.

Web Analytics Tracking Module
http://www.wssplex.net/Tools/UsefulTools.aspx?Seq=92

Image Gallery Directory Listing Module
http://www.wssplex.net/Tools/UsefulTools.aspx?Seq=91

URL Rewrite Module
http://www.wssplex.net/Tools/UsefulTools.aspx?Seq=87

Application Request Routing Module
http://www.wssplex.net/Tools/UsefulTools.aspx?Seq=79

Backup & Restore Module
http://www.wssplex.net/Tools/UsefulTools.aspx?Seq=74

미디어 팩(Media Pack) Bit Rate Throttling Module
http://www.wssplex.net/Tools/UsefulTools.aspx?Seq=69

Request Filtering Module
http://www.wssplex.net/TipnTech.aspx?Seq=396

이외에도, 수많은 모듈이 있으며 프로그래밍이 가능하다면 모듈 작성 및 추가는 그리 어렵지 않게 추가가 가능한 IIS 7 입니다.

IIS 7, head 또는 body 문자열 추가 기능을 이용한 Web Analytics Tracking Module

IIS 6 까지는, 웹서버에서 반환되는 각 페이지마다 설정된 html 문자열 코드를 추가하여 반환하는 기능이 있는데요., 이것과 비슷한 기능을 하는 IIS 7 Module 입니다.

Web Analytics Tracking Module
http://learn.iis.net/page.aspx/480/sample-web-analytics-tracking-module/

(*다운로드는 로그인 필요.)

위 모듈의 이름은 Web Analytics 되어 있습니다만, 사실 </body> 태그 앞에 추가하고 싶은 그 어떤 문자열도 넣을수가 있어서 유용함은 꾀 높습니다.


옵션으로는 기본 body 태그외 head 태그도 지원 합니다.

위와 같은 방법은 사실, Google Analytics 코드를 넣는 예제 입니다만,. Google Analytics 처럼 Script 기반 분석코드를 이용하는 Web Analyzer 는 모두 적용이 가능하고,. 더 중요한 점은 사용자 웹페이지의 그어떤 추가적인 작업도 필요가 없다는 점일것 같습니다.

IIS 7 이 모듈화 되고, 사용자가 개발한 모듈을 쉽게 추가가 가능해서 정말로 다양한 모듈이 개발되고 있는것 같습니다. 모듈 개발도 기존의 VC++ 같은 언어가  아닌 닷넷같은 Managed 코드로도 가능하지요.^^


06-iis7-module-web-analytics.png

2009년 2월 5일 목요일

IIS 7, 디렉토리 이미지 갤러리 모듈

IIS 7의 공개 모듈중에, 하나의 웹사이트 설정에서 index 파일 없이 디렉토리 브라우징이 가능하도록 설정해 놓으면 해당 웹디렉토리를 볼수가 있습니다.

Image Gallery Directory Listing Module for IIS7
http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1325

이러한 디렉로토리에 .jpg, .gif, .png 등의 이미지 파일이 있는 경우 해당 파일들의 썸네일을 만들어서 디자인된 웹페이지 이미지 갤러리 형식으로 보여주는 모듈 입니다.

예제 페이지는 http://wallpaper.iis7.org/gallery/ 처럼, /gallery/ 웹디렉토리를 브라우징 하면 보이는 것처럼 이미지 갤러리 형식으로 변환해 줍니다.

별도의 스타일 템플릿 파일을 제공해주므로 그 파일을 사이트에 맞게 수정해서 일관성을 줄수도 있을것 같습니다.

ProcWatch, 작업자 프로세스 및 사이트 모니터링 도구

Egon Gamper (http://egon-gamper.spaces.live.com/) 라는 사람이 만든도구 인데, 괜찮은 것 같습니다. ProcWatch 라는 유틸이며 닷넷 기반에서 작동하는 프로그램 입니다.

ProcWatch 에 대한 다운로드나 설명은 개발자의 Spaces 를 참고하면 되겠습니다.
http://egon-gamper.spaces.live.com/

ProcWatch 가 지원하는 기능을 보면,

첫번째(CPU Limits)로 특정 오류이던지 아니면 웹사이트 접속자 증가라던지 어떤 이유에서 작업자 프로세스(w3wp.exe) 의 CPU 사용량이 지정된 임계치를 넘는 경우 작업자 프로세스의 실행 우선순위를 낮음으로 해서 서버를 보호하는 방법과,

두번째(URL Checks)로, 특정 페이지의 정상작동을 체크하는 기능 입니다.
지정된 페이지의 Http Status 코드를 체크하며, 문제가 있는 경우 해당 응용프로그램 풀을 자동으로 재생 처리 합니다.

세번째(NLB Start/Stop)로, NLB 서비스 관리인데 이것은 테스트 기능으로 넣어 놓았다고 합니다. NLB 에서는 포트의 정상작동 여부만 체크를 하지 웹서비스 이상유무를 체크하지 않기 때문에 웹서비스에 이상이 있는 경우 해당 서버의 NLB 서비스를 Stop 하면 다른 서버로 요청이 넘어가기 때문에 서비스 다운타임을 줄일수 있습니다.

다운로드나 설정파일 ProcWatch.config 의 위 3가지 항목의 설정 방법등은 위 Spaces 를 참고해 보시기 바랍니다.



ps, 설명서에는 닷넷 프레임워크 2.0 필요하다고 하는데, 실제 설치 인스톨러에서 체크사항에 닷넷 프레임워크 3.5 설치를 요구하고 있습니다.

Alex FTPS Client, SSL 지원 닷넷기반 클라이언트 툴 및 라이브러리

*nix 기반에서는, 이미 SSL FTP 를 지원하고 있었지만 IIS FTP 에서는 IIS 7에 와서야 지원하기 시작했는데요. Codeplex 프로젝트중에 하나인 Alex FTPS Client 는 명령행 기반 유틸 뿐만 아니라 닷넷 에서 사용 가능한 라이브러리도 제공하고 있습니다.

Alex FTPS Client
http://www.codeplex.com/ftps

물론,. SSL FTP를 지원하는 라이브러리는 http://www.wssplex.net/TipnTech.aspx?Category=VariousTips&Seq=5 와 같이 공개코드가 몇몇 있습니다만,.

위 Codeplex 의 경우에는 닷넷프레임워크의 Linux 등 *nix 기반에서도 작동가능한 모노 프로젝트에서도 잘 작동한다고 합니다. 즉 모노가 설치되는 리눅스 뿐만 아니라 맥OS 와 솔라리스에서도 작동한다는 얘기 입니다.

라이브러리도 공개되어 있으므로 SSL FTP 클라이언트 구현이 필요한 경우에는 해당 라이브러리를 참조하여 쉽게 구현이 가능할것 같습니다.

Windows PowerShell Provider for IIS 7.0

PowerShell 은 강력한 쉘기반 관리 도구 입니다. 기본으로 제공되는 스냅인도 훌륭하지만 각 제품별 특성에 맞는 스냅인이 필요한데,. IIS 7.0 으로 RC 버젼으로 배포되고 있습니다.

Windows PowerShell Provider
http://www.iis.net/extensions/PowerShell

다운로드는 위 페이지에서 가능하며, 주요 기능은 다음과 같습니다.
보다 자세한 내용은 위 공식 사이트를 참고해 보는 것이 좋을것 같습니다.

-> Mangement of Sites/Apps/Vdirs/AppPools (create/start/stop/remove/convert/recycle)
-> Management of site bindings (add/change/remove)
-> Management of Handlers and Modules/Managed Modules (add/change/remove)
-> Enablement of Request Tracing
-> Backup and Restore of IIS configuration
-> Locking/unlocking of sections/elements/attributes
-> Getting file system path for config files and web application content
-> Access to run-time data, e.g.
   ---Exploring currently executing requests
   ---AppDomain Management


IIS 7.0 Configuration Reference

IIS 7 부터는, 해당 사이트의 대부분의 설정값을 web.config 에 의존 하도록 변경 되었습니다. 그 이전에는 web.config 는 ASP.NET 의 설정 파일 이었죠.^^

기존 닷넷의 config 상속 방법과 흡사하게 IIS 7 에서도 서버 및 사이트 설정을 차례 차례 상속으로 이어 받도록 했고, 이러한 방법은 보다 쉬운 사이트 관리를 제공해 주었습니다. 특히 마이그레이션 이나 서버관리자와 상관없이 사이트 설정이 가능하다는 점등...

그런데, 이러한 설정은 web.config 처럼 정해진 Property 또는 직접 정의 가능한 방법등으로 사이트의 속성값을 지정할수 있는데 그런것을 할려면 기본적인 작동 방법과 각 값들이 의미하는 내용을 알고 있어야 하겠죠.

http://www.iis.net/ConfigReference

위 페이지에는 각 값들에 대해서 상세하게 설명이 되어 있고, GUI 에서도 설정이 가능한 항목인 경우에는 GUI 스샷 설명도 같이 하고 있으므로 쉽게 이해를 할수가 있습니다.

웹서버 운영자 뿐만 아니라, IIS 7 환경에서 사이트를 개발하는 개발자들도 알아 두면 매우 좋을것 같습니다. 서버관리자는 항상 옆에 끼고(즐겨찾기...?) 있어야 할정도?...


참고로, 각 값들을 설정하는 파일은  ApplicationHost.config, Administration.config, Redirection.config 등에서 가능한데요. 이러한 값들은 서버 -> 응용프로그램 -> 사이트 단위로 상속을 받습니다.

Introducing IIS 7.0 Configuration Architecture
http://technet.microsoft.com/en-us/library/cc268239.aspx

NET Framework root -> server root -> Web Site root -> top-level directory -> subdirectory

서버단위는 (C:\Windows\System32\inetsrv\config)는 위 파일에서 설정이 가능하고, 응용프로그램 단위는 해당 응용프로그램이 시작되는 경우 C:\inetpub\temp\appPools (ApplicationHost.config 를 참조, 기본경로) 에 임시파일로 생성됩니다. 사이트는 각 웹사이트 루트의 web.config 입니다.

IIS 7.5 (Windows Server 2008 R2) 에서 FastCgi 성능 향상

현재의 Windows Server 2008 다음으로 출시될 예정인 Windows Server 2008 R2 (Windows 7) 의 IIS 7.5 에서는 FastCgi 의 성능이 향상된다고 합니다.

http://blogs.iis.net/ksingla/archive/2009/01/22/improvements-to-fastcgi-in-iis-7-5.aspx

1. FastCgi 가 작동하는 응용프로그램 풀(프로세스) 에서 지정된 특정 파일 모니터링
   --> 기존 web.config 수정 모니터링 처럼 FastCgi 에서도 가능하게 한것 같은데요. 그것 보다는 단순한 듯.

2. 실시간 튜닝 자동화
  --> Windows 7 (Windows Server 2008 R2) 에서 maxInstances 등의 값을 0 으로 하는 경우에는 FastCgi 모듈이 요청 상태에 알맞게 FastCgi 인스턴스를 자동으로 조정

3. 추적
 --> 대부분의 Cgi 는 자체 메시지 출력(Stdout)을 하는데, 에러시 기존에는 각자의 로깅방법등을 이용했는데 IIS 7.5 에서는 그것을 IIS Trace 에서 받을수 있음.

4. STDERR stream 핸들링
 --> Stdout(StdErr) 의 값에 따라서 특정한 값에 해당하는 경우 지정된 서버 상태코드로 설정이 가능


2009년 2월 3일 화요일

File Uploader in ASP.NET and ASP.NET MVC

ASP.NET 웹사이트에서 파일 업로드는 내장 클래스를 이용해서 업로드를 했는데,. 파일 업로드 과정에서 여러가지 제어가 필요한 경우에는 코드를 만들어야 했습니다.

http://www.codeproject.com/KB/aspnet/Uploader.aspx

위 프로젝트에서는, 기존에 업로드 컴포넌트 처럼 여러가지 속성을 통해서 업로드 파일을 제어가 가능 하도록 해주고 있어서 유용할것 같습니다.

    Uploader uploader = new Uploader();

    uploader.UploadPath     = Server.MapPath("~\\Content\\Uploads");
    uploader.IsLowerName    = true;
    uploader.IsEncryptName  = false;

    uploader.Prefix = "Hello_";
    uploader.Suffix = "_Boom";

    uploader.AllowedExtensions.Add(".jpg");
    uploader.AllowedExtensions.Add(".jpeg");
    uploader.AllowedExtensions.Add(".gif");
    uploader.AllowedExtensions.Add(".png");

    bool success = uploader.DoUpload("MyFile");

    if (success)
    {
        //TODO: Code to handle success
    }
    else
    {
        //TODO: Code to handle failure
    }

SSL 보안서버 설치 도메인 급증

Netcraft 의 최근 웹서버 SSL 적용 도메인 통계를 보면, 최근에 급격한 증가를 하고 있습니다.

http://news.netcraft.com/SSL-survey



정확치는 않지만 아시아 지역에서는 한국의 SSL 적용이 굉장히 많아다고 한것 같습니다. 이유는 정보보호진흥원에서 개인정보를 다루는 사이트는 의무적으로 적용하도록 강제를 하고 있기 때문인것 같습니다.



Certificates Authority 는 뭐 전통적으로 VeriSign 의 독차지 이지만,. Comodo 의 약진도 눈에 띄고 점유율이 상당한것 같습니다. 국내에서는 거의 알려지지 않은 브랜드 이긴 하며, 최근에 조금씩 알려지기 시작했습니다.

Windows SxS 디렉터리 (%System Root%\WinSxS)에 대해

Windows 7 블로그 포스트중에,. Windows SxS 에 대한 내용이 있는데 한번쯤 참고해 볼만한 내용 같습니다. 왜 그러한 작동이 되는 이유에 대해서 잘 설명되어 있습니다.

http://blogs.msdn.com/e7kr/archive/2009/01/15/9320376.aspx

이것은 Windows 의 서비스 플랫폼 (패치나 서비스 팩을 배포하는 도구)이 무엇이 설치되어 있는지, 설치할 수 있는 것 (옵션 구성요소, 자세한 것은 나중에 설명합니다)은 어떤 버전, 시스템에 설치된 업데이트 시스템 상태에 대해 수많은 주요한 판단을 하여, 개별 시스템에 대해서 적용할 수 있는 Windows 패치를 특정하는데, WinSxS 디렉터리를 검색하는 유용성이 있습니다. 이 기능에 의해, 서비스 안정성이나 성능이 향상되어, 향후의 추가 시스템 계층화나 뛰어난 설정 가능성을 제공하기 위한 기술적인 대안을 지원합니다.

간단하게 말하자면,. 이전에 많은 문제? 가 있었던 DLL 지옥을 해결하기 위한 하나의 대안으로 System32 폴더가 아닌 C:\WINDOWS\WinSxS 에서 필요한 라이브러리를 찾는것 입니다.

내용중 나오는 하드링크는 *nix 에서 매우 일반적인 Symbolic Link (Soft Link) 와 같은 비슷한 개념입니다. Vista, Windows Server 2008 에서는 Hard Link 와 Symbolic Link 를 생성할수 있는 명령어를 제공하고 있고 그외 운영체제의 경우에는 유틸리티를 이용하거나 API (http://msdn.microsoft.com/en-us/library/aa363860(VS.85).aspx) 를 이용해서 생성할수가 있습니다. Hard Link 는 동일한 NTFS 파티션 내에서만 생성이 됩니다.


2009년 2월 2일 월요일

Microsoft iSCSI Initiator with WMI

Microsoft iSCSI Initiator 은 소프트웨어 기반 iSCSI Initiator 이며, 무료로 제공되고 있습니다. 대부분의 설정 Microsoft iSCSI Initiator 를 설치하거나 (Windows 2003 등) Vista, Windows Server 2008 에 내장된 GUI 에서 설정이 가능 합니다.

그러나,. Windows 관리 인터페이스인 WMI 를 이용해서 정보를 얻거나 조작이 필요한 경우가 종종 있습니다. Microsoft iSCSI Initiator 를 설치하면 다음과 같은 WMI (root\wmi)네임스페이스내에 클래스가 추가 됩니다.

MSiSCSIInitiator_Connectioninformation
MSiSCSIInitiator_DeviceOnSession
MSiSCSIInitiator_IKEPresharedKeyAuthenticationinfo
MSiSCSIInitiator_initiatorClass
MSiSCSIInitiator_iSNSServerClass
MSiSCSIInitiator_LUNList
MSiSCSIInitiator_MethodClass
MSiSCSIInitiator_PersistentDevices
MSiSCSIInitiator_PersistentLoginClass
MSiSCSIInitiator_Portal
MSiSCSIInitiator_PortalGroup
MSiSCSIInitiator_SendTargetPortalClass
MSiSCSIInitiator_SessionClass
MSiSCSIInitiator_TargetAddress
MSiSCSIInitiator_TargetClass
MSiSCSIInitiator_TargetLoginOptions
MSiSCSIInitiator_TargetMappings

(물론 위 Class 말고도 ISCSI 클래스가 더 있습니다.)

다음 예제는, 현재 Active 상태인 세션 정보를 확인해 볼수 있는 Vbscript 입니다. 물론,. 각 클래스마다 제공되는 메소드가 있는 경우에는 특정 작동도 가능 합니다.

On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\WMI")
Set colItems = objWMIService.ExecQuery("Select * from MSiSCSIInitiator_SessionClass",,48)
For Each objItem in colItems
    Wscript.Echo "Target: " & objItem.TargetName
    Wscript.Echo "SessionID: " & objItem.SessionID
    Wscript.Echo "ConnectionInformation: " & objItem.ConnectionInformation
Next

C:\>test.vbs
Target: iqn.2009-01.drbd.windata.wssplexdrbd
SessionID: ffffffff96339644-4000013700000085
ConnectionInformation: iqn.1991-05.com.microsoft:wssplex-00

각 클래스마다 제공되는 Property 및 Method 는 WMI CMI Studio 같은 툴을 이용하시면 알수가 있습니다. 물론 각 값들은 Microsoft iSCSI Initiator 의 각 옵션값을 알고 있으면 쉽게 알아챌수가 있을것 입니다.

Web Platform Installer 1.0 다운로드

Web 개발을 위한 툴을 한꺼번에 쉽게 설치가 가능하도록 만들어 놓은 패키지 인스톨러 입니다.

http://www.microsoft.com/downloads/details.aspx?FamilyID=3A41FAC1-ED06-4944-A24D-76C8DA31CF7D&displaylang=en


IIS Web Server
Visual Web Developer 2008 Express Edition
SQL Server Express Edition
.NET Framework
IIS Extensions (such as FTP 7.0 and URL Rewriter) 
등등등.....




02-Web-Platform-Installer.png
02-Web-Platform-Installer-2.png

2019년 10월 MS 취약점 패치 주요 사항

CVE-2019-1166 | Windows NTLM 변조 취약성 https://portal.msrc.microsoft.com/ko-KR/security-guidance/advisory/CVE-2019-1166 CVE-2019-1230 | Hype...