在 FreeBSD 利用 Tor 架設 deep web site

Tor 這玩意已經是老東西了,有些人只是把它當成跳板用,有些人會拿來瀏覽 .onion 虛擬網域下的 deep web sites,當然也有人拿來架 deep web sites。
長年來人們對 deep web 都會有一些不切實際的傳說,譬如下面這幾張圖:
deep-web deep-web-247933 150279_original
這些圖片和傳說雖然有些是真的,但大部分都可以把它當成 joke 看待,不用對它們太認真。
特別是第三張圖,你還會看到各種惡搞變形版,我只能說對它認真你就輸了。
所以拜託不要再跑來問我什麼 Marianas Web 在哪,這些都是 bullshit,去問你地理老師還比較實在。
至於用冰山來形容海面下有多少東西這種描述方式,我只能說以種類的數量來說的確如此,但以純粹的檔案容量來講這簡直胡扯。

Read more在 FreeBSD 利用 Tor 架設 deep web site

在 FreeBSD 9.x 的系統中啟用 C++11 及 libc++

看標題應該就知道是用 clang 了,至於目的,當然就是要在 FreeBSD 裡使用最完全最先進的 C++11 來寫程式,並且拋棄 GCC 及 libstdc++。
如果系統中有任何函式庫混入了 libstdc++,導致最終執行檔同時連結了 libc++ 及 libstdc++ (使用 ldd 檢查就能看見),那麼程式在啟動時就會 crash。
因此要達到這個目標,就必須自行編譯整個系統及所有套件,並確實讓使用到 C++ 的程式及函式庫都只連結到 libc++。

Read more在 FreeBSD 9.x 的系統中啟用 C++11 及 libc++

LDAP + samba

時隔五年之久,既實驗了一下 LDAP 的設定這篇之後,又再度遇上了 LDAP 的設定問題。
當年照那篇文章設定的話,在多台 samba servers 的環境下其實是會撞上一些問題的,也就是帳號認證會失敗。
在問題發生的機器上輸入 pdbedit -L 的話,則會看到「sid S-1-5-21-3723331297-2499002124-1306837190-1001 does not belong to our domain」這樣的訊息。
處理的方式很簡單,因為每台 server 的 smb.conf 都是 standalone server,採取「security = user」的設定,所以把 local SID 設成一樣就可以了。
譬如在建立那個 samba 帳號的原機器輸入「net getlocalsid」的話,會看到「SID for domain <hostname> is: S-1-5-21-2347759184-1676931091-2532609757」。
所以只要在每台機器都下「net setlocalsid S-1-5-21-2347759184-1676931091-2532609757」,這個問題就會解決。
但是到了現在,這招已經不管用了。net setlocalsid 怎麼下都還是沒有作用,SID 死都不會變,所以需要學點新方法。

Read moreLDAP + samba

安裝 Gentoo 時將 /usr 放在獨立分割區需要新方法

這是今年初幫實驗室裝新 server 的時候注意到的,當時一整個沒空加上很懶,就沒有去深入研究。
所以當時索性把 /usr 直接放在 / 分割區,也不算真的去解決了這個問題。
現在已經成為了上班族,下班時間就做自己有興趣的事,時間分割得很開,和學生時代不一樣了。
最近突然想起這個問題,於是就去租了一個月的 KVM VPS 來實驗看看當時沒解決的問題。

Read more安裝 Gentoo 時將 /usr 放在獨立分割區需要新方法

在 FreeBSD 9.1 裡完全使用 clang 代替系統的 gcc

已經算是有相當多年沒有把系統的版本做提升了,趁著 FreeBSD 9.1-RELEASE 開始內建 LLVM 3.1 的機會,我也順便做了一次多年來罕見的升級。
畢竟 FreeBSD base system 上使用的 GCC 實在是太舊了,是變成 GPLv3 之前的最後一個版本,也就是 4.2.1 這個早就該作古的版本。
加上我對 GCC 的內部的設計實在是有點反胃,認識我的人應該也知道我蠻討厭那個大鬍子教主,所以聽到能換成 LLVM 當然就是馬上安排時間衝了。

Read more在 FreeBSD 9.1 裡完全使用 clang 代替系統的 gcc

請小心 Gentoo 最近幾個月的 minimal installation CD

上篇講完了 VPS,這篇來講在獨立主機 Dell PowerEdge R310 上裝 Gentoo 遇到的問題。
這個問題的就是最近數個月 Gentoo 的 minimal installation CD 裡的 firmware 無法正常解壓:

如果需要 firmware 的是其它硬體還好,偏偏在這機器上需要 firmware 的就是 bnx2 網卡,所以當然不是打個 emerge linux-firmware 就能解決的問題。
其實這個問題也早就有人遇到了:
Install problem on x86_64
https://bugs.gentoo.org/show_bug.cgi?id=455924
Bug 443024 - install-amd64-minimal-20121107 /lib/firmware.tar.bz2 is 0 bytes, init.d/firmware fails, /lib/firmware/ is empty
雖然也是被裝死了好幾個月,但應該近期就會修正了吧。

Read more請小心 Gentoo 最近幾個月的 minimal installation CD

在 x86 環境下編譯 GCC 4.8 會出現 '_ITM_TYPE_M256' does not name a type 的錯誤

我想應該不少人已經知道 x86 平台被很多 software developer 無視已久了。
特別是歷經了用 gcc -O3 編譯 zlib 以後會讓包括 ssh 在內的一大堆程式爆炸,叫修又被裝死很長一段時間的這段血淚史,讓我對這個潮流更加印象深刻:
Bug 270120 - (PR40838) [4.4/bad-code] -ftree-vectorize causes segfaults on x86 due to stack misalignment
Bug 41156 - [4.4/4.5/4.6 Regression] zlib segfault in inflate_table() compiled w/ -O -msse2 ftree-vectorize
不過最近在租用外國 KVM 服務的時候,居然遇到一家實體 CPU 採用 Xeon E3-1270 V2 的主機商,無論如何就是無法讓 64-bit 的 FreeBSD ISO 能 boot 起來,無論是 8.3 和 9.1 都不行。
相對地,其它 Linux 家族的 64-bit 安裝光碟都完全沒事,可以正常 boot 也能裝得很開心,這實在是讓我這個喊了 FreeBSD 才是王道超過 10 年的人看得很傻眼。
雖然主機商馬上 call 了 FreeBSD 的 maintainer 來看看有沒有辦法解決,但最後只是推測這新的 CPU 架構和 USB 裝置的初始化有衝突,要修正還是不知道得等到何年何月,所以我就和主機商說讓我改裝 i386 的 FreeBSD 9.1 了。
因此在切換到 x86-64 環境的數年後,我又再次被迫回到 x86 平台這個戰場來編譯程式,向者艱辛的道路邁進。

Read more在 x86 環境下編譯 GCC 4.8 會出現 '_ITM_TYPE_M256' does not name a type 的錯誤