酪梨醬(guacamole apache)更新到1.4.0, 輸入法問題解決了?

酪梨醬(https://guacamole.apache.org/)是非常好用的遠端連線工具,可以讓員工輕輕鬆鬆在家,透過瀏覽器遠距辦公,而且不需要額外安裝vpn或是其他連線軟體;但酪梨醬最煩人的就是中文輸入法很難切換,用戶端的作業系統與遠端的主機作業系統,常常不一致,導致輸入有問題,必須改用滑鼠點選切換中英文,而不能用平常shift鍵切換,今天升級到1.4.0 發現這個問題似乎得到解決, 實在太棒了。

2024/03/07
後來發現還是沒解決,但我苦思很久最近突然有所感悟,居然突破僵化的思維了,方法簡單,只要”停掉”本機的中英文切換鍵「shift」就可以了(左撇子關右邊,右撇子關左邊),可惜這個方法只解一半,使用遠端連線完畢,本機的shift鍵需要改回來,但我已經很滿意了,至少不會因為頻繁切換中英文,點滑鼠點到非常生氣(畢竟不是常用的切換方式);若習慣使用ctrl-space切換中英文的人,也沒關係,停用本機shift後,以後連到遠端就改用shift切換即可。

2024/03/21
我寫了一個windows簡單的程式(x64),可以暫時解決輸入法切換問題,論述基礎為修改windows註冊表
程式也開源:https://github.com/WilliamFromTW/ApacheGuacamoleIMEswitch
點此下載程式

2024/03/22
改成開啟酪梨醬遠端連線時,系統會先自動停用本機左邊shift鍵(當然也自行可以手動停用),等到關閉程式時,會恢復左邊shift鍵。

centos 7 裝了docker , 限制內網透過nat上網會失效

一般公司省錢的作法, 就是一台linux主機 , 充當上網(nat) 分享器,
但後來該主機又搞了docker .
可是docker 預設網路(iptables) 都開放, 很麻煩, 造成原本firewall-cmd出問題, 無法限制內部ip上網, 所有ip都能上網, 超麻煩的,

後來發現iptables也能運作, 於是就搭配 iptables 限制內部ip上網

iptables -I FORWARD 1 -s 192.10.20.0/24 -j DROP # 限制全部內網ip透過nat上網
iptables -I FORWARD 1 -s 192.10.20.101/32 -j ACCEPT # 讓101能上網

取得docker container的啟動資訊

有時候常常要查詢一下當初docker container啟動的參數, 若使用docker-compose當然沒問題,可以直接查看yaml檔案,
若不是使用compose , 就比較麻煩了, 尤其是我常常使用指令的方式, 又常常沒有記錄下來指令, 就會出問題.

好險這些問題有解法

https://github.com/lavie/runlike

只要執行以下指令, 後面接 container name 就可以知道當初執行的相關設定了

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock assaflavie/runlike <container Name>

docker安裝peertube影音平台

peertube是開源的串流影音平台, 很適合拿來管理私人影音檔案.

本文安裝的先決條件是:
已備有httpd反向代理, 以及lets encrypt ,
因此不使用peertube官方自帶的webserver與cerbot, 以免造成管理上的困擾

帳號密碼: guest/guest

https://docs.kafeiou.pw/iammis/技術文章/HowTo/10034_(docker)安裝peertube.txt

ubuntu 20.04 安裝docker

1. 
sudo apt-get update
sudo apt-get install \
     apt-transport-https \
     ca-certificates \
     curl \
     gnupg \
     lsb-release
	 
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
	 
echo \
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
##$(lsb release -cs) 試圖找出ubuntu對應版本 , 
##或是到這查https://download.docker.com/linux/ubuntu/dists/
  
sudo apt-get install docker-ce docker-ce-cli containerd.io

2. 自訂存放目錄

修改 /lib/systemd/system/docker.service
 從
ExecStart=/usr/bin/docker daemon -H fd://
 改成
ExecStart=/usr/bin/docker daemon --data-root <自訂目錄> -H fd:// 

重啟 docker 
systemctl stop docker
systemctl daemon-reload
systemctl start docker

完成

docker安裝multiOTP, 讓windows登入更安全(MFA)

我們不屎用微軟的MFA(Multi Factor Authentication), 原因如下:

Azure AD MFA 免費使用, 但是很貴, 哈哈, 於是就pass

multiOTP(https://github.com/multiOTP/multiotp/wiki) 是個開源免費的 MFA server & client 專案,
其實我們也只是要讓登入更安全, 目標就是手上多個驗證器, 可以輸入動態密碼, 多個保障.
不囉嗦, 直接寫下我的安裝方法

安裝開源的 MFA Server

  1. 準備docker環境
  2. 下載最新檔案
    https://download.multiotp.net/multiotp_5.8.1.0.zip
    解開檔案
  3. 修改Dockerfile
    加上 RUN echo “deb http://ftp.de.debian.org/debian buster-backports main” | tee /etc/apt/sources.list.d/docker.list
    **這是5.8.1.0的bug

修改Dockerfile這步驟以後不需要做, 下個版本會解決


4. 編譯images
docker build . -t mymultiotp:latest

5. 啟動server

docker run --mount source=multiotp-data,target=/etc/multiotp -p 8080:80 -p 8443:443 -p 1812:1812/udp -p 1813:1813/udp -d mymultiotp:latest

8080 與 8443 請依實際情況修改

6. 網頁輸入 http://<docker serverr ip>:8080

登入後, 新增測試帳號 administrator (請注意, 這個帳號是windows 10本機可登入帳號 , 不限定administrator)

手機安裝google authenticator


安裝google驗證器, 刷入帳號的QR code , 請選擇帳號後點選 Print


在windows安裝Credential Provider

https://download.multiotp.net/credential-provider/
https://download.multiotp.net/credential-provider/multiOTPCredentialProvider-5.8.1.0.exe

輸入windows的帳號與密碼, 還有google驗證器的密碼

遠端登入

此時遠端登入第一次登入不用otp密碼, 但是會出現第二是要求輸入otp密碼,

這是原本遠端桌面連線並無法一開始就支援otp的緣故,目前無法解結

MFA server 與 網域主控連線

docker 登入已安裝好的 mfa server 然後輸入以下指令

 multiotp -config default-request-prefix-pin=0
 multiotp -config default-request-ldap-pwd=1
 multiotp -config ldap-server-type=1
 multiotp -config ldap-cn-identifier="sAMAccountName"
 multiotp -config ldap-cn-identifier="sAMAccountName"
 multiotp -config ldap-group-attribute="memberOf"
 multiotp -config ldap-ssl=1
 multiotp -config ldap-port=636
 multiotp -config ldap-domain-controllers=ldaps://網域主控伺服器:636
 multiotp -config ldap-base-dn="OU=xxxx,DC=test,DC=com"
 multiotp -config ldap-bind-dn="cn=ldap,cn=Users,dc=test,dc=com"
 multiotp -config ldap-server-password="password"
 multiotp -config ldap-network-timeout=10
 multiotp -config ldap-time-limit=30
 multiotp -config ldap-activated=1
 multiotp -config ldap_default_algorithm=totp
 multiotp -debug -display-log -ldap-users-sync
  1. 若成功, 網頁登入MFA server就能看到網域使用者, 也可以派送QR code給該使用者使用
  2. 定期執行同步指令
multiotp -debug -display-log -ldap-users-sync
1 ... 7 8 9 10 11 ... 14