back to top
10 C
New York
목요일, 12월 19, 2024

Buy now

랜섬웨어 대응, 매일 매일 자동으로 드롭박스(Dropbox)로 백업 받는 방법

1. 클라우드에 별도 자동 필요성 – 3중 4중의 백업이 필요

요 며칠새 인터넷나야나라고하는 나름 중견 웹호스팅업체가 랜섬웨어에 걸렸다고 대대적으로 방송을 비롯한 뉴스에서 나오면서 백업의 중요성에 대해서 새삼 강조되고 있습니다.

이번 랜섬웨어에 걸린 인터넷나야나는 백업서버조차 감염되었고, 따라 평소에 제대로 백업을 받아놓지 않은 사이트들은 복구에 어려움을 격고 있다는 이야기가 많습니다. 그런 상황이다보니 인터넷나야나에서는 해커들과 협상을 한다는 소식이 들려오고 있습니다.

백업을 해놓지 않은 사이트들은 미국 비영리 백업단체인 web.archive.org에서 조금 지났지만 백업된 자료를 찾을 수 있다고 소개드렸습니다만 해커들에게 비용을 지불하든 아니면 랜섬웨어를 무력화시키든지해서 빨리 안정화되기르 기원합니다.

랜섬웨어 감염으로 사이트 백업본이 필요하다면 – 비영리 백업 단체 web.archive.org를 활용해 보자

저는 주로 vultr의 snapshot 기능을 활용해 백업을 해왔는데요. 문제가 발생하면 가장 최근 snapshot으로 되돌리면되기때문에 정말 편리했습니다. 서버라는게 옵션을 변동시켰다가 원복을 시켜도 또같이 작동하지는 않드라구요. 워낙 변수가 많다보니 이전과 같은 옵션으로 변경해도 서버가 제대로 작동하지 않는 경우도 있어 이때는 무식하게 되돌리는게 너무 편하긴합니다.

그러나 이 snapshot도 서버내에 있기 때문에 이번 인터넷나야처럼 서버가 망가지면 snapshot도 무용지물이되어버리므로 온전한 DB와 Contents를 외부 제3의 장소에서 보관할 필요가 있습니다.

▽ Vultr의 스냅샷 기능,
편리하긴 하지만 이 또한 서버에 있어서 백업 파일을 외부로 보내어 저장할 필요가 있습니다.

VPS vultr_Anapshots 스냅샷 활용

2. 어디다 백업해야 할까?

백업을 보강하기 위한 몇가지 요구 조건을 정리해 보겠습니다.

첫째, 서버가 아닌 외부에 백업을 받을 수 있어야 합니다. 이번 인터넷나야나 사태가 외주 저장의 중요성을 확실히 알려주었네요.

둘째, 매뉴얼이 아닌 자동으로 매일 백업을 받을 수 있어야 합니다. 현업에 바쁘다보면 깜박 백압을 잊고 지나치는 경우가 많죠. 그러다 위기는 갑자기 닥치죠.

셋째, 무료로 사용하거나 비용이 거의들지 않았으면 좋겠습니다. 너무 공짜를 좋아하면 안되지만 비용을 들이지 않고도 할 수 있는 방법이 있다면 당현히 해야죠.

넷째, 가능하면 속도에 영향을 주지 않토록 플러그인이 아니었으면 좋겠습니다.

이러한 네가지 조건에 부합하는 방안이 있는지 찾아보니 생각외로 방법이 많치 않네요. 서버의 크론 기능을 활용하고, 외부 클라우드로 업로드 기능을 활용하는 방안이 어렵지만 위 4기지 조건을 완벽하게 부합하는 방안입니다.

물론 유료 플러그인을 사용하면 드롭박스박스를 비롯한 구글, MS One drive등등 클라우드에 자동으로 백업해주는 서비스가 많이 있습니다.

▽ 드롭박스로 백업해주는 플러그인들,
큰 고민없이 이들 중 하나를 사용하는 것도 좋은 방안입니다.
다만 입맛에 딱맞는 플러그인은 드물다고 할 수 있습니다.

드롭박스 백업 플러그인 Dropbox backup plug in

이런 플러그인외 속도와 비용등을 고려해 선택한 방안은

서버의 크론 기능 + Dropbox-uploader 기능 활용해 매일 Dropbox로 백업해 보내는 방법

그러면 이를 하려면 어떻게 해야할까요?

3. 드롭박스 업로더 설치 및 세팅

우선 서버에서 Dropbox로 백업한 파일을 올리는 방법을 찾았습니다.

이 방법은 nova님의 포고플러그 시스템 및 데이터 파일 백업과 Dropbox 이용 라는 글을 참조해 재구성하였습니다.

이를 이용하려면 물론 Dropbox에 가입되어 있어야 합니다. 예전에 Dropbox가 공격적인 마케팅을 할 시에는 용량 확보가 용했는데요. 요즘 Dropbox 실적 압박을 받다보니 용량 확보는 비지니스로 업그레이드하는 쪽으로 많이 유도하는 것 같습니다. 저는 예전에 갤럭시 스마트폰을 사면 거기서 제공하는 50GB를 사용하곤 했는데요, 한때는 사용 기간을 2년으로 하더니 언제부터인가는 1년 사용후 업그레이를 하라고 하더군요. 크게 업드레이드 사용 필요성을 느끼지 못해서 하지는 않아 현재 8.5GB 용량이 있습니다.

Dropbox를 가입하면 기본으로 2GB는 줍니다, 여기에 추천등을 통해서 조금씩 용량 확보를 할 수 있고 업그레이드르하면 Dropbox Plus의 경우 1TB 용량을 월 9.99$ / 1년 99.00$에 상요할 수 있습니다.

3.1. Dropbox-Uploader 설치

우분투서버에서 드롭박스로 파일을 올리려면 관련 프로그램이 필요한데요 이를 가능케 서버에서 드롭박스로 파일을 올려주는 프로그램인 Dropbox-Uploader를 설치해야 합니다.

서버에 git가 설치되어 있다면 아래 명령어로 Dropbox-Uploader를 설치합니다. 원하는 폴더를 정해서 설치하는데 /usr/bin 폴더에 설치하겠습니다.

cd /usr/bin
git clone https://github.com/andreafabrizi/Dropbox-Uploader/

3.2. Dropbox-Uploader 설정

이 다음에는 스크립트에 실행 권한을 부여하고 실행합니다. 처음 실행하면 여러분의 드롭박스 계정에 Dropbox-Uploader를 연결하는 작업을 실행하게 됩니다.

cd /usr/bin/Dropbox-Uploader
chmod +x dropbox_uploader.sh
./dropbox_uploader.sh

이렇게 드롭박스에 접속하면, 처음이라면 아래와 같은 메세지가 나옵니다.

 This is the first time you run this script, please follow the instructions:

 1) Open the following URL in your Browser, and log in using your account: https://www.dropbox.com/developers/apps
 2) Click on "Create App", then select "Dropbox API app"
 3) Now go on with the configuration, choosing the app permissions and access restrictions to your DropBox folder
 4) Enter the "App Name" that you prefer (e.g. MyUploader27108302810158)

 Now, click on the "Create App" button.

 When your new App is successfully created, please click on the Generate button
 under the 'Generated access token' section, then copy and paste the new access token here:

 # Access token:

▽ 터미널에 나타난 메세지

Dropbox access

그러면 터미널 화면에서 시키는대로 Access Token을 받을 수 있는 https://www.dropbox.com/developers/apps로 이동합니다.

첫번째 단계로 Create App을 선택
둘번째 단계는 이어 나오는 화면에서 API로 ‘Dropbox API app’을 선택하고 Type은 Full Drop Box를 선택합니다. 전 무슨 일이 있을 지 몰라서 전 폴더 접근 가능한 Full Dropbox를 선택했습니다. 이어 적당한 App 이름을 넣습니다. 전 MyUploader_happist라고 이름을 지었습니다.

▽ 드롭박스 업로더 연결 세팅 2번째 단계

드롭박스 업로더 연결 Dropbox-Uploader Crop

세번째 단계는 새로운 App인 MyUploader_happist를 세팅하는 단계인데요. 여기에서 Generated access token 버튼을 눌러서 토큰을 생성합니다. 그러면 아주 긴 토큰이 형성되는데요. 이 토튼을 복사해 터미널에 붙입니다.

그러면 이제부터는 디랍박스 업로더를 이용할 준비가 다 된 것입니다.

▽ 드롭박스 업로더 연결 세팅 세번째 단계

드롭박스 업로더 연결 세팅 Dropbox-Uploader Setting

▽ 접근에 필요한 토큰 입력 후 터미널 모습

Dropbox access Token 입력 접근에 필요한 토큰 입력

3. 드롭박스 업로더할 파일 생성 및 업로드 스크립트

참조했던 우성군님이나 nova님은 상당히 복잡한 스크립트를 사용하셨던던데 실제로 적용하면 서버에서 설정이 다른지 제대로 working하지 않아 최대한 직접 경로를 사용해서 만들었습니다.

우성군님의 방법은Mysql 백업을 드롭박스에 하기 두번째 방법 를 참고하세요. 스크립트가 매우 세련되고 효율적입니다. 아쉽게도 저희 서버에는 맞지가 않네요. 아쉽..

아래는 제가 나름대로 재정리하ㅐ 만든 스크립트입니다.

#! /bin/bash
mysqldump -u아이디 -p비밀번호 데이타베이스이름 > wpbackup.sql(저장할이름을 취향에 따라 정함)

tar -zcvf wpbackup.tgz wpbackup.sql*  # 단순 sql 파일은 너무 크므로 압축을 해준다.  wpbackup.tgz은 원하는 파일 이름으로 변경할 수 있다.

rm *.sql*   # 압축 파일이 있으므로 *.sql 파일은 삭제한다.

# Dropbox-Uploader로 원하는 파일을 dropbox로 올린다. 구분을 위해 파일 이름에 시간을 표시 했다.
# 시간 표시중에 Year를 표시하는 %y는 자꾸 에러가나서 적용하지 않았다.
/usr/bin/Dropbox-Uploader/dropbox_uploader.sh upload wpbackup.tgz /myDB/"wpbackup$(date +%m%d%H%M).tgz"

위 스크립트로 실행하니 제대로 작동하네요. 거의 3시간 삽질한 끝에 제대로 작동하는 스크립트입니다. 고수들이 보시기엔 우습겠지만 초심자에게는 생각보다 쉽지는 않네요.

▽ 드롭박스에 파일이 올라간 모습

드롭박스에 파일이 올라간 모습 Uploaded file in dropbox folder

5. crontab(크론탭)에서 정기적으로 백업토록 명령 설정

crontab -e   # 이 명령어로 crontab(크론탭) 명령을 입력, 편집 합니다.

30 4 * * * dbbackup.sh  # 크론 맨 마자막 줄에  매일 새벽 4시30분에 작업 수행토록 명령

crontab(크론탭)을 사용해 정기적으로 명령을 수행토록하는 방법에 대해서는 서버에서 자동 실행을 가능케 해주는 crontab(크론탭) 설정 방법 에서 자세하게 다루었습니다. 저와같이 헤매는 초보분들이 참조해 도움을 드리고자 정리해 봤습니다.

spot_img

Latest articles

Related articles

spot_img