Mac上面製作opencore 安裝碟必備工具程式

準備工具程式

  1. ubuntu 20.03 開機碟, 配合SSDTTime程式,取得主機ACPI資訊
    https://github.com/corpnewt/SSDTTime
    當ubuntu開機後(選擇try ubuntu,不需要安裝), 然後就可以執行SSDT Time取得要安裝mac主機的電腦相關資訊
    若出現無法找到python, 可修改SSDTTime.py 將 python改成python3
  2. 產生SMBIOS相關資訊
    https://github.com/corpnewt/GenSMBIOS
  3. MountEFI, 建立/掛載EFI區
    https://github.com/corpnewt/MountEFI
  4. 編輯config.plist
    https://github.com/corpnewt/ProperTree
  5. 下載mac os
    https://github.com/corpnewt/gibMacOS
  6. SSDTTime
    https://github.com/corpnewt/SSDTTime

安裝流程opencore(0.5.8)

  1. 格式化usb
    GUID , Journaled
  2. 建立EFI
    使用MountEFI , 選擇該usb, 即可建立EFI
  3. 建立安裝程式
    /Applications/Install\ macOS\ Catalina.app/Contents/Resources/createinstallmedia –volume /Volumes/MyVolume
  4. 取得電腦的ACPI資料
    製作ubuntu 開機片(使用另一個usb), 將下載好的SSDTTime複製到usb, 開機後執行SSDTTime, 取得ACPI資料(該資料需複製到另一個usb資料碟)
  5. 待補

黑蘋果clover如何設定sip(System Integrity Protection)

使用別人做好的config.plist, 通常預設會將系統保護關掉, 這樣可以避免無謂的權限限制, 造成安裝失敗.
但是安裝完畢後, 最近遇到chrome視訊, 需要開啟權限才能使用, 可是無論如何都無法開啟,原因是sip已經關掉了, 真是好奇怪的狀況

查找了一下, 原來大家都將clover 的sip設定成0x67, 或是0x3 ,
經過測試我需要將clover的CsrActiveConfig(sip)設定成 0x293才可回歸, 讓系統決定是否開啟麥克風,視訊,或是螢幕錄製功能,
也就是我有些要交給sip管控, 有些不需要直接開啟

當然也可以開機的時候,於clover->options手動設定, 這邊可以更清楚看到我們哪些開啟哪些停用

若是白蘋果, 可以使用下列指令設定sip

csrutil disable (停用sip)
csrutil enable (啟用sip)
csrutil status(查看sip設定值)

入手ThinkPad 13 2nd, 改裝 macOS 10.15.4

前陣子入手14吋二手t440s , 安裝完macOS 10.15.3後, 又買了1080p螢幕更換, 整體升級體驗很棒,

但我前陣子又改換輕一點的,13.3吋的 thinkpad 13 2nd , i7-7500u , 也是四處找資源, 因為我太笨了,到現在還是搞不定dsdt安裝檔案, 皇天不負苦心人, 終於在一個很棒的日本人手上拿到相關設定檔案, 因此在此稍微紀錄一下,

他的官網在此 https://osmaniax.1banzaka.com/

github 如下:

https://github.com/akimitwo/hackintosh

另外這個日本人放的config.plist檔案, 將自動搜尋硬碟的功能拿掉,因此無法安裝, 要修改config.plist改成可以搜尋的功能哦, 然後安裝完畢,再關掉自動搜尋硬碟的功能即可.

談談傳統的FTP系統,使用docker安裝舊規格ftp server

ftp server很老了, 這個系統傳統上使用tcp port 20(資料傳輸),21(命令) , 稱為active mode(主動模式), 後來進化多了“被動模式”就不再限於20,21, 而且加上tls加密功能就更穩固了.

可是我要談的不是這個, 要談的是有些用了2,30年的工具機,例如cnc加工機, 內建ftp client功能, 而且還是停留在傳統的主動模式,
但隨著服務器作業系統的升級, 有可能讓cnc這種工具機無法相容使用, 因此必須要考慮新作業系統裡面, 加裝傳統的ftp系統,

解法很簡單就是裝個docker ftp server,

安裝如下:

1. 建立使用者空間與使用者帳密資料庫
docker volume create --name ftp-user-db
docker volume create --name ftp-user-file

2. 啟動ftp server
docker run -d --restart always --name ftpd_server -p 21:21 -p 30000-30009:30000-30009 -e "PUBLICHOST=localhost" -v ftp-user-db:/etc/pure-ftpd/passwd -v ftp-user-file:/home/ftpusers stilliard/pure-ftpd

3. 新增使用者
docker exec -it ftpd_server /bin/bash
pure-pw useradd <帳號> -f /etc/pure-ftpd/passwd/pureftpd.passwd -m -u ftpuser -d /home/ftpusers/<帳號>

4. 防火牆
firewall-cmd --add-port=20/tcp --permanent
firewall-cmd --add-port=21/tcp --permanent
firewall-cmd --reload

ps. docker 網站 https://hub.docker.com/r/stilliard/pure-ftpd

pfsense設定openvpn單點連線(remote access)注意事項

安裝方式可參考 https://docs.netgate.com/pfsense/en/latest/vpn/openvpn/openvpn-remote-access-server.html

安裝時注意事項如下:

1. servers 設定需要注意的
   server mode : remote access(ssl/tls+User Auth)
   local port : 預設1194 (建議不要用1194,容易被擋)
   tunnel network:  10.0.8.0/24 (可自己調整,但遠端的路由要記得設定走回來,不然會迷路)
   IPv4 Local network(s): x.x.x.x/24 (serve本身內部網段)
   Dynamic IP: 打勾
   DNS server enable: 打勾(若要翻牆的話)
   DNS server1, DNS server2 (若要翻牆就要設定)
   custom options: redirect-gateway def1(若要翻牆就要設定)
2. 請使用openvpn wizard幫我們自動設定remote access, 會方便許多
   在System->Certificate Manager>CAs會出現FreeRADIUS CA
3. System->User Manager
   新增使用者後, 還要編輯該使用者,新增一個User Certificates
   新增時可在Common Name輸入server對外網址
4. System->Package Manager->available packages
   安裝協助匯出憑證的外掛程式
   openvpn-client-export
   安裝後vpn->openvpn->client export 就能匯出使用者憑證
5. (2021/05/23)新版2.5.x 設定的時候, 要注意與2.4.x版本的壓縮設定不太一樣, 若壓縮的方式沒搞定(我是選擇lzo lagacy, 或是no compress , retain compression package ...) 不然vpn會失敗的
6. remote server那邊的local network router記得要把丟往tunnel network的封包, 設定由pfsense lan ip走過去哦, 例如往 tunnel 10.0.8.0/24 gateway 為 10.192.130.213(pfsense lan ip)

pfsense設定OpenVPN (site to site一邊固定ip即可)

1.下載 pfsense 軟體防火牆套件
  https://www.pfsense.org/
2.安裝pfsense(server端)(假設內部網段是10.192.130.0/24)
  至少要有兩個網卡,一個要有固定ip, 另一個是內部網路(假設是10.192.130.212)
  2.1 安裝很簡單, 重點在於搞定兩個網卡ip,搞定後就能用使用瀏覽器,經由內部網路ip, 連上pfsense
  2.2 連上pfsense後, 取消硬體checksum
      System->Advanced->Networking
      Hardware Checksum offloading選項打勾(這部分我浪費三天三夜, 若沒打勾會嚴重影響效能)
  2.3 連上pfsense後, 啟用CPU硬體加密功能
      System->Advanced->Miscellaneous
      Cryptographic Hardware 選擇AES-NI CPU-based Acceleration
      這部分比較特別,若pfsense裝在promox ve上, vm要記得開啟AES-NI功能, esxi好像預設就開啟
      ps. 這時候建議pfsense重開一下
  2.4 安裝openvpn(server)
      VPN->OpenVPN->Servers
      新增OpenVPN Servers , 需要輸入的地方如下,其他都是預設
      (1) Server Mode 選 Peer to Peer(Shared Key)
      (2) local port 預設是1194請改成其他減少被擋或被駭的機率
      (3) Hardware Crypto 任選一種硬體加密(若可以選的話)
      (4) IPv4 Tunnel Network 輸入172.26.0.0/24
      (5) IPv4 Remote network(s) 輸入client端的內部網路 , 如192.1.0.0/24
      (6) Save
      (7) 重新看剛剛的設定,複製preshared key(Save之後才會產生),要複製到pfsense client端使用
  2.5 Firewall -> Rules 到 WAN 新增 any source 的規則, 到OpenVPN 也新增 any source的規則

3.安裝pfsense(client端)(假設內部網段是192.1.0.0/24)
  至少要有兩個網卡,兩個都是內部網路,同網段也ok
  3.1 安裝很簡單, 重點在於搞定兩個網卡ip,這兩個網卡ip可以同一個網段, 一個當WAN,一個當LAN(假設是192.1.0.3).
      搞定後就能用使用瀏覽器,經由內部網路ip, 連上pfsense
  3.2 同步驟2.2
  3.3 同步驟3.2
      ps. 這時候建議pfsense重開一下
  3.4 安裝openvpn(client)
      VPN->OpenVPN->Clients
      新增OpenVPN Clients , 需要輸入的地方如下,其他都是預設
      (1) Server Mode 選 Peer to Peer(Shared Key)
      (2) Interface 選 any
      (3) Server host or address 輸入server端對外的ip
      (4) server port 輸入server端設定port
      (5) Shared Key 請輸入server端複製的Shared Key
      (6) Hardware Crypto 任選一種硬體加密(若可以選的話)
      (7) IPv4 Tunnel Network 輸入172.26.0.0/24
      (8) IPv4 Remote network(s) 輸入server端內部網路 , 如10.192.130.0/24
      (6) Save
  3.5 Firewall -> Rules 到 WAN 新增 any source 的規則, 到OpenVPN 也新增 any source的規則

4.Status->OpenVPN 查看能不能連線成功
5.pfsense(server)
  新增路由,假設server所在內部網路gateway是10.192.130.1
  請在該gateway上新增目的地192.1.0.0/24,要經由10.192.130.212出去(依照以上例子) 
6.pfsense(client)
  新增路由,假設client所在內部網路gateway是192.1.0.1
  請在該gateway上新增目的地10.192.130.0/24,要經由192.1.0.3(依照以上例子)
—
Pfsense 2.4.5
William 20200422

one cert file with multiple host domains(let’s encrypt)

安裝軟體時,有時候遇到該軟體只支援一組 ssl 證書, 若有多個主機證書要使用, 就必須進行一個證書,兼多主機簽證的作法.

./certbot-auto certonly --standalone --preferred-challenges http -d <host one> -d <host two> -d <host three>

完成後可以使用 ./certbot-auto certificates 查看結果

用docker安裝視訊會議 jitsi-meet

jitsi 大名鼎鼎, 我們公司用了10年的openfire內部即時通訊(xmpp server), 用戶端就是用jitsi(我都簡稱神燈巨人).

多年前發現 jitsi 有meet套件可以套用在openfire裡面, 使用結果好爛幾乎不能用, 用ubuntu安裝,也一直很不穩定, 改版很頻繁.

隨著新冠病毒出現, 節神 丟出開源視訊這個議題,我才想起應該是時候,要再測試看看了, 試用結果還不錯,可以讓公司的人使用.

**經過多次測試, 建議使用 “虛擬機加單個對外ip網卡” (非docker,無nat) 才能真正穩定 – 2020/05/06

https://github.com/jitsi/docker-jitsi-meet

# 先想好要用哪個主機名稱, 先把letsencrypt搞定
certbot-auto certonly --standalone --preferred-challenges http -d <full host name>

1.
# root
# 下載最新的版本, 複製預設的設定檔案
git clone https://github.com/jitsi/docker-jitsi-meet && cd docker-jitsi-meet
cp env.example .env

1.1 安全性增加了
./gen-passwords.sh

2.修改 .env , 視自己docker狀況調整以下參數
CONFIG=~/.jitsi-meet-cfg
# Exposed HTTP port
HTTP_PORT=8000

# Exposed HTTPS port
HTTPS_PORT=8443

# System time zone
# 這我調整taipei
TZ=Asia/Taipei

# Public URL for the web service 
# 這我是沒調整,因為我是用httpd reverse proxy
#PUBLIC_URL=https://<full host name>

ENABLE_LETSENCRYPT=1
# 告訴 jitsi 說我的letsencrypt是什麼
LETSENCRYPT_DOMAIN=<full host name>

3.依照.env的 CONFIG 參數, 建立相關目錄
mkdir -p ~/.jitsi-meet-cfg/{web/letsencrypt,transcripts,prosody,jicofo,jvb}

4.視情況修改 docker-compose.yml 
        volumes:
            - ${CONFIG}/web:/config
            - /etc/letsencrypt:/etc/letsencrypt
            - ${CONFIG}/transcripts:/usr/share/jitsi-meet/transcripts

5.上線兼啟動(這部份讓人產生錯覺,很快網頁可以連線,但實際上要5分鐘才正常,畢竟用了4個container)
docker-compose up -d

6.修改解析度(這我沒怎麼測試,預設是720,為了頻寬著想,所以改480)
# ~/.jitsi-meet-cfg 這個目錄依剛開始安裝的.env設定而不同
cd ~/.jitsi-meet-cfg/web
vi config.js
##
     constraints: {
         video: {
             aspectRatio: 16 / 9,
             height: {
                 ideal: 480,
                 max: 480,
                 min: 240
             }
         }

     },

Optional

1. 啟用認證
# 修改 .env 啟用登入認證(我使用最基本的內部認證, ldap怎麼都不成功...XD)
# Enable authentication
ENABLE_AUTH=1
# Enable guest access
ENABLE_GUESTS=0
# Select authentication type: internal, jwt or ldap
AUTH_TYPE=internal

1.1 啟用內部認證後,如何新增使用者
# 進入container
docker exec -it docker-jitsi-meet_prosody_1 bash
# 建立使用者,後面那串meet.jitsi不需要修改哦
prosodyctl --config /config/prosody.cfg.lua register <使用者名稱> meet.jitsi 

2. 增加google日曆功能

1 先想好使用哪個google 帳號讓大家能自由存取,可個人帳號也可使用g suite帳號
建議該帳號的calendar只用來預約會議室使用

2 登入進入 https://console.cloud.google.com/apis/dashboard 
新增project,進入Credentials新增 OAuth 2.0 client IDs , 新增後會給你一個client id,記下來
xxxx.apps.googleusercontent.com

3 進入 AAuth consent screen , 設定該 auth 的使用範圍
4 修改 vi ~/.jitsi-meet-cfg/web/config.js
啟用google calendar , 加上先前的client id,
enableCalendarIntegration: true,
googleApiApplicationClientID:”xxx.apps.googleusercontent.com”,
5.重啟
cd ~/docker-jitsi-meet/ ; docker-compose restart
6 登入jitsi meet 進行相關授權, 若出現未經允許存取calendar,就不管了,允許吧.

https://github.com/jitsi/jitsi-meet/blob/master/doc/integrations.md

簡易筆記-使用docker安裝iredmail

iredmail 是一個很強大的軟件,看文件開發者應該是大陸人,很牛!

我12年前就開始用這個軟件, 而且現在還在用!

雖說免費版不支持微軟的AD, 但很多小公司本來就沒有這些配置, 所以沒差.

目前這系統現在已經很穩定很成熟, 非常很適合小公司使用, 大推薦,

而且最近我才發現一位應該是俄羅斯人有持續提供docker安裝方式. https://hub.docker.com/r/lejmr/iredmail , 又更方便了.

以下是我安裝的心得, 有空會持續更新

1. 用volume的方式與docker建立對應, 方便以後備份升級
2. 與官網建議的不同,我移除灰名單模組,這東西又愛又恨,愛的是擋廣告很猛,恨的是要對方重發信,常常被使用者罵收信很慢.
3. 安裝後, 輸入 https://ip:8443/iredadmin  就可以用postmaster@<網域> 登入, 接下來就可以新增網域,或是使用者.
4. 輸入https://ip:8443/mail , 或是 https://ip:8443/sogo 
   使用者登入@<網域>  就可以收發信了
5. 使用管理者也可以收信, 最初系統自行發送的三封信很重要, 例如要dns設定DKIM之類的
6. 我有將/etc/letsencrypt 對應到iRedMal,打算用來取代自簽的證書
docker volume create iredmail_mysql
docker volume create iredmail_vmail
docker volume create iredmail_clamav
docker volume create iredmail_log
docker volume create iredmail_postfix_conf
docker volume create iredmail_amavisd_conf
docker run -p 8443:443 -p 110:110 -p 25:25 -p 587:587 -p 143:143 -p 993:993 -p 995:995 \
            -h <主機名稱(含網域),hostname.domain> \
            -d --restart always \
            -e "MYSQL_ROOT_PASSWORD=password" \
            -e "SOGO_WORKERS=1" \
            -e "TZ=Asia/Taipei" \
            -e "POSTMASTER_PASSWORD={PLAIN}password" \
            -e "IREDAPD_PLUGINS=['reject_null_sender', 'reject_sender_login_mismatch', 'throttle', 'amavisd_wblist', 'sql_alias_access_policy']" \
            -v iredmail_mysql:/var/lib/mysql \
            -v iredmail_vmail:/var/vmail \
            -v iredmail_clamav:/var/lib/clamav \
            -v iredmail_log:/var/log \
            -v iredmail_postfix_conf:/etc/postfix \
            -v iredmail_amavisd_conf:/etc/amavisd \
            -v /etc/letsencrypt:/etc/letsencrypt \
            -v /etc/letsencrypt/live/<主機網域>/privkey.pem:/etc/ssl/private/iRedMail.key \
            -v /etc/letsencrypt/live/<主機網域>/fullchain.pem:/etc/pki/tls/certs/iRedMail.crt \
            --name=iredmail lejmr/iredmail:mysql-latest

經過試用一個月, 有一個目前無法解決的問題,就是重開docker時,dovecot或mysql會殘留舊的pid,造成dovecot與mysql啟動失敗的狀況, 此時只能手動刪除 /var/run/dovecot/master.pd or /var/lib/mysql/mysql.sock 等檔案, 然後再切換目錄到/services 找出重啟的shell scripts ,才能解決問題

好消息是官方也著手進行iredmail docker官方版 https://hub.docker.com/r/iredmail/mariadb
目前還是beta狀態,不適合正式上戰場,但我很期待 - 2020/05/06
1 ... 30 31 32 33 34 ... 58