2024年1月10日 星期三

安裝 ikev2 VPN on Ubuntu 20.04

一、前言:

VPN 主要目的不是要做違法之事, 而是要連往某些有限制拜訪來源或是有安全性限制網域時的橋樑,既然是要連往具有嚴格安全性管制網域自然在 VPN 的通訊協定上必須要使用一種安全性較高的 VPN 協定,傳統的 PPTP/L2TP 雖有安全性,但並不足夠安全。近幾年屬於 IPSec[1] ikev2 (Internet Key Exchange version 2) [2] 是一個較為普及通用的加密的VPN 通訊協定。至於 ikev2 是如何運作, 可以參考 ARAVIND .S 這篇 blog 的介紹[3]

二、安裝 ikev2 VPN server @ Ubuntu 20.04

目前許多作業系統都可以安裝 ikev2 VPN server (包含 windows server [4]), 在此我參考 cloud infrastructure service 這篇文章進行安裝[5]

1.     先更新系統上的 packages 保持在最新的版本
sudo apt-get update
sudo apt-get upgrade

2.     修改 /etc/sysctl.conf IP 能夠做 forward (因為做VPN 就想像是多一張虛擬網卡)editor vi nano 都可以。
sudo nano /etc/sysctl.conf



上面白色字的3行原來是有 mark 註解的,將它們拿掉。

3.     重新啟動 sysctl
sudo sysctl -f

4.     安裝 StrongSwan VPN
支援 ikev2 的服務有很多[2],但目前用的較多的為StrongSwan[6],我們透過 apt-get 安裝它及相關套件。
sudo apt-get install strongswan strongswan-pki libcharon-extra-plugins libcharon-extauth-plugins libstrongswan-extra-plugins libtss2-tcti-tabrmd-dev

5.     安裝憑證授權機構(Certificate Authority, CA)與證書(Certificate)

(1).   產生所需目錄與儲存CA與證書
sudo mkdir -p /root/pki/{cacerts,certs,private}

(2).   產生 root 金鑰以便等會簽署CA
sudo pki --gen --type rsa --size 4096 --outform pem > /root/pki/private/ca-key.pem

(3).   使用上面金鑰產生 root CA
sudo pki --self --ca --lifetime 3650 --in /root/pki/private/ca-key.pem --type rsa --dn "CN=VPN root CA" --outform pem > /root/pki/cacerts/ca-cert.pem

(4).   簽署給 VPN server 用的證書與金鑰
sudo pki --gen --type rsa --size 4096 --outform pem > /root/pki/private/server-key.pem

(5).   使用之前 CA key 簽署 VPN server 證書, IP 用你 VPN server IP(這裏用xxx.xxx.xxx.xxx 取代。
sudo pki --pub --in /root/pki/private/server-key.pem --type rsa | pki --issue --lifetime 1825 --cacert /root/pki/cacerts/ca-cert.pem --cakey /root/pki/private/ca-key.pem --dn "CN=xxx.xxx.xxx.xxx" --san xxx.xxx.xxx.xxx --flag serverAuth --flag ikeIntermediate --outform pem > /root/pki/certs/server-cert.pem

(6).   拷貝所有證書到 /etc/ipsec.d 資料夾
sudo cp -r /root/pki/* /etc/ipsec.d/

6.     設定 StrongSwan VPN server

(1).   將原舊 ipsec.conf 備份
sudo mv /etc/ipsec.conf /etc/ipsec.conf.bak

(2).   新編寫一個 ipsec.conf
sudo nano /etc/ipsec.conf


(3).   編寫 /etc/ipsec.secrets 檔案
sudo nano /etc/ipsec.secrets

(4).  



其中 vpnusername 寫你要使用的帳號名稱
securepassword 寫上你的密碼

(5).   重新啟動StrongSwan 服務
sudo systemctl restart strongswan-starter

(6).   檢測 strongswan 的狀態
sudo systemctl status strongswan-starter

7.     Client 端的使用
在此使用Android StrongSwan 做範例

(1).   先下載你的 VPN 憑證證書到你的手機並導入
    /etc/ipsec.d/cacerts
中的 ca-cert.pem 檔案

(2).   StrongSwan 做設定時輸入你的IP/帳號/密碼外,最重要的是要導入你的VPN 憑證後方可使用




====================================

References

1.     https://en.wikipedia.org/wiki/IPsec , Access on 2024-01-08.

2.     https://en.wikipedia.org/wiki/Internet_Key_Exchange , Access on 2024-01-08.

3.     https://www.linkedin.com/pulse/ikev2-vpn-protocol-explained-what-how-works-aravind-s/ , Access on 2024-01-08.

4.     https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/hh831807(v=ws.11) , Access on 2024-01-08.

5.     https://cloudinfrastructureservices.co.uk/setup-ikev2-vpn-server-on-ubuntu-20-04/ , Access on 2024-01-08.

6.     https://strongswan.org/ , Access on 2024-01-08.

 

 


2024年1月5日 星期五

Centos 7 上的 apache 升級 SSL + Cert

 一、前言:

        現在的 browser 都對沒有使用 SSL 與憑證的 web 提出不安全連線的警告, 為了不要讓我的智慧門牌一直出現這問題, 打算對 Centos 上的 apache2 web daemon 升級.


二、 Steps

1. 安裝 mod_ssl 模組,更改設定檔與重新啟動

    基本上參考 [1] 中的方法, 依自己的設定做修改即可, 摘要如下:

     (1) 安裝 SSL module
           sudo yum install mod_ssl

    (2) 產生給 TLS/SSL 用的憑證
          
            請注意, 這裏產生的是給https 通訊協定的 TLS/SSL 用的私有加密憑證, 跟你去外面申請的公開憑證不同, 這個即使安裝了, 你在連線時是使用 https 了, 但仍然會說你不安全, 因為伙沒有去申請一個公開憑證去證明你網站的身份.

    (3) SSL module 安裝好了之後, 在 /etc/ssl 下會有一個 certs 資料夾. 你需要自己再建一個 private 資料夾.
          sudo mkdir /etc/ssl/private

    (4) 修改 private 權限
          sudo chmod 700 /etc/ssl/private

    (5) 使用 OpenSSL 產生自己簽署的 key 與certificate pair 
           
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt|
           執行過程會要你回答一些問題:
            <1> 國碼: 我寫 TW
            <2> 城市名: 我寫 New Taipei City
            <3> 地名: 我寫 Xin Zuang
            <4> 公司或組織名: 我寫 FJCU
            <5> 單位: 我寫 HEC
            <6> 伺服器 domain: 我寫 macgyver.fjcu.org (沒有 domain 就寫 static public IP)
            <7> 連絡人 email; 這就留你的 email 即可

        (6) 設定私有憑證
              <1> 移到你 apache 設定資料夾 /etc/httpd/conf.d
                        cd /etc/httpd/conf.d
              <2> 產生編輯一個你 domain (或IP) 的設定檔, 在此我用我的domain ,  在此編輯器你用 vi 或 nano 都可以.
                        sudo vi /etc/httpd/conf.d/macgyver.fjcu.org.conf
                      將下列資料寫到該檔案中 (ServerName 用自己的 domain)
           

              <3> 產生如果對方使用 http 連線時能自動轉到 https 
                        sudo vi /etc/httpd/conf.d/non-ssl.conf
                        將下列檔案寫到檔案內 (ServerName用自己的 domain)
                        

          (7) 修改 apache 啟動 service
                <1> 先檢查語法有沒有問題
                        sudo apachectl configtest
                <2> 重新啟動 apache service
                        sudo systemctl restart httpd.service
                <3> 防火牆要打開 443 port  (看你用那套防火牆)
                        <i> 用 iptables 的
                                sudo iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
                                sudo iptables -I INPUT -p tcp -m tcp --dport 443 -j ACCEPT
                        <ii> 用 firewalld 的
                                sudo firewall-cmd --add-service=http
                                sudo firewall-cmd --add-service=https
                                sudo firewall-cmd --runtime-to-permanent
         (8) 測試連線
                因為你是使用私有憑證, 所以仍有憑證問題, 但可以用 https 連線了. 公有憑證等第2點來談.

2. 使用免費憑證

    你在安裝 OpenSSL 之後所安裝的是私人憑證(可想像是私人信用), 在網路上沒有人要相信你, 所以你必須找到一個可以發公開憑證的單位給你發憑證去認可你. 但憑什麼要免費幫你做公開認可呢? 所以多數出來幫你擔保的都要收費. 

    在此我們介紹一個免費的發公開憑證的服務, 但一次效期 3 個月, 期限到再去請. 相關文件可先去 Let's Encrypt[2] 網站上先閱讀文件, 在此直接以 Centos 7 的 apache 做範例. 我選用的是 certbot [3].

    (1) 選擇使用的 web daemon 與 OS
            https://certbot.eff.org/instructions

    (2) 安裝 snap[4], 我以Centos 為例
            依據你的 Centos 版本先選擇安裝 EPEL (我是 Centos 7)
            <1> 
sudo yum install epel-release

      <2> 透過 EPEL repo 安裝 snapd
            
sudo yum install snapd

      <3> 透過 systemd enable snapd socket
            
sudo systemctl enable --now snapd.socket

      <4> 產生 snapd library 連結
            
sudo ln -s /var/lib/snapd/snap /snap

  (3) 移除你系統先前安裝過的 certbot
        
sudo yum remove certbot

  (4) 安裝 certbot
        sudo snap install --classic certbot

  (5) 做指令連結
        sudo ln -s /snap/bin/certbot /usr/bin/certbot

  (6) 取得公開憑證
        sudo certbot certonly --apache

  (7) 測試是否可自動取得新憑證
        sudo certbot renew --dry-run

  (8) 將上述寫到你的 crontab 中, 每 3 個月自己 renew 一次




3. 完工



=============================

References

1. https://www.digitalocean.com/community/tutorials/how-to-create-an-ssl-certificate-on-apache-for-centos-7 

2. https://letsencrypt.org/zh-tw/docs/

3. https://certbot.eff.org/

4. https://snapcraft.io/docs/installing-snapd

2023年11月12日 星期日

2023 音樂總結

《盘点2023年最火的20首歌曲,都是曾刷屏短视频的BGM,你都听过吗#音乐分享 #音乐 #抖音热歌 #程响》 - 


「汽水音乐」

2023年9月27日 星期三

杭州亞運的科技

杭州是阿里巴巴總部,也是許多高科技產業所在地,各式各樣的先進科技在此都有應用。

這此杭州亞運營造了許多先進展示,有空可以去上海,杭州這幾個離台較近的城市了解。

2023年9月22日 星期五

2023年8月22日 星期二

福州換大陸駕照經驗(附租車經驗)

一、前言

      時間過的真快, 大陸駕照拿了6 年了.  台灣人如何在大陸取得駕照, 可見這篇6年前的文章

      總結就是, 你若不想不考筆試科一, 就花錢辦臨時駕照, 期效半年, 開私家車一定可以, 但租車不一定租的到(有些租車店不願租給這種臨時駕照的). 若是要持有固定駕照, 就只要去考科一筆試即可, 有考古題題庫, 背一背即可. 持國際駕照是無法在大陸駕車的. 

二、換照地點

     當年想考照時是在成都, 原本想在成都考, 後來讀考題中有一題換照要到何處換: 答案是考照處. 嚇我一跳, 後來決定是在平潭考. 當時兩岸關係還好, 去考時, 當天並沒有考試, 平潭車管所還單獨幫我跟我內人開間考場讓我們考. 後來2019年初, 我帶我學弟去考時就沒有這福利.

    因此, 我打算到平潭去換照. 我是透過小三通過去, 坐飛機到南竿, 再由南竿坐小三通到福州馬尾, 這價錢比直接坐飛機到永樂便宜太多. 而且因為兩岸航班並未完全恢復, 由松山飛福州的飛機是晚上10點才到, 怎麼算都是小三通划算.

    在決定旅程時, 知道疫情這三年平潭變化很大, 高鐡也通了, 京台高速也做到平潭了😂😂, 車管所多了科二科三考場換了地點, 體檢醫院也多了一家. 但也同時發現大陸現在換駕照不用到原發照點, 甚至當地居民可以網路上換照(你會問, 體檢怎麼做, 這等會談). 因此, 我最後決定在福州換照, 不到平潭. 

三、換照程序

1. 先體檢:

     到車管所配合的體檢醫院即可, 跟台灣駕照一樣有配合診所(輔大診所就有). 這資料可以到網路上找. 不在這詳列. 我原本是到網友介紹的一家鼓樓醫院, 但運氣不好, 在整修. 

     後來我去福州中醫院健檢中心. 櫃台小姐沒做過台胞有駕照換證(因為我們台灣證號與大陸身份證號不同), 後來經過研究後由我們駕照上的號碼幫我們登記並現場拍照. 體檢費20 元人民幣.

     登記完後由一位醫生幫我們只做了視力檢查(其它外觀看沒問題都勾正常). 我們最擔心視力, 要 0.8 (當地值是5)以上, 天氣熱, 我跟內人都眼鏡起霧, 即使擦了都也都落在0.6, 好緊張. 但醫生老神哉哉, 一點都不在意, 一直叫我們別緊張, 說看到什麼說什麼. 原來, 當我們確定看不清楚後, 他會拿個鏡片(像配眼鏡一樣), 幫我們調整度數後再測就都正常了, 這時真是滿滿的感動.

     體檢完是醫師要幫我們上傳到網路上, 因為我們是台胞證, 所以最後有印出給我們, 而大陸民眾則是直接跟他們二代身份證結合. 這也是為什麼他們能用網路換照了. 車管所在接到你的申請時會確認你的體檢結果. 

  

2. 換照

    換照要找車管所或負責單位, 我找了體檢中心附近的一個24小時服務處(當地人可刷二代身份證24小時進入辦理相關事務), 該單位有人工服務. 進入時要刷二代身份證, 但我們沒有, 跟警衛說了後, 他叫我們直接到沒人的位置直接辦(算插隊了), 辦的時候承辦警官很客氣. 我繳了一張照片與原照之外, 剩下要繳規費10 元人民幣, 但這只能由12123上繳費, 所以他幫我繳, 我再給他10元即可. 整個過程不到5分鐘就拿到新駕照了, 這次是10年期.  


    

四、心得

    在大陸考照、換照的體驗都很棒, 但內人跟我說, 太資訊化老人或鄉下的人怎麼辦. 

    他們這幾年除了可透過網路申辦換照之外, 連體檢也提供自動化到車管所的自動化中心依提示體檢即可, 所以我在抖音或小紅書那有看到有人自助體檢的影片. 體檢完資料就上傳, 然後駕照就可換了. 這幾年除了考照之外, 他們也有人開始考飛行駕照, 考上可租飛機飛行.  


附錄、有駕照後的租車:

    即使你拿到大陸正式駕照, 也不是所有車行都可以租給你, 要看他有沒提供租給港澳台的居民. 一般我們都是透過支付寶, Trip, 高德, 百度這些平台找租車, 當然你也可以用神州, 一嗨, 悟空等平台. 

    租車除了租車費之外, 還要有押金(租車與違章), 違章押金要等一個月後才退給你(要保證你沒有違規). 押金有時比租車費用還貴.  以我四月分在無錫租車來說, 我租Toyota 一年內的新車 cross 一天平圴才 184 人民幣, 但我保全險, 也就是什麼都不用賠這種, 兩天也才747 人民幣, 但我的租車押金要3000人民幣, 違章押金要2000元, 共5000人民幣. 這時支付室的芝麻信用就很重要了, 你的分數到一個標準以上(每家租車不同, 但至少都要600 以上, 甚至要650) , 這兩樣都有機會不用先付. 



    在大陸開車很方便, 不會不安全. 但電子違規抓很兇, 若不注意, 例如台灣人最愛的佔用左右轉車道便利而行或壓線都會被電子拍照. 這時一定要用高德或百度導航, 不但會提供你路況資訊, 還會告訴你那裏有什麼電子拍照, 甚至紅綠燈秒數剩幾秒都會顯示(大數據技術使用). 此外, 使用北斗衛星, 精準度比GPS好(GPS 卅年舊了, 美國在做第二代).








花妖 - 刀郎『妳看那天邊追逐落日的紙鳶,像一盞回首道別夤夜的風燈』【動態歌詞】

配上故事, 在七夕聽會非常有 fu 

2023年7月27日 星期四

刀郎新歌 羅剎海市

刀郎這新歌火爆了,沒有足夠的文學底子寫不出來,沒文學基礎還看不出來。罵人不帶髒字,諷刺現況還死無對證的最高境界。


馬戶==馿

又鳥==鳮


#聊齋 #中國好聲音 #當今社會 #諧音哏


羅剎海市

2023年4月4日 星期二

20230331 解封松山飛虹橋經驗分享

 一、 回報2023/03/31由松山飛虹橋的經歷

  1. 搭 1430出發飛虹橋的長榮 BR722,預訂 1600到。結果長榮 delay 到1535才起飛,抵達虹橋 1700,停好機約 1710。原來比我們晚出發的另一家大陸國航1500準時出發。
  2. 下機前整機又被中國海關整機檢查後,才分批下機,直到 1730才出飛機。
  3. 入上海時若已填好健康申報書,取得健康通行碼後即可出關。這申報表在松山登機前就需填好,辦行李拖運就會提醒你。記得先截圖備份,入境上海時顯示給出空橋機艙的檢查人員查即可,有就過,不會看內容。
  4. 整體入境安檢非常快,約2分鐘就結束,因為在飛機上耽延近20分鐘,所以行李不用等,早在行李盤上,出機場時為1745。
  5. 我要到虹橋車站坐高鐡到無錫,因為在第一航站,所以要出站坐地鐡10號線,經過2站到虹橋車站,走到地鐡站約5-7分鐘,地鐵開約10分鐘,再到車站檢票口,我到檢票口附近時已1813,我的車子為1803,所以完全不可能坐到,我在1750先退票,手續費20元人民幣
  6. 因為今天為星期五火車票完全賣完,排後補2班都補不到,得到的結果是今天都沒票了。大巴也沒票,用高德打車,車價估快600,但都進不來塞車要等。最後站內找到一位願意載的含車費,過路費與油錢共800,送到無錫飯店門口,全程高速開了2個多小時才到。

二、結論

  1. 大家之前問的PCR都沒檢查
  2. 原本我預留了2小時由機場到車站,結果班機的1小時延誤還不夠。建議各位留3小時較保險。若真早到再改簽提早即可。若班機沒延誤,整體出關拿行李及坐地鐵應50-60分鐘 。
  3. 虹橋航站1與2是對立的就像一邊在民權東路,一邊在高速公路高架那端,虹橋寛度是松山至少2-3倍,走路就別想了,最快就是地鐵10號線。
  4. 地鐵很擠,因為最後2站是2航站國內線跟虹橋車站,我們第一班還擠不上,要有心裏準備。
  5. 火車票一定要先預訂,現場買不容易,若碰到週末,完全沒位子。大陸4/1幾乎完全解封了,人潮很多。

    以上經驗與大家分享