728x90
300x250

[ASP.NET] 내장 암호화(HashPasswordForStoringInConfigFile) 기법 사용하기 - 복호화(X)

내장 암호화 전 게시물에 이어 이번에는 복호화(Decrypt)가 불가능한 기법에 대해 소개하겠습니다.
라이브러리의 물리 경로는 System.Web.Security.FormsAuthenication.HashPasswordForStoringInConfigFile에 있습니다.
이 라이브러리의 형식은 다음과 같습니다.

public static string HashPasswordForStoringInConfigFile(string password, string passwordFormat)



1. string password 세부항목

string password는 부호화시킬 대상의 암호를 문자열로 입력하면 됩니다.
string passwordFormat은 System.Web.Configuration.FormsAuthPasswordFormat 열거형 값 중 하나를 나타내는 String입니다.

참고1) System.Web.Configuration.FormsAuthPasswordFormat 열거형 값

string password는 부호화시킬 대상의 암호를 문자열로 입력하면 됩니다.
string passwordFormat은 System.Web.Configuration.FormsAuthPasswordFormat 열거형 값 중 하나를 나타내는 String입니다.


2. string passwordFormat 세부항목

 
                           표2-1. System.Web.Configuration.FormsAuthPasswordFormat 열거형 값

 번호

 종류

 비고 

 1

 Clear

 암호화 시키지 않습니다.

 2

 MD5

 암호화

 3

 SHA1

 암호화


3. MD5와 SHA1(읽어보기)


                                     표2-2. MD5와 SHA1의 특징 및 문제점 그리고 현재는?


MD5(Message-Digest algorithm 5)
는 128비트 암호화 해시 함수이다. RFC 1321로 지정되어 있으며, 주로 프로그램이나 파일이 원본 그대로인지를 확인하는 무결성 검사 등에 사용됩니다. 1991년에 로널드 라이베스트가 예전에 쓰이던 MD4를 대체하기 위해 고안했습니다.

1996년에 MD5의 설계상 결함이 발견되었습니다. 이것은 매우 치명적인 결함은 아니었지만, 암호학자들은 해시 용도로 SHA-1와 같이 다른 안전한 알고리즘을 사용할 것을 권장하기 시작했습니다. 2004년에는 더욱 심한 암호화 결함[1]이 발견되었고. 2006년에는 노트북 컴퓨터 한 대의 계산 능력으로 1분 내에 해시 충돌을 찾을 정도로 빠른 알고리즘이 발표[2]되기도 하였습니다. 현재 MD5 알고리즘을 보안 관련 용도로 쓰는 것은 권장하지 않으며, 심각한 보안 문제를 야기할 수도 있습니다. 2008년 12월에는 MD5의 결함을 이용해 SSL 인증서를 변조하는 것이 가능하다는 것이 발표되기도 했습니다.

 


SHA(Secure Hash Algorithm, 안전한 해쉬 알고리즘) 함수들은 서로 관련된 암호학적 해쉬 함수들의 모음입니다. 이들 함수는 미국 국가 안전 보장국(NSA)이 1993년에 처음으로 설계했으며 미국 국가 표준으로 지정되었습니다. SHA 함수군에 속하는 최초의 함수는 공식적으로 SHA라고 불리지만, 나중에 설계된 함수들과 구별하기 위하여 SHA-0이라고도 불립니다. 2년 후 SHA-0의 변형인 SHA-1이 발표되었으며, 그 후에 4종류의 변형, 즉 SHA-224, SHA-256, SHA-384, SHA-512가 더 발표되었습니다. 이들을 통칭해서 SHA-2라고 하기도 합니다.

SHA-1은 SHA 함수들 중 가장 많이 쓰이며, TLS, SSL, PGP, SSH, IPSec 등 많은 보안 프로토콜과 프로그램에서 사용되고 있다. SHA-1은 이전에 널리 사용되던 MD5를 대신해서 쓰이기도 합니다. 혹자는 좀 더 중요한 기술에는 SHA-256이나 그 이상의 알고리즘을 사용할 것을 권장합니다.

SHA-0과 SHA-1에 대한 공격은 이미 발견되었습니다. SHA-2에 대한 공격은 아직 발견되지 않았으나, 전문가들은 SHA-2 함수들이 SHA-1과 비슷한 방법을 사용하기 때문에 공격이 발견될 가능성이 있다고 지적합니다. 이들은 이제 새로운 해쉬 함수 표준을 위해 후보 함수들을 개발하고 있습니다.

 


4. 출력물

이 결과를 토대로 볼 때 그래도 MD-5보다는 SHA1이 낫다는 것을 확인할 수 있습니다.
라이브러리를 사용하면 구현하기 쉽습니다. 물론 라이브러리를 직접 구현한다면 매우 복잡하고 어렵습니다.
이번 실습에서는 아래와 같은 화면을 구현하여 암호 알고리즘을 적용하는 방법을 설명하겠습니다.



1. 새 프로젝트 만들기



ASP 빈 프로젝트를 만듭니다.

2. 빈 항목 추가하기(ASPX)



적당히 설정 후 추가 버튼을 누릅니다.

3. Label 만들기



도구 모음에서 Label을 하나 선택하여 만듭니다.

3. 코딩

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebApplication1
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
           
            string sField = "1";
            Label1.Text = FormsAuthentication.HashPasswordForStoringInConfigFile(sField, "SHA1");

        }
    }
}



5. 참고자료(Reference)

1. http://ko.wikipedia.org/wiki/MD5, Accessed by 2011-01-23
2. http://ko.wikipedia.org/wiki/SHA, Accessed by 2011-01-23

반응형
728x90
300x250

[ASP.NET] 내장 암호화(FormsAuthenticationTicket) 기법 사용하기 - 복/부호화 (O)

.NET Framework에 탑재된 System.Web.Security의 라이브러리를 사용하여 암호화하는 방법을 소개하겠습니다. 이번에 소개할 암호화 기법은 폼 인증에 이용되는 FormsAuthenticationTicket을 이용하는 방법에 대해서 설명하겠습니다.
이 암호화 기법의 특징은 대략 암호화가 이루어지면 길이가 300~400문자 이내로 구성됩니다. 쿠키에 적용하여 사용하면 많은 도움을 얻게 될 것입니다.

이번 실습 강좌에서는 아래에 출력된 화면과 같이 복호화와 부호화 처리를 구현하는 방법을 소개하겠습니다.


1. ASP.NET으로 암호화 구현하기(FormsAuthenticationTicket)

 

그림 1-1. 완성된 프로그램

1-1. ASP.NET 빈 프로젝트 만들기



새 프로젝트 만들기에서 ASP.NET 빈 웹 응용프로그램 만들기를 선택한 후에 적절한 설정을 맞추고 확인을 클릭합니다.

1-2. 빈 항목 추가하기(ASPX 페이지)



aspx 페이지를 적당히 설정 후에 추가를 누릅니다.

1-3. 도구 상자에서 Label 만들기



파란색으로 점 찍어놓은 Label 버튼을 클릭하여 디자인 창에 2개를 만들어줍니다.
그렇게 되면 Label1, Label2가 생성된 것을 보실 수 있습니다.

1-4. 코딩하기



디자인 창에서 빈 바탕에 더블클릭 하시면 Page_Load라는 Void 형식의 객체가 만들어집니다.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication1
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
          string sField = "1";
        Label1.Text = FormsAuthentication.Encrypt(new FormsAuthenticationTicket(sField, true, 1));

        FormsAuthenticationTicket Ticket = FormsAuthentication.Decrypt(Label1.Text);

        Label2.Text = Ticket.Name;

        }
    }
}

반응형
728x90
300x250

[ASP.NET] 폼 인증 방식

ASP.NET는 새로운 인증 방식을 지원합니다. 인증 방식에는 Passport 인증, Windows 인증, Forms 인증이 있습니다.
인증 방식은 종류가 매우 다양합니다. ASP.NET에는 쿠키 상태, 세션 상태, Application 상태 등이 있습니다.
상태 관리를 변형하면 인증 방식으로도 사용할 수 있습니다. 그러므로 인증 방식의 종류가 매우 다양합니다.
인증 방식에 따라 코드가 간단하지만, 보안에 취약한 경우가 있을 것입니다.
흔히 우리는 쿠키를 통한 인증을 자주 사용합니다. 왜냐하면, Temporary Folder에 저장되므로 고급 사용자가 아닌 이상 접근할 빈도가 낮게 구현하기가 쉽기 때문입니다.


1) 인증 방식의 종류
Passport 인증 - MS의 Passport 서비스를 이용하여 인증합니다.
Windows 인증(우리가 사용하는 윈도우 계정) - 가장 강력하지만, 사내 인트라넷에서 사용하므로 사내 첩자를 찾아낼 수 있도록 탐지기술 도입이 
                                                                    필요 합니다.
Forms 인증 - 쿠키를 이용하여 인증처리를 구현합니다. 쉽게 구현가능하며 .NET Framework에 포함된 보안 기술을 사용할 수 있습니다.
사용자 지정 - 말 그대로 사용자가 직접 인증 프로세스를 만들어 냅니다. 구현하는 데 다소 복잡하다는 특성을 가지고 있습니다.

Web.Config

중략
<system.web>
<authentication mode="Forms">
<forms name=".ASPXAUTH" loginUrl="로그인페이지.aspx" defaultUrl="로그인 후에 접속할 페이지.aspx"></form>
</authentication>
</system.web>
중략

로그인 페이지에서 버튼에 프로세스 - 구현

버튼()
{
FormsAuthentication.RedirectFromLoginPage(인증아이디식별단자, 쿠키 보존 여부);
}

쿠키 보존 여부 : true, false

로그아웃 페이지에서의 버튼에 적용하기 - 구현

버튼()
{
FormsAuthentication.SignOut();
            Response.Redirect("로그아웃 후에 이동할 페이지.aspx");
}



2. 부록) 사용자 옵션

1) Protection: 쿠키에 사용되는 암호화 유형
Validation: 쿠키 변경 여부를 검사하여 데이터의 유효성 여부를 확인합니다.
None: 3DES, DES를 사용하여 암호화를 하지만, 쿠키에서 데이터의 유효성 검사는 수행하지 않습니다.
Encryption: 개인 설정 정보를 제공할 때만, 쿠키를 사용하고 보안 요구 사항이 낮은 사이트에 대해서는 암호화와 유효성 검사를 해지합니다.
All(기본값): 응용 프로그램이 데이터의 유효성 검사 및 암호화를 모두 사용하여 쿠키를 보호하도록 지정합니다.

2) Timeout: 쿠키가 만료될 때까지의 시간 지정
3) slidingExpiration: 상대(sliding) 만료의 설정 여부를 지정합니다. 기본값은 .NET Framework 1.x에서는 true이고, .NET Framework 2.0에서는 False입니다.

True: 새로 고침 하면 다시 갱신
False: 만료기간 제거

4) name: 인증 쿠키의 이름 지정 (기본값: .ASPAUTH)
5) domain: 쿠키를 공유할 수 있는 도메인 설정
6) Cookless: 인증 쿠키의 사용 여부 및 동작 설정
UseCookies: 장치에 관계없이 쿠키를 항상 사용합니다.
UseUrl: 쿠키를 사용하지 않고 인증 정보를 URL에 저장합니다.
AutoDetect: 브라우저에서 쿠키를 지원하면 쿠키를 사용하고 그렇지 않으면, 쿠키를 사용하지 않습니다.
UseDeviceProfile(기본값): 장치 프로필에서 쿠키를 지원하면 쿠키를 사용하고 그렇지 않으면, 쿠키를 사용하지 않습니다.

7) EnableCrossAppRedirects

폼 인증 티켓이 쿠키에 저장되어 있지 않은 경우 인증된 사용자를 다른 웹 응용 프로그램의 URL로 리디렉션할 수 있는지 여부를 나타내는 값을 가져옵니다.


3. 참고자료(Reference)

1. 기술지원, http://msdn.microsoft.com/ko-kr/library/9wff0kyh.aspx

반응형
728x90
300x250

[ASP.NET] Jquery - Modal Dialog 사용법

ASP.NET에서 Ajax(변형된 자바스크립트 - 비동기식 자바스크립트)를 사용하기 위해선 크게 두 가지 방법으로 요약할 수 있습니다.

첫 번째로 AjaxControlTookit을 이용하는 방법입니다. Microsoft에서 공개하고 있는 DLL 라이브러리를 이용하여 사용할 수 있습니다.
(홈페이지 주소 : http://www.asp.net/ajax/ajaxcontroltoolkit/)

두 번째로 jQuery를 이용하는 것입니다.
jQuery 팀 프로젝트에서 운영하는 jQuery(자바스크립트)를 이용하여 구현하는 방법을 들 수 있겠습니다.
(홈페이지 주소 : http://jqueryui.com)

이번 게시물은 간편하고 사용하기는 쉬우나 (힘들게하는) AjaxControltoolkit이 아닌 jQuery를 ASPX(ASP.NET 파일)에 적용하는 방법을 소개하겠습니다.


1. jQuery 홈페이지에서 사용자 테마에 맞는 jQuery 내려받기

jQuery 홈페이지에서 Download를 클릭합니다.



왼쪽에 Download를 클릭합니다.
참고) design a custom theme을 클릭해서 사용자 입맛에 맞게 설정된 테마가 포함된 라이브러리를 내려받으실 수 있습니다.



압축 파일은 이처럼 구성되어 있습니다.
index.html 파일을 열면 Demonstration을 보실 수 있습니다.

2. Visual Studio.NET의 ASP.NET 프로젝트에 적용시키기



사용자가 만들어낸 프로젝트 위치에 js와 css 폴더를 붙여 넣습니다.
(Visual Studio.NET의 프로젝트 경로는 내 문서에 Visual Studio 그리고 Projects 폴더 안에 생성되어 있습니다.)
-> 사용자가 별도로 지정한 경우에는 해당하지 않습니다.



Visual Studio의 자신의 프로젝트에 아까 복사 붙여 넣기 한 폴더를 끌고 와서 집어넣습니다.

아래의 코드는 Modal Dialog를 ASP.NET에서 사용할 수 있도록 구성된 예제입니다.

<%@ Page Language="C#" AutoEventWireup="true"  %>
<%@ Import Namespace="System.Collections.Generic" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/C#" runat="server">
        protected void Page_Load(object sender, EventArgs e)
        {
            ClientScript.GetPostBackEventReference(uxGrid, string.Empty);
            if (!Page.IsPostBack)
            {
                List<int> test = new List<int>();
                test.Add(2);
                test.Add(3);
                test.Add(32);
                test.Add(223);
                test.Add(5);
                test.Add(8);
                uxGrid.DataSource = test;
                uxGrid.DataBind();
            }
        }
        protected void uxRowAction_Click(object sender, EventArgs e)
        {
            Button b = sender as Button;
            if (b != null)
            {
                uxTest.Text = "clicked " + b.CommandArgument;
            }
        }
    </script>
    <link href="smoothness/jquery-ui-1.7.2.custom.css" rel="stylesheet" type="text/css" />
    <script src="jquery-1.3.2.min.js" type="text/javascript"></script>
    <script src="jquery-ui-1.7.2.custom.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        $().ready(function() {
            $('#dialogContent').dialog({
                autoOpen: false,
                modal: true,
                bgiframe: true,
                title: "MySql Membership Config Tool",
                width: 800,
                height: 600
            });
        });
        function rowAction(uniqueID) {
            $('#dialogContent').dialog('option', 'buttons',
                {
                    "OK": function() { __doPostBack(uniqueID, ''); $(this).dialog("close"); },
                    "Cancel": function() { $(this).dialog("close"); }
                });
                $('#dialogContent').dialog('open');
            return false;
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div id="dialogContent">
        <h3>confirm</h3>
        <p>Click ok to accept</p>
    </div>
    <asp:Literal ID="uxTest" runat="server" />
    <div>
        <asp:DataGrid ID="uxGrid" runat="server" AutoGenerateColumns="false">
            <Columns>
                <asp:TemplateColumn>
                    <ItemTemplate>
                        <asp:Button ID="uxRowAction" runat="server" CommandArgument='<%#Container.DataItem.ToString() %>' Text="Row Action" OnClick="uxRowAction_Click" OnClientClick="javascript:return rowAction(this.name);" />
                    </ItemTemplate>
                </asp:TemplateColumn>
            </Columns>
        </asp:DataGrid>
    </div>
    </form>
</body>
</html>

참조)
http://www.integratedwebsystems.com/2009/12/using-jquery-modal-dialog-confirmation-with-an-asp-net-server-control/

위의 내용을 참조하여 적용하는 방법에 대해 확인하시기 바랍니다.

출력 결과는 아래와 같습니다.



초깃값이 800 * 600 해상도인데 캡처를 하기 위해서 수동으로 줄였습니다.



조금 전에 jQuery를 압축 풀었던 폴더로 돌아가시면 Demo 자료가 있습니다.
이 자료들을 참고하시어 ASP.NET 환경에 맞게 설정해주시면 됩니다.


2. 이 글을 마치면서 느낀 점
AjaxControlToolkit도 편리하지만, jQuery보다는 매력이다는 생각은 들지 않습니다.
jQuery는 Google과 같은 거대한 사이트에서도 적용하고 있을 만큼 굉장히 이식성이 좋습니다.
더불어 Open License라서 개조하기도 수월합니다.
AjaxControlToolkit은 DLL을 웹 서버에도 적용시켜줘야 하고 손이 많이 타기 때문에 개인적으로 jQuery가 더 마음에 듭니다.
이만 글을 정리하며 많은 분이 성공적인 Web2.0 환경을 구축하길 바랍니다.
반응형
728x90
300x250

명령어

DBCC CHECKIDENT (TableName, RESEED, 초기 값)


사용 용도
DB의 데이터의 ID(정수계열자료) 값을 정리할 때 사용합니다.

반응형
728x90
300x250

[MS SQL Server 2008] 설치 하기

이 포스트가 MS SQL 2008 포스트에서 가장 먼저 올라왔어야 했는데 조금 늦은 면도 있습니다.
더불어 혹시나 하는 마음에 MS SQL을 설치하지 못하는 분들을 위해 글을 적게 되었습니다.

MS SQL Server 2008?
마이크로소프트에서 만든 데이터베이스 및 프로그래밍, 분석 도구를 의미합니다.
SQL의 단순한 자료 처리 기능을 벗어나 분석, 통합, 리포팅, 데이터 마이닝, 생산성 등을 제공하는 프로그램입니다.


.NET Framework가 Visual Studio의 개발 기능의 통합, 윈도우 커널 기능의 통합 등처럼 기존의 독립된 플랫폼을 하나로 통합하는 것이 오늘날 IT 제품의 특징이라고 할 수 있겠습니다. SQL Server 2008은 MS 제품군의 큰 축이라고 보시면 됩니다.

자세한 제품 소개는 Microsoft(http://www.microsoft.com/korea/sqlserver/2008/default.aspx) 홈페이지에서 보시면 되겠습니다. 더불어 아래에 첨부된 'SQL 2008 제품 소개 및 제안서'를 참고하시기 바랍니다.

SQL_Server_2008_proposal.pdf
테스트 환경
CPU : Atom 230 Processor (64bit)
OS : Windows 2008 R2(Standard) x64bit - Dreamspark
RAM : 2GB


1. MSSQL-Server 2008 설치하기

1. 설치 하기


SQL DVD나 이미지 파일을 넣으시고 해당 드라이브를 실행합니다.


프로그램 실행을 클릭합니다. Original 버전이거나 서비스 팩을 설치하지 않았으므로 호환성 문제가 발생하는 것이므로 크게 신경 쓰지 않아도 됩니다.



잠시 기다리시면 됩니다.



위의 화면이 열리게 됩니다. 설치를 클릭합니다.




새 SQL Server 독립 실행형 설치 또는 기존 설치에 기능 추가를 클릭합니다. 왜냐하면 현재 Workstation에는 SQL이 존재하지 않습니다. 혹은 존재하더라도 별도의 인스턴스를 구성할 수 있습니다.

DB를 함부로 트렌젝션할 경우에 되돌릴 수 없으므로 테스트 환경이 필요하게 됩니다. 그럴 때 새로운 인스턴스를 구성할 수 있습니다.



호환성 문제가 뜨게 되면 프로그램 실행을 클릭합니다.



잠시 기다리시면 아래의 창이 실행됩니다.



사용자 Workstation의 설치 지원 규칙에 대한 문제점을 성공적으로 통과하였습니다.


자세한 정보 표시(S)를 클릭하시면 설치 지원 규칙에 대해 살펴볼 수 있습니다.
확인을 클릭합니다.


잠시 기다려주세요.


정품을 구매하신 분이면 제품 키를 입력하시기 바랍니다. 이번 예제에서는 엔터프라이즈 평가를 대상으로 설치를 해보겠습니다. 다음을 클릭합니다.



동의함(A)를 선택 후에 다음을 클릭합니다.



설치를 클릭합니다.


설치에 필요한 파일을 준비하고 있습니다.
Windows Installer에 패키지화시키게 됩니다. 잠시만 기다려주시면 설치 마법사가 다시 열립니다.



설치 지원 규칙에 대한 정보가 상세하게 출력되었습니다.
Windows 방화벽에서 경고가 뜨는데 원격 포트 1433에 대해서 열어달라는 메시지입니다.
나중에도 충분히 해결할 수 있는 문제이므로 생략하고 다음을 클릭합니다.



인스턴스 기능과 공유 기능으로 크게 구분할 수 있습니다.
참고) 버전(Enterprise, Standard 등 따위를 의미)에 따라 다소 달라질 수 있습니다.

이 예제에서는 모두 선택(A)를 클릭하고 다음을 클릭합니다.



잠시 기다려 주십시오.


기본 인스턴스 값은 MSSQLSERVER입니다. 인스턴스 값은 현재 설치하고 있는 SQL 서버의 고유명이 됩니다. 그러므로 적절히 판단하여 잘 설정합니다.


설치에 들어가는 하드 디스크 공간 비용에 대해 알려줍니다. 다음을 클릭합니다.



확실히 규모가 크고 비싼 프로그램이므로 권한이 까다롭습니다. 테스트용으로 사용하는 설치 과정이므로 계정을 일괄 적용하겠습니다.
모든 SQL Server 2008 서비스에 동일한 계정 사용을 클릭합니다.



찾아보기(B)를 클릭합니다.



고급을 클릭합니다.



지금 찾기(N)을 클릭합니다.



이름(RDN) 항목에 SYSTEM을 찾아 클릭확인을 클릭합니다.



그리고 확인을 누릅니다.



확인을 클릭합니다.



데이터 정렬 탭클릭합니다.



위와 같이 설정이 되지 않았을 경우에 사용자 지정(C)을 클릭하여 바꾸어줍니다.



권장) 이와 같이 되어있는지 확인하시기 바랍니다.

확인 후에 다음을 클릭합니다.


계정 프로비전 탭에서 현재 사용자 추가(C)를 클릭합니다.
Windows 인증 모드에 선택되어 있는데 이번 테스트에서는 기본 값인 'Windows 인증 모드'를 사용하겠습니다.

데이터 디렉터리 탭을 클릭합니다.



학습하는 사용자는 그대로 둬도 무방하지만, 실무에서는 디렉터리 위치에 대한 계획도 잘 설계되어 있어야 합니다.
실무에서는 하나의 하드에 모든 자료에 접근하게 되면 부하가 생기므로 별도의 Raid를 구성한 디스크에 할당해줘야 합니다.



FileStream 탭은 대용량 이진 파일의 저장을 효율적으로 처리하기 위해 새로 제공하는 기능입니다.
우선 기본값으로 두고 다음 클릭합니다.



현재 사용자 추가(C)클릭하고, 데이터 디렉터리 탭클릭합니다.



Analysis Services 디렉터리를 설정하는 곳입니다. 실습용이므로 기본값을 유지하고 다음을 클릭합니다.



SharePoint에 대해서 자세히 설명하기엔 방대하므로 '기본 모드 기본 구성을 설치합니다'를 선택하고 다음을 클릭합니다.


MS SQL 서비스의 오류보고를 Microsoft에 보내주는 항목들입니다. 사용자들이 이 항목들을 선택해주면 Microsoft에서 우리가 설치한 정보를 토대로 기능개선을 해줄 것입니다. 될 수 있으면 선택을 동의하는 것이 기술 개선에 많은 도움이 될 것입니다. 다음클릭합니다.


우리가 지금까지 진행해온 설치 규칙이 만들어졌습니다.
자세한 정보 표시(S)클릭합니다.



내가 설치 준비에 앞서 무슨 항목을 설치할 것인지 알 수 있습니다. 확인 후에 다음(N)클릭합니다.



설치 준비 규칙을 확인합니다.
그리고 설치(I)클릭합니다.



지루한 설치 과정이 시작되었습니다.
마법사 과정은 여기에서 글을 접도록 하겠습니다.

2. 설치 확인해보기



시작 메뉴에서 프로그램 그리고 Microsoft SQL Server 2008 폴더에서 SQL Server Management Studio를 클릭합니다.




2. 참고자료(Reference)

1. http://yyman.tistory.com/entry/MS-SQL-2008-초기설치-후-설정하기포트활성화-인증방식-접속
    = 위의 과정을 조금 응용하면 인스턴스를 새로/추가 구현할 수 있습니다.

반응형
728x90
300x250

[Windows 2008] IIS 7 FTP 서버 설정 - 자격 증명 권한

IIS 7에서 FTP 서버를 추가하고 나서 "서버 관리자"나 "개발자"들이 권한을 통제하는 경우가 발생합니다.
IIS만을 관리할 수 있는 관리자에겐 IIS의 권한을 부여해줘야만 원활히 잘 돌아가게 됩니다.
"서버 관리자"나 "개발자"들이 통제하는 것을 벗어나 또 응용 프로그램을 통해 인증을 받을 수도 있습니다.

요약하자면, 자격 증명 권한은 파일에 접근할 권한을 증명하는 절차를 프로그램상으로 표현한 것입니다.


1. 자격 증명 권한



해당 FTP 프로파일에서 작업 탭에 보면 기본 설정이 있습니다.



기본 설정을 클릭하면 이와 같은 창을 볼 수 있습니다.
한번 기본 설정 값인 통과 인증의 결과를 살펴보겠습니다. 설정 테스트를 클릭합니다.



경로에 대한 권한이 경고 수준을 가리키고 있는 것을 살펴볼 수 있었습니다.
경고 수준에 대한 세부 정보는 여러분이 직접 읽어보시기 바랍니다.
통과 인증으로 실제 경로에 접근하도록 구성되어 있지만, IIS 관리자에서 기본 제공 계정이 접근할 권한이 있는 지 불투명하다고 합니다.


2. 연결 계정 변경하기



연결 계정을 클릭합니다.



사용자 지정을 선택 후에 설정을 클릭합니다.



이 예제에서는 administrator를 이용하도록 하겠습니다.
여러분이 설정한 암호를 입력 후에 확인을 누릅니다.



성공적으로 입력이 되어진 모습을 확인할 수 있습니다.
확인을 누릅니다.



설정 테스트를 클릭합니다.



인증과 권한 부여가 성공적으로 확인되었습니다.


결론

응용프로그램 풀에 존재하고 있는 .NET Framework는 하나의 통합된 환경이지만, Windows의 실제 존재하는 계정에 비해 갖는 권한은 다소 약하다는 것을 테스트 결과를 통해 확인할 수 있었습니다.
사용자 또는 환경에 따라 더 강하게 사용할 수도 있지만, 직접 접근이라는 점에서 다소 위험한 행동일 수도 있습니다.
애플리케이션 도구를 이용한 접근은 아마도 점차 발달하고 진화해온 IIS의 삶이라고 볼 수 있습니다.

Product Roadmap-Internet Information Services (IIS) 7.0.pdf
(2007, Product Roadmap-Internet Information Services (IIS) 7.0, Microsoft)

Microsoft에서 IIS 7.0의 제품 변천사를 소개하는 자료를 보면 조금 더 쉽게 이해할 수 있습니다.


추가 관련 자료 키워드
IIS 7의 원격 관리나 외부 배포, 관리서비스

 

 

반응형
728x90
300x250

Windows 2008 R2(x64) IIS 7에서 FTP 서버 구축하기[IISManagerAuth]

IIS 7에서 FTP 서버 구축하기를 올리게 된 계기는 여러 번의 삽질 과정을 통해 얻어낸 방법을 기억하고자 적게 되었습니다.


1. 서버 관리자에서 사용자 계정 만들기

윈도우7, 8과의 차이점은 "컴퓨터관리"라는 명칭에서 서버 관리자라는 명칭의 도구가 있다는 것입니다.
데스크톱 환경의 운영체제와는 차이점입니다.

위의 그림처럼 실제계정에서 생성하는 것은 보안 문제와 더불어 부여받을 사용자에게 필요한 권한의 범위를 벗어나게 하는 오류를 범할 수 있습니다.
물론 SSO 인증, ASP.NET 인증, SQL을 통한 인증 등과 같이 접근하는 방법은 다양합니다.
IIS 7에 대한 자세한 내용은 이 영역에서는 생략하고 진행하도록 하겠습니다.


2. 설치(Install)

서버 관리자에서 역할 그리고 웹 서버(IIS)를 클릭 후에 서비스 역할 추가를 통해 FTP 서버를 설치할 수 있습니다.


3. IIS 7 실행하기

IIS 7은 시작에서 관리도구 그리고 IIS(인터넷 정보 서비스) 관리자를 클릭하시면 실행하실 수 있습니다.

IIS의 초기 화면은 위의 그림처럼 생겼습니다.


4. IIS 사용자 계정 만들기

위의 사진을 기준으로 봤을 때 SV01(이하 생략)을 클릭하시면 SV01 홈이 열립니다.



IIS 관리자 사용자를 더블 클릭합니다.

이와 같이 열리면 작업 탭에서 사용자 추가를 클릭합니다.


계정 명 그리고 암호를 입력합니다.


5. FTP 사이트 만들기




사이트를 오른쪽 클릭 후에 FTP 사이트 추가를 클릭합니다.

사이트 이름과 경로를 사용자의 환경에 맞게 설정합니다.
이 예제에서는 Default FTP Site, C:\inetpub\ftproot로 설정하였습니다.
다음을 클릭합니다.

SSL 탭에서 없음(S)을 선택합니다. SSL을 하게 되면 머리가 아픕니다. 인증서 서비스라는 것을 만들어서 공인기관에 인증을 받아야 하는 불상사가 생깁니다.

앞서 만든 정보가 앞 전에 만든 사용자 계정밖에 없으므로 권한 부여를 선택되지 않음으로 하고 마침을 누릅니다.


6. FTP 환경 설정

Default FTP Site를 클릭하면 Default FTP Site 홈이 열립니다.
FTP 권한 부여 규칙을 클릭합니다.

작업 탭에서 허용 규칙 추가를 클릭합니다.

지정한 사용자를 클릭하고 앞 전에 만든 사용자 계정을 입력합니다.
그리고 읽기, 쓰기 권한을 줍니다.
확인을 누릅니다.

다시 Default FTP Site를 클릭합니다.
FTP 인증을 클릭합니다.

작업 탭에서 사용자 지정 공급자를 클릭합니다.



iisManagerAuth를 선택한 후에 확인을 누릅니다.
iisManagerAuth를 사용 상태로 바꿉니다.
그리고 또 다시 Default FTP Site를 클릭합니다.
IIS 관리자 권한을 클릭합니다.

작업 탭에서 사용자 허용을 클릭합니다.



IIS 관리자(M)을 선택 후에 선택(E)를 클릭합니다.



방금 만든 계정을 선택 후에 확인을 누릅니다.



확인을 클릭합니다.


7. FTP 프로그램을 통해 검사하기




계정 설정을 입력 후에 확인을 클릭합니다.
참고로 이 프로그램은 E사의 XXFTP입니다.

정상적으로 동작함을 보실 수 있습니다.


* 응용하기

사용자별로 디렉터리를 나누는 Isolation(격리)에 대해 알아보겠습니다.
위의 환경 설정 과정에서 한 가지만 더 해주면 됩니다.



Default FTP Site를 클릭합니다. 그리고 FTP 사용자 격리를 클릭합니다.



사용자 격리 안 함

1. FTP 루트 디렉터리는 말 그대로 이 FTP의 디렉터리를 의미합니다.
2. 사용자 이름 디렉터리는 물리 디렉토리 혹은 가상 디렉터리를 통해 사용자가 접속할 수 있도록 합니다.
단, 격리는 되지 않습니다.

사용자 격리

3. 사용자 이름 디렉터리(전역 가상 디렉터리 사용 안 함)
는 가상 디렉터리 생성을 통해 사용자 계정별로 격리시킵니다.

 사용자 계정 유형  물리 홈 디렉터리 기호
 Anonymous users(익명 사용자별)  %FtpRoot%\LocalUser\Public
 Local Windows User Accounts
 (Requires basic authentication)
 로컬 윈도우 계정(기본 인증 필요)
 %FtpRoot%\LocalUser\%UserName% 
 Windows Domain Accounts
 (Requires basic authentication)
 윈도우 도메인 계정
 %FtpRoot%\%UserDomain%\%UserName% 
 IIS Manager or ASP.NET
 custom authentication user accounts
 (IIS Manager 또는 ASP.NET Auth 사용자 인증 계정)
 %FtpRoot%\LocalUser\%UserName% 


4. 사용자 이름 실제 디렉터리 (전역 가상 디렉터리 사용)

가상 디렉터리는 설정하지 않아도 시스템에 의해 가상 디렉터리가 설정됩니다.

 사용자 계정 유형  물리 홈 디렉터리 기호
 Anonymous users(익명 사용자별)  %FtpRoot%\LocalUser\Public
 Local Windows User Accounts
 (Requires basic authentication)
 로컬 윈도우 계정(기본 인증 필요)
 %FtpRoot%\LocalUser\%UserName% 
 Windows Domain Accounts
 (Requires basic authentication)
 윈도우 도메인 계정
 %FtpRoot%\%UserDomain%\%UserName% 
 IIS Manager or ASP.NET
 custom authentication user accounts
 (IIS Manager 또는 ASP.NET Auth 사용자 인증 계정)
 %FtpRoot%\LocalUser\%UserName% 


5. Active Directory에 구성된 FTP 홈 디렉터리

Active Directory에 의해 FTP 홈 디렉터리를 각자의 계정별로 부여한 경로로 제한합니다.

특별한 설정없이 클릭 만으로 적용됩니다.
단, 표에서 언급한 경로에 맞게 먼저 폴더가 생성되어야 합니다.

반응형

+ Recent posts