검색

22.4. 설정 예

download PDF

22.4.1. 데몬으로 rsync

Red Hat Enterprise Linux를 사용하는 경우 rsync를 데몬으로 사용하여 여러 클라이언트가 중앙 집중식 파일을 보관하고 동기화된 상태로 유지하도록 중앙 집중식 서버로 직접 통신할 수 있습니다. 다음 예제에서는 올바른 도메인에서 네트워크 소켓을 통해 rsync를 데몬으로 실행하는 방법과 SELinux에서 이 데몬이 사전 정의된(SELinux 정책) TCP 포트에서 실행될 것으로 예상하는 방법을 보여줍니다. 이 예제에서는 rsync 데몬이 비표준 포트에서 정상적으로 실행되도록 SELinux 정책을 수정하는 방법을 보여줍니다.
이 예제는 단일 시스템에서 SELinux 정책 및 로컬 데몬 및 프로세스에 대한 제어 권한을 시연하기 위해 수행됩니다. 이 예제는 SELinux가 rsync에 어떤 영향을 미칠 수 있는지를 보여줍니다. rsync의 포괄적인 설명서는 이 문서의 범위를 벗어납니다. 자세한 내용은 공식 rsync 설명서 를 참조하십시오. 이 예제에서는 rsync,setroubleshoot-serveraudit 패키지가 설치되어 있다고 가정하고, SELinux 대상 정책이 사용되며 SELinux가 강제 모드로 실행 중이라고 가정합니다.

절차 22.1. rsync가 rsync로 시작됨_t

  1. getenforce 명령을 실행하여 SELinux가 강제 모드로 실행 중인지 확인합니다.
    ~]$ getenforce
    Enforcing
    
    명령은 SELinux가 강제 모드에서 실행 중일 때 Enforcing (강제)을 반환합니다.
  2. rsync 바이너리가 시스템 경로에 있는지 확인하려면 which 명령을 실행합니다.
    ~]$ which rsync
    /usr/bin/rsync
    
  3. 데몬으로 rsync를 실행하는 경우 구성 파일을 사용하고 /etc/rsyncd.conf 로 저장해야 합니다. 이 예에서 사용된 다음 구성 파일은 매우 간단하며 사용 가능한 모든 옵션을 나타내는 것은 아니며 rsync 데몬을 시연하기에 충분합니다.
    log file = /var/log/rsync.log
    pid file = /var/run/rsyncd.pid
    lock file = /var/run/rsync.lock
    [files]
    	path = /srv/rsync
            comment = file area
            read only = false
            timeout = 300
    
  4. 이제 rsync가 데몬 모드에서 작동하도록 간단한 구성 파일이 있으므로 다음 명령을 실행하여 시작할 수 있습니다.
    ~]# systemctl start rsyncd.service
    rsyncd 가 성공적으로 시작되었는지 확인합니다(출력은 아래와 유사하게 표시되며 타임스탬프만 다릅니다).
    ~]# systemctl status rsyncd.service
    rsyncd.service - fast remote file copy program daemon
       Loaded: loaded (/usr/lib/systemd/system/rsyncd.service; disabled)
       Active: active (running) since Thu 2014-02-27 09:46:24 CET; 2s ago
     Main PID: 3220 (rsync)
       CGroup: /system.slice/rsyncd.service
               └─3220 /usr/bin/rsync --daemon --no-detach
    
    이제 SELinux는 rsync _t 도메인에서 실행 중이므로 rsync 데몬을 통해 보호 메커니즘을 적용할 수 있습니다.
    ~]$ ps -eZ | grep rsync
    system_u:system_r:rsync_t:s0     3220 ?        00:00:00 rsync
    
이 예제에서는 rsync _t 도메인에서 rsyncd 를 실행하는 방법을 보여줍니다. rsync는 소켓이 활성화된 서비스로도 실행할 수 있습니다. 이 경우 클라이언트가 서비스에 연결을 시도할 때까지 rsyncd 가 실행되지 않습니다. rsyncd 가 socket-activated 서비스로 실행되도록 하려면 위의 단계를 따르십시오. rsyncd를 socket-activated 서비스로 시작하려면 다음 명령을 루트로 입력합니다.
~]# systemctl start rsyncd.socket
다음 예제에서는 이 데몬이 기본이 아닌 포트에서 성공적으로 실행되도록 하는 방법을 보여줍니다. 다음 예제에서는 TCP 포트 10000이 사용됩니다.

절차 22.2. 기본이 아닌 포트에서 rsync 데몬 실행

  1. /etc/rsyncd.conf 파일을 수정하고 글로벌 구성 영역(즉, 파일 영역을 정의하기 전에)의 파일 맨 위에 port = 10000 행을 추가합니다. 새 구성 파일은 다음과 같이 나타납니다.
    log file = /var/log/rsyncd.log
    pid file = /var/run/rsyncd.pid
    lock file = /var/run/rsync.lock
    port = 10000
    [files]
            path = /srv/rsync
            comment = file area
            read only = false
    	timeout = 300
    
  2. 이 새로운 설정으로 rsync 데몬을 시작한 후 다음과 유사한 거부 메시지가 SELinux에서 로깅합니다.
    Jul 22 10:46:59 localhost setroubleshoot: SELinux is preventing the rsync (rsync_t) from binding to port 10000. For complete SELinux messages, run sealert -l c371ab34-639e-45ae-9e42-18855b5c2de8
    
  3. semanage 유틸리티를 사용하여 rsync_port_t 의 SELinux 정책에 TCP 포트 10000을 추가합니다.
    ~]# semanage port -a -t rsync_port_t -p tcp 10000
  4. 이제 rsync_port_t 의 SELinux 정책에 TCP 포트 10000이 추가되었으므로rsyncd 가 이 포트에서 정상적으로 시작되고 작동합니다.
    ~]# systemctl start rsyncd.service
    ~]# netstat -lnp | grep 10000
    tcp        0      0 0.0.0.0:10000   0.0.0.0:*      LISTEN      9910/rsync
    
SELinux는 정책을 수정했으며 이제 rsyncd 가 TCP 포트 10000에서 작동할 수 있게 되었습니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.