Computer/LINUX

freeSSHd 와 cwRsync 를 이용한 윈도우간의 파일 동기화 따라하기

알찬돌삐 2012. 8. 10. 16:09

 윈도우의 파일 동기화 또는 백업을 위한 여러가지 방법이 있다.
그런데 현재 서버스 윈도우 서버는 SSH 22번 80번 3389번 외에는 막혀있으며 같은 네트웍이 아니라고 가정한다.
이런경우 윈도우 네트워크 환경을 통해 화일을 가져오기엔 효율적이지 못하다.

그래서 윈도우용 rsync 를 이용하여 ssh 를 통해 백업을 받아보려 한다.
원리상으로는 리눅스 환경에서와 동일하다.

[테스트 환경]
- 선행 참조 문서
    http://ideaargo.devself.com/blog/103
- 서비스 Server
    OS : 윈도우2000
    SSH Server : freeSSHd 1.2.1
    Rsync Server : cwRsync_Server (ssh id : backup , ssh pass : backuppass 라 가정한다.)
    IP : 111.111.111.111
    작업 윈도우 계정 : Administrator
- 백업 Server
    OS : 윈도우 XP Professional
    SSH & Rsync Client : cwRsync(Client)
    IP : 222.222.222.222
    작업 윈도우 계정 : Administrator


1. 서비스서버에서 freeSSHd 를 설치 및 설정
선행문서를 참조하여 설치를 하며 freeSSHd 설정의 user 탭에서 id : backup , pass : backuppass 로
설정한다. 해당 user는 shell sftp tunnel 등을 모두 체크하고 "Password stored in SSH1 hash"로
지정한다. 이 방식은 서비스 서버의 윈도우 계정을 통해 로그인을 하는게 아니라 freeSSHd 에서 독립적으로
생성한 유저로 로그인하는 방식이다.
Authentication 탭에서 Password Authentication 과 Public Key Authentication 을 모두 allow 로 체크한다.
서버를 재시작한다.(관리도구의 서비스 또는 셋팅창 Server Status 탭 부분에서 멈추고 시작할수 있다)


2. 서비스서버에서 Rsync Server 설치 및 설정
http://www.itefix.no/cwrsync/ 의 페이지 중간쯤에 cwRsync Server 를 다운로드하여 설치한다.
설치시에 opensshd 를 설치하겠냐고 하면 No 를 선택하여 설치하지 않는다.
이 문서는 freeSSHd 와 cwRsync 와 연결하는데 목적이 있다.
서비스서버에 cwRsync 설치가 완료되면 Program => cwRsync Server => rsyncd.conf  클릭
아래의 내용을 적절히 편집한다.
=============================================================================
use chroot = false
strict modes = false
hosts allow = 127.0.0.1
log file = rsyncd.log
pid file = rsyncd.pid

# Module definitions
# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
#
[backup]
path = /cygdrive/c/Inetpub/wwwroot
read only = false
transfer logging = yes
=============================================================================
path = /cygdrive/c/Inetpub/wwwroot <== 의미는 백업받을 파일이 있는 위치를 지정하는것이다.
c:\Inetpub\wwwroot 라는 폴더를 말하는것이다.
이제 서버쪽 설정은 모두 끝났다. 서버를 재시작한다.(관리도구의 서비스로 재시작한다.)


3. 백업서버에서 Rsync Client 설치 및 설정
http://www.itefix.no/cwrsync/ 에서 cwRsync(client) 다운로드하여 설치한다.
설치가 되면 C:\Program Files\cwRsync\bin 디렉토리에 rsync ssh ssh-keygen 등 여러 프로그램이
깔린다. rsync 에 여러가지 프로그램이 있겠지만 cwRsync 를 이용하면 여러가지 필요한 프로그램
(ssh 접속 및 공개키 생성을 위한프로그램 등)을 한번에 설치 할수 있어 좋다.
이제 윈도우용 C:\Program Files\cwRsync\backup.bat 파일을 만들어서 아래의
내용을 입력하여 저장한다.
=============================================================================
@ECHO OFF
SET SECHAW_IDENTITY="C:\Program Files\cwRsync\bin\backup"
SET SECHAW_TYPE=ssh
SET SECHAW_LOCALPORT=9119
SET SECHAW_SERVER=111.111.111.111
SET SECHAW_SERVERPORT=873
SET SECHAW_USER=backup
SET SECHAW_CMD="C:\Program Files\cwRsync\bin\rsync.exe" -ravz --delete rsync://backup@localhost:9119/backup "/cygdrive/d/backup/"
SET SECHAW_TUNNEL=ssh -i "C:\Program Files\cwRsync\bin\backup" -L 9119:127.0.0.1:873 backup@111.111.111.111 -T -N
"C:\Program Files\cwRsync\bin\sechaw.exe" --verbos
=============================================================================
윈도우 batch 파일 제작에 관한 설명은 타 문서를 참조하시길...
또는 프로그램 => cwRsync => 3. Secure Channel Wizard 를 통해 생성할수도 있다.
SET SECHAW_IDENTITY 개인키 화일의 경로이다. 폴더가 아니라 파일명을 의미한다.
rsync://backup@localhost:9119/backup 에서 backup 은 cwRsync Server 의 rsyncd.conf 에서 지정한
[backup] 의 이름을 말하는것이다. 만약 rsyncd.conf 에 아래와 같이 내용을 추가하고

[backup1]
path = /cygdrive/c/Inetpub/www.test.com
read only = false
transfer logging = yes

이 내용을 rsync 로 동기화 시킨다면 backup.bat 파일의
rsync://backup@localhost:9119/backup 이 부분이
rsync://backup@localhost:9119/backup1 과 같이 바뀌어야 한다.

/cygdrive/d/backup/ 이부분은 백업서버의 d:\backup 에 서버스서버의 데이터를 저장하라는것이다.


4. 개인키 공개키 생성
백업서버에서 C:\Program Files\cwRsync\bin\ssh-keygen.exe 을 클릭하자
개인키명을 적으라고 한다 backup 이라고 적는다.
패스워드를 입력하라고 한다. 패스워드 없이 Enter 한번더 확인을 위해 패스워드를 입력하라고 한다.
또 Enter 그러면 C:\Program Files\cwRsync\bin\ 폴더에 backup 이라는 파일과
backup.pub 파일이 생성된다. backup 파일은 개인키(백업서버에서 사용할 키)를 말하는것이고
backup.pub 파이은 공개키(서비스 서버에서 사용할 키)를 뜻한다.
backup.pub 를 복사하여 서비스 서버의 SSHPublickeyPath 로 지정된
C:\Program Files\freeSSHd\ 로 업로드 한다음 backup.pub 를 backup 으로 변경한다.
freeSSHd 1.2.1 서버에서 생성한 유저의 공개키명은 유저명과 동일하다.
freeSSHd 서버 버젼에 따라 차이가 있으니 유의하시길....


5. 최초 1회 접속 및 예약 등록
백업서버에서 C:\Program Files\cwRsync\backup.bat 를 실행한다.
뭐라고 물어보면 yes 라고 하고 치면 된다. 그리고 password 를 묻는다 초기 접속에서만 물어본다.
이제 프로그램 => 보조프로그램 => 시스템도구 => 예약된 작업 을 선택한다
예약 작업을 추가하여 C:\Program Files\cwRsync\backup.bat 을 선택해 준다.
자신의 환경에 맞게 예약작업을 추가하면 백업을 위한 도구로서의 rsync 설정은 완료...


참조 : 혹 접근 오류가 나는 경우도 있는데 이는 서비스 서버에서 cwRsync Server 가 SvcwRsync 계정으로
실행되기 때문이다 그러니 백업을 받으려는 폴더의 등록정보 보안탭에서 SvcwRsync 계정을 추가하여
읽기 권한등을 주면된다.

이 글은 스프링노트에서 작성되었습니다.

.

'Computer > LINUX' 카테고리의 다른 글

pam_abl 을 통한 SSH 공격방어  (0) 2012.08.10
PAM (착탈형 인증 모듈)  (0) 2012.08.10
mysql ssh 터널링  (0) 2012.08.10
iostat  (0) 2012.08.10
find  (0) 2012.08.10