FreeBSD

ssh 踩到 vmware 的地雷

[華語, cmn-Hant-TW] 最近更新了裝在 VMWare Fusion 裡面的 FreeBSD,結果發現 ssh 連得進去但是連不出來,查了一下發現是 VMWare 的 NAT 有問題,會造成 OpenSSH 7.8p1 的 ssh 連外全爛: Fssh_packet_write_wait: Connection to 10.9.1.120 port 22: Broken pipe 在 FreeBSD 官方的 bugzilla 跟 mailing list 都有討論到這個,結論就是修好前用加參數的方式繞開 -o IPQoS=throughput 或是在 ~/.ssh/config 或 /etc/ssh/ssh_config…

FreeBSD 的 Flavors

[華語, cmn-Hant-TW] FreeBSD 的 ports 在引入 Flavors 之後,比較能清楚的看出套件倒底是相依哪個東西,現在會看是用哪個版本的 php 而加上適當的前綴或後綴,像是以前的 composer 叫 php-composer-1.6.5,相依 php 7.2 的話就會叫 php72-composer-1.6.5,又例如 phpMyAdmin 的話以前叫 phpMyAdmin-4.8.2,相依 php 7.2 的會變成 phpMyAdmin-php72-4.8.2 這樣的好處是在套件安裝的時候可以指定要用哪個版本的 php,要用 php 5.6 的話就下 pkg install php56-composer 安裝即可,以往要使用非預設版本的套件時,只能自己手動從 ports 編譯,現在的話只要支援中的版本都可以透過這樣的方式選擇安裝,方便不少,要注意的是如果套件是在還沒支援 flavors 之前就裝好的話會沒辦法更新,先反安裝再重新選一個需要的版本安裝即可,以 phpMyAdmin 來講,如果要用 php72 的話就是: pkg delete phpmyadmin pkg…

Dovecot 2.3

[華語, cmn-Hant-TW] 雖然說去年底 Dovecot 2.3 就推出了,不過一直都沒時間理他,最近比較有空就來用 FreeBSD ports 升級,然後就卡關了,還好問題都不難處理,首先是升級一定會遇到的外掛程式版本匹配問題 doveconf: Error: Couldn’t load plugin /usr/local/lib/dovecot/settings/libmanagesieve_login_settings.so: Module is for different ABI version 2.2.ABIv35(2.2.35) (we have 2.3.ABIv1(2.3.1)) 所有 dovecot-* 相關套件重編即可 再來要設定 dh.pem,細節可以看這篇說明,不過其實照錯誤訊息提示的方法來設定就可以了 (設定檔在 /usr/local/etc/dovecot/dovecot.conf) doveconf: Warning: please set ssl_dh=</usr/local/etc/dovecot/dh.pem doveconf: Warning: You…

openldap + ssl

[華語, cmn-Hant-TW] 基本上有了 Let’s Encrypt 之後,合格的 SSL 認證取得算是方便非常多,有些之前跳過檢查或是設定自簽 root 的處理方式都可以省掉了,不過有些東西還是要設定加上定時更新才會用的順暢 在 FreeBSD 上 security/ca_root_nss 這個 port 要先裝好,然後 /etc/ssl/cert.pem 就可以拿來用了,如果安裝時沒開啟這個連結的話,直接用 /usr/local/share/certs/ca-root-nss.crt 也是可以的,然後常用的一些套件就可以用這個 cert 了,例如帳號認證用的 net/nss-pam-ldapd,在 /usr/local/etc/nslcd.conf 裡面加上一行 tls_cacertfile /etc/ssl/cert.pem 的設定後就不會抱怨 ssl 是自簽的 (也就是 tls_reqcert allow 用不到了),其他的軟體,像是 php 之類直接吃 /usr/local/etc/openldap/ldap.conf 設定的也不難處理,直接加一行 TLS_CACERT /etc/ssl/cert.pem 就可以搞定,其他的設定也是類似這樣處理即可 當然了,因為 Let’s Encrypt 的認證時間只有幾個月,定期更新憑證是需要的,不然過期的話還是會吃一堆錯誤訊息的

galera cluster 與 FreeBSD

[華語, cmn-Hant-TW] 在 Galera 的官網看到 這篇,想說既然官方有出支援 FreeBSD 的新版,最近剛好有環境而且有用到的需求,就想說來試用看看,古早時候曾經用 ports 裡面的 databases/galera 弄了老半天沒成功,看現在有沒有比較簡單些 結論就是 galera + mariadb 可以跑沒問題,但是目前有些限制存在 因為 Codership 是直接放 port 檔,所以下載後用平常編譯 port 的方式編即可,理論上這些東西應該還是會直接進 ports 吧,到時候用起來應該會更方便才是,同一包裡面還有 mysql 5.6 跟 mysql 5.7 的 cluster patch,不過我打算用 mariadb 10.1 來試所以沒用到 (不過機器有些是 10.x 有些是 11.x) 基本上各台機器設定參考官網的…

letsencrypt.sh

[華語, cmn-Hant-TW] 之前在這篇提到了 Let’s Encrypt 的 SSL,用起來是很開心沒錯,不過因為官方的 client 是用 python 寫的,在 freebsd 下面得裝一大堆 py27-* 的套件 (當然,安裝 security/py-letsencrypt 時會自動一起被裝進去,不用手動一個一個裝) 才能用,然後申請的時候要把 apache/nginx 關掉放出 80 port,某種程度來講還蠻讓人困擾的,後來看到有人用 shell script 寫了一個比較沒那麼肥的 letsencrypt.sh,主要得另外安裝 curl 而已,也不用關掉 apache/nginx,看起來蠻理想的,而且也進 FreeBSD 的 ports 了 (security/letsencrypt.sh),抓來下用了一下感覺還不錯: 用 ports 安裝的話檔案預設會放在 /usr/local/etc/letsencrypt.sh 目錄下,然後因為預設的 $BASEDIR…

Let’s Encrypt + FreeBSD

[華語, cmn-Hant-TW] 免費的 SSL – Let’s Encrypt 終於到了公測階段,其實之前封測的時候就有先試玩看看,是可以用啦不過問題比較多,要一些小技巧還有設定才能跑,而且 FreeBSD 的 ports 也還沒出來,現在的話有進 ports 用起來就方便很多,直接裝 security/py-letsencrypt 就可以用了 裝好之後執行 letsencrypt certonly,輸入 e-mail 跟要申請的網域就可以了,申請的過程需要用 80 port 來驗證,所以要先把網頁伺服器暫時關掉,然後當然要申請的網址也要確實有指到這台機器上,這樣才能驗證成功,如果順利的話應該幾秒鐘就申請完成了 在 FreeBSD 下暫時還沒有支援 apache 跟 nginx 的整合,所以這邊要自己弄,所有 letsencrypt 的檔案都會放在 /usr/local/etc/letsencrypt 的目錄下,以 pighead.cc 網域來當例子的話,就會放在 /usr/local/etc/letsencrypt/live/pighead.cc/,裡面會有 symbolic link 建好的 cert.pem…

php 5.6 + apache 2.4 + laravel

[華語, cmn-Hant-TW] 最近把一些原本跑 php 5.5 跟 apache 2.2 的網站更新到 php 5.6 + apache 2.4,遇到了一些狀況,首先是 composer 在執行的時候噴出這樣子的錯誤訊息: The "https://packagist.org/packages.json" file could not be downloaded: SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failedThe "https://packagist.org/packages.json" file could not…

DigitalOcean 的 FreeBSD 支援

[華語, cmn-Hant-TW] 等好久 DigitalOcean 終於支援 FreeBSD 了,在 Presenting FreeBSD! How We Made It Happen. 裡面有簡單敘述怎麼達成支援的,總之就是現在可以直接開 FreeBSD 10.1 的 droplet 了,就跟其他的支援的 Linux distro 一樣,這應該是目前最簡單的架 FreeBSD 主機的服務了吧? 實際用下來的心得 開機器一定要提供 ssh key,系統不會寄 root 密碼信到自己的信箱,這對 FreeBSD 來講很自然,因為預設的系統根本就不開放 root ssh 啊,而這個 ssh key 事實上是給 freebsd 這個預先開好的帳號用的,這個帳號具有 sudo…

讓 netatalk 減少斷線的參數

[華語, cmn-Hant-TW] 最近又要複製很大的 Time Machine 備份,開給他跑整天結果第二天一看居然連磁碟都被退出了,在伺服器端看到這樣子的訊息: Dec 24 17:41:45 pitaya afpd[49716]: read: Operation timed out Dec 24 17:41:45 pitaya afpd[49716]: dsi_stream_read: len:-1, Operation timed out Dec 24 17:41:45 pitaya afpd[49716]: dsi_stream_read: len:0, unexpected EOF Dec 24 17:41:45 pitaya afpd[49716]: dsi_disconnect:…