最近將網站重新升級至 FreeBSD 12.1 的版本,其中 Web Server 的部份仍延用 Apache 使用

另外因為目前 HTTPS 已經是基本標準了,但啟用 HTTPS 不代表一定是安全,還是有一些地方要注意的

因分享一下我是如何調整 Apache 來符合 SSLLabs A+ 標準

螢幕快照 2020-04-25 上午11.26.12.png

1. 首先要調整 Cipher,這是我的設定

SSLCipherSUite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH EDH+aRSA !CAMELLIA !SEED !3DES !RC4 !aNULL !eNULL !LOW !MD5 !EXP !PSK !SRP !DSS"

2. 調整 SSL Protocol,只支援 TLS 1.2 以上

SSLProtocol +TLSv1.2 +TLSv1.3

3. 讓網站支援 HSTS,我是加在 httpd-ssl.conf 每個 VirtualHost 底下第一行

Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"

4. 讓網站 DNS 支援 Certification Authority Authorization (CAA)

可以參考這篇文章說明,設定 DNS CAA 紀錄,保護自己的 SSL/TLS 憑證

另外我用的 Apache 版本是 2.4.43,OpenSSL 的版本是 1.1.1.d

 

文章標籤

Bojack 發表在 痞客邦 留言(0) 人氣()

今晚將 MySQL 5.7 裝了起來,但無法像以前一樣用 root 身份登入進去修改密碼

發現原來是要先取得一組臨時密碼後才能登入使用,簡單說明一下

1. 先按照以前的指令登入

# mysql -u root -p (按Enter)

Enter password: (直接按Enter)

這時會得到 Access denied 的錯誤訊息,不過這是正常的

2. 切換到家目錄找臨時密碼

# cd ~

# cat .mysql_secret

這時應該就可以發現有一組看起來蠻複雜的臨時密碼,請把它複製下來

3. 重新登入 MySQL 並重設密碼

# mysql -u root -p (按Enter)

Enter password: (貼上剛才的新密碼)

這時應該就登入成功了,最後我們再來重設一下資料庫密碼就完工了

root@localhost > ALERT USER 'root'@'localhost' IDENTIFIED BY '新密碼';

以上就是 MySQL 5.7 安裝好之後重新修改密碼的方法囉 !

Bojack 發表在 痞客邦 留言(0) 人氣()

Burp Suite 在滲透測試上是很常被利用到的工具,但如果想要「測試」他人主機時,又不想曝露自己的身份(也就是 IP 位置)的話,那該怎麼做咧 ?

這時就得靠 Tor 來幫忙了,Tor 是個全球性的計劃,意旨在希望能保護用戶的行為能不被追蹤

因此這篇教學就很快介紹我是如何用我的電腦在使用 Burp Suite 時,能透過 Tor 來達到隱藏身份的方法

首先這是我的架構示意圖

螢幕快照 2019-07-07 下午12.37.36.png

Bojack 發表在 痞客邦 留言(0) 人氣()

今天都在研究 Google reCAPTCHA 這機制,相信大家都已經知道這是個反制機器人登入的好東西

依 iThome 於去年 10/30 說明的這篇文章,目前的 reCAPTCHA 已經出到了 v3,而 v3 和 v2 最大的差別就在於它不再要求使用者與網站之間的互動

而是依使用者的行為計算分數後,再讓網站管理者判斷是否要再進一步進行驗證

分享一下我的作法 ~ 首先要先到 reCAPTCHA Admin Console 建立 v3 的驗證資料,記得要勾選 v3 喔 !

建完之後會得二組金錀,一組是網站本身用的,另一組是用來和 Google 主機連線驗證使用,接下來分享我實作的程式碼

首先這是登入頁面的 index.php 程式

<html>
  <head>
    <title>Google recapcha v3</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://www.google.com/recaptcha/api.js?render=這邊填入網站本身的金錀">      
    </script>
    <script>
      grecaptcha.ready(function() {
      grecaptcha.execute('這邊填入網站本身的金錀', {action: 'homepage'}).then(function(token) {
        var recaptchaResponse = document.getElementById('recaptchaResponse');
        recaptchaResponse.value = token;
      });
  });
  </script>
  </head>
  <body>
    <h1>Google reCAPTHA Test</h1>
    <form id="testform" action="form.php" method="post" >
      <input type="email" name="email" placeholder="輸入email" size="40"><br><br>
      <input type="submit" name="submit" value="送出"><br><br>
      <input type="hidden" value="" name="recaptcha_response" id="recaptchaResponse">
    </form>
  </body>
</html>

接下來這是第二頁 form.php 程式

<?php
$recaptcha_url = 'https://www.google.com/recaptcha/api/siteverify';
$recaptcha_secret = '這邊填入和Google連線使用的金錀';
$recaptcha_response = $_POST['recaptcha_response'];

//Make and decode POST request:
$recaptcha = file_get_contents($recaptcha_url . '?secret=' . $recaptcha_secret . '&response=' . $recaptcha_response);
$recaptcha = json_decode($recaptcha);

//如果驗證成功,就進一步計算使用者分數,官方回饋分數為 0-1,分數愈接近 1 就是正常,低於 0.5 以下就有可能是機器人了
if($recaptcha->success==true){
   if($recaptcha->score >= 0.5) {
       echo 'Pass !';
   } else {
       echo 'Spammer';
   }  
} else {
  echo 'Connection failed';
}
?>

大概就是這樣,至於連線 Google 驗證回傳的值請再參考官網相關說明

reCAPTCHA v3

Verifying the user's response

參考資料

1. recaptcha v3 with php

2. https://gist.github.com/webeasystep/85a20c9278dc5c3763ef82848c7d0558

Bojack 發表在 痞客邦 留言(0) 人氣()

目前透過一些網站 (如 What's MyIP) 或瀏覽器外掛 (如 Wappalyzer) 都可以很簡易識別公開在網路上 Web 伺服器的主機資訊

若不希望被人知道目前主機是用什麼版本,只要透過修改 Apache 及 PHP 的二個設定檔就可以隱藏起來了

Apache 的部份只要在 httpd.conf 裡面加入以下二行

ServerSignature Off

ServerTokens Prod

PHP 的部份只要在 php.ini 設定一行

expose_php = Off

這樣子就可以囉 !

Bojack 發表在 痞客邦 留言(0) 人氣()

假設您的 Wordpress 原來網址是 www.abc.com.tw 因為某種原因要換成 www.def.com.tw,要怎麼做呢 ? 

步驟其實不會太麻煩,不過請先記得先備份您的資料庫 ! 先備份您的資料庫 ! 先備份您的資料庫 ! 

說了很重要的事情三次後,接下來進入正題

第一步驟

登入您的 Wordpress 後台,點選「設定」->「一般」,請將原本舊的 WordPress 位址(URL)網站位址(URL) 直接換成新網址後,拉到最下按「儲存變更」即可

這邊的網址後面不需要加最後面的 / 喔,請注意 ~ 這時就會發現連不到網站後台了,不用擔心

第二步驟

請連進資料庫後台,針對 Wordpress 的 Database 要下幾個關鍵的 SQL 語法,總共有 4 個要做

UPDATE wp_options SET option_value = replace(option_value, 'https://舊網址', 'https://新網址') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET guid = replace(guid, 'https://舊網址','https://新網址');
UPDATE wp_posts SET post_content = replace(post_content, 'https://舊網址', 'https://新網址');
UPDATE wp_postmeta SET meta_value = replace(meta_value,'https://舊網址','https://新網址');

第一個 SQL 有可能會是 0 筆是正常的喔,另外 SQL 語法裡的 http 或 https 請視您自己網站原本的協定為主,像我的網址都有啟用 https,若您的沒有就請用 http 即可

就這樣,結束 ! 至於您的 Web Server 有另外要調整 Apache or IIS 設定請再自行調整即可 ~

 

Bojack 發表在 痞客邦 留言(0) 人氣()

之前用 MAC 主機內的終端機要去連其他台 SSH Server 主機時,常會因為連線時間閒置過久而被踢出中斷

Google 了一下發現這篇文章,其實是可以透過三種方式設定的

1. 在連線時直接加入參數,ssh -o ServerAliveInterval=10 keepsdroppingme.com

2. 在個人資料夾底下的 .ssh 目錄加入一個檔案 config,檔案內加入一行設定 ServerAliveInterval=10 即可,指令參考如下

# vi ~/.ssh/config

3. 修改全系統 ssh 設定,此方法需要 root 權限才能修改,一樣加入一行 ServerAliveInterval=10 即可,指令參考如下

# vi /etc/ssh_config

文章標籤

Bojack 發表在 痞客邦 留言(0) 人氣()

簡述幾個安裝步驟

首先安裝 Certbot Ports 套件,這也是 Let's Encrypt 建議的工具
# cd /usr/ports/security/py-certbot/
# make install clean

這過程會有一點久,因為它要連同一起裝 python

安裝好之後就可以來申請憑證了,首先先確認您的網站根目錄在哪兒,以我的來說是在 /usr/local/www/apache24/data 底下,這路徑等等會用到

申請憑證指令如下 (請自行更換紅字網址名稱)

# certbot certonly --webroot --webroot-path /usr/local/www/apache24/data/ -d www.bojack.com

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): bojack@bojack.com <--- 請輸入您的 Email

Bojack 發表在 痞客邦 留言(0) 人氣()

以前更新 FreeBSD 的 Ports 都是用 cvsup,但在新版本都不適用了,取而代之的是用 portsnap

簡單記錄一下步驟

1. 先更新 /etc/portsnap.conf 裡的 SERVERNAME=portsnap.tw.FreeBSD.org,改成指向台灣的站

2. 第一次使用 Portsnap 請先下指令 #portsnap fetch extract

3. 日後要更新 Ports 就下指令 #portsnap fetch update

Bojack 發表在 痞客邦 留言(0) 人氣()

以前連線到有 https 的網站時,在 Chrome 瀏覽器的網址列都可以直接查看網址資訊,但自從某一次 Chrome 改版後就再也無法直接看到了

解決的方式如下,點選 Chrome 右上角的設定 ( 3 個 . 的那符合 ) -> 更多工具 -> 開發人員工具 -> 在上面找到 Security 就可以看到網站用的憑證囉 !

但還是想不透為什麼 Chrome 要把它搞得那麼複雜就是 ~ 

Bojack 發表在 痞客邦 留言(0) 人氣()