기술문서 HP-UX에서 rsyncd 를 이용한 백업 설정
2017.09.07 09:05
[ssh 인증키를 이용한 rsync 백업하기]
일반적인 rsync 를 이용할 경우 포트 873 포트를 이용하여 파일 전송을 하게 된다.
TCP 포트를 사용하게 되므로 포트스캔으로 IPS 장비에 의해 탐지될수도 있고
패킷을 분석하게 되면 파일명이나 내용이 보일수 있기에 보안에 취약하다
SSH 를 이용하게 되면 기본포트나 포트 변경을 하더라도 원격 접속용이기 때문에
접속에 대해서는 프리하게 사용할수 있고 ssh 자체 암호화 기능이 있으므로 패킷분석에 발견될
우려는 극히 드물다
- 사전 작업
0) 소스 및 타겟서버(HP-UX 11.31 기준)에 rysnc 설치
- 설치파일명 : ixRsync_ixRsync_A.20.00-3.0.9.001_HP-UX_B.11.23_IA_PA.depot (HP-UX 11.23용)
- 설치파일명 : ixRsync_ixRsync_A.20.00-3.0.9.001_HP-UX_B.11.31_IA_PA.depot (HP-UX 11.31용)
다운로드 :
ixRsync_ixRsync_A.20.00-3.0.9.001_HP-UX_B.11.23_IA_PA.depot
ixRsync_ixRsync_A.20.00-3.0.9.001_HP-UX_B.11.31_IA_PA.depot
# LANG=C
# swinstall -s /tmp/ixRsync_ixRsync_A.20.00-3.0.9.001_HP-UX_B.11.31_IA_PA.depot
# swlist |grep -i rsync (swlist로 확인)
ixRsync A.20.00-3.0.9.001 File Transfer Program
## cs1 서버에서 cs3 서버 데이터를 동기화하기##
- cs1 서버(172.16.170.6) : target data
- cs3 서버(172.16.170.10): source data
1) 공개키 생성
cs1서버에서 ssh 인증키 생성
(개인키를 가진쪽이 공개키를 가진쪽으로 접속한다.
즉, cs1에서 cs3으로 공개키를 이용하여 passwd 없이 접속한다)
root@cs1 [/]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Please be patient.... Key generation may take a few minutes
Enter file in which to save the key (//.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in //.ssh/id_rsa.
Your public key has been saved in //.ssh/id_rsa.pub.
The key fingerprint is:
06:2f:28:b6:d6:27:b0:24:94:90:73:4f:46:8b:2c:66 root@cs1
The key's randomart image is:
+--[ RSA 2048]----+
|.. .. |
|+.o.o. |
|.Eo+. . |
|+. .. o |
|. = . . S |
| + * o |
| + o . |
| . o |
| |
+-----------------+
root@cs1 [/]#
## 패스워드를 입력하지 않았다. /.ssh/id_rsa.pub 파일이 공개키이며, 접속하려는 서버에 심어 두어야 한다
root@cs1 [/]# cd /.ssh
root@cs1 [/.ssh]# ll
total 48
-rw------- 1 root sys 1675 Jul 3 11:07 id_rsa
-rw-r--r-- 1 root sys 390 Jul 3 11:07 id_rsa.pub
-rw-r--r-- 1 root sys 888 Jul 3 10:36 known_hosts
2) 공개키를 cs3서버의 /.ssh/authorized_keys 에 넣는다
(cs1서버의 /.ssh/id_rad.pub 파일을 ftp로 cs3서버의 //.ssh/에 넘긴 후 autorized_key로 rename
또는 id_rad.pub파일 내용을 copy후 cs3서버에서 vi로 autorized_key파일 생성후 paste해도 됨)
** autorized_key파일의 퍼미션을 600으로 변경한다.
# cd /.ssh
# chmod 600 autorized_key (퍼미션 600으로 변경)
root@cs3[/.ssh]#ll authorized_keys (퍼미션 확인: 600)
total 32
-rw------- 1 root sys 390 Jul 3 10:06 authorized_keys
3) cs1 서버에서 cs3서버로 접속테스트
# ssh -i /.ssh/id_rsa 172.16.170.10
또는 ssh -i /.ssh/id_rsa cs3 (/etc/hosts 파일에 해당 IP 등록 되있을경우)
=> password 확인 없이 cs3서버로 로그인된다.
4) rsync 명령 실행
*** 단순동기화(cs3: 원본, cs1: 사본) ***
root@cs1 [/]# rsync -avz -e ssh 172.16.170.10:/tmp/rsync_source/ /tmp/rsync_target
또는
root@cs1 [/]# rsync -avz -e ssh cs3:/tmp/rsync_source/ /tmp/rsync_target
(cs3 서버의 /tmp/rsync_source를 cs1 서버의 /tmp/rsync_target으로 동기화)
*** 동기화(삭제파일도 동일적용) ***
root@cs1 [/]# rsync -avz --delete -e ssh 172.16.170.10:/tmp/rsync_source/ /tmp/rsync_target
*** 2번에서 공개키 생성을 하지 않은 상황에서 계정의 접속 비번을 입력해주면 파일 전송이 가능하다
root@cs1 [/]# rsync -avz user@172.16.170.10:/tmp/rsync_source/ /tmp/rsync_target
(해당 유져의 패스워드를 입력하면 파일전송이 시작된다. 당연 목적지 파일 디렉토리 쓰기 퍼미션이 있어야 된다)
5) cron에 등록하여 매일 세벽 3시에 백업 수행할 경우
---------------------------------------------------------------------------------------
vi rsync_backup.sh
#!/bin/sh
/usr/bin/rsync -avz -e ssh 172.16.170.10:/tmp/rsync_source/ /tmp/rsync_target
---------------------------------------------------------------------------------------
# crontab -e
00 03 * * * /bin/sh /root/backup/rsync_backup.sh > /dev/null 2>&1
6) rsyncd.conf 설정에 의한 서비스 데몬 실행
위 4번의 방법으로 안될경우 고전적인 방법으로 rsyncd 를 기동하여 파일 주고 받고를 할수 있다
먼저 /etc/rsyncd.conf 의 내용을 추가 수정한다. 포트는 873을 사용하므로 방화벽은 오픈되어 있어야 된다.
앞에도 언급 했듯이 보안상 좋지 않은 설정 이므로 아래 환경 파일에 필히 "hosts allow " 에 접속하는 서버를
등록해 줘야 된다.
임시 용도로 사용한뒤 데몬프로세서를 죽여 놓는게 좋을듯 하다
root@cs1 [/]# vi /etc/rsyncd.conf
syslog facility = local5
uid = root
gid = root
##############################################################
[R]
comment = root directory
path = /
hosts allow = cs1, cs2, cs3
read only = no
timeout = 600
그리고 데몬을 실행 한다.
root@cs1 [/]# rsync --daemon
그러면 프로세서가 수행 되면서 접속 대기를 합니다.
클라이언터쪽 파일 백업받을 서버에서 아래와 같이 수행합니다.
root@cs1 [/]# rsync -avz /tmp/rsync_source cs3::R/tmp/rsync_target
리눅스에는 기본적으로 설치 되어 있는 툴 이므로 자유롭게 사용 가능하다
댓글 0
번호 | 제목 | 날짜 | 조회 수 |
---|---|---|---|
24 |
가우스 장애관련
![]() | 2017.08.25 | 516 |
23 |
보안점검 툴
![]() | 2017.08.25 | 1073 |
22 |
웹 서버 구축 보안점검 가이드
![]() | 2017.08.25 | 495 |
21 |
windows_2008_security_guide.pdf
![]() | 2017.08.25 | 312 |
20 |
HPUX 보안설정 가이드
![]() | 2017.08.25 | 581 |
19 |
Weblogic 보안설정
![]() | 2017.08.25 | 228 |
18 |
EP Oracle WebLogic Server
![]() | 2017.08.25 | 1613 |
17 |
DDos 공격대응 가이드
![]() | 2017.08.25 | 231 |
16 |
tcp 상태 전이도
![]() | 2017.08.24 | 577 |
15 |
Sun os mirror
![]() | 2017.08.24 | 3542 |
14 |
Oracle begin end backup
![]() | 2017.08.24 | 1584 |
13 |
안전한 패스워드 가이드
![]() | 2017.08.24 | 296 |
12 |
IBM ds3500 guide
![]() | 2017.08.24 | 899 |
11 |
Sun t2000 manual
![]() | 2017.08.24 | 20838 |
10 |
Oracle asm
![]() | 2017.08.24 | 561 |
9 |
Ftp passive mode
![]() | 2017.08.24 | 212 |
8 |
Ipsec for windows
![]() | 2017.08.23 | 214 |
7 |
Dns 보안
![]() | 2017.08.23 | 20304 |
6 |
Linux shell script
![]() | 2017.08.23 | 289 |
5 |
Vtl quick start guide
![]() | 2017.08.23 | 537 |