2008/08/29

System Center Data Protection Manager 2007 설치 및 관리자 가이드

Product: System Center Data Protection Manager 2007
Download: http://www.mspsr.co.kr/regist/ServerGuide/Part1/SCDPM2007.pdf
Language: Korean

System Center Data Protection Manager 2007 설치 및 관리자 가이드

Internet Security Acceleration Server 2006 설치 및 관리자 가이드

Product: Internet Security Acceleration Server 2006
Download: http://www.mspsr.co.kr/regist/ServerGuide/Part1/ISA2006.pdf
Language: Korean

Internet Security Acceleration Server 2006 설치 및 관리자 가이드

System Center Configuration Manager 2007 설치 및 관리자 가이드

Product: System Center Configuration Manager 2007
Download: http://www.mspsr.co.kr/regist/ServerGuide/Part1/SCCM2007.pdf
Language: Korean

System Center Configuration Manager 2007 설치 및 관리자 가이드

System Center Operations Manager 2007 설치 및 관리자 가이드

Product: System Center Operations Manager 2007
Download: http://www.mspsr.co.kr/regist/ServerGuide/Part1/SCOM2007.pdf
Language: Korean

System Center Operations Manager 2007 설치 및 관리자 가이드

Microsoft Forefront Client Security 설치 및 관리자 가이드

Product: Microsoft Forefront
Download: http://www.mspsr.co.kr/regist/ServerGuide/Part1/FCS.pdf
Language: Korean

Microsoft Forefront Client Security 설치 및 관리자 가이드

Exchange Server 2007 설치 및 활용 가이드

Product: Exchange Server 2007
Download: http://www.mspsr.co.kr/regist/ServerGuide/Part2/Exchange2007설치및활용가이드.pdf
Language: Korean

Exchange Server 2007 설치 및 활용 가이드

SQL2005 관리자 운영 가이드

Product: SQL Server 2005
Download: http://www.mspsr.co.kr/regist/ServerGuide/Part1/SQL2005운영가이드.pdf
Language: Korean

SQL2005 관리자 운영 가이드

2008/08/26

ASP 에서 Socket 통신 코드 예제

Asp 에서는 Socket 통신을 할려면 별도의 구성요소(컴포넌트)가 필요 합니다.

여타 웹 스크립트 언어 자체에서 모든 기능을 제공하는 대신 Asp 는 Server.CreateObject 라는 구조를 통해서 무한한 가능성을 열어주는 대신에,.. 직접 만들어야 하다는 단점.,.. 각설하고...

http://tech.dimac.net/ 에서,. Socket 통신이 가능한 간단한 컴포넌트를 배포하고 있습니다. 다운로드 할려면 이메일 쓰고 등록해야 하더군요. 뭐 간단하지만,.. 그래서 SkyDrive 에..



물론 소스코드는 Microsoft 에서 배포하는 것을 참조하였으므로,. readme.txt 에서도 ftp://ftp.microsoft.com/bussys/winsock/winsock2/ 에서도 가능하겠고요. ^^

- 닷넷이라면,.. System.Net 네임스페이스 에서 가능 -

예제 입니다. 간단 합니다.
아래 예제는 후이즈 서버에서 도메인 정보를 받아오는 것입니다.

<%

Set Socket = Server.CreateObject("Socket.TCP")

Socket.host = "whois.internic.net:43"
Socket.timeout = 2000
Socket.Open()
Socket.sendLine( "wssplex.net"&VbCrLf )
Socket.WaitForDisconnect()

Response.write Socket.buffer

Socket.close()
Set Socket = Nothing

%>

소켓을 통해서 보내지는 데이터는 해당 프로토콜 형식에 맞게 전달되어야 겠고, 받아온 데이터 역시 해당 소켓 서버에서 평문이 아닌 특정 형식이라면 추가적인 데이터 조작이 필요할 것이고요...^^

사용은,. 해당 dll 을 regsvr32 를 통해서 레지스트리 클래스 항목에 등록을 하고,. 혹시 웹에서 객체 생성시 권한 오류가 발생 한다면 웹사이트 익명 계정에 적절한 권한을 설정해 주면 됩니다.


해당 컴포넌트를 들여다 보면,. 구현된 Public 메소드와 속성은 위와 같습니다.



25-Socket.png

WinRM - Windows Remote Management 기능 활성화

WinRM(Windows Remote Management) 은 Windows Server 2003 R2 부터 포함이 되기 시작한 윈도우 기반 관리를 위한 새로운 인터페이스 입니다. 이전 까지는 WMI 를 통해서 윈도우 리소스 접근이 되었는데,. 물론 매우 훌륭한 시스템 입니다. 그런데,. 이 WMI 는 DCOM 를 통해서 가능하기에 현재의 네트워크 보안 인프라에서는 제약이 많은게 사실 입니다.

이러한 제한을 뛰어 넘기 위한 것과,.. 그것도 그렇거니와, 하드웨어 및 운영체제 마다 각자의 독자적인 관리 인터페이스 때문에 다양한 인프라로 구축된 환경에서는 관리가 매우 까다로웠습니다. 

이를 테면,. Windows 관리를 위한 System Center 제품도 기존에는 Microsoft 외 Linux 나 Oracle 등 다른 제품은 해당 벤더에서 System Center 용 관리팩을 별도로 제공을 해주었습니다. 그러나 이제는 표준 인터페이스가 마련이 되어 있으므로 Microsoft 에서 타사 제품에 대한 관리팩을 직접 제공을 해줄수가 있게 된것 이죠.

그래서,.  AMD, DELL, Intel, Microsoft, Sun Microsystems 등 여러 하드웨어 및 운영체제 업체등 에서 업계 표준의 공통의 관리 인프라 인터페이스를 Http 기반의 Soap 메시지 형태의 WS-Management protocol 를 만들었습니다. 최근의 거의 대부분의 운영체제에서 지원하고 있으며, Windows 의 경우, XP 부터 별도의 WinRM 패키지를 설치하면 가능해 집니다. 

물론 운영체제에 대한 것은 역시 WinRM 를 통해서 요청이 WMI 로 라우트 됩니다. 실제 정보는 계속해서 WMI 가 담당 합니다.하드웨어 관리도 가능하기는 한데,. 하드웨어 모듈인 BMC 컨트롤러가 있는 장비의 경우에는 하드웨어 관리까지 가능합니다.



<그림. TechNET>

도움말:
Windows Remote Management(WinRM) 서비스는 원격 관리를 위한 WS-Management 프로토콜을 구현합니다. WS-Management는 원격 소프트웨어 및 하드웨어 관리에 사용되는 표준 웹 서비스 프로토콜입니다. WinRM 서비스는 네트워크에서 WS-Management 요청을 수신하여 처리합니다. WinRM 서비스가 네트워크에서 요청을 수신하려면 winrm.cmd 명령줄 도구를 사용하거나 그룹 정책을 통해 수신기를 구성해야 합니다. WinRM 서비스는 WMI 데이터에 대한 액세스를 제공하고 이벤트를 수집할 수 있도록 합니다. 이벤트를 수집하고 이벤트에 가입하려면 이 서비스가 실행되고 있어야 합니다. WinRM 메시지는 HTTP 및 HTTPS를 전송 수단으로 사용합니다. WinRM 서비스는 IIS에 의존하지 않지만 동일한 컴퓨터에서 IIS와 포트를 공유하도록 미리 설정되어 있습니다. WinRM 서비스는 /wsman URL 접두사를 예약합니다. IIS와의 충돌을 방지하려면 관리자가 IIS에서 호스트되는 웹 사이트가 /wsman URL 접두사를 사용하지 않도록 해야 합니다.


전체적인 WinRM 구조는 위 Diagram 을 보면 알수 있을것 같고,. 앞서 얘기한 것처럼 WinRM 은 Http 를 이용한다고 하였습니다. 그렇다면,. 해당 서버에 IIS 를 운영하는 경우에는 어떻게 되는 것이냐? 라는 자연스러운 궁금증이 있을것 같습니다.

이와 같은 궁금중은,. 지난 IIS 6 에서부터 IIS Core 가 변경되어 Http 요청을 커널모드에서 처리를 하는 Http.sys 에서 찾을수 있습니다. Http.sys 는 포트 공유를 통해서 Http를 통해서 들어온 요청을 구분하여 처리를 하게 됩니다. 아래 Diagram 을 보시면 훨씬더 쉽게 이해를 할수 있을것 같습니다.

<그림. http://blogs.technet.com/otto/ >

WinRM 에 대한 요약은 위 도움말을 참조하면 될것 같고, 주의 사항중에 IIS 에서 사이트 구성서 /wsman 만 사용하지 않으면 될것입니다. WS-Management protocol 에 대한 관련 상황 설명을 각설하고,.. 보다 자세한 사항은 다음 링크를 참조하시면 좋겠습니다.

http://www.dmtf.org/standards/wsman
http://en.wikipedia.org/wiki/DMTF

- 그렇고 보면,.. RPC over Http/s 도 이와 흡사한 구조 입니다. 차이점 이라면,. Http 프록시 -특정 모듈(dll)- 웹주소에 직접 요청을 전달하고 받는 다는 것과 IIS 가 필수로 작동 되어야 한다는 점 일것 같습니다. -


이 글을 쓰는 본인도,.. WMI 로만 서버관리를 하고 있는 중이라,.

새로운 인터페이스인 WinRM 에 대해서 알고 있는 지식이 현재 얕은지라.... -_-;; 솔직히 Windows Server 2003 R2에 포함이 되었을 때에도 별로 관심이 없었죠. 왜냐하면 Windows 만 운영을 하고 있으니깐,. 그리고 WMI 로도 충분 했으니깐요.^^;;;;

이제,. WinRM 을 서버(관리되는)측에 설치 및 구성하는 방법 입니다. 물론 이미 알려져 있는 내용이기는 합니다 만,. 스스로 한번더 되새겨볼 기회를 갖고자.....,

Windows 구성요소에는 2가지가 있습니다. 서버측 역할 도구와 클라이언트 역할 도구 입니다. 서버측 역할 도구는 Winrm.vbs 이고, 클라이언트는 Windows Remote Shell(WinRS.exe) 입니다.

C:\>winrm
Windows Remote Management 명령줄 도구

Windows Remote Management(WinRM)는 Microsoft가 구현한
WS-Management 프로토콜로서, 웹 서비스를 사용하여 로컬 및 원격 컴퓨터와
안전하게 통신할 수 있는 방법입니다.

사용:
  winrm OPERATION RESOURCE_URI [-SWITCH:VALUE [-SWITCH:VALUE] ...]
        [@{KEY=VALUE[;KEY=VALUE]...}]

Winrm.vbs 는 서버측에서 요청된 응답을 하기 위해서 관련 환경을 구성하기 위한 도구 입니다. 서버측에서 응답해 줄수 있는 리소스를 구성하고,. 또한 리소스를 얻기 위해서 서버측에 접속할수 있도록 접속 환경을 구성 합니다.




명령행에서의 구성 도구인 Winrm 은 WSMAN COM API 개체(C:\Windows\system32\WSMAUTO.DLL)를 이용한 Vbscript 입니다. 이 말은,. 외부에서 해당 COM 개체를 이용해서 WSMAN 기반의 관리 도구를 따로 만들수 있다는 얘기가 될수 있겠지요.^^

Set Wsman = CreateObject("Wsman.Automation")
Set xmlFile = CreateObject( "MSxml.DOMDocument")
Set Session = Wsman.CreateSession Response = Session.Get("http://schemas.microsoft.com/wbem/wsman/" _ & "1/wmi/root/cimv2/Win32_Service?Name=Spooler")
xmlFile.LoadXml(Response)
xmlFile.Save( "c:\RawOutput.xml")

WsmCL.dll - C 에서 사용할수 있는 라이브러리
WsmSvc.dll - WinRM 리스너 서비스
WsmProv.dll - 공급자 하위시스템
WsmRes.dll - 리소스 파일
WsmWmPI.dll - WMI 플러그인


C:\>winrs -?

사용법
=====
(모두 대문자인 텍스트 = 사용자가 제공해야 하는 값입니다.)

winrs [-/SWITCH[:VALUE]] COMMAND

COMMAND - cmd.exe 셸에서 명령으로 실행할 수 있는 문자열입니다.

WinRS.exe 는 클라이언측 에서 지정 대상(로컬 또는 원격)으로 WS-Management 를 통해서 접속후 지정된 장비의 리소스를 가져오기 위한 도구 이며,. Soap 메시지 특성상 구조적 데이터 형식의 XML로 반환을 받을수 있습니다.  이것은,. C# 이나 VB, C++  등 개발 언어에서 Soap 요청을 통해서 XML 을 반환받고 그 데이터를 다른 형식으로 또는 용도로 사용이 쉽다는 것입니다.

서버운영자에게는,. 강력한 쉘 도구인 PowerShell 을 이용하는 것도 매우 좋은 방법입니다. 특히 PowerShell V2 (현재 CTP)에서는 Remoting 을 지원하는데 이때 원격 호스트 접속 방법으로 WinRM 을 사용합니다.


간단한 예로 WinRS 클라이언트 에서의 요청 입니다.

C:\>winrs -r:http://localhost "dir c:"
C 드라이브의 볼륨에는 이름이 없습니다.
볼륨 일련 번호: A036-5CE5

C:\Users\Administrator 디렉터리

2008-06-26  오후 05:31    <DIR>          .
2008-06-26  오후 05:31    <DIR>          ..
2008-06-26  오후 05:10    <DIR>          Contacts
2008-08-19  오후 02:34    <DIR>          Desktop ................
               0개 파일                   0 바이트
              13개 디렉터리   8,552,103,936 바이트 남음

위 예제는,. 로컬 호스트에 대한 쿼리 결과 입니다. 물론 원격지는 localhost 대신에 원격지 주소와 권한이 있는 인증 정보를 제공하면 동일한 결과를 받아 볼수 있습니다.

앞서 언급한 것처럼, Windows Server 2003 R2 에는 추가 구성요소로 내장되어 있고 -제어판의 프로그램 추가/삭제 에서 구성요소 설치 필요-, Windows Server 2008 은 추가 설치 없이 사용이 가능합니다. 그리고 그외 버젼의 경우에는 WinRM 패키지를 다운로드 받아서 설치가 가능합니다.

- Windows Server 2003 R2에 설치된 패키지 보다는 다운로드 해서 최신 버젼을 설치하는 것이 좋습니다. -
 
다운로드: WS-Management v1.1


Windows Server 2008 은,. 기본값으로 WinRM 이 비활성화 되어 있습니다.

외부에서 접속이 가능하도록 리스너 설정을 해줘야 합니다. winrm quickconfig (또는 winrm qc ) 을 통해서 기본적인 작동이 가능할 정도는 쉽게  활성화가 가능 합니다.

(*참고로, Windows Server 2003 R2 에서는 quickconfig 스위치가 작동하지 않으며 각 설정을 개별적으로 해야 합니다.)

C:\Users\Administrator>winrm quickconfig
WinRM이 이 컴퓨터에 관리를 위해 원격으로 액세스할 수 있도록 설정되지 않았습니다.
다음 사항을 변경해야 합니다.

이 컴퓨터에서 모든 IP 주소로 WS-Man 요청을 수락하려면  HTTP://*에서 WinRM 수신기를 만드십시오.
WinRM 방화벽 예외를 사용합니다.

변경하시겠습니까[y/n]? y

원격 관리를 위한 WinRM이 업데이트되었습니다.

이 컴퓨터에서 모든 IP 주소로 WS-Man 요청을 수락하려면 HTTP://*에서 WinRM 수신기를 만드십시오.
WinRM 방화벽 예외를 사용합니다.

C:\Users\Administrator>winrm enumerate winrm/config/listener
Listener
    Address = *
    Transport = HTTP
    Port = 80
    Hostname
    Enabled = true
    URLPrefix = wsman
    CertificateThumbprint
    ListeningOn = 10.0.0.17, 127.0.0.1, ::1, 2001:0:cf2e:308c:2c0e:d42:f5ff:ffee, fe80::5efe:10.0.0.
17%11, fe80::2c0e:d42:f5ff:ffee%12, fe80::34d9:7fb6:afa3:b046%10


물론,. 지정된 IP 주소나 Http나 Https 같은 프로토콜, 인증서 등 해당 호스트에 맞는 설정을 해줘야 합니다. 기본으로 구성되는 것만 보면,. IP 제한이 없고,. Http(80)이며 인증서 설정이 되어 있지 않습니다.

각 설정방법은 도움말을 참고하시면 쉽게 설정이 가능합니다.
각 설정에 대한 자세한 정보는 도움말(WinRM 스위치 -?)을 참조하면 됩니다.

인증서 설정이 필요한 이유는, Http 프로토콜 특성상 ClearText 형태 이므로 실제 원격지에서의 리소스 요청시 리소스 접근이 가능한 계정 정보를 넘겨줘야 하는 경우와 받아온 리소스가 XML 이므로 쉽게 노출이 됩니다. 물론 인증이 기본 인증 이상인 경우 인증 정보는 암호화가 되지만....

인증 방법은, 다음과 같은 종류의 방식이 가능 합니다. 물론,. Clinet 측에서는 활성화되어 이용할 인증 방법이 Server 측에서 비활성화 되어 있으면 인증이 되지 않겠지요.^^

Basic Authentication
Digest Authentication
Negotiate Authentication
Kerberos Authentication
Client Certificate-based Authentication

시간이 된다면,. 다음번에는 WinRM 을 Windows Server 2003 R2에서 활성화 하는 방법과 WinRM 을 이용한 몇가지 활용법을 정리해볼 생각입니다. ^^;;


25-Windows-Remote-Management-Architecture.png
25-WS-Man-Architecture.jpg
25-Windows-Service-Windows-Remote-Management-WinRM.png

2008/08/20

ARP Spoofing 악성코드 대응책과 Forefront Client Security 대응 방법

트라이콤 교육센터에서,. ARP Spoofing 악성코드 대응책과 Forefront Client Security 대응 방법 주제로 세미나를 하는 것 같습니다.

이미 공개된 여러 자료가 많아서 보안에 조금이라도 관심이 있는 관리자는 ARP Spoofing 을 이해하고 계실듯 싶고,. 통합 보안 소프트웨어인 Forefront 를 통해서 악성 코드에 감염이 예상되는 PC 를 효과적으로 보호하는 방법에 대한 것이 주된 내용 같습니다.



http://www.microsoft.com/korea/forefront/clientsecurity/overview.mspx


무료 세미나 이니,
관심 있으신 분들은 참고해 보셔도 좋을것 같습니다.^^

http://www.tricomedu.co.kr/Seminar/Seminar.Detail.asp?semi_code=310


주제 ARP Spoofing 악성코드 대응책과 Forefront Client Security 대응 방법
개요

최근 웹 통한 ARP Spoofing 악성코드 감염사고와 악성코드가 아닌 해킹 소프트웨어로도 내부자 정보 유출, 네트워크를 다운시키는 공격들이 빈번하게 발생하고 있습니다.
ARP Spoofing 악성코드에 감염된 PC는 내부의 네트워크 트래픽을 모니터링하여 개인 정보(게임계정등)들을 유출합니다.
현재는 ARP Spoofing 공격에 대한 대책으로는 백신을 이용한 악성코드 치료와 운영체제 패치를 통한 악성코드 감영 예방을 수행하고 있습니다.
그러나, 이러한 방법들로 자신의 PC만 보호한다고 해서 이런 공격으로 부터 예방되는 것은 아닙니다. 만약, 본인 PC는 악성코드에 감염되어 있지 않아도 같은 네트워크 내에서 다른 PC에 악성코드가 설치된다면 ARP 프로토콜 취약점을 이용한 공격으로 부터 절대 안전하지 못합니다.
이번 세미나를 통하여 ARP 프로토콜 취약점을 이용한 다양한 공격기법들과 보다 근본적인 해결책을 제시하고, Forefront Client Security 제품군을 사용하고 계신 고객사에서 적용가능한 ARP Spoofing 악성코드에 대한 대응책들을 살펴보고자 합니다.

일시 2008-08-29 ~ 2008-08-29 시간 14:00 ~ 18:00
수강료 0 원 장소 세미나실
인원 80 명 강사 미지정
교육내용
기타안내

Winlogon / ID: 1012

인증서 자동 등록 하위 시스템에서 동록에 대해 필요한 로컬 리소스를 액세스하지 못했습니다.
등록 작업을 수행하지 않습니다. (0x80070005) 액세스가 거부되었습니다.

파일 복사 유틸, Robocopy GUI

Robocopy 는 이미 뭐 따로 부연 설명을 하지 않아도 매우 잘 알려진 유틸 중에 하나임을 어느 누구도 부인하지 못할것 같습니다. 강력한 복사 기능을 가지고 있지만,.. 최근에는 이와 유사한 또는 보다 더 편리한 툴들이 많이 나와 있습니다.

- 제가 가장 애용하는 툴은 리포팅 기능이 뛰어난 SyncBack 입니다 -

명령행에서만 가능했던 것을, GUI 에서 설정을 가능하도록 하는 GUI Gateway 프로그램이 있더군요. 그것이 바로 Robocopy GUI 입니다.

http://download.microsoft.com/download/f/d/0/fd05def7-68a1-4f71-8546-25c359cc0842/UtilitySpotlight2006_11.exe




도움말이나 가이드를 보시면 뭐 자세히 알수 있겠지만,. 이툴은 닷넷 프레임워크 2.0 기반에서 만들어진 유틸로,. GUI 에서는 명령행에서 지원하는 여러가지 옵션에 대해서 쉽게 설정하고 실제 파일 복사는 기존의 Robocopy.exe 가 실행 됩니다. (C:\Windows\System32\Robocopy.exe)

설치는 C:\Program Files\Microsoft\Microsoft Robocopy GUI 에....



명령행에서 지정이 가능한 다양한 옵션 역시, GUI 버젼에서도 설정이 가능하며 그 설정값 역시 기존의 명령행에서의 실행 문자열을 저장도 가능합니다.

robocopy "C:\Users\Administrator\Downloads" "C:\Users\Administrator\Desktop\새 폴더" /V /NP /R:10 /W:30

- 로깅 입력 폼은, 테스트 당시 가이드에 없는 Windows Server 2008 에서 테스트를 해서 그런건지 모르겠지만,. 입력 문자가 조금 이상한것 같고,. Logs 폴더가 있음에도,. 그냥 로그 파일명만 입력하면 프로그램 루트에 저장이 된다는 점입니다. -

로그를 보면,. 다음과 같이 상세한 로그를 남겨 줍니다.

-------------------------------------------------------------------------------
   ROBOCOPY     ::     Windows용 견고한 파일 복사                             
-------------------------------------------------------------------------------
      시작됨 : Tue Aug 19 14:43:16 2008
        원본 : C:\UtilitySpotlight\
        대상 : C:\PerfLogs\
        파일 : *.*
        옵션 : *.* /V /COPY:DAT /NP /R:10 /W:30
------------------------------------------------------------------------------
                    5 C:\UtilitySpotlight\
 *추가 디렉터리        -1 C:\PerfLogs\Admin\
     새 파일       46080 Eula.doc
     새 파일      355840 Microsoft Robocopy GUI Users Guide.doc
     새 파일         260 Microsoft_Robocopy_GUI_3_1_2_Release_Notes.txt
     새 파일      430592 setup.exe
     새 파일      801280 Setup.msi
------------------------------------------------------------------------------
                        전체      복사됨    건너뜀    불일치    실패     추가
    디렉터리 :           1         0         1         0         0         1
        파일 :           5         5         0         0         0         0
      바이트 :      1.55 m    1.55 m         0         0         0         0
        시간 :     0:00:00   0:00:00                       0:00:00   0:00:00
        속도 :            34767063Bytes/sec.
        속도 :            1989.387MegaBytes/min.
        종료 : Tue Aug 19 14:43:16 2008




19-Robocopy-GUI-1.gif
19-Robocopy-GUI-2.gif

2008/08/19

SQL Server 2008 의 새로운 기능

SQL Server 2008 은 기존의 SQL Server 2005 와의 외형적인 부분에서는 크게 변화된 부분이 없는 것 같습니다.




새로운 버젼이 발표될 때마다 다양한 기능이 추가되고 성능향상이 이루어지는 것은 당연한것이겠지만,. SQL Server 2008 에서는 주로 관리자적 측면에서의 개선이 많이 되었다고 평가 되고 있습니다.

그렇지만,. 새로운 기능으로 정리된 내용을 보면,. 개발자 측면에서도 많이 있는 것 같습니다. 특히 요즘 개발자들 사이에서 이슈가 점점 되어 가고 있는 LINQ(Language Integrated Query) 일것 같습니다.

관리자 관점에서 보는 SQL Server 2008 의 새로운 기능 또는 향상된 기능의 항목만 간단하게 정리해 보았습니다.^^

참고해 볼만한..
http://www.microsoft.com/korea/sql/2008/default.mspx
http://technet.microsoft.com/ko-kr/magazine/cc434690.aspx
http://technet.microsoft.com/ko-kr/library/bb543165.aspx


데이터베이스 엔진

  향상된 가용성 기능
      - 데이터베이스 미러링의 로그 성능 향상, 손상된 페이지 자동 복구

  향상된 관리 기능
     - 데이터베이스 관리
          감사, 백업 압축, 변경 데이터 캡쳐, 변경 내용 추적, 데이터 수집기
          버젼 관련 데이터베이스 마이그레이션 문제 검색, 이벤트및 성능 카운터, sp_configure 옵션
     - 서버관리
          중앙 관리 서버, 동적 관리 뷰, Hot Add CPU, Optimize for ad hoc workloads 옵션
          리소스 관리자,SQL Server 확장 이벤트
     - 정책 기반 관리
     - Management Studio
          Transact-SQL 디버거, IntelliSense, 데이터베이스 엔진 오류 목록 창,개체 탐색기
          PowerShell 공급자 및 Cmdlet 

  향상된 프로그래밍 기능
     - 데이터 저장소
          테이블 및 인덱스의 압축된 저장소,FILESTREAM 저장소, 새로운 데이터 정렬,
          분할된 테이블 및 인덱스에 대한 파티션 전환,스파스 열 및 열 집합,공간 데이터 저장소, 
          메서드 및 인덱싱, 넓은 테이블
     - 데이터 형식
          날짜 및 시간 데이터 형식,hierarchyid 데이터 형식,공간 데이터 형식,
          사용자 정의 테이블 형식,UDT(사용자 정의 형식)
     - 전체 텍스트 검색
          파일 시스템에 저장되는 대신 데이터베이스에 통합
     - Transact-SQL
          호환성 수준, 복합 연산자, CONVERT 함수,날짜 및 시간 기능,GROUPING SETS,MERGE 문
          SQL 종속성 보고,테이블 반환 매개 변수,Transact-SQL 행 생성자

  향상된 확장성 및 성능
     - 필터링된 인덱스 및 통계
     - 쿼리 및 테이블 힌트
     - 쿼리 성능 및 처리
          잠금 에스컬레이션 옵션,최적화된 비트맵 필터링,분할된 개체에 대한 병렬 쿼리 처리
          비슷한 쿼리를 찾고 튜닝하기 위한 해시 값

  향상된 보안 기능
     - 암호화 함수
     - 투명한 데이터 암호화
     - 확장 가능 키 관리
     - DES 알고리즘 관련 설명


복제


     - 피어 투 피어 트랜잭션 복제
          동기화 중 충돌 검색 기능,토폴로지 정지 없이 복제 토폴로지에 노드를 추가하는 기능,
          피어 투 피어 토폴로지 구성 마법사에서 시각적으로 토폴로지를 구성하는 기능
     - 복제 모니터
     - 분할된 테이블에 대한 향상된 트랜잭션 복제 지원


Service Broker


     - 대화 우선 순위에 대한 지원
     - Service Broker 구성 및 대화를 진단하는 새 명령 프롬프트 유틸리티
     - 새 시스템 모니터 개체 및 카운터 
     - 새로운 Service Broker 자습서



19-sql-server-2008-logog.gif

2008/08/18

MEMORY.DMP - DRIVER_IRQL_NOT_LESS_OR_EQUAL (d1)

BugCheck D1, {38, 2, 0, fffffadf25414acd}

*** ERROR: Module load completed but symbols could not be loaded for yk51x64.sys

Probably caused by : yk51x64.sys ( yk51x64+bacd )

Followup: MachineOwner
---------

DRIVER_IRQL_NOT_LESS_OR_EQUAL (d1)

An attempt was made to access a pageable (or completely invalid) address at an
interrupt request level (IRQL) that is too high.  This is usually
caused by drivers using improper addresses.
If kernel debugger is available get stack backtrace.

Arguments:
Arg1: 0000000000000038, memory referenced
Arg2: 0000000000000002, IRQL
Arg3: 0000000000000000, value 0 = read operation, 1 = write operation
Arg4: fffffadf25414acd, address which referenced memory

Debugging Details:
------------------

READ_ADDRESS:  0000000000000038

CURRENT_IRQL:  2

FAULTING_IP:
yk51x64+bacd
fffffadf`25414acd 488b4838        mov     rcx,qword ptr [rax+38h]

DEFAULT_BUCKET_ID:  DRIVER_FAULT

BUGCHECK_STR:  0xD1

PROCESS_NAME:  System

TRAP_FRAME:  fffffadf29c637f0 -- (.trap 0xfffffadf29c637f0)
NOTE: The trap frame does not contain all registers.
Some register values may be zeroed or incorrect.
rax=0000000000000000 rbx=fffffadf29c63998 rcx=0000000000000000
rdx=fffffadf368fefe0 rsi=fffffadf36b5e608 rdi=0000000000000000
rip=fffffadf25414acd rsp=fffffadf29c63980 rbp=fffffadf368fd008
 r8=fffffadf368ff5e0  r9=5be6d6653c000000 r10=5be6d6653d2d0010
r11=0000000000000080 r12=0000000000000000 r13=0000000000000000
r14=0000000000000000 r15=0000000000000000
iopl=0         nv up ei ng nz na po nc
yk51x64+0xbacd:
fffffadf`25414acd 488b4838        mov     rcx,qword ptr [rax+38h] ds:e40c:0038=????????????????
Resetting default scope

LAST_CONTROL_TRANSFER:  from fffff8000102e5b4 to fffff8000102e890

STACK_TEXT: 
fffffadf`29c63668 fffff800`0102e5b4 : 00000000`0000000a 00000000`00000038 00000000`00000002 00000000`00000000 : nt!KeBugCheckEx
fffffadf`29c63670 fffff800`0102d547 : fffffadf`3666f9f0 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KiBugCheckDispatch+0x74
fffffadf`29c637f0 fffffadf`25414acd : 00000000`00000000 fffffadf`368fd008 fffffadf`37c3b020 fffffadf`368fd4b8 : nt!KiPageFault+0x207
fffffadf`29c63980 fffffadf`2541445f : 00000000`00000020 00000000`00000000 fffffadf`368fd008 00000000`00000000 : yk51x64+0xbacd
fffffadf`29c639f0 fffffadf`25411341 : 00000000`00000000 00000000`fffff800 fffffadf`368fd008 00000000`00000000 : yk51x64+0xb45f
fffffadf`29c63a20 fffffadf`2543b1c3 : fffffadf`37d2c100 fffffadf`36904528 fffffadf`36b5e608 fffff800`00000000 : yk51x64+0x8341
fffffadf`29c63a90 fffffadf`2540ea66 : 00000000`00000001 00000000`00000001 fffffadf`368fff7c fffffadf`368fd008 : yk51x64+0x321c3
fffffadf`29c63ad0 fffffadf`2541664e : fffffadf`368fd008 00000000`00020100 fffffadf`29c9bd00 fffffadf`368fd008 : yk51x64+0x5a66
fffffadf`29c63b50 fffffadf`2904f809 : fffffadf`37acb0b0 fffffadf`2902d270 fffffadf`2900e000 fffffadf`36b5e608 : yk51x64+0xd64e
fffffadf`29c63bb0 fffffadf`2904f373 : fffffadf`37d2c120 00000000`00000000 fffffadf`36b5e608 fffffadf`37d2c120 : NDIS!ndisMDispatchRequest+0x1c2
fffffadf`29c63bf0 fffffadf`2904f5c4 : fffffadf`37acb0b0 00000000`00000000 00000000`00000000 fffffadf`36b5e608 : NDIS!ndisMQueryInformation+0x54e
fffffadf`29c63c20 fffffadf`290581bf : fffffadf`36b5e608 fffffadf`36b5e608 fffffadf`37d2c120 fffffadf`37d2c120 : NDIS!ndisMDoRequests+0x53b
fffffadf`29c63c80 fffffadf`2904f6ef : fffffadf`37fb3d20 fffffadf`36b5e608 fffffadf`37d2c120 fffffadf`37f24540 : NDIS!ndisMRequest+0xdb
fffffadf`29c63cc0 fffff800`010375ca : fffffadf`37f24550 fffffadf`2904f620 fffffadf`387f8040 fffff800`011cd9c0 : NDIS!ndisMRundownRequests+0x44
fffffadf`29c63d00 fffff800`0124a972 : fffffadf`387f8040 00000000`00000080 fffffadf`387f8040 fffffadf`29893680 : nt!ExpWorkerThread+0x13b
fffffadf`29c63d70 fffff800`01020226 : fffffadf`2988b180 fffffadf`387f8040 fffffadf`29893680 00000000`00000000 : nt!PspSystemThreadStartup+0x3e
fffffadf`29c63dd0 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KxStartSystemThread+0x16

STACK_COMMAND:  kb

FOLLOWUP_IP:
yk51x64+bacd
fffffadf`25414acd 488b4838        mov     rcx,qword ptr [rax+38h]

SYMBOL_STACK_INDEX:  3

SYMBOL_NAME:  yk51x64+bacd

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: yk51x64

IMAGE_NAME:  yk51x64.sys

DEBUG_FLR_IMAGE_TIMESTAMP:  4757f90e

FAILURE_BUCKET_ID:  X64_0xD1_yk51x64+bacd

BUCKET_ID:  X64_0xD1_yk51x64+bacd

Followup: MachineOwner
---------


Marvell 의 네트워크 이더넷 드라이버중, x64 드라이버가 문제가 있는 것 같습니다. 자주 그런것은 아니고 간헐적으로 그런것 같고,.  위 오류도 2007-12-28(10.51.3.3) 드라이버에서 발생 하였습니다.

물론, 하드웨어 적인 이더넷 모듈 이나 메인보드에 문제가 있을수 있지만,. 문제가 Marvell 드라이버에서만 발생한다는 점이겠죠.? ^^

문제가 발생하였던 운영체제는, Windows Server 2003 Enterprise x64

이와 관련된, Marvell 드라이버와 관련된 오류중 하나도 있습니다.
http://www.wssplex.net/QnA/EventId.aspx?No=219

서버 메인보드에 주로 장착이 되어 있는, 이더넷 모듈인데,. INTEL 의 서버 메인보드는 몇년전에도 장착이 되어 있었고, 최근 2년전 보드중에는 SE7520BD2 이고, 요즘 나오는 S5000V 는 2개 이더넷 모듈 모두 INTEL 것입니다.

2008/08/14

RPC over Http/s - Exchange 와 Outlook 연결

RPC over Http/s - 서버를 RPC 프록시 서버로 구성 을 통해서 서버측의 구성은 모두 완료된 상태입니다. 이제 부터는 Exchange Server 와 Outlook 의 실제적인 연동 구성 방법 입니다.




<그림. TechNET>

Outlook 에서 Exchange Server  연결시 RPC Proxy 를 이용하여 상호 작동되는 전체적인 프로세스 입니다. 그림을 보면 쉽게 알수 있듯이, Outlook 사용자는 직접 적인 글로벌 카달로그 서버에 연결하여 인증을 받는게 아니라 RPC Proxy 에 Http 를 통해서 들어온 RPC 패킷을 Exchange Server 받아서 대신 인증절차를 완료하는 방법입니다.

좀더 자세한 사항은, 도움말이나 TechNET 을 참고해 보시기를 추천 드립니다.
http://technet.microsoft.com/ko-kr/library/aa998950(EXCHG.65).aspx

다음 부터는 Outlook 에서의 RPC over Http/s 이용을 위한 구성 방법 입니다. 매우 쉽긴 하나 개념을 이해하고 있으면 더욱 좋겠죠?..^^


1. 다음 부터는 아웃룩 설정입니다. Active Directory 연동이고 Exchange 와 Outlook 의 모든 기능을 사용하기 위해서는 "Microsoft Exchage Server" 를 선택합니다. 당연히 내부 네트워크 에서는 이렇게 이용을 했겠지요... 내부 네트워크와 동일하게 외부 네트워크 에서도 Outlook 을 사용하기 위해서 RPC over Http/s 구성을 하는 것이니깐요.^^




2. 다음 과정에서는 실제 Active Directory 에 사용자(사서함)이 있는지 확인하는 과정입니다. 아래 화면에서 서버이름과 사용자 이름을 넣은 다음에 "이름 확인" 을 하게 되면 보통 네부 네트워크를 이용한 것처럼 기본 연결이 됩니다. 즉 RPC 프록시를 통해서 인증이 된것이 아닙니다.



그래서,. RPC 프록시를 통해서 인증이 되기 위해서는 "이름 확인" 전에 "기타 설정" 에서 Http 를 이용하도록 사전에 설정을 해주어야 합니다. 다음과 같이 "연결" 탭에서 "인터넷에서 Exchange 사용" 을 체크하고 "Exchange 프록시 설정" 에서 앞서 RPC 프록시가 IIS 에 구성된 정보를 설정해 주면 됩니다.



"Exchange 프록시 설정" 의 세부 등록 화면에서 다음과 같이, 익스체인지가 설치된 또는 RPC 프록시가 구성된 웹사이트 주소를 지정해 주면 됩니다.



"SSL만 사용하여 연결" 은 웹서버 SSL 인증서가 구성되어 있는 RPC 프록시인 경우에 체크를 해주면 됩니다. 보통 SSL 인증을 사용하라고 하는 이유는 Http 패킷(인증 및 메일등 전체 패킷)을 암호화 하기 위함 입니다.

"프록시 인증 설정" 은 기본값 그대로 "NTLM 인증" 을 사용하면 됩니다. 평문 인증을 사용하면 보안상 위험하기 때문이지요..^^


3. 위와 같은 구성이 끝났다면,. 다시 2번째 과정의 화면 처럼 "이름 확인" 을 하여 이름 확인이 완료되면 RPC over Http/s 를 이용한 Exchange 와 Outlook 연결 구성이 완료된 것입니다.


RPC over Http/s - 서버를 RPC 프록시 서버로 구성

우리나라 광대역(WAN) 인터넷망은 지난 인터넷 대란의 경험 때문에 Windows 에서 핵심으로 사용되는 포트중 몇개를 막아 놓은 ISP가 많습니다.

주로,. 135(RCP), 139(NetBIOS), 445(SMB) 등입니다.

이것 때문에 RPC over Http/s 기술이 나온것은 아니고,. 방화벽을 우회하기 위한 방법중 하나로 Http 프로토콜을 이용하기 위해서 Windows Server 2003 에서 지원하는 기술중 하나 입니다.

현재는 주로, Exchange Server 와 Outlook 과의 연동을 위한 방법으로 사용 되고 있습니다.

RPC over Http/s 에 대한 기술 문서는 인터넷상에 매우 많으므로, 여기서 잡담은. 생략하고 간략하게 스샷을 기준으로 구성 방법 입니다.


1. RPC over Http/s 를 사용하기 위해서는 IIS가 사전에 설치되어 있어야 합니다. 그 다음으로 제어판/프로그램 추가 삭제에서 아래와 같은 "HTTP 프록시 RPC"  구성요소를 설치해 주어야 합니다.



RPC over Http/s 는 그 이름처럼, HTTP 프로토콜을 이용하기 때문에 HTTP 프로토콜을 처리하기 위해서는 IIS 설치가 필요합니다.


2. 뭐 없습니다. 그냥,. "HTTP 프록시 RPC" 구성 요소만 설치하면 끝 입니다. 구성요소를 설치하고 나면 다음과 같이 RPC 프록시 구성이 되어 있습니다.



RPC 패킷은,. 2가지를 제공하는데요. 보통의 Http 패킷과, SSL(인증서) 패킷 처리를 위한 2가지 프록시가 설정되어 있으며,. 다음과 같이 "웹 서비스 확장" 에도 추가 되어 있습니다.



위 2가지는 단순하게,. 라이브러리 dll 파일을 가상 폴더와, 웹서비스 확장에 추가한 정도 입니다. 혹시 삭제 되더라도 그냥 직접 등록해도 상관은 없습니다. 그리고, ISAPI 항목에도 추가되어 있습니다.




RPC 등록정보의 보안-인증방법 에서, "기본 인증" 외 체크를 해제하면 됩니다. 물론 Windows 통합 인증도 가능하지만,. 실제로 Outlook 에서 SSL 인증을 하지 않으면 RPC Proxy 를 통해서 로그온이 되지 않습니다. 매뉴얼에는 SSL 이 절대적이지 않다고 하는데... -_-;;

..).-...).....E.
.y..@........~..
.l.P.s..*.....P.
..:...HTTP/1.0 4
01 Anonymous req
uests or request
s on unsecure ch
annel are not al
lowed..
        

SSL 을 이용하면, 평문 형태로 인증을 하는 "기본 인증" 을 이용 Outlook 에서 설정이 가능하며,. 사용자 확인등 정상적인 과정이 문제 없이 진행 됩니다.

그래서,. 되도록이면 RPC Proxy 가 설정된 웹사이트 인스턴스에 SSL 을 설정해 주는 것이 좋습니다. SSL 는 정상적인 공용 SSL 말고, 그냥 사설 SSL 을 설정해도 상관 없으며, IIS Resources Kits 의 SelfSSL 을 이용하면 됩니다.

이로서,. 서버에서의 RCP 프록시 구성은 끝났습니다. 위 RPC 프록시로의 전달된 Http 패킷의 내용에 따라서 RPC 프록시가 요청된 서비스 로의 요청을 전달하고 전달 받는 중계 역할을 하는 것입니다.

실제 패킷을 보면, 다음과 같이 클라이언트 측의 Outlook 에서 Exchange Server 측에 패킷을 전달 합니다.

..).....).-...E..*5?@........l..
.~.s.P......*.P...e...RPC_IN_DAT
A /rpc/rpcproxy.dll?wssplex-vm1.
wssplex.net:6002
HTTP/1.1..Accep
t: application/rpc..User-Agent:
MSRPC..Host: wssplex-vm1.wssplex
.net..Connection: Keep-Alive..Ca
che-Control: no-cache..Pragma: n
o-cache..Authorization: NTLM TlR
MTVNTUAADAAAAGAAYAI4AAAAYABgApgA
AAA4ADgBIAAAAGgAaAFYAAAAeAB4AcAA
AAAAAAAC+AAAABYKIogUBKAoAAAAPdwB
zAHMAcABsAGUAeABhAGQAbQBpAG4AaQB
zAHQAcgBhAHQAbwByAEcARwBHAEcARwA
tADEAWgBYAEYASgBKADcATwBKAHjMj8t
b5rV/AAAAAAAAAAAAAAAAAAAAAOexBsr
j1KHZkBbl0wmIxiLeMKEtJpFZsw==..C
ontent-Length: 4........


그 다음으로,.

Exchange Server 에 RPC-HTTP 탭이 있는지 부터 확인해 봐야 합니다. 없다면,. 서비스팩이 설치되어 있지 않으므로 서비스 팩을 설치해야 합니다. 서버 구성에 따라서 프런트 엔드 서버 또는 백 엔드 서버 지정을 할수 있습니다.



GUI 에서, RPC-HTTP 구성을 하지 않았다면,. 다음과 같이 레지스트리에 직접 등록해 줘도 상관 없습니다. GUI 에서 두가지 구성중에 하나라도 설정이 되어 있으면 자동으로 아래와 같이 레지스트리 값이 등록 됩니다.

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters]
"NSPI interface protocol sequences"=hex(7):6e,00,63,00,61,00,63,00,6e,00,5f,00,\
  68,00,74,00,74,00,70,00,3a,00,36,00,30,00,30,00,34,00,00,00,00,00

그리고, RPC over HTTP validport (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Rpc\RpcProxy) 설정은 레지스트리를 직접 수정해도 상관없지만,. 리소스킷의 rpccfg 또는 다음 유틸을 이용해도 좋습니다.




2008/08/13

IceSword, 루트킷(rootkit) 분석 도구



루트킷은 말그대로,. 교묘하게 숨겨진 크래킹 목적의 소프트웨어를 지칭하고.. 그 방법에 따라서 찾기가 매우 힘든 경우를 보통 루트킷이다 라고 합니다.

루트킷을 찾아내는 방법은 관리자의 노하우나 경험에 따라 다르지만,. 그 또한 안티루트킷이나 시스템 관련 툴을 이용해서 찾아내고 있지요.. 물론 경험이 많다면 딱보면 딱 알아채는 경우도 많고요...^^

게중에,. 루트킷 분석 도구로 잘알려진 툴중에 하나가 IceSword 입니다. 중국의 개발자가 만들었는데요. 다운로드 배포 사이트 링크를 가면,. 현재는 다운로드가 되지 않습니다...

IceSword 에 대해서 잘 설명해 놓은 문서들이 인터넷상에 많으므로, 이렇다 저렇다 얘기할 필요는 없을것 같습니다.

http://www.nextline.net/bbs/down.php?db=Ntechnote&file=IceSword.pdf
http://m4gichack.tistory.com/attachment/fk030000000000.pdf

IceSword 는 몇가지 버젼으로 배포가 되는것 같은데요,.
일단,. 다운로드 되는 곳을 찾기가 힘들어서 Windows Live SkyDrive 에 올려 놓았습니다.






13-IceSword.png

2008년 8월 마이크로소프트 보안 공지

이번달 보안 업데이트는,. 주로 클라이언와 관련된 업데이트가 많은것 같습니다.
서버와 관련된것 몇개만 추려보면,...


IPsec 정책 처리의 취약점으로 인한 정보 유출 문제점 (953733)

이 업데이트는 Windows IPSec(인터넷 프로토콜 보안) 규칙이 적용되는 특정 방식에 관하여 비공개적으로 보고된 취약점을 해결합니다. 이 취약점은 시스템이 IPsec 정책을 무시하고 네트워크 트래픽을 일반 텍스트로 전송하는 결과를 초래할 수 있습니다. 즉, 네트워크에서 암호화되어야 하는 정보가 유출될 수 있습니다. 네트워크 상에서 트래픽을 보는 공격자는 트래픽의 내용을 보거나 경우에 따라 수정할 수 있습니다. 공격자가 이 취약점을 악용하더라도 코드를 실행하거나 사용자 권한을 승격시킬 수는 없습니다. 하지만 영향을 받는 시스템 또는 네트워크를 추가로 손상시키는 데 필요한 정보를 수집하는 데 이 취약점을 사용할 수 있습니다.


이벤트 시스템의 취약점으로 인한 원격 코드 실행 문제점 (950974)

이 업데이트는 Microsoft Windows 이벤트 시스템의 비공개적으로 보고된 취약점, 즉 원격 코드 실행을 허용할 수 있다는 문제점을 해결합니다. 이 취약점을 악용한 공격자는 영향을 받는 시스템에 대해 완벽히 제어할 수 있습니다. 이렇게 되면 공격자가 프로그램을 설치할 수 있을 뿐 아니라 데이터를 보거나 변경하거나 삭제할 수 있고 전체 관리자 권한이 있는 새 계정을 만들 수도 있습니다.

훔.... -_-;;

Windows Server 2008 (IIS7)에서는 POP3 서비스가 지원되지 않음

기존에 Windows Server 2003 에서 새롭게 지원했던 POP3 서비스가, Windows Server 2008 로 오면서 다시 제외 되었습니다.

왜 제외를 했는지는 잘 모르겠는데,..... 아마도 Exchange Server 나, Exchage 가 포함되어 있는 Windows Essential Business Server 를 쓰라는 얘기로 보입니다... -_-;;

그러나,. 실망도 잠시....;;

Visendo 라는 데서, 기존의 POP3와 같은 기능을 하는 서비스 프로그램을 무료로 배포하고 있습니다.

http://www.visendo.com/
 
물론 기존 Windows Server 2003 에 포함되어 있던 POP3 의 관리 UI 보다는 불편하지만,. POP3 란게 주로 아웃룩 같은 클라이언 프로그램을 이용하므로 계정관리시에만 설정 파일을 편집해 주면 됩니다.


다운로드
:
http://www.visendo.com/download/visendosmtpextender/VisendoSMTPExtender_x64.msi
http://www.visendo.com/download/visendosmtpextender/VisendoSMTPExtender_x86.msi


설치를 하게 되면,. 서비스로 등록됩니다.



그리고,. 설치된 폴더에 가면,. 다음과 같은 파일 목록을 볼수가 있는데요,. VisendoSMTPExtender.exe 는 서비스 실행 파일이고, dll 은 라이브러리 파일 입니다.




샘플파일인 visendosmtpextender_sample.config 는 visendosmtpextender.config 처럼 변경하고 아래의 accounts 노드 하단의 계정별 mailbox 를 설정해 주면 됩니다.

여기에 POP3 계정 정보를 설정하게 되어 있습니다.

<VISENDO>
  <POP3>
    <Outbound UseOutboundPop3="true" StoreFolder="C:\inetpub\mailroot\drop" ServerPort="110" ServerIP="server_IP"/>
  </POP3>
  <accounts>
    <mailbox datadir="C:\inetpub\mailroot\drop\single_account_domain1" destination=account@wssplex.net password="testpass"/>
    <mailbox datadir="C:\inetpub\mailroot\drop\postmaster_domain1" destination="postmaster@domain1.xx" password="testpass1"/>
    <mailbox datadir="C:\inetpub\mailroot\drop\postmaster_domain2" destination="postmaster@domain2.dd" password="pass"/>
  </accounts>
</VISENDO>

SMTP 를 통해서 들어온 eml 파일을 파싱한 다음에,. 수신자에 있는 계정명과 위 .config 의 계정명이 매칭되는 경우 지정된 mailbox 로 이동해 두는 것 같습니다.

VisendoSMTPExtender 를 이용할려면.,,
사전에 SMTP 서비스를 설치해 놓는게 필수~!!


13-VisendoSMTPExtender-2.png
13-VisendoSMTPExtender-1.png

SideBySide / ID: 33

"C:\Windows\WinSxS\x86_microsoft.vc80.mfc_1fc8b3b9a1e18e3b_8.0.50727.762_none_
0c178a139ee2a7ed\MFC80.DLL"에 대한 활성화 컨텍스트를 생성하지 못했습니다. 종속 어셈블리 Microsoft.VC80.MFCLOC,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",
type="win32",version="8.0.50608.0"을(를) 찾을 수 없습니다. 자세한 진단을 위해서는 sxstrace.exe를 사용하십시오.

2008/08/12

MSSQLSERVER / ID: 3464

이벤트 형식: 정보
이벤트 원본: MSSQLSERVER
이벤트 범주: (2)
이벤트 ID: 3406
날짜:  2008-08-12
시간:  오전 9:00:36
사용자:  N/A
컴퓨터: ERP02
설명:
24개의 트랜잭션이 데이터베이스 'RexGW_SiliconWorks'(16)에서 롤포워드되었습니다. 이 메시지는 정보 제공용이므로 사용자 작업은 필요하지 않습니다.

자세한 정보는 http://go.microsoft.com/fwlink/events.asp에 있는 도움말 및 지원 센터를 참조하십시오.
데이터:
0000: 4e 0d 00 00 0a 00 00 00   N.......
0008: 06 00 00 00 45 00 52 00   ....E.R.
0010: 50 00 30 00 32 00 00 00   P.0.2...
0018: 00 00 00 00               ....   





요즈음 Windows Server 2003 R2 SP2 운영체제로 있는 서버들의 무작위적인 서버 리부팅 및 다운 현상이 발생하고 있는데요

오늘 아침에 SQL Server로의 접속이 불가능해서 보니 로컬 화면은 아예 검정색으로만 나타나고 있었습니다.

문제가 발생하였을때 Ping은 정상적이였으나 SQL Server 2005의 접속이 불가하여
웹 및 사내 그룹웨어 및 ERP 접속이 불가능하였습니다.

해당서버의 서비스는 SQL DB Server로만 운영되고 있는 상태입니다.

저러한 이벤트가 각 DB마다 저러한 메세지가 나오는데 어떤 이유에서 저런 메세지가 기록되는지 궁금합니다.


Temporary ASP.NET Files 폴더 위치 변경

ASP.NET 사이트로 구성된 웹사이트가 있을 경우, 최초 호출시에 해당 페이지는 컴파일 되며 컴파일된 라이브러리(어셈블리) 파일 및 임시파일 들은 Temporary ASP.NET Files 폴더에 저장 됩니다.

%WINDOWS%\Microsoft.NET\Framework\버젼별\Temporary ASP.NET Files 폴더이며,. root 폴더 밑에 해시된 사이트 및 페이지 형식으로 저장 됩니다. 또는 가상 디렉토리의 경우에는 가상 디렉토리 이름 밑에,. 그리고 Visual Studio 2005 또는 2008 에서의 로컬호스트 사이트 요청시에는 사이트 이름으로 폴더가 만들어지고 그 밑에 저장이 됩니다.

폴더 트리는 원래 사이트의 트리 구조와 거의 같게 가져가며, 파일들은 [page].aspx.[folder-hash].compiled 와 같은 형식 입니다.



이렇게 컴파일된 라이브러리 파일들은,. 하나의 웹페이지 코드 용량 자체가 작기 때문에 사이트 전체의 페이지 갯수에 대한 개별 파일들 자체의 용량을 합하더라도 그다지 많지 않습니다. 보통 일반적인 사이트의 경우에는 5~10M 내외 정도 니깐요...^^

이러한 컴파일된 라이브러리 파일들은 삭제해 됩니다. 없으면 다시 IIS 에서 컴파일을 요청하기 때문에요... 물론 최초 컴파일시에는 사이트 응답이 매우 느려집니다.

그런데,. 사이트 갯수가 매우 많거나 또는 대형 웹사이트,. 특히 수많은 페이지 및 상당량의 코드로 구성된 사이트가 운영되는 경우 그 용량을 무시할수는 없겠지요.

그러한 서버의 경우,. 개별 웹사이트 별로 또는 서버 전체 구성으로 컴파일된 라이브러리 저장 위치를 특정 위치로 변경을 할수 있도록 닷넷 프레임워크에서는 web.config 에서의 컴파일 섹션을 사용자가 지정 가능하도록 지원합니다.


web.config 의 기본 경로는 닷넷 프레임워크 버젼별로 config 폴더에서 찾을수 있으며,. 여기의 web.config 는 서버 전체에 영향을 줍니다. 사이트 수준에서의 설정은 각 개별 웹사이트의 web.config 에서의 설정이 가능합니다.

<!-- compilation Attributes:
      tempDirectory="directory"
      debug="[true|false]"      // Default: false
      strict="[true|false]"     // Default: false
      explicit="[true|false]"   // Default: false
      batch="[true|false]"      // Default: true
      batchTimeout="timeout in seconds"     // Default: 15 seconds
      maxBatchSize="max number of pages per batched compilation"    // Default: 1000 classes
      maxBatchGeneratedFileSize="max combined size (in KB) of the generated source files per 
                     batched compilation"   // Default: 3000KB
      numRecompilesBeforeAppRestart="max number of recompilations before appdomain is
                     cycled"    // Default: 15 recomplations
      defaultLanguage="name of a language as specified in a <compiler/> tag below"     
                     // Default: VB
-->

compliation 섹션에서의 속성값으로는 여러가지 값을 지원 하는데,. 그중에 tempDirectory 입니다. 값에 특정 폴더의 위치를 지정해 주면 됩니다.

<compilation tempDirectory="d:\Temporary ASP.NET Files" />

기본 경로외 다른 경로로 지정할 경우에는 폴더의 권한 설정을 해줘야 합니다. 그 이유는 앞서 간단하게 얘기한 것처럼 컴파일 요청을 웹프로세스에서 요청을 하기 때문에 폴더의 수정(쓰기,수정,삭제)권한이 필요합니다.



11-netframework-temporary-asp.net-files.gif

가장 많이 본 글