wireguard 初體驗

我打算用OPNsense取代目前老舊的硬體防火牆(Fortigate 80C) , 後來透過OPNsense 外掛, 試了suricata, AdGuard Home, tailcale , wireguard , 總共花了我2周的時間, 對於VPN, site to site , point to site 也都玩了一輪.

其中對於VPN心得:

  1. Wireguard 網路品質比OpenVPN好一些
  2. site to site vpn , 以及 point to site vpn
    請用OPNsense , 作法請參考 https://www.thomas-krenn.com/en/wiki/OPNsense_WireGuard_VPN_Site-to-Site_configuration
  3. wireguard 基本上綁定一個udp port , 與openvpn一樣都只能靠這個udp port做事, 很容易中國被擋下來
  4. 要規避中國防火牆, 請用tailscale + headscale + udp2raw
  5. tailscale安裝完畢,預設使用者管控機制滿好用的,但是要付費才能商用, 若不花錢, 請將使用者管控改成 headscale , headscale可用docker安裝, 然後讓tailscale login server改成headscale即可.
  6. tailscale 做site to site 只能以NAT方式完成, 這會有問題, 以鼎新tiptop GP 5.1來說就無法回撥source ip 的6400 port ,算是假的site to site vpn , 就算官方宣稱加上 –snat-subnet-routes=false 可以辦到, 但我怎麼試都失敗, 網路上大部分也都不在意,看來tailscale使用群更專注在翻牆功能.

wireguard 設定檔簡單解釋如下, 檔案為/etc/wireguard/wg0.conf, 該設定檔可形成 site to site , 但我在Linux設定一直失敗, 只能用NAT方式,最後發現OPNsense才能做到真正的site to site 功能, 太怪了!

[Interface]

# Site A
# private key 
PrivateKey = CG0svjlK7NdZ3U0MdYQzBHx7adDi1p2UlhPFXdH4HHw=
# Site A Tunnel IP
Address = 10.1.0.1/32
ListenPort = 51820

[Peer]
# Site B public key ,  tunnel ip 10.1.0.2/32
PublicKey = Jkdn621+amuCV8Wj7YQLMydtE9GO5kpq+oZdK/17XAY=
# 允許Site B內網, 以及Site B的tunnel ip
AllowedIPs = 10.1.0.2/32,10.176.5.0/24
Endpoint = <Site B 對外ip>:51820
PersistentKeepalive = 25

[Peer]
# Site C public key , tunnel ip 10.1.0.3/32
PublicKey = VaVaSY6SkizEhexj9vSTkzKgaIo5MwMnulu6I/D+iAI=
# 允許Site C內網, 以及Site C的tunnel ip
AllowedIPs = 10.1.0.3/32,192.1.0.0/22
Endpoint = <Site B 對外ip>:51820
PersistentKeepalive = 25

一鍵修改chrome預設語系

chrome宣稱預設語系是英文, 但這是唬爛的, 我們公司越南廠電腦安裝完畢, 預設語系一律自動變成越南文, 這對於IT來說很煩, 要改個設定什麼的, 都是折磨.

爬了文, 可以做成reg檔案, 直接執行就能強制修改預設語系, 終於解決這問題了.

複製以下文字,存成xxx.reg檔案, 再點選匯入即可, 台灣請將en改成 zh-TW , 或是按此下載做好的註冊檔案.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Policies\Google]

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Policies\Google\Chrome]
"ApplicationLocaleValue"="en"

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Policies\Google\Chrome\ForcedLanguages]
"1"="en"

這是強制修改語系, 不能改回去, 若想讓麻瓜能自己再改回去, 請把上面 ForceLanguages 拿掉.

原來我們無時無刻都被分析中 AdGuard Home

我安裝OPNsense防火牆時, 加裝了AdGuard Home 外掛 , AdGuardHome使用dns過濾方式, 來阻擋廣告ip, 我讓公司wifi dns 也導到AdGuardHome, 只要是廣告類的ip, 過濾後, 都會變成0.0.0.0 , 我們不會去訪問到廣告.
幾天後, 真的真的沒想到, 居然高達49% 被濾掉, 仔細一看, 這些ip, 絕大部份是統計,以及分析我們上網行為, 當然商業行為精準知道我們的需求很不錯, 可是拿來做壞的用途也是恐怖.

MaxMind 免費提供ip所在國家資訊

以資安角度, 24小時網路提供的服務, 風險極高. 若確認只在特定國家使用, 就可以使用MaxMind提供ip所在國家資訊, 限制其他國家ip連線,避免不必要的麻煩.

最近想用軟體防火牆來取代公司老舊的硬體防火牆, 我考察很久捨棄PFsense, 改用OPNsense. OPNSense提供簡單MaxMind整合, 可以讓我們進行ip國家使用限制, 非常方便.

我們得先到 https://www.maxmind.com/en/geolite2/signup 註冊帳號,

註冊完畢登入網站, 接下來產生license key
https://dev.maxmind.com/geoip/geolite2-free-geolocation-data?lang=en

產生完license key之後, 就可以下載ip國家資料, 可以參考一下OPNsense提供的方式

https://docs.opnsense.org/manual/how-tos/maxmind_geo_ip.html

防火牆就可以自己定義國別, 進行限制工作

2017年寫了隻pdf上保護的java程式,現在整理開源釋出

2017年寫了隻pdf附加保護的java程式, 給公司文管人員使用, 程式可離線使用,讓指定目錄裡面的pdf檔案, 批次一鍵上保全, 後來隨著人員異動漸漸失傳.

直到最近, 公司有新人需要這功能, 原因是部門沒有購買或租用 acrobat pdf編輯功能程式, adobe reader又不能上保全, 更不敢線上使用免費上保全網站, 因此我這個老程式又可以重出江湖了, 也改成 java 11使用.

源碼程式在這 https://github.com/WilliamFromTW/InMethodProtectPDF

可執行檔在這 https://github.com/WilliamFromTW/InMethodProtectPDF/releases

程式為runnable jar檔案 , 可以跨平台執行, 後來使用lunch4j這隻程式, 可以轉成windows可執行檔,很方便.

Proxmox VE突然不能用網頁登入

好怪的狀況, 經查看原來是主機名稱無法解析出ip, 因此在/etc/hosts裡面加上該主機名稱, 再重開pveproxy就可以了

Feb 15 10:58:22 pve-pc1 pvecm[29227]: hostname lookup 'pve-pc1' failed - failed to get address info for: pve-pc1: No address associated

root@pve-pc1:~# vi /etc/hosts
root@pve-pc1:~# service pveproxy restart
root@pve-pc1:~#

備份軟體restic 進行forget時, 出現pack 錯誤

因為要減少備份snapshots數量, 因此執行forget + prune 瘦身指令

restic forget --keep-last 3 --prune -r <repository>

但是出現某某snapshots中有某些 pack missing 錯誤

some pack files are missing from the repository, getting their blobs from the repository index: [c3622b51e9c118521af211cd3a98f580f5902824b6b665e62d61061acedbe71d]

很慘, 於是只好找一下該 pack, 看看是哪些檔案不見

restic find --pack c3622b51e9c118521af211cd3a98f580f5902824b6b665e62d61061acedbe71d -r <repository>

最後終於找到某些snapshots遺失哪些檔案, 但依舊無法解決問題, 現主時只好忍痛直接將有問題的snapshots移除,等以後再研究解決方案

restic -r <repository>  forget <snapshot id>

2023/2/8 後續

儘管forget該snapshots, 以為成功了.
但是再次執行備份,還是出現這個pack missing錯誤.
於是爬文, 發現必須先刪除相關packs , 再重跑以下步驟:
restic rebuild-index
restic backup –force
restic prune

詳細處理方式請查看 https://feeding.cloud.geek.nz/posts/removing-corrupted-data-pack-restic-backup/ 或是我下載好該網頁內容


java 11 不支援java web start

公司電子表單為鼎新的easyflow GP版, 需安裝支援java web start版本的java, 但我寫程式, 電腦只安裝java11, 不支援java web start怎辦? 我們可以下載IcedTea-Web , 安裝後就可以屎用了.

javaws xxx.jnlp

若出現unsigned jar 問題, 可以找到jdk或是jre , 修改conf\security\java.security這個檔案(安全風險請自行評估), 跳過安全驗證.

jdk.jar.disabledAlgorithms=MD2, RSA keySize < 1024, DSA keySize < 1024

windows sync center 的問題

這次出差越南, 遇到一個問題, 某台windows 10連到AD分享出來的folder, 但外包的電腦公司, 居然搞出該分享folder有sync center功能, 只為了讓使用者可以offline 做事, 但某天sync center同步功能壞了, 一樣是分享的fold, 怎樣也看不到別人異動過的.

我來處理問題時, 並不知道有做sync center, 這輩子也沒遇過”分享出來的目錄居然裡面內容跟別人不同“, 找了好久才發現是windows的sync center 搞鬼,於是我想辦法停用這功能, 但無能為力, google一些時間, 發現只要下這個指令, 重開機就可以解除該folder sync 功能.

#cmd run as administrator
REG ADD "HKLM\System\CurrentControlSet\Services\CSC\Parameters" /v FormatDatabase /t REG_DWORD /d 1 /f 
1 ... 8 9 10 11 12 ... 73