WordPress on SELinux

使用過 SELinux 的人一定對這套軟體又愛又恨,愛的是他可以協助系統免於惡意傷害,但是往往在防止別人傷害前先傷害了自己人。

2019 年要離開交通大學的實驗室,必須移除在交通大學占用的 IP 地址,因此將網站伺服器轉至 Linode 上。但是轉上去的過程中碰到了蠻多嚴重問題的,原版三台伺服器,由最前端 Proxy 導流量交給後端 Web 伺服器,並讓 Web 伺服器獨立跟 DB 伺服器溝通。

但是上了 Linode 之後就要節省每個月的開銷,三台伺服器合成一台機器使用(希望沒有人想破壞我的伺服器)。這時候就碰到了 SELinux 摧毀 WordPress 的慘狀。

閱讀全文 WordPress on SELinux

Linode create VPS

現在這一版本的 Linode 在產生一個 VPS 實例時,是不會幫使用者產生一個超級使用者的,而是幫助 root 使用者增加強密碼與 SSH key。

因此在安裝完系統後仍需要對系統做一些後續處理才算是完成系統設定。所使用的是 CentOS 8,並會執行以下三個步驟,分別為:

  1. 產生一個超級使用者
  2. 移除 root 登入
  3. 修改 hostname
閱讀全文 Linode create VPS

Pritunl client on Linux server

Pritunl 是一個基於 OpenVPN 的 VPN 系統,因為基於 OpenVPN,所以必須部分開源。但是在各項表現上都比原本的 OpenVPN 來的更加優異,是目前我找到最簡單的 VPN 軟體,安裝與設定上,官方已經將繁瑣的設定簡化。同時具有 web 控制頁面,是一款懶人都可以完成設定的 OpenVPN。

但是官方在 Client 的說明較低,不確定是官方故意的還是官方認為不重要,尤其是如果使用的是 server 版本 Linux 要執行 pritunl-client,就顯得完全沒有文件可以參考了,只剩下指令的 help 可以使用。

閱讀全文 Pritunl client on Linux server

output MySQL & MariaDB log

在 MySQL 與 MariaDB 中可以設定輸出 Log 檔案,並且有三種 Log 分別紀錄 error 錯誤訊息,query 資訊,與過於緩慢的 query 資訊。這些資訊有助於我們在管理 MySQL 資料庫,但是因為我想把這些 Log 資訊全部送往 rsyslog,所以必須先將這些資料輸出成檔案,再利用 rsyslog 的轉發功能送到遠端伺服器。

Environment
OS:CentOS 7.5
MariaDB:10.2.17

閱讀全文 output MySQL & MariaDB log

rsyslog with logrotate

之前我們提到了利用 rsyslog 把各地的機器 Log 檔案傳回一台管理機器上,但是這些檔案會越長越大,必須適當的讓檔案定時的刪減,要不然一個檔案包含了 20-30 個月的資料,管理者也沒有辦法輕易的經過調查 Log,因此定時的將資料一份一份的抽離很重要的,尤其是依照時間方式分離,可以很有效的減低日後反查資料的困難度。

Environment
OS:CentOS 7.5
logrotate:3.8.6

閱讀全文 rsyslog with logrotate

Upgrade rsyslog on CentOS

在 CentOS 上,rsyslog 的版本是 8.24,官方說目前最新版本為 8.37,因此可以依照自己的需求進行更新。目前嘗試的結果,8.37 版本的錯誤資訊比較清楚,不確定是我設定上問題還是本來就是這樣。當然我們也只能相信官方會把軟體越修越好,錯誤越來越少。

Environment
OS:CentOS 7.5

閱讀全文 Upgrade rsyslog on CentOS

rsyslog with RELP protocol

rsyslog 是基於 syslog 後衍生出來的新 service,新的系統在支援與設定上都遠優於 syslog,使用更簡單設定,進行大量的模組化修改,增加了彈性與更容易閱讀。這樣的調整讓 Linux 系統家族大量的預設採用 rsyslog,例如在作業系統 CentOS 7.5 已經將 rsyslog 8 版本帶進系統。

Environment
OS:CentOS 7.5
rsyslog:8.24.0
rsyslog-relp:16.el7_5.4

閱讀全文 rsyslog with RELP protocol