2016年7月29日 星期五

Nginx 從 Cloudflare 獲取 Source IP 及寫入 logs

如果你有使用 Cloudflare 應該就會發現抓到的 source IP 都是錯的,這是由於你在前端加了一個 Proxy (Cloudflare) 必須 read ip from Cloudflare

 

在之前有寫到如何從 Proxy 獲取 Source IP:CentOS 6 安裝 Nginx Cache Reverse Proxy + Purge plugin

 

那麼 Cloudflare 要如何知道 Proxy IP 以及 real_ip_header

2016年7月21日 星期四

架設 HA 高可用性:MySQL DRBD + Heartbeat - 兩台式架構 HA (Master/Slave)

在 MySQL HA 架構,企業中使用最頻繁的就是 DRBD + Heartbeat,其原因沒有別的,就是最省錢;只需要兩台 Database Server,並且使用 Master / Slave Fail-over 進行備援,若是 Master 掛掉,只需要在短短的幾秒內即可讓 Slave 升上 Master 上線服務。

 

MySQL HA 有幾種選擇 MHA、MMM、Keepalived、Heartbeat、Pacemaker ..

使用兩台式的 Master / Slave 的缺點上就是沒有第三台 Monitor Server 協助判定主機 Active / Dead以及切換,所以在技術上如果沒有處理好的話就會造成 split-brain 的狀況,這樣就必須要人為介入處理

 

DRBD + Heartbeat 官方也提供了 split-brain 的自動復原功能 Configure-split-brain-behavior

 

在這篇是採用 DRBD + Heartbeat 做 LAB 使用,架構如下:

MySQL DRBD + Heartbeat (two host)

2016年7月17日 星期日

ISDA 雲端資安分享:shellshock 滲透測試 - CVE-2014-6271

今天去參加了 ISDA 的 AWS 雲端資安推廣活動,自從 ISDA 的駭客入門(一) 開始小弟就持續的參與,對於台灣資安這一塊小弟只能以行動支持。

 

這次活動大綱是

  • Cloud service SaaS/PaaS/IaaS 的區別

    • 軟體即服務 SaaS (Software as a Service):應用在雲端的軟體,如 Gmail、Youtube、Facebook 等線上應用軟體,也已有企業將 ERP、CRM 等服務應用上 Cloud service。

    • 平台即服務 Paas (Platform as a Service):在 Cloud service 提供平台讓管理者可以建置自己的服務,節省成本、維護建置、管理等,如 Amazon AWS Webservice、Microsoft Azure Webservice、Google App Engine 等耳熟能詳的平台解決方案,你只需要開發程式碼,Paas 即提供你所需要的 service。

    • 基礎設施即服務 Iaas (Infrastructure as a Service):這類型就等於是把管理主機直接移上雲端,甚至是機房架構,讓你不再需要維護機房設備,在 Cloud service 就提供了你整套的機房設置,包含 WAF、VPC、CDN 等環境建置。



  • AWS 的 VPC(Virtual Private Cloud)、EC2(Elastic Compute Cloud)的建置,我覺得重點在於教導你如何使用 VPC 將企業機房導入 Cloud service,VPC 提供 policy zone 讓你規劃 DMZ、LAN 等區域,甚至你還可以使用 site to site VPN 的方式將企業內網和 Cloud service zone 建立內網,這是一些許多企業慢慢將內部重要服務導入 Cloud service 的第一步,當然 site to site VPN 中間的資料傳輸與加密避免外洩資訊是必須要研究與探討的。

  • Workshops Wargame 小遊戲:蒐集資訊(scanner port)、尋找漏洞(shellshock)、如何繞過安全性低的弱點(upload type name)


2016年7月12日 星期二

MySQL 預設資料庫損壞或遺失,用 mysql_install_db 安裝預設資料庫

這幾天一直在同一台做 MySQL lab,基於懶惰沒有直接把環境還原快照就進行下一個 lab,結果在啟動 MySQL service 的時候失敗

 

在 mysql.log 裡面找到一行錯誤訊息:
Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist

架設 HA 高可用性:MySQL Cluster 叢集 – 架設第二台 Management node

在前一篇寫過 MySQL Cluster 的安裝文件:架設 HA 高可用性:MySQL Cluster 叢集 – 7.4.11(5.6.29)

 

在裡面的每一台 node 都有很好的備援機制,唯獨 management node 僅有一台,雖然他僅僅是監控 cluster 而無其他用途,但身為系統人員如果要安裝的放個假,睡個覺的話,management node 也加入第二台也讓 management node 也有容錯機制吧!

2016年7月8日 星期五

茶包專欄:MySQL 使用 ROOT 也無法 GRANT 權限 Access denied

首先小弟必須先說,在技術領域上如果遇上很不可思議的問題,通常都是人為居多,即使是你已知的觀念都有可能因此而顛覆

 

在這篇的茶包在一開始小弟也覺得不可思議,但找到問題後,真的是感觸良多。

2016年7月7日 星期四

架設 HA 高可用性:MySQL Cluster 叢集 - 7.4.11(5.6.29)

前陣子架設了一套 MySQL Cluster 叢集的架構,終於在最近補上了實作過程,叢集的概念就是把一台式架構拆分為多台式架構,並且可以提供 HA 高可用性與負載均衡的需求,更不需要擔心延展性的問題,若是 Loading 加大了只需要增加 node 去分擔 Loading

 

MySQL Cluster Nodes:

  • Manage Nodes:負責監控叢集所有 Nodes 的狀態,並且由此控制所有 Nodes 的替換。

  • Data Nodes:負責所有 SQL Data 的 Nodes,單純儲存資料,將資料寫在 RAM & Disk。

  • SQL Nodes:負責 SQL 的 Table schema 和 Client 連接的空間。


 

MySQL Cluster architecture :

MySQL Cluster