FTPS를 이용한 lftp 자동 백업 스크립트 만들기: .lftprc 활용 및 상세 설명 (Creating an Automatic Backup Script Using lftp with FTPS: Utilizing .lftprc with Detailed Explanations)

lftp는 강력한 FTP 클라이언트로, FTPS를 포함한 다양한 프로토콜을 지원한다. 이 글에서는 .lftprc 파일을 활용하여 설정을 최적화하고, FTPS를 사용한 자동 백업 스크립트를 만드는 방법을 상세히 알아본다.

1. lftp 고급 설정 (.lftprc 파일)

홈 디렉토리에 .lftprc 파일을 생성하고 다음 내용을 입력한다:

set ssl:priority NORMAL:+VERS-TLS1.0:+VERS-TLS1.1:+VERS-TLS1.2
set ftps:initial-prot ""
set ftp:ssl-auth TLS
set ftp:ssl-allow true
set ftp:ssl-force true
set ftp:ssl-protect-list true
set ftp:ssl-protect-data true
set ftp:ssl-protect-fxp true
set ssl:verify-certificate false
set ssl:check-hostname false
set net:reconnect-interval-base 0

각 설정의 상세한 의미는 다음과 같다:

  1. set ssl:priority NORMAL:+VERS-TLS1.0:+VERS-TLS1.1:+VERS-TLS1.2
  • SSL/TLS 연결 시 사용할 프로토콜 버전을 지정한다.
  • NORMAL 우선순위를 기본으로 하되, TLS 1.0, 1.1, 1.2 버전을 명시적으로 활성화한다.
  • 이는 다양한 서버와의 호환성을 높이기 위한 설정이다.
  1. set ftps:initial-prot ""
  • FTPS 연결 시 초기 보호 수준을 설정한다.
  • 빈 문자열(“”)로 설정되어 있어, 서버의 기본 설정을 따르게 된다.
  1. set ftp:ssl-auth TLS
  • FTP 연결 시 SSL/TLS 인증 방식을 TLS로 설정한다.
  • 이는 보안 연결을 위해 TLS 프로토콜을 사용하겠다는 의미이다.
  1. set ftp:ssl-allow true
  • FTP 연결 시 SSL/TLS 사용을 허용한다.
  • 이 설정으로 보안 연결이 가능해진다.
  1. set ftp:ssl-force true
  • 모든 FTP 연결에 SSL/TLS 사용을 강제한다.
  • 이 설정으로 인해 비보안 연결은 거부된다.
  1. set ftp:ssl-protect-list true
  • 디렉토리 목록 전송 시 SSL/TLS 암호화를 사용한다.
  • 이로써 디렉토리 정보가 노출되는 것을 방지한다.
  1. set ftp:ssl-protect-data true
  • 파일 전송 시 SSL/TLS 암호화를 사용한다.
  • 이 설정으로 전송되는 파일의 내용이 보호된다.
  1. set ftp:ssl-protect-fxp true
  • FXP(File eXchange Protocol) 사용 시 SSL/TLS 암호화를 적용한다.
  • 서버 간 직접 파일 전송 시에도 보안이 유지된다.
  1. set ssl:verify-certificate false
  • SSL/TLS 인증서의 유효성 검증을 비활성화한다.
  • 이는 보안상 위험할 수 있으므로 주의가 필요하다.
  1. set ssl:check-hostname false
    • SSL/TLS 연결 시 호스트명 확인을 비활성화한다.
    • 이 역시 보안상 위험할 수 있어 주의가 필요하다.
  2. set net:reconnect-interval-base 0
    • 연결 실패 시 재연결 시도 간격의 기본값을 0으로 설정한다.
    • 이는 연결 실패 시 즉시 재시도함을 의미한다.

2. FTPS를 이용한 백업 스크립트 작성

‘backup_ftps.sh’ 파일을 생성하고 다음 내용을 입력한다:

#!/bin/bash

FTPS_HOST="ftps.example.com"
FTPS_USER="username"
FTPS_PASS="password"
FTPS_DIR="/path/to/backup/"
LOCAL_DIR="/path/to/local/directory/"

lftp -c "
open $FTPS_HOST
user $FTPS_USER $FTPS_PASS
cd $FTPS_DIR
mirror -R -c $LOCAL_DIR
bye
"

이 스크립트는 다음 작업을 수행한다:

  1. FTPS 서버 접속 정보와 로컬 디렉토리 경로를 변수로 설정한다.
  2. lftp 명령을 사용하여 FTPS 서버에 연결한다.
  3. 지정된 로컬 디렉토리의 내용을 FTPS 서버의 지정된 디렉토리에 미러링(업로드)한다.

.lftprc 파일에 이미 SSL/TLS 관련 설정이 포함되어 있으므로, 스크립트에서는 이러한 설정을 반복할 필요가 없다.

3. 스크립트 실행 권한 부여 및 자동 백업 예약

스크립트에 실행 권한을 부여하고 cron을 사용하여 자동 백업을 설정한다:

chmod +x backup_ftps.sh
crontab -e

crontab에 다음 줄을 추가한다:

0 2 * * * /path/to/backup_ftps.sh

이 설정은 매일 오전 2시에 FTPS 백업을 실행한다.

이렇게 설정된 lftp 백업 시스템은 .lftprc 파일을 통해 일관된 FTPS 설정을 유지하면서, 자동화된 안전한 백업 기능을 제공한다. .lftprc의 각 설정에 대한 이해를 바탕으로 필요에 따라 설정을 조정할 수 있으며, 정기적인 백업으로 데이터 손실을 방지할 수 있다.

Leave a Reply

error: Content is protected !!