TortoiseSVN Logo

SASL로 Svnserve 보안 설정

SASL이란?

Cyrus Simple Authentication and Security Layer는 카네기 멜론 대학교에서 작성한 오픈 소스 소프트웨어입니다. 이 소프트웨어는 모든 네트워크 프로토콜에 일반적인 인증 및 암호화 기능을 추가하며, Subversion 1.5 이상부터 svnserve 서버와 TortoiseSVN 클라이언트 모두 이 라이브러리를 활용할 수 있습니다.

사용 가능한 옵션에 대한 더 자세한 내용은 Subversion 책의 "SASL과 함께 svnserve 사용" 섹션을 참조하십시오. Windows 서버에서 안전한 인증 및 암호화를 설정하여 저장소에 인터넷을 통해 안전하게 접근할 수 있는 간단한 방법을 찾고 있다면, 계속 읽어보십시오.

SASL 인증

서버에서 특정 SASL 메커니즘을 활성화하려면 세 가지 작업을 해야 합니다. 첫째, 저장소의 svnserve.conf 파일에 이 키-값 쌍을 사용하여 [sasl] 섹션을 생성하십시오.

use-sasl = true

둘째, 편리한 위치(일반적으로 Subversion이 설치된 디렉터리)에 svn.conf라는 파일을 생성하십시오.

셋째, SASL이 파일을 찾을 위치를 알려주기 위해 두 개의 새로운 레지스트리 항목을 생성하십시오. 다음 이름의 레지스트리 키를 생성하고

[HKEY_LOCAL_MACHINE\SOFTWARE\Carnegie Mellon\Project Cyrus\SASL Library]

그 안에 두 개의 새로운 문자열 값(string values)을 넣으십시오. 하나는 sasl*.dll 플러그인(일반적으로 Subversion 설치 디렉터리 내)을 포함하는 디렉터리 경로로 설정된 SearchPath이고, 다른 하나는 svn.conf 파일을 포함하는 디렉터리로 설정된 ConfFile입니다. CollabNet 설치 프로그램을 사용했다면, 이 레지스트리 키들은 이미 생성되어 있을 것입니다.

다음 내용을 포함하도록 svn.conf 파일을 편집하십시오.

pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: DIGEST-MD5
sasldb_path: C:\TortoiseSVN\sasldb

마지막 줄은 인증 데이터베이스의 위치를 보여주며, 이 파일은 sasldb라고 불립니다. 이 파일은 어디에나 있을 수 있지만, 저장소 상위 경로에 두는 것이 편리합니다. svnserve 서비스가 이 파일에 대한 읽기 권한을 가지고 있는지 확인하십시오.

svnserve가 이미 실행 중이었다면, 업데이트된 구성을 읽도록 재시작해야 합니다.

모든 설정이 완료되었으므로, 이제 사용자 계정과 비밀번호를 생성하기만 하면 됩니다. 이를 위해서는 saslpasswd2 프로그램이 필요합니다. CollabNet 설치 프로그램을 사용했다면, 해당 프로그램은 설치 디렉터리에 있을 것입니다. 다음과 같은 명령어를 사용하십시오.

saslpasswd2 -c -f C:\TortoiseSVN\sasldb -u realm username

-f 스위치는 데이터베이스 위치를 지정하며, realm은 저장소의 svnserve.conf 파일에서 정의한 값과 동일해야 합니다. username은 예상하는 그대로입니다. realm에는 공백 문자가 포함될 수 없음에 유의하십시오.

sasldblistusers2 프로그램을 사용하여 데이터베이스에 저장된 사용자 이름을 나열할 수 있습니다.

SASL 암호화

다양한 수준의 암호화를 활성화하거나 비활성화하려면, 저장소의 svnserve.conf 파일에서 두 가지 값을 설정할 수 있습니다.

[sasl]
use-sasl = true
min-encryption = 128
max-encryption = 256

min-encryptionmax-encryption 변수는 서버가 요구하는 암호화 수준을 제어합니다. 암호화를 완전히 비활성화하려면 두 값을 0으로 설정하십시오. 데이터의 단순 체크섬(즉, 변조를 방지하고 암호화 없이 데이터 무결성을 보장)을 활성화하려면 두 값을 1로 설정하십시오. 암호화를 허용(필수는 아님)하려면 최소값을 0으로 설정하고, 최대값을 특정 비트 길이로 설정하십시오. 암호화를 무조건 요구하려면 두 값을 1보다 큰 숫자로 설정하십시오. 이전 예시에서는 클라이언트가 최소 128비트 암호화를 수행하고 최대 256비트 암호화를 수행하도록 요구합니다.

한국어 中文