ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Rsync
    정보보안/리눅스 2020. 4. 13. 17:38

    Rsync란?

    Rsync란 linux에서 server와 client에서 두 시스템간에 지정한 디렉토리를 동기화 하는 프로그램을 말한다.

    corn 이라고 하는 유닉스 계열 컴퓨터 운영체제의 시간 기반 잡 스케줄러를 이용하면 Rsync의 사용성을 확대할 수 있다.

    [<link>corn 사용법]

     

    local 내에서 mount된 외부저장소를 이용하면 backup 디렉토리를 따로 만들 수 있지만 이번 실습은 외부 backup server를 구성하여 작업하는 방식으로 진행하려고 한다.

     

    1번 pc (client)는  x.x.10.142주소를 가진 CentOS를 이용했으며

    2번 pc (server)는 x.x.10.143주소를 가진 CentOS를 이용하였다. 

    1. server 설정. 

    yum list rsync를 이용하여 현재 패키지가 존재하는지 확인한다.

    [root@centos7chan ~]# yum list rsync 

    Loaded plugins: fastestmirror, langpacks 

    Loading mirror speeds from cached hostfile 

     * base: data.aonenetworks.kr 

     * epel: ftp.iij.ad.jp 

     * extras: mirror.kakao.com 

     * rpmforge: repoforge.spinellicreations.com 

     * updates: mirror.kakao.com 

    Installed Packages 

    rsync.x86_64                      3.1.2-6.el7_6.1                      @anaconda 

     

    rsync의 관련파일은

     * 데몬 : /usr/bin/rsync

     * 관리 스크립트 : /usr/lib/systemd/system/rsyncd.service

     * 백업 설정 파일: /etc/rsyncd.conf

    가 존재하며 이 파일들 중에 백업 설정파일 수정으로 서버의 설정이 가능하다.

     

     

    아래처럼 파일을 확인하면

    [root@centos7chan ~]# cat /etc/rsyncd.conf

    # /etc/rsyncd: configuration file for rsync daemon mode

     

    # See rsyncd.conf man page for more options.

     

    # configuration example:

     

    # uid = nobody

    # gid = nobody

    # use chroot = yes

    # max connections = 4

    # pid file = /var/run/rsyncd.pid

    # exclude = lost+found/

    # transfer logging = yes

    # timeout = 900

    # ignore nonreadable = yes

    # dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2

     

    # [ftp]

    #        path = /home/ftp

    #        comment = ftp export area

     

    아래는 추가적인 설명이다.

    [서비스명 ]: 리소스 식별자, client에서 이용    client에게 알려줘야함.

    Path : 백업경로     미리 생성해 두어야함.

    Comment : 주석

    Uid : 전송자 UID

    Gid : 전송자 GID

    Use chroot : yes 설정시 path /인식한다. 보안기능중 한 개        

    Read only : 읽기 전용으로 접근한다.

    Hosts allow : 접속 허용할 호스트 (클라이언트만 지정)

    Max connections : 동시접속자수

    Timeout : 2~3초를 부여한다.

    따라서 아래와 같이 vi를 이용하여 파일을 설정하면 sever의 설정은 종료된다.

    [backup]

    path = /backup

    uid = root

    gid = root

    use chroot = yes

    read only = yes

    hosts allow = 192.168.10.142

    max connections = 1

    timeout = 300

     server를 실행하고자 하면 아래의 명령어를 실행한다.

    [root@chanswap2 /]# systemctl start rsyncd.service     //주석입니다.  service 실행


    [root@chanswap2 /]# ps -ef | grep rsyn  //주석입니다.  service 실행 확인
    root       1582      1  0 16:50 ?        00:00:00 /usr/bin/rsync --daemon --no-detach
    root       2200   1525  0 17:28 pts/0    00:00:00 grep --color=auto rsyn

    2. client 

    다음으로 client 로 넘어가 작업을 진행하자.

    client 의 경우 명령어 하나를 실행하면 파일 불러오기가 가능하다.

    [root@centos7chan backup]# rsync -avz --delete 192.168.10.143::backup ./
    receiving incremental file list
    ./
    3.txt
    a.txt
    b.txt

    sent 88 bytes  received 259 bytes  694.00 bytes/sec
    total size is 16  speedup is 0.05

    위와 같이 server에 담아둔 3.txt, a.txt, b.txt 파일이 정상적으로 동작하였음을 볼 수 있다.

     

     

    client에서 아래와 같은 에러가 발생하면 서버와 클라이언트 설정 모두 수정해주자.

    1. sokcet error IO

    [root@centos7chan backup]# rsync -avz 192.168.10.143::backup /backup

    rsync: failed to connect to 192.168.10.143 (192.168.10.143): No route to host (113)

    rsync error: error in socket IO (code 10) at clientserver.c(125) [Receiver=3.1.2]

    해결방안

    ntsysv  명령어 입력 modem, firewall, networkmanager전부 disable한다.

    재부팅한다.

     

    2. Permission denied (13)

    [root@centos7chan /]# rsync -avz 192.168.10.143::backup /backup

    receiving incremental file list

    rsync: opendir "/." (in backup) failed: Permission denied (13)

    sent 24 bytes  received 117 bytes  282.00 bytes/sec

    total size is 0  speedup is 0.00

    rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1650) [generator=3.1.2]

    해결방안 

    vi /etc/selinux/config 파일의 selinux = enforcing disable 변경한다.

     

     

    '정보보안 > 리눅스' 카테고리의 다른 글

    router 만들기.  (0) 2020.04.17
    vsFTP 설치하고 실행하기  (0) 2020.04.16
    네트워크 자동실행 설정하기  (0) 2020.04.16
    RPM  (0) 2020.04.13
    리눅스 파일구조와 허가권(Linux permission)  (0) 2020.04.10

    댓글

Designed by Tistory.