使用SSH通道登入Mysql 提高資料庫的安全性

使用SSH通道登入Mysql 提高資料庫的安全性

有些時候為了方便性而造成資訊安全上的問題 例如我們為想使用本地的資料庫軟體ex. MySQL Workbench等來登入資料庫做管理 當然只使用帳號密碼的方式登入肯定是有機會被入侵的 所以可以考慮使用SSH通道(SSH Tunnel)來對資料庫連線 使用SSH遠程訪問: 考慮使用SSH隧道,這樣只有SSH訪問被允許,然後通過SSH隧道來訪問MySQL服務。 防火墻的部分只需要開啟ssh的port號即可 $ apt-get install firewalld $ sudo firewall-cmd --permanent --add-service=ssh $ sudo firewall-cmd --reload $ sudo firewall-cmd --list-all 在本地端建立連線 $ ssh -NL 3309:localhost:3306 [email protected] 這個命令使用SSH隧道(tunnel)將本地端口(3309)與SSH伺服器(ssh_server_ip)上的MySQL伺服器的端口(3306)連接起來。 N 連線後不執行指令 f 連線後背景執行 L 是啟用SSH Tunnel 當建立連線後可以使用mysql對其進行登入測試 $ mysql -h 127.0.0.1 -P 3309 -u root -p -– 因為我的主機內是使用docker去跑mysql,當我設定完成時 發現不管怎麼試 防火牆看似無效,我一樣可以單純使用帳密登入該資料庫 試了好一陣子發現,dokcer會自己增加防火牆規則所以要做點修改 做法一 (推薦) 20231113 修正 在啟動container時就設定好該服務是否對外開放 若不對外開放則使用127.0.0.1 好處是可以避免做法二關閉docker防火牆後引發的其他問題 ex. [Read More]
mysql 

SSL憑證安裝 To Install a Certificate

SSL憑證安裝 TWCA 憑證 apache nginx

憑證是甚麼 SSL 憑證 (安全通訊端階層) 是數位證書,用來驗證網站的身分並使用 SSL 技術將資料加密,然後傳送到伺服器。加密是將雜亂無章的資料編寫為無法解譯之格式的一種程序,加密的資料可以透過適當的解密金鑰回傳為可以讀取的格式。 我以前理解的憑證安裝 把拿到的key和cer檔案丟到伺服器對應的位置就好了 然而我想得太簡單(代誌不是憨人想的那麼簡單 我遇到的狀況是將server.cer憑證與key安裝上去後網址確實有出現鎖,也就是安裝成功 但當你使用curl指令時就會發生錯誤了,請參考第三點 curl: (60) SSL certificate problem: unable to get local issuer certificate More details here: https://curl.haxx.se/docs/sslcerts.html 取得TWCA 的憑證後該做甚麼 解開cert.zip後會有下列檔案 主機憑證:root.cer 網域憑證:server.cer 中繼憑證:uca.cer 手動產生Chain Cert 開一個檔案叫做example.com.chained.crt 依序搬動內容到新檔案server.cer uca.cer 請人幫忙產生Chain Cert What’s My Chain Cert 到Generate the Correct Chain把server.cer內容貼上他就會幫你產了 丟上伺服器 scp /d/tom/Downloads/example.com.chained.crt example.com:/opt/dev/nginx/certs example.com.chained.crt Apache安裝憑證 SSLEngine on SSLCertificateKeyFile /path/to/example.com.key SSLCertificateFile /path/to/example. [Read More]

53. Maximum Subarray in python solution

leetcode 53. Maximum Subarray

Given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum. A subarray is a contiguous part of an array. Example 1: Input: nums = [-2,1,-3,4,-1,2,1,-5,4] Output: 6 Explanation: [4,-1,2,1] has the largest sum = 6. Example 2: Input: nums = [1] Output: 1 Example 3: Input: nums = [5,4,-1,7,8] Output: 23 Constraints: 1 <= nums.length <= 105 -104 <= nums[i] <= 104 Follow up: If you have figured out the O(n) solution, try coding another solution using the divide and conquer approach, which is more subtle. [Read More]

13. Roman to Integer in python solution

leetcode 13. Roman to Integer

Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M. Symbol Value I 1 V 5 X 10 L 50 C 100 D 500 M 1000 For example, 2 is written as II in Roman numeral, just two one’s added together. 12 is written as XII, which is simply X + II. The number 27 is written as XXVII, which is XX + V + II. [Read More]