Browsing articles in "裝機紀錄"
四月
11
2014

使用s3cmd將EC2的資料庫備份到S3

EC2是使用EBS當作儲存的空間,而EBS標準的儲存費用是每GB $0.08,而S3標準的儲存費用是每GB $0.033,算下來有兩倍多的價差,因此將資料庫備份存放在S3是比較節省費用的方式。

AWS將於2014年4月21日取消原本使用root帳號的access key和secret key的方式,詳細內容請看
官方公告: Coming soon! An important change to how you manage your AWS account’s access keys

首先我們先假設以下幾件事情

  • 已經建立好/root/mysqlbackup這個目錄
  • 已經有access key和secret key,不管是使用原本AWS root帳號或者是使用IAM的方式取得
  • 已經建立好S3 bucket,並且設置好相關的權限

1. 前置作業: 安裝s3cmd

安裝的方式可以使用yum或者是apt-get等方式,如果是使用yum記得要加入epel這個repo

2. 設定s3cmd

執行s3cmd –configure(注意是兩個-),根據畫面的提示填入access key和secret key,以及其它的設定

3. 完成前面兩個步驟之後,我們就可以透過下面的步驟達成以下的目的

  • 建立名為db-backup.sh的備份執行檔
  • 建立七天一個循環的資料庫備份
  • 將壓縮的備份檔傳送到S3
  • 刪除本地的備份檔
  • 每天凌晨兩點鐘自動進行備份

cd /root
vi db-backup.sh

#!/bin/sh
weekday=$(date +%a) #抓出今天是星期幾

mysqldump -u資料庫帳號 --password='資料庫密碼' --add-drop-table 要備份的資料庫名稱 > mysqlbackup/備份檔案的名稱.sql #執行資料庫備份
tar -jpcf mysqlbackup/備份檔案的名稱_$weekday.tar.bz2 mysqlbackup/備份檔案的名稱.sql #將備份檔壓縮
s3cmd put mysqlbackup/備份檔案的名稱_$weekday.tar.bz2 s3://S3的bucket名稱/ #將壓縮的備份檔傳送到S3

# 移除本地的備份檔案
cd /root/mysqlbackup/
rm -f 備份檔案的名稱.sql 備份檔案的名稱_$weekday.tar.bz2

4. 測試

chmod 700 db-backup.sh
./db-backup.sh

5. 加入排程

crontab -e
00 02 * * * /root/db-backup.sh

存檔離開
後續我會繼續寫如何搭配IAM,並且建立適宜的權限來進行備份到S3
四月
10
2014

解決Comodo PositiveSSL在firefox上不受信任的連線問題

Comodo PositiveSSL對於個人使用來說是一個相當划算便宜的SSL憑證,透過cheapSSLSecurity購買五年只需要美金23.99。

當完成購買並且下載憑證相關檔案之後,Chrome可以正常的讀取到SSL憑證,但是Firefox卻會出現警告,畫面類似下圖。
SSL連線不受信任
錯誤碼是: sec_error_unknown_issuer

以往的作法是我們會上傳ca boundle檔,但是在apache 2.4使用這個設定時,會出現這個設定即將不再被支援的提示訊息。因此我們正確的作法是將Comodo所提供的三個crt檔合併,指令如下

cat mydomain.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt > mydomain_ssl.crt

接下來到Web Server的SSL設定檔中修改下面兩行

SSLCertificateFile /etc/httpd/CA/mydomain_ssl.crt
SSLCertificateKeyFile /etc/httpd/CA/mydomain.key

然後重新啟動Web Server,就可以解決連線不受信任的連線問題了

產生CSR和private key的指令,可以參考修復OpenSSL CVE-2014-0160資安漏洞後必做工作 第三項:更新網站SSL憑證所使用的Key和CSR
四月
9
2014

修復OpenSSL CVE-2014-0160資安漏洞後必做工作

OpenSSL的CVE-2014-0160漏洞被揭露之後,我們除了要進行OpenSSL的更新之外,還要避免我們原本的SSL Key在修復前就被偷走的風險,因此建議做以下的防護動作。

更新SSH Host Key
sudo ssh-keygen -f /etc/ssh/ssh_host_rsa_key -b 4096 -t rsa
sudo ssh-keygen -f /etc/ssh/ssh_host_dsa_key -b 1024 -t dsa

  • -b 是指Key的長度,建議至少設置在2048以上
  • dsa 的長度則一定是1024

更新使用者的key
切換到該使用者之後
ssh-keygen -b 4096 -t rsa

  • -b 是指Key的長度,建議至少設置在2048以上
  • 如果這位使用者原本的key,有存放在另外其它主機的authorized_keys,記得其它主機的authorized_keys也要一併更新

更新網站SSL憑證所使用的Key和CSR
openssl req -new -newkey rsa:4096 -nodes -sha256 -out [NAME].csr -keyout [NAME].key

  • 請將 [NAME] 換成你自己常用的名稱,建議跟原本的名稱一樣,這樣後面可以少做一些修改
  • rsa:4096 是指private key的長度,可以選擇2048, 3072, 4096三種長度
  • -sha256 加上這個參數是用來產生SHA-256的CSR,並且用來產生SHA-2的SSL憑證
  • 記得先備份原本的SSL憑證相關檔案: key, csr, crt和bundle crt這幾個檔案
  • 如果忘記原本csr的內容,可以打開現在csr的檔案,把內容貼到CSR Decoder這個網站去做反解,得到當初填寫的內容
  • 到申請SSL的網站進行re-key,然後把csr貼上去
  • 等待大約5分鐘,就會拿到新的crt
  • 修改Web Server SSL相關的設定,以Apache為例就是修改 /etc/httpd/conf.d/ssl.conf
  • 重新啟動Web Server

頁次:1234567»