CentOS 的docker 若綁定Internet IP , 要注意是否開放對外服務
例如 docker 安裝 mariadb service , 要記得不要開放到internet
iptables -I DOCKER 1 -i <對外網卡代號> -p tcp --dport 3306 -j DROP
例如 docker 安裝 mariadb service , 要記得不要開放到internet
iptables -I DOCKER 1 -i <對外網卡代號> -p tcp --dport 3306 -j DROP
我很個很老派的人,喜歡用純粹的ext4 、 xfs 檔案系統, 但是時常遇到磁碟空間不足的問題。
若要擴容,可以服用以下指令:
1. 先安裝擴充軟體
yum install cloud-utils-growpart -y
2. 到虛擬伺服器上讓虛擬硬碟增大
3. 到虛擬主機裡面,讓虛擬硬碟容量變大(支援ext4、xfs,xfs只能增大, 不能減少),
growpart /dev/sdb 1
代表讓/dev/sdb這個硬碟擴充到最大
4. 到虛擬主機裡面,讓磁碟分區生效
xfs
--
以下指令可以立即生效指令後面接掛載目錄
xfs_growfs -d /mnt/docker
ext4
--
resize2fs /dev/sdb1
我們不屎用微軟的MFA(Multi Factor Authentication), 原因如下:
Azure AD MFA 免費使用, 但是很貴, 哈哈, 於是就pass
multiOTP(https://github.com/multiOTP/multiotp/wiki) 是個開源免費的 MFA server & client 專案,
其實我們也只是要讓登入更安全, 目標就是手上多個驗證器, 可以輸入動態密碼, 多個保障.
不囉嗦, 直接寫下我的安裝方法
安裝開源的 MFA Server
修改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
multiotp -debug -display-log -ldap-users-sync
到 /usr/share/jitsi-meet 修改以下檔案
interface_config.js
APP_NAME: 'Jitsi Meet', NATIVE_APP_NAME: 'Jitsi Meet',
libs/app.bundle.min.js
若要改首頁標題, 找到 headerTitle 修改內容即可
aax 是一款有聲書的格式, 但是播放起來很麻煩, 還要登入一堆裝置
所以只要你有撥放此款有聲書的授權, 其實可以透過軟件另外再轉成mp3撥放,
有了mp3撥放就容易多了.
https://github.com/audiamus/AaxAudioConverter
https://github.com/rmcrackan/inAudible
drawio 相容m$ visio , 而且免費, 支援nextcloud, 達到線上繪製流程圖的功能.
雖說drawio還不是很穩定,但是一直在更新, 已經能上線讓公司同仁使用,
透過官方安裝drawio套件並且啟用後, 以下為注意事項:
複製設定檔cp resources/config/mimetypemapping.dist.json config/mimetypemapping.json
修改 config/mimetypemapping.json 加上以下設定
"drawio": ["application/x-drawio"]
然後執行更新指令
sudo -u www-data php occ maintenance:mimetype:update-js
sudo -u www-data php occ maintenance:mimetype:update-db
若是docker請執行
docker exec --user www-data nextcloud php occ maintenance:mimetype:update-js
docker exec --user www-data nextcloud php occ maintenance:mimetype:update-db
然後再到nextcloud的設定, 重新勾選drawio的相關設定
2. 若drawio檔案分享連結, 若想要讓大家直接開啟編輯畫面, 需要修改連結
https://xxx/s/YoJWBkg7EgiyXpPdd 改成 https://xxx/apps/drawio/s/YoJWBkg7EgiyXpPdd
需安裝外掛(block_quickmail)才能寄發通知, 但是官方的版本目前無法使用, 會出現”There are no users to whom you can send emails.” 或是 “There are no users you are capable of emailing“的錯誤,
請到 https://github.com/lsuits/lsu-block_quickmail 下載v2版本就能使用了.
以 主機名稱 meet.test.com 為例子, 以下只要是meet.test.com皆須改成真實的主機名字
1. 修改 /etc/prosody/conf.avail/meet.test.com.cfg.lua
VirtualHost "meet.test.com" authentication = "internal_plain" ... VirtualHost "guest.meet.test.com" authentication = "anonymous" c2s_require_encryption = false modules_enabled = { "bosh"; "pubsub"; "ping"; "speakerstats"; "turncredentials"; "conference_duration"; }
2. 安裝module storage_memory模組(optional)
apt install -y mercurial mkdir ~/temp && cd ~/temp hg clone 'https://hg.prosody.im/prosody-modules/' prosody-modules cp prosody-modules/mod_storage_memory/*.lua /usr/lib/prosody/modules/.
3. 修改 /etc/jitsi/meet/meet.test.com-config.js
var config = { … hosts: { … domain: 'meet.test.com', anonymousdomain: 'guest.meet.test.com', … }, … }
4. 修改 /etc/jitsi/jicofo/sip-communicator.properties
org.jitsi.jicofo.auth.URL=XMPP:meet.test.com
5. 新增可登入的帳號密碼
prosodyctl register william meet.test.com mypassword
6. 重開服務
systemctl restart {prosody,jicofo,jitsi-videobridge2,nginx}
這樣一來, 只有第一個登入的人需要輸入帳號密碼, 其他使用相同網址不需要密碼就可以登入(來賓帳戶guest)
最近遇到一個搞笑的烏龍, 公司匯出的oracle dmp檔案, 進行還原測試的時候, 無法匯入到測試區, 錯誤訊息為:
IMP-00037: Character set marker unknown
經過爬文,有可能是字元編碼不一致, 網路上提供的解方是:
cat xxx.dmp |od -x|head -1|awk '{print $2 $3}'|cut -c 3-6
這樣可以查出oracle系統的字元編號, 再以字元編號查詢編碼名稱
SQL> select nls_charset_name(to_number('上個指令查出的字元編號','xxxx')) from dual;
這樣的指令應該是可以查出來, 若查不出來就可能是檔案損毀或是我這樣的烏龍,
我匯出備份的時候, 加上tar以及bz2壓縮
所以原檔案變成 xxx.dmp.bz2, 完全看不出來有tar , 因此解壓的時候我忘記了只有解bz2 , 解出來的xxx.dmp 其實不是原本的dmp檔案, 還需要解開tar這個動作, 哈哈
當我們執行以下指令
python -c "import this"
將會出現
其中這幾句話果然很對我的味
Now is better than never. Although never is often better than *right* now. If the implementation is hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea -- let's do more of those!