리눅스

CentOS 7 환경에서 SVN을 설치하고 설정하는 방법

변군이글루 2017. 8. 8. 11:34
반응형

CentOS 7 환경에서 SVN(Subversion)을 설치하고 설정하는 방법

1. SVN 설치

Subversion 패키지 설치

yum install -y subversion

설치 확인

svn --version

2. SVN 저장소(Repository) 생성

저장소 디렉터리 생성

mkdir -p /svn/repos

SVN 저장소 생성

svnadmin create --fs-type fsfs /svn/repos
  • fsfs : SVN 기본 파일시스템 포맷 (권장)

3. SVN 설정 파일 구조

SVN 설정 파일 위치

/svn/repos/conf/
├─ svnserve.conf # SVN 서버 기본 설정
├─ passwd # 사용자 계정(ID/PW) 설정
└─ authz # 사용자/그룹 권한 설정

4. svnserve 기본 설정

svnserve.conf 설정

vim /svn/repos/conf/svnserve.conf
[general]
anon-access = none # 익명 사용자 접근 불가
auth-access = write # 인증 사용자 읽기/쓰기 허용
realm = My_First_Repository # 인증 영역(저장소 이름)
authz-db = authz # 권한 설정 파일
password-db = passwd # 사용자 계정 파일

설정 항목 설명

  • anon-access : 익명 사용자 권한 (none / read / write)
  • auth-access : 인증 사용자 권한
  • realm : SVN 인증 영역 이름
  • authz-db : 권한 제어 파일
  • password-db : 사용자 계정 파일

5. svnserve 데몬 설정

svnserve 옵션 설정

vim /etc/sysconfig/svnserve
# OPTIONS is used to pass command-line arguments to svnserve.
#
# Specify the repository location in -r parameter:
OPTIONS="--threads --root /svn/repos"

옵션 설명

  • --root : SVN 저장소의 상위 경로
  • --threads : fork 대신 thread 방식 사용
  • --listen-port : 기본 3690 포트 변경 시 사용

6. svnserve 서비스 시작

systemctl enable --now svnserve.service
systemctl restart svnserve.service

서비스 상태 확인

systemctl status svnserve.service
728x90

7. SASL 인증 설정(비밀번호 암호화)

SVN 기본 passwd 방식은 평문 저장이므로, 보안을 위해 SASL 인증 사용을 권장합니다.

Type 1. SASL 자체 계정 사용 방식

Cyrus-SASL 패키지 설치

yum install -y cyrus-sasl*

svnserve.conf에 SASL 설정 추가

vim /svn/repos/conf/svnserve.conf
[general]
anon-access = none
auth-access = write
authz-db = authz
realm = My_First_Repository

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

SASL 계정 생성 (root 권한)

saslpasswd2 -c -u "My_First_Repository" anti1346

옵션 설명

  • -c : 계정 생성
  • -d : 계정 삭제
  • -u : realm 이름
  • -f : DB 파일 지정

SASL 계정 목록 확인

sasldblistusers2

SASL 계정 삭제

saslpasswd2 -d -u "My_First_Repository" anti1346

Type 2. 시스템 계정(PAM) 연동 방식

SASL SVN 설정 파일 생성

vim /etc/sasl2/svn.conf
pwcheck_method: saslauthd
mech_list: plain login

SVN이 PAM 인증 사용하도록 설정

ln -s /etc/pam.d/system-auth /etc/pam.d/svn

saslauthd 서비스 활성화 및 시작

systemctl enable --now saslauthd.service

8. SVN 백업 및 복구

SVN 저장소 백업

svnadmin dump /svn/repos > /backup/repos.dump
  • dump 파일은 텍스트 기반이며 버전 간 호환 가능

SVN 저장소 복구

svnadmin load /svn/repos < /backup/repos.dump
  • 복구 시 대상 저장소는 미리 생성되어 있어야 합니다.

클라이언트 접속 예시

svn checkout svn://server-ip/project

 

참고URL

- https://www.rndit.net/confluence/display/DEV/CentOS+SVN+SASL

- https://www.rndit.net/confluence/display/DEV/CentOS+SVN+install+backup+restore+configuration

 

728x90
반응형