본문 바로가기

IT

Rsync 보안 강화 - SSH와 함께 사용하는 방법

1. Rsync와 SSH의 관계

Rsync는 네트워크를 통해 파일을 전송할 수 있는 강력한 동기화 도구지만, 단독으로 사용할 경우 전송 과정에서 데이터가 노출될 수 있다. 이때 **SSH(Secure Shell)**를 결합하면 데이터가 암호화된 채 전송되므로 안전성을 크게 높일 수 있다. 즉, Rsync의 효율성과 SSH의 보안성을 동시에 확보할 수 있다.

2. SSH를 통한 Rsync 사용 기본 예시

로컬 데이터를 원격 서버로 동기화하면서 SSH를 사용하는 방법은 다음과 같다:

 
rsync -avz -e ssh /home/user/data/ user@remote_server:/backup/data/
  • -e ssh: 전송에 SSH 프로토콜 사용
  • -avz: 아카이브 모드, 자세한 출력, 압축 전송 옵션
  • 암호화된 채널을 통해 안전하게 파일이 전송됨

3. SSH 키 기반 인증 설정

비밀번호 입력 없이 자동화된 보안 연결을 위해 SSH 키를 사용하는 것이 일반적이다.

  1. SSH 키 생성
 
ssh-keygen -t rsa -b 4096
  1. 공개 키를 원격 서버에 복사
 
ssh-copy-id user@remote_server
  1. 이제 비밀번호 입력 없이 SSH 접속 및 Rsync 실행 가능

이 방식은 자동화 백업(crontab 등) 환경에서 특히 유용하다.

4. 보안을 강화하는 추가 방법

1) 전용 계정 사용

  • root 계정 대신 백업 전용 계정을 만들어 사용하는 것이 안전하다.
  • 해당 계정에 필요한 디렉토리만 접근 권한을 부여한다.

2) SSH 포트 변경

  • 기본 포트 22를 다른 포트로 변경하면 무차별 대입 공격(Brute-force)을 줄일 수 있다.
 
rsync -avz -e "ssh -p 2222" /home/user/data/ user@remote_server:/backup/data/

3) IP 제한

  • SSH 접속을 특정 IP로 제한해 불필요한 접근을 막는다.
  • 방화벽(UFW, iptables) 규칙을 통해 설정 가능하다.

4) rsync 전용 옵션

  • --partial: 전송 도중 끊겨도 이어받기 가능
  • --bwlimit: 대역폭 제한으로 서버 과부하 방지
  • --delete: 원본에서 삭제된 파일을 동기화 대상에서도 삭제

5. 로그와 모니터링

  • Rsync 실행 로그를 남겨 정기적으로 확인하면 이상 징후를 빠르게 파악할 수 있다.
  • Fail2ban 같은 툴을 사용해 SSH 로그인 시도를 감시하고, 비정상 접근을 차단할 수 있다.

6. 결론

Rsync는 단독으로도 강력하지만, SSH와 함께 사용하면 데이터 전송 보안이 강화된다. SSH 키 기반 인증, 포트 변경, IP 제한 같은 방법을 병행하면 자동화와 보안을 동시에 확보할 수 있다. 안정적이고 안전한 파일 동기화 환경을 원한다면 반드시 SSH와 함께 Rsync를 활용하는 것이 바람직하다.