2009/01/31

VMware 에서 Windows Clusters 구성을 위한 공유 디스크 설정

Windows Cluster 환경을 구성할려면 실제 물리적인 호스트 구성과 스토리지가 필요한데요., 현실적으로 그것이 어렵습니다. 그러나 가상화 환경에서는 매우 쉽게 적용해 볼수가 있습니다.

다음 포스트는, 윈도우 클러스터를 구축하는 방법이 아닌 클러스터 구성에 필요한 요소중 하나인 공유 디스크를  VMware 에서 만드는 방법이 중점 입니다.

Set up VMware to install Windows clusters
http://articles.techrepublic.com.com/5100-10878_11-1058354.html

닷넷 프레임워크 트러블슈팅 가이드 (.NET Framework Troubleshooting Guide)

Aaron Stebner 의 블로그 에는 다음과 같은 닷넷 프레임워크에 관련된 트러블슈팅에 관련된 포스트 목록을 정리해 놓았습니다.  훌륭합니다.

http://blogs.msdn.com/astebner/articles/454956.aspx

- Details about the .NET Framework 2.0 setup packaging
- Error codes that can appear during .NET Framework setup
- How to repair a broken version of the .NET Framework that ships with the OS
- How to resolve some specific types of .NET Framework setup failure
- How to remove broken .NET Framework builds
- .NET Framework service pack install issues
- Where to find log files
- Useful tools
- Other references

2009/01/29

Microsoft's iSCSI initiator 설치, 세팅 및 이용 - Howto

http://www.zdnetasia.com/techguide/storage/0,39045058,62030894,00.htm 는 Microsoft's iSCSI initiator 를 이용하기 위해서 설치 및 세팅, 구성등을 설명해 놓은 문서 입니다.

Microsoft's iSCSI initiator 구성도 그다지 어렵지도 않습니다. 다만 이러한 구성을 할려면 스토리지 서버에서 Target 이 작동해야 하는데,. Article 내에도 있지만 벤더사에서 제공해주는 소프트웨어나 또는  http://www.rocketdivision.com/ 같은 소프트웨어 기반의 Target 을 이용해도 됩니다.

저장프로시져(Stored Procedures) 및 함수(Functions)의 파라미터 조회

http://www.mssqltips.com/tip.asp?tip=1669 는 해당 데이터베이스에 있는 저장프로시져 및 함수에서 사용되는 파라미터의 각 목록을 확인할수 있는 쿼리 스크립트 입니다.

SELECT SCHEMA_NAME(SCHEMA_ID) AS [Schema],
SO.name AS [ObjectName],
SO.Type_Desc AS [ObjectType (UDF/SP)],
P.parameter_id AS [ParameterID],
P.name AS [ParameterName],
TYPE_NAME(P.user_type_id) AS [ParameterDataType],
P.max_length AS [ParameterMaxBytes],
P.is_output AS [IsOutPutParameter]
FROM sys.objects AS SO
INNER JOIN sys.parameters AS P
ON SO.OBJECT_ID = P.OBJECT_ID
WHERE SO.OBJECT_ID IN ( SELECT OBJECT_ID
FROM sys.objects
WHERE TYPE IN ('P','FN'))
ORDER BY [Schema], SO.name, P.parameter_id

이를테면,. 특정 파라미터에 정의된 값을 찾아서 수정이 필요한 경우에 이용해 볼수 있을것 같고 그외 목적에 따라서 위 쿼리 스크립트를 약간만 수정해도 다양하게 이용할수 있을것 같습니다.

위 쿼리스크립트에 대한 자세한 내용은 해당 원문 페이지를 확인해 보시기 바라며, SQL Server 2005 이상에서만 지원 가능한 시스템뷰를 이용하므로 SQL Server 2000 에서는 작동하지 않습니다.

SQL Server Database File I/O Report

http://www.databasejournal.com/features/mssql/article.php/3796551/article.htm 를 보면,. 각 DB 별 I/O 사용량 통계 쿼리 예제 입니다. 물론,. 제공되는 시스템뷰나 함수를 좀더 보기쉽고 직관적으로 알수 있도록 만들어 놓은 쿼리 입니다.

SQL Server 2005 및 SQL Server 2008

select db_name(mf.database_id) as database_name, mf.physical_name,
left(mf.physical_name, 1) as drive_letter,
vfs.num_of_writes, vfs.num_of_bytes_written, vfs.io_stall_write_ms,
mf.type_desc, vfs.num_of_reads, vfs.num_of_bytes_read, vfs.io_stall_read_ms,
vfs.io_stall, vfs.size_on_disk_bytes
from sys.master_files mf
join sys.dm_io_virtual_file_stats(NULL, NULL) vfs
on mf.database_id=vfs.database_id and mf.file_id=vfs.file_id
order by vfs.num_of_bytes_written desc

SQL Server 2000 에서는 2005 나 2008 처럼 다양한 시스템뷰 나 함수를 지원하지 않기 때문에 다음처럼 커서를 이용해서 임시테이블에 넣는 방법을 이용합니다.

SQL Server 2000
DECLARE @DBID smallint
DECLARE @FILEID smallint
DECLARE @DBNAME sysname
DECLARE @FILENAME nvarchar(260)
 
CREATE TABLE #FileIOStats
(name sysname,
filename nvarchar(260),
drive_letter char(1),
NumberReads bigint,
NumberWrites bigint,
BytesRead bigint,
BytesWritten bigint,
IoStallMS bigint)
 
DECLARE ALLFILES CURSOR FOR
SELECT dbid, fileid, [name], [filename] FROM [master].[dbo].[sysaltfiles]
 
OPEN ALLFILES
FETCH NEXT FROM ALLFILES INTO @DBID, @FILEID, @DBNAME, @FILENAME
 
WHILE (@@FETCH_STATUS = 0)
BEGIN
 
                INSERT INTO #FileIOStats
                SELECT @DBNAME, @FILENAME, left(@FILENAME, 1), NumberReads, NumberWrites, BytesRead, BytesWritten, IoStallMS
                FROM ::fn_virtualfilestats(@DBID, @FILEID)
 
                FETCH NEXT FROM ALLFILES INTO @DBID, @FILEID, @DBNAME, @FILENAME
END
 
CLOSE ALLFILES
DEALLOCATE ALLFILES
 
SELECT * FROM #FileIOStats
DROP TABLE #FileIOStats

좀더 자세한 사항은 위 포스트를 참고해 보시기 바랍니다.

ASP.NET 에서의 세션(Session) 관리

Asp 와 다르게, ASP.NET 에서는 4가지의 세션 관리 방법(InProc, StateServer, SQLServer, Custom)을 제공 합니다. 이러한 각 세션 관리 방법별 장단점에 대해서 잘 설명해 놓은 Article 입니다.

Exploring Session in ASP.Net
http://www.codeproject.com/KB/aspnet/ExploringSession.aspx

2009/01/21

MS08-067(서버 서비스 취약점) 와 관련된 웜 감염 사례 급증

지난 2008년 10월 달에 비정기 긴급 보안 패치로 발표했던

서버 서비스의 취약점으로 인한 원격 코드 실행 문제점 (958644)
http://www.microsoft.com/korea/technet/security/bulletin/ms08-067.mspx

와 관련하여 최근들어 웜 감염이 급증 하고 있다고 합니다. 이 웜의 이름은 Win32/Conficker.B 이며, "Downadup" 이라고도 합니다.

Win32/Conficker.B
http://support.microsoft.com/kb/962007/ko
http://www.microsoft.com/security/portal/Entry.aspx?Name=Worm:Win32/Conficker.B

그래서, 아직 패치가 적용되지 않는 시스템이 있다면 다시 한번 확인하여 보안 업데이트 적용을 하는 것을 권장 하고 있습니다.

참고로, 지난주에 발표된 악성 코드 제거툴 버젼의 DB 목록에 포함이 되어 있다고 합니다. 가장 마지막 버젼이라면 검출여부를 확인해 볼수 있습니다.
http://www.microsoft.com/security/malwareremove/default.mspx

ps. 마이크로 소프트에서 매월 정기적으로 배포하는 보안 업데이트를 사용자들은 실제적으로 적용을 잘 하지 않는다고 합니다. (*물론 서버는 잘하겠죠??..)

패치 배포후 30% 까지 적용하는데 무려 80일이 걸린다고 하니,...
http://www.idg.co.kr/newscenter/common/newCommonView.do?newsId=53094

2009/01/20

ASP.NET 2.0.50727.0 / ID: 1310

Event message: 세션 상태 서버에 세션 상태 요청을 할 수 없습니다. 자세한 정보: 마지막 단계='상태 서버에서 응답을 읽는 중', 오류 코드=0x8007274C, 보내는 데이터 크기=0

Exception information: 
Exception type: HttpException 
Exception message: 세션 상태 서버에 세션 상태 요청을 할 수 없습니다. ASP.NET 상태 서비스가 시작되었으며 클라이언트 포트와 서버 포트가 같은지 확인하십시오. 서버가 원격 컴퓨터에 있는 경우에는 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\AllowRemoteConnection의 값을 확인하여 해당 서버가 원격 요청을 받는지 확인하십시오. 서버가 로컬 컴퓨터에 있고 앞에서 언급한 레지스트리 값이 없거나 0인 경우에는 상태 서버 연결 문자열에 'localhost' 또는 '127.0.0.1'을 서버 이름으로 사용해야 합니다.

ASP.NET 2.0.50727.0 / ID: 1301

The following exception was thrown by the web event provider 'EventLogProvider' in the application '/' (in an application lifetime a maximum of one exception will be logged per provider instance):

System.Web.HttpException: EventLogWebEventProvider 공급자가 이벤트를 기록하지 못했습니다(오류 코드: 0x80070057).
   위치: System.Web.Management.EventLogWebEventProvider.ProcessEvent(WebBaseEvent eventRaised)
   위치: System.Web.Management.WebBaseEvent.RaiseInternal(WebBaseEvent eventRaised, ArrayList firingRuleInfos, Int32 index0, Int32 index1)

ASP.NET 2.0.50727.0 / ID: 1309

Exception information:
    Exception type: COMException
    Exception message: 지정된 네트워크 이름을 더 이상 사용할 수 없습니다. (예외가 발생한 HRESULT: 0x80070040) 

Stack trace:    위치: System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
   위치: System.Web.Hosting.IIS7WorkerRequest.ReadEntityCoreSync(Byte[] buffer, Int32 offset, Int32 size)
   위치: System.Web.Hosting.IIS7WorkerRequest.ReadEntityBody(Byte[] buffer, Int32 size)
   위치: System.Web.HttpRequest.GetEntireRawContent()
   위치: System.Web.HttpRequest.FillInFormCollection()
   위치: System.Web.HttpRequest.get_Form()
   위치: System.Web.HttpRequest.get_HasForm()
   위치: System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull)
   위치: System.Web.UI.Page.DeterminePostBackMode()
   위치: System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

FastCgi 에서 PHP 폴더의 실행 권한

FastCgi 에서, PHP 는 매우 가볍고 빠르게 동작 합니다.
물론 세팅 방법도 기존과 다르게 보다 쉽습니다.

FastCgi 에서 PHP 는,. IIS 6에서는 작업자 프로세스에 의해서 실행이 됩니다. 그래서 PHP 가 설치되어 있는 폴더(php-cgi.exe 가 위치하는 폴더) 에는 Network Service 계정 접근이 가능 해야 합니다.

보통 읽기(Read) 권한만 설정되어 있어도 PHP 스크립트는 매우 잘 작동 합니다. 그러나, PHP 코딩 방식중에 Include 등의 함수 호출에서 코드 방식에 따라서 오류(FastCgi 에서 Http 500)가 발생 합니다.

include 또는 require_once 에서 상대 경로를 호출할 경우인데요. 요즘 대부분의 include 에서 페이지 호출 방식은 상대경로(relative path)를 이용하고 있습니다.

물론,. $_SERVER["DOCUMENT_ROOT"] 처럼 절대 경로를 반환해 주는 환경 변수를 이용해서 include 하는 경우에는 문제가 없으나, "../" 와 같은 상대 경로를 이용할때에는 오류가 발생 합니다.

[error] PHP Warning:
failed to open stream:
No such file or directory in
/main.php on line 15

이러한 오류는, PHP Cgi 에서 실행(Read & Execute) 권한(permission)이 없기 때문 입니다.

개체 이름: D:\php5\php-cgi.exe
이미지 파일 이름: C:\WINDOWS\system32\inetsrv\w3wp.exe
기본 사용자 이름: NETWORK SERVICE
액세스: SYNCHRONIZE
  ReadData (또는 ListDirectory)
  실행/트래버스
  ReadAttributes



위와 같이 작업자 프로세스 실행 계정에, 실행권한을 설정을 해줄 경우 기존 Linux 에서 작동하는 PHP 스크립트 대부분은 문제 없이 잘 작동 합니다.

물론, 세션 저장 폴더나 로깅 폴더등에는 추가적으로 쓰기/삭제 권한까지 필요 합니다.


19-php-fastcgi-ntfs-network-service.gif

2009/01/17

Troubleshooting a Windows Installer (MSI 트러블슈팅)

http://blogs.technet.com/askperf/archive/2007/07/13/troubleshooting-a-windows-installer-issue.aspx

Windows Installer(*.msi, MSIserver) 는 msi 로 패키징된 소프트웨어 설치 관리자 입니다. 서비스 형태로 작동하고,. .msi 파일을 실행하면 자동으로 작동 합니다.

그것과 관련해서 설치 과정중 발생하는 오류에 대한 트러블슈팅(문제해결) 하는 방법에 관한 포스트 입니다.

참고로,. 문서 내용중에 있는 유틸

ERRLOOKUP.EXE : http://www.wssplex.net/TipnTech.aspx?Seq=376 
Process Monitor : http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx

W3C 의 한국어 HTML Validation 서비스

W3C 표준에 의해서 작성된 Html 인지 체크해 주는 서비스.
한글로 체크 결과를 알려주는 곳중 하나인,

http://validator.kldp.org/

그외,. 원래 사이트인 http://validator.w3.org/ 

Windows PowerShell Quick Reference

Product: Windows Server 2008
Download: http://download.microsoft.com/download/6/f/e/6fe76a96-cf04-4dc5-a3ba-3b6895e04934/powershell_reference.doc
Language: English

PowerShell 에서 사용되는 몇가지 예제를 정리해 놓은 파워쉘 퀵 레퍼런스 워드 문서.

2009/01/15

SRMSVC / ID: 12305

[받는 사람]이나 [보낸 사람] 주소가 잘못 지정되어 있어서 파일 서버 리소스 관리자 서비스 전자 메일 동작을 실행하지 못했습니다. FSRM 관리 콘솔을 사용하여 올바른 [받는 사람]과 [보낸 사람] 전자 메일 주소를 할당량 또는 차단 구성에 추가하십시오.

작업:
   전자 메일 동작을 실행하고 있습니다.
   할당량 한도에 도달했습니다.
   파일 서버 리소스 관리자 이벤트 처리

컨텍스트:
   동작 유형: 전자 메일 동작
   동작 이름: 전자 메일 동작0
   SMTP 서버: xxx.xxx.xxx.xxx
   메일 보낸 사람 주소: test@wssplex.net
   메일 회신 주소: aaa@wssplex.net
   메일 받는 사람 주소: file@wssplex.net;
   메일 참조 주소:
   메일 숨은 참조 주소:
   메일 제목: 윈도우백업[xxx.xxx.xxx.xxx]-할당량 한도 초과 D:\폴더
   메일 메시지 텍스트: WSSPLEX-FILE 서버의 D:\폴더에서 사용자 WSSPLEX-FILE\Administrator이(가) 할당량 한도를 초과했습니다. 할당량 한도는 40960.00MB이고 현재 43068.78MB(한도의 105%)를 사용 중입니다.
   할당량 경로: D:\폴더
오류 관련 세부 내용:
   오류: IMessage::Send - cdoNTLM, 0x80040211

2009/01/14

SMB의 취약점으로 인한 원격 코드 실행 문제점 (958687)

이번달에는  1개 이군요...;;;
그런데,. SMB 이거와 관련한 패치가 너무 자주 나오는것 같습니다.. -_-;;;

139, 445 포트를 허용하지 않는 시스템 이라면 당장 적용하지 않아도 문제는 없을것 같습니다.

-----------

요약: 이 보안 업데이트는 비공개적으로 보고된 Microsoft SMB (Server Message Block) 프로토콜의 취약점을 해결합니다. 이 취약점으로 인해 영향을 받는 시스템에서 원격 코드 실행이 발생할 수 있습니다. 최선의 방화벽 구성 방법과 표준 기본 방화벽 구성을 이용하면 기업 경계 외부에서 들어오는 공격으로부터 네트워크를 보호할 수 있습니다. 인터넷과 연결되는 시스템의 경우, 필요한 포트만 최소한으로 열어 두는 것이 안전합니다.

심각도:
긴급 - Windows 2000, Windows XP, Windows Server 2003
보통 - Windows Vista, Windows Server 2008

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

영향을 받는 소프트웨어: Windows 2000, Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008 (아래 링크에서 영향을 받는 소프트웨어와 다운로드 위치를 확인하십시오)

취약점 고유번호:
SMB 버퍼 오버플로 원격 코드 실행 취약점(CVE-2008-4834)
SMB 유효성 검사 원격 코드 실행 취약점(CVE-2008-4835)
SMB 유효성 검사 서비스 거부 취약점(CVE-2008-4114)

시스템 재시작: 보안 업데이트 적용 후 시스템을 재시작해야 합니다.

상세 정보: http://www.microsoft.com/korea/technet/security/bulletin/MS09-001.mspx

Microsoft-Windows-Perflib / ID: 1021

64비트 환경에서 32비트 확장 카운터 DLL ASP.NET을(를) 열 수 없습니다. 64비트 버전을 구하려면 파일 공급업체에게 연락하십시오. 다른 방법으로는 32비트 버전의 성능 모니터를 사용하여 32비트 확장 카운터 DLL을 열 수 있습니다. 이 도구를 사용하려면 Windows 폴더를 열고 Syswow64 폴더를 연 후 Perfmon.exe를 실행하십시오.

닷넷 버그 리포트 시스템

http://www.codeproject.com/KB/cs/easybugsystem.aspx

음..;;; 아이디어가 괜찮군요...

응용프로그램 시작점에 예외 이벤트를 걸어 놓고,  이벤트가 발생하는 경우에 지정된 웹사이트의 입력값을 받는 페이지에 Post 로 던지고,.. 입력값을 받은 사이트에서는 받은 데이터를 요리해서 쉽게 볼수 있는 출력 시스템을 갖추고...^^

단, 항상 웹 접속이 가능한 환경이어야 겠네효.

C#, DataSet 을 Excel 로 변환하기

http://www.codeproject.com/KB/cs/DatasetToExcel.aspx

이런 변환 자료는 많지만,.. 정리를 깔삼하게 해놓은것 같음..
DataSet 이 여러개의 DataTable 를 포함할수 있으므로,..

그 반대의 경우,. Excel ---> DataSet 으로 변환하는 경우에는.,
http://www.codeproject.com/KB/cs/ExcelToDataset.aspx

Microsoft-Windows-Servicing / ID: 4375

Windows 서비싱에서 WindowsUpdateClient-SelfUpdate-Core-UIComp-Package_ko-KR(Language Pack) 패키지를 준비됨(Staged) 상태로 설정하는 과정을 완료하지 못했습니다.

Microsoft-Windows-Security-Licensing-SLC / ID: 8193

라이선스 활성화 스케줄러(SLUINotify.dll)가 실패했습니다. 오류 코드:
0xC0020017

2009/01/13

IP 변경, 제한을 위한 프록시(Proxy) 서버 목록

보통 Proxy 는,

기업 입장에서는 제한된 경로를 통해서 허용하는 방법중 하나 이고 또한 Proxy 는 대부분 Cache 기능을 제공하기 때문에 성능을 위한 경우에 해당 되기도 합니다.

사용자 입장에서는 물론 위의 기업 내부 인프라에 접근하기 위한 방법 이기도 하지만, 요즘에는 IP 노출을 꺼려하기 때문에 자신의 IP 를 숨기기 위한 일종의 트릭으로 이용하기도 합니다.

Proxy Server 서비스를 제공하는 IP 목록 사이트
http://www.proxy4free.com/index.html

* IP 별로, Proxy 모드가 다르고, IP 숨김 기능을 제공하는 것도 있으므로 자신에게 맞는 서비스를 제공하는 Proxy Server IP 주소를 이용하면 됩니다. 그리고 종종 IP 가 변경되는 경우도 있으므로 접속이 되지 않을 경우 다른 IP 를 이용하면 될것 같습니다.

Proxy 에 대한 설명은 텀즈의 설명을 참고해 보시기 바랍니다.
http://www.terms.co.kr/proxyserver.htm

Proxy 를 이용하기 위한 설정은 거의 대부분의 웹브라우져에서 제공하며, Windows Live Messenger 와 네이트온등에서도 제공합니다. 위 Proxy IP 목록을 이용하는 방법은 해당 Proxy 설정 화면에 이용할 Proxy IP 주소와 포트를 입력하면 완료 됩니다.  [도구]-[옵션]-[연결]



<Internet Explorer>


<FireFox>


13-proxy-explorer.png
13-proxy-firefox.png

IIS SMTP - PHP 메일 전송을 위한 설정

이것도 팁이랄게 될만한 것인지는 상당 의문 스럽지만,....
매우 어려웠던 문제도,. 어떻게 보면 매우 사소한것으로 인해서 해결이 될수 있다는 가정하에...^^

보통 Asp 환경에서는,.  CDO 컴포넌트를 이용하기 때문에 특별히 문제가 발생하는 상황은 많치 않습니다. CDO 컴포넌트는,. Queue 폴더에 Mail 파일 쓰기를 하고,. 그것을 SMTP 를 읽어서 발송을 하게 되는데요.

PHP 에서는, IIS SMTP 설치시 같이 설치되는 이러한 컴포넌트를 이용하지 않고 내장 소켓을 이용하게 되어 있습니다.

[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25

; For Win32 only.
;sendmail_from = me@example.com

위와 같이 php.ini 에서의 설정은 SMTP 와 smtp_port 에 지정된 서버의 소켓으로 접속하여 smtp 명령어를 이용해서 해당 서버로 메일을 밀어 넣습니다.

그런데,. 위와 같은 기본 설정값은,. 지정된 서버가 Relay 가 허용이 되어야 가능 합니다.  그렇지 않고서는 인증을 거쳐야 하는데요. 보통 PHP 작동이 웹서버 기반하에서 작동하므로 대부분 로컬에서 SMTP 서비스가 작동합니다.

그래서,. 인증없이 메일 전송을 할려면 "익명 엑세스" 가능해야 합니다. 물론 SMTP 설치후 기본값입니다만,. 방화벽이 없는 서버라면 스팸릴 레이나 무차별 스캔을 당하기 쉽상이기 때문에 Disable 해 놓은 경우도 있기 때문에 한번 체크해 보면 좋을것 입니다.



다음으로,. 로컬에서 메일을 보낸다 하더라도 PHP 가 작동하는 것은 소켓을 통해서,. 즉 원격지에서 SMTP 25 번 포트로 Relay 를 시도하는 것과 같은 방식으로 접근을 하는 것이고, 그것은 인증되지 않은 "익명 엑세스" 이므로,.




기본값으로 설정되어 있다면,. 인증이 되어야만 하므로 Relay 가능한 허용 목록에 PHP 가 작동하는 웹서버의 IP 주소를 넣어 주어야 합니다. 위의 기본적인 설정이 되었다면,.

<?php
$to      = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
?>

위 PHP 코드는 매우 잘 작동할것 입니다. 다만,. 실제 수신지 메일 사서함에 메일이 도착하는 여부는 SMTP 가 담당하므로,. Queue 폴더에 잘 쌓였다면 그 다음부터는 PHP 와 상관이 없습니다.



2009/01/09

Windows 7, Windows Server 2008 R2 베타 공개

CES 2009 에서 한성깔 해보이는? 스티브 발머 아저씨께서, Windows 7 과 그에 기반한 Windows Server 2008 R2 베타를 공개 하였습니다.



공개 베타 다운로드는 금주 내로 가능 하다고 하며, TechNet 과 MSDN 에서는 현재 다운로드 페이지의 OS 항목에서 다운로드 가능합니다.!

https://technet.microsoft.com/ko-kr/subscriptions/securedownloads/default.aspx
http://msdn.microsoft.com/ko-kr/subscriptions/downloads/default.aspx

물론,  위 링크에서 다운로드 할려면 계정이 있어야 합니다.
접근이 어려우면, 오늘 당장 테스트 해보지 않으면 죽을것 같더라도...
공개 베타 다운로드가 되는 시점을 기다려야 할것 같습니다.

ps,  테크넷의 경우 현재 모두 업로드가 되어 있지 않고, MSDN 이 모두 다운로드가 가능한 상태인것 같습니다.  그런데 TechNet 의 Windows 7 경우 "Windows 7 Beta Language Pack (x64) - DVD (Korean)" 가 목록에 있는걸로 봐서 한글 언어팩을 별도로 다운로드 가능 한것 같습니다.

2009/01/08

MCP 시험 바우쳐 10% 할인 쿠폰 - MCITP, MCTS, MCPD



Microsoft 인증 시험인, MCP 시험을 보기 위해서는 바우쳐라는 일종의 쿠폰이 필요 합니다. 물론 그것은 돈을 주고 사야 하는데요. 예전에는 교육센터가 많아서 시험센터도 많았는데, 요즘엔 시험을 볼수 있는 시험장(센터)가 몇개 안됩니다... -_-;;;

http://www.microsoft.com/korea/learning/mcp/default.mspx

이번에,. Microsoft 에서 2009년 3월 31일까지 10% 할인 온라인 쿠폰을 배포하고 있습니다. 기존 바우쳐 구매가격에 대해서 10% 할인 받을수 있는 쿠폰 입니다. ^^

할인 쿠폰 신청은 2009년 3월 31일까지 이고, 사용은 2009년 5월 31일까지 사용 하셔야 10% 할인 받으실수 있습니다. 또한 무제한 사용은 아니고, 1인 1매에 제한이 있습니다.

10% 할인쿠폰 신청은 http://www.learnandcertify.com/ 사이트에 접속 하셔서 오른쪽 녹색 버튼을 클릭하신후에, 입력 코드를 KR32BBD8 를 입력하시면 됩니다.

그이후, 본문 내용에 있는것 처럼 할인쿠폰, 시험, 일정 등을 확인해 주시면 됩니다.
할인을 위한 코드는 과정에서 입력했던 메일로 전송이 됩니다.

참고로,. 이 할인 쿠폰은 최근에 새로 추가된 시험 응시에만 사용이 가능 합니다. 물론 이러한 시험은 기존 시험을 대체하고 있으니깐 굳이 예전 버젼을 보실 필요는 없습니다.

MCTS 자격증: http://www.microsoft.com/learning/mcp/mcts/default.mspx
MCITP 자격증: http://www.microsoft.com/learning/mcp/mcitp/default.mspx
MCPD 자격증: http://www.microsoft.com/learning/mcp/mcpd/default.mspx

인증시험 안내 브로셔 다운로드:
http://www.wssplex.net/TipnTech.aspx?Seq=453

2009/01/03

자동화된 SQL Injection 공격을 통한 악성코드 대량 삽입 수법 분석

Product: SQL Server
Download:
Language: Korean

한국정보보보진흥원에서 제작된 문서 입니다.
SQL Ijneciton 방법에 침해를 당한 경우, 레코드를 복구하는 방법에 관려된 내용입니다.



내용중 일부.

-- Mass SQL Injection 피해 DB 일괄 복구 스크립트, 한국마이크로소프트 제공
-- 사고의 특성 상 DB 자료값들이 varchar 또는 nvarchar 등으로 형변환 되거나 제한된 임시 공간에 저장되는 과정이 있어 자료의 유실이나 손상이 발생합니다.
-- 그러므로, 본 복구 스크립트는 이러한 전형적인 Mass SQL Injection 피해를 입은 DB의 복구에만 사용 하시기 바랍니다.
-- 본 복구 스크립트는 DB관리자와 충분히 검토하신 후 적용하셔야 하며, 이에 대한 책임은 전적으로 사용자에게 있습니다.
-- Mass SQL Injection에 대한 자료는 KrCERT/CC 홈페이지(www.KrCERT.or.kr) 보안공지 또는 기술문서를 참조하시기 바랍니다.   2008. 11 KrCERT/CC, webcheck@krcert.or.kr

declare @tab varchar(255), @col varchar(255), @owner varchar(255), @type int
declare table_cursor cursor for select so.name, sc.name, sc.xtype, su.name from sysobjects so inner join syscolumns sc on so.id = sc.id inner join sysusers su on so.uid = su.uid where so.xtype='u' and (sc.xtype=99 or sc.xtype=35 or sc.xtype=231 or sc.xtype=167)
open table_cursor

fetch next from table_cursor into @tab, @col, @type, @owner
while(@@fetch_status=0)
begin
-- varchar, text 또는 nvarchar, ntext 일 경우 MS-SQL 2005 이상의 환경이라면 varchar(max) 또는 nvarchar(max) 으로 변경하여 사용
-- 악성코드 부분을 실제 삭제하려는 악성코드로 수정 (악성코드 예:  <script src=hxxp://malcode.tld></script> )
if (@type = 35 or @type = 167) 
   exec('update ' + @owner + '.[' + @tab + '] set [' + @col + '] = replace(convert(varchar(8000), [' + @col + ']), ' <악성코드> ','''')')
else                       
     exec('update ' + @owner + '.[' + @tab + '] set [' + @col + '] = replace(convert(nvarchar(4000), [' + @col + ']), ' <악성코드> ','''')')
print '[' + @col + ']' + ' column of ' + @owner + '.' + @tab + ' has been updated.'
fetch next from table_cursor into @tab, @col, @type, @owner
end
close table_cursor
deallocate table_cursor

가장 많이 본 글