MacOS安裝心得紀錄

前陣子為了學習iOS NFC程式設計, 買了MacBook Pro (Mid 2012) , 用起來相當順手, 也可以順利升級到最新的Catalina(10.15.1)版本, 規格如下:

I7 2.9G , 16G Ram , SSD 500GB + 960GB

除了不是retina高解析度, 非常滿意, 但是攜帶不是很方便, 很重,

剛好同事家裡有一台Mac mini 2011年版本, 丟給我玩玩看, 於是我就查看了一下, 哎喲, 只能安裝到High Sierra版本(10.13.x), 於是搜尋了一下, 原來還有老舊mac升級的解法, http://dosdude1.com/

使用dosdude1的patcher很方便的將mac mini 的high sierra升級成catalina.

後來又想起來, 我以前玩過黑蘋果 , 手癢又將自己的pc主機改裝成黑蘋果, 這次安裝非常順利,我是參考https://www.tonymacx86.com/ , 目前前導程式只能安裝 mojave版本(10.14.x), 但還是可以使用最新版的xcode , 因此就衝下去了, 需要注意的部分如下:

  1. 請使用不要太新的主機板,建議 asus , 要了解主機板型號,我的是h97-plus屬於9系列的sata晶片
  2. bios關掉vt-d(安裝成功後可開啟) , io serial port , 鍵盤滑鼠用usb, XHCI Handoff 要enable, 安裝時不要選usb 3.0, 要選2.0的孔安裝
  3. 第一次安裝的時候, 要選擇格式化硬碟, 轉成GUID, Mac OS Extend(journald), 才進入安裝程序, 安裝到一定程度會重開機
  4. 重開機的時候, usb前導程式會出現磁碟的選項, 此時要選磁碟機進入第二次安裝程序, 這時候安裝會轉換格式成為 APFS , 然後接下的開機都要選磁碟機開機.
  5. 整個安裝完畢後進入系統, 若能抓到網路卡, 就到tonymacx86網站下載multibeast程式, 抓不到就在別台主幾下載, 然後執行multibeast,將multibeast裝到磁碟機上,multibeast的相關驅動程式需要自行判斷, 若失敗需要重新使用usb開機碟選擇硬碟開機進入系統後, 重新安裝multibeast.
  6. 最後就可以不依賴usb開機進入系統, 直接使用磁碟上的multibeast開機了.
  7. 還沒想到,想到再補

問題排除:

  1. 遇到過i5-34xx cpu (HD 2500) 使用multibeast開機,無法達到1080解析度或是無法開機, 必須multibeast啟動前選擇options->inject intel -> 0x00000改 0x000001(隨意改一個數字), 才能正常開機並且達到1080p解析度 -20191205

老舊的mac無法更新到最新的OS,解決方式

最近拿著同事一個舊款的mac mini (2011)年版, 想說可以拿來練習寫iOS程式.

沒想到只能更新到 high sierra版本, xcode只能安裝10.0 , 但是該版本並沒有我想要學習的NFC 15693讀取寫入功能, 必須升級到最新的xcode.

可是xcode若沒有mojave版本以上是無法更新的, 真是殘念.

後來google一下原來有很多人默默的付出, 協助讓老舊硬體能更新到最新版, 真是佛心來的, 當然免不了有些不相容, 但是基本上都能使用了, 安裝方式也很簡單, 就是在mac上下載patcher軟件, 透過這個軟件把OS安裝到隨身碟, 就可以安裝了,跟平常並沒有不同, 就差在安裝完畢, 需要再跑一次post install , 更新一下舊版硬體驅動程式就好了, 超方便的, 以下是連結方式:

http://dosdude1.com/catalina/

將windows 10裝在usb隨身碟並且可從開機

我的chroombook(CB3-111)自從安裝了新版的bios( https://mrchromebox.tech/ ) , 就可以安裝windows 10了.

可是cb3-111內建磁碟空間很小不夠用, 而且速度有點慢, 最慘的是windows安裝片無法安裝到usb上面, 於是上網找了一下, 原來還有 windows to usb ( https://www.easyuefi.com/wintousb/ ), 這種好東西, 實在太棒了, 現在我的cb3-111的配置為: 原本內建的磁碟改裝成linux(elementary os) , 外接usb硬碟安裝windows 10(不建議用隨身碟,除非買的是無敵快版本).

目前這台只有940公克的筆電我使用起來非常滿意, 平常使用linux , 必要時還有windows可用呢!

安裝cb3-111(baytrail) windows 10 相關驅動程式可到這裡下載

下載Mac OS(DMG)

github 有人寫了製作一個簡易下載的程式 https://github.com/munki/macadmin-scripts

可以很方便的下載想要的Mac OS

curl -O https://raw.githubusercontent.com/munki/macadmin-scripts/master/installinstallmacos.py
sudo python installinstallmacos.py

若失敗, 可以考慮用 patcher 方式, 這個patcher很強, 專門用來協助老舊主機升級到最新os, 所以自帶一個下載macOS的工具, 下載後會出現一個install xxx.APP , 請透過disk utility 工具做成dmg就可以了.

Zimbra(金芭樂)郵件伺服器安裝心得

Zimbra我是最近從節神大大(http://blog.jason.tools/)得知是一套優質的郵件服務器,

在此之前我推薦的是 iredmail , 安裝非常簡單,可以多網域管理, 但iredmail免費版並沒有整合microsoft active directory,不建議有AD的企業使用.

Zimbra社群版本,能跟AD整合,還滿適合企業使用, 以下節錄一些心得與重點, 不會紀錄詳細的安裝方式.

Zimbra Container

我通常會優先尋找container的方式安裝, 原因是想快速體驗.不過官方網站的docker停留在2017年的版本, 安裝的時候會失敗, 於是就作罷, 後續接手應該就是 Zimbra X版本了.

手動安裝

只要準備好Linux OS(我使用CenOS 7), 下載最新相對應的檔案(我使用8.8.15), 解開後,執行裡面的 install.sh 就可以依照指示安裝, 安裝前需要搞定hostname. 要修改/etc/hosts 以及執行hostnamectl set-hostname , 這部分install.sh也會提示您.

解除安裝

畢竟不是container, 若解除安裝有問題, 可能造成OS不穩定或是常駐無用服務的狀況, 好險到目前為止安裝很順利, 解除安裝也很簡單, 只要執行 ./install.sh -u 就可以進行解除安裝程序.

解除安裝曾遇到一個問題,就是CentOS有個套件移除不乾淨,需要手動移除, 可以使用rpm -qa|grep zimbra的方式找出相關套件, 手動移除, 這樣才可以移除乾進,才能重新安裝哦.

登入帳號與郵件不同如何處理

  1. 管理者協助新增別名
  2. 使用者登入webmail, 設定寄件者郵件為別名email
  3. 系統管理者停用aliases登入功能
    su - zimbra
    zmlocalconfig -e alias_login_enabled=false
    zmcontrol restart mailbox

安裝前請關閉CentOS7上預設的Mail Server

因為zimbra自帶mail server , 所以用不到Linux內建的, 請關閉,否則會衝突

systemctl stop postfix ; systemctl disable postfix

zimbra proxy啟動失敗, 出現invalid port in “0” of the “listen”錯誤

cd /opt/zimbra/libexec
 ./zmproxyconfig -e -w -H <zimbra host name>
 ./zmproxyconfig -e -m -H <zimbra host name>

自動取得Let’s Encrypt證書

  1. 設定網域的CAA
  2. 確認開防火牆 80,443有開放
  3. 確認zimbra的proxy監聽80,443 (設定both,而不是只有https,這樣會造成let’s encrypt認證失敗
  4. 安裝let’s Encrypt 的 自動獲取程式 certbot
    yum install epel-release mod_ssl certbot -y 
  5. 下載 certbot-zimbra
    #下載certbot_zimbra 
    wget https://raw.githubusercontent.com/YetOpen/certbot-zimbra/master/certbot_zimbra.sh -P /usr/local/bin
    chmod +x /usr/local/bin/certbot_zimbra.sh

    #確定主機名稱
    /opt/zimbra/bin/zmhostname

    # 自動獲取證書
    ##單一主機名稱)
    certbot_zimbra.sh -n
    ##或是多主機
    certbot_zimbra.sh -n -e <第二主機名稱>
  6. 重啟zimbra
  7. 設定自動更新(這方式很多,請參考certbot-zimbra官網
  8. certbot-zimbra網站 https://github.com/YetOpen/certbot-zimbra

擋信政策

擋信政策可以使用管理頁面登入, 參考https://wiki.zimbra.com/wiki/Anti-spam_Strategies 建議設定

  1. reject_non_fqdn_sender
  2. reject_unknown_sender_domain
  3. rbl
  4. rhbl

手動設定擋信政策

新版設定不太一樣,針對postscreen新的設定可參考這裏 , 另外可參考 這個網站 提供的整體建議.

我綜合之後的設定(有些可使用管理頁面設定就不再額外加入)

## antispam enable
### check status
zmlocalconfig antispam_enable_rule_updates
zmlocalconfig antispam_enable_restarts
### set enable
zmlocalconfig -e antispam_enable_rule_updates=true
zmlocalconfig -e antispam_enable_restarts=true
zmprov mcf zimbraSpamKillPercent 75
zmprov mcf zimbraSpamTagPercent 20
zmprov mcf zimbraSpamSubjectTag "** CAUTION! SUSPICIOUS EMAIL **"

### restart
zmamavisdctl restart

## set MTA restriction
zmprov mcf +zimbraMtaBlockedExtension asd
zmprov mcf +zimbraMtaBlockedExtension bat
zmprov mcf +zimbraMtaBlockedExtension cab
zmprov mcf +zimbraMtaBlockedExtension chm
zmprov mcf +zimbraMtaBlockedExtension cmd
zmprov mcf +zimbraMtaBlockedExtension com
zmprov mcf +zimbraMtaBlockedExtension dll
zmprov mcf +zimbraMtaBlockedExtension do
zmprov mcf +zimbraMtaBlockedExtension exe
zmprov mcf +zimbraMtaBlockedExtension hlp
zmprov mcf +zimbraMtaBlockedExtension hta
zmprov mcf +zimbraMtaBlockedExtension js
zmprov mcf +zimbraMtaBlockedExtension jse
zmprov mcf +zimbraMtaBlockedExtension lnk
zmprov mcf +zimbraMtaBlockedExtension ocx
zmprov mcf +zimbraMtaBlockedExtension pif
zmprov mcf +zimbraMtaBlockedExtension reg
zmprov mcf +zimbraMtaBlockedExtension scr
zmprov mcf +zimbraMtaBlockedExtension shb
zmprov mcf +zimbraMtaBlockedExtension shm
zmprov mcf +zimbraMtaBlockedExtension shs
zmprov mcf +zimbraMtaBlockedExtension vbe
zmprov mcf +zimbraMtaBlockedExtension vbs
zmprov mcf +zimbraMtaBlockedExtension vbx
zmprov mcf +zimbraMtaBlockedExtension vxd
zmprov mcf +zimbraMtaBlockedExtension wsf
zmprov mcf +zimbraMtaBlockedExtension wsh
zmprov mcf +zimbraMtaBlockedExtension xl
zmprov mcf +zimbraMtaBlockedExtensionWarnAdmin TRUE
zmprov mcf +zimbraMtaBlockedExtensionWarnRecipient TRUE
zmprov mcf zimbraVirusBlockEncryptedArchive FALSE
zmprov gcf zimbraMTARestriction

## set Postscreen , 8.7 and above
### https://wiki.zimbra.com/wiki/Zimbra_Collaboration_Postscreen
### medium/high level
zmprov mcf zimbraMtaPostscreenAccessList permit_mynetworks
zmprov mcf zimbraMtaPostscreenBareNewlineAction ignore
zmprov mcf zimbraMtaPostscreenBareNewlineEnable no
zmprov mcf zimbraMtaPostscreenBareNewlineTTL 30d
zmprov mcf zimbraMtaPostscreenBlacklistAction ignore
zmprov mcf zimbraMtaPostscreenCacheCleanupInterval 12h
zmprov mcf zimbraMtaPostscreenCacheRetentionTime 7d
zmprov mcf zimbraMtaPostscreenCommandCountLimit 20
zmprov mcf zimbraMtaPostscreenDnsblAction enforce
zmprov mcf zimbraMtaPostscreenDnsblSites 'b.barracudacentral.org=127.0.0.2*7' zimbraMtaPostscreenDnsblSites 'dnsbl.inps.de=127.0.0.2*7' zimbraMtaPostscreenDnsblSites 'zen.spamhaus.org=127.0.0.[10;11]*8' zimbraMtaPostscreenDnsblSites 'zen.spamhaus.org=127.0.0.[4..7]*6' zimbraMtaPostscreenDnsblSites 'zen.spamhaus.org=127.0.0.3*4' zimbraMtaPostscreenDnsblSites 'zen.spamhaus.org=127.0.0.2*3' zimbraMtaPostscreenDnsblSites 'list.dnswl.org=127.0.[0..255].0*-2' zimbraMtaPostscreenDnsblSites 'list.dnswl.org=127.0.[0..255].1*-3' zimbraMtaPostscreenDnsblSites 'list.dnswl.org=127.0.[0..255].2*-4' zimbraMtaPostscreenDnsblSites 'list.dnswl.org=127.0.[0..255].3*-5' zimbraMtaPostscreenDnsblSites 'bl.mailspike.net=127.0.0.2*5' zimbraMtaPostscreenDnsblSites 'bl.mailspike.net=127.0.0.[10;11;12]*4' zimbraMtaPostscreenDnsblSites 'wl.mailspike.net=127.0.0.[18;19;20]*-2' zimbraMtaPostscreenDnsblSites 'dnsbl.sorbs.net=127.0.0.10*8' zimbraMtaPostscreenDnsblSites 'dnsbl.sorbs.net=127.0.0.5*6' zimbraMtaPostscreenDnsblSites 'dnsbl.sorbs.net=127.0.0.7*3' zimbraMtaPostscreenDnsblSites 'dnsbl.sorbs.net=127.0.0.8*2' zimbraMtaPostscreenDnsblSites 'dnsbl.sorbs.net=127.0.0.6*2' zimbraMtaPostscreenDnsblSites 'dnsbl.sorbs.net=127.0.0.9*2'
zmprov mcf zimbraMtaPostscreenDnsblTTL 5m
zmprov mcf zimbraMtaPostscreenDnsblThreshold 8
zmprov mcf zimbraMtaPostscreenDnsblTimeout 10s
zmprov mcf zimbraMtaPostscreenDnsblWhitelistThreshold 0
zmprov mcf zimbraMtaPostscreenGreetAction enforce
zmprov mcf zimbraMtaPostscreenGreetTTL 1d
zmprov mcf zimbraMtaPostscreenNonSmtpCommandAction drop
zmprov mcf zimbraMtaPostscreenNonSmtpCommandEnable no
zmprov mcf zimbraMtaPostscreenNonSmtpCommandTTL 30d
zmprov mcf zimbraMtaPostscreenPipeliningAction enforce
zmprov mcf zimbraMtaPostscreenPipeliningEnable no
zmprov mcf zimbraMtaPostscreenPipeliningTTL 30d
zmprov mcf zimbraMtaPostscreenWatchdogTimeout 10s
zmprov mcf zimbraMtaPostscreenWhitelistInterfaces static:all

### Create /opt/zimbra/common/conf/postscreen_wblist
vi /opt/zimbra/common/conf/postscreen_wblist
### Rules are evaluated in the order as specified.
### Blacklist 60.70.80.* except  60.70.80.91.
60.70.80.91/32 permit
60.70.80.0/24 reject
### enable white/black list
zmprov mcf zimbraMtaPostscreenAccessList "permit_mynetworks, cidr:/opt/zimbra/common/conf/postscreen_wblist"
zmprov mcf zimbraMtaPostscreenBlacklistAction enforce

### sender/recipient mismatch
zmprov mcf zimbraMtaSmtpdSenderLoginMaps proxy:ldap:/opt/zimbra/conf/ldap-slm.cf 
zmprov mcf +zimbraMtaSmtpdSenderRestrictions reject_authenticated_sender_login_mismatch
zmprov mcf zimbraMtaSmtpdRejectUnlistedRecipient yes
zmprov mcf zimbraMtaSmtpdRejectUnlistedSender yes

### restart
zmmtactl restart
zmconfigdctl restart

重新啟動時, 出現 Unable to start TLS: SSL connect attempt failed error解決方式

zmcontrol stop
zmlocalconfig -e ldap_starttls_required=false
zmlocalconfig -e ldap_starttls_supported=0
Zmcontrol start
1 ... 34 35 36 37 38 ... 58