之前在(四)我家的網路架構提到過,我打算選用pfSense來當防火牆作業系統,但是實際上線了之後,卻又發生了一些很麻煩的小問題。
— pfSense的分隔線 —
我們之前在辦公室裝了一台PPTP Server,方便我們人在家裡的時候連回去辦公室的SVN Server同步檔案。原本這個方法在正式導入pfSense之前都用得好好的,但是在我把pfSense設定為IP分享器了之後,問題就突然跑出來了:「我在裡面連不到辦公室的PPTP」
我本來以為是pfSense的防火牆擋住還是怎樣的,設定改了好幾次,直到後來把整個設定reset重來,才成功連上去了。但是在我把所有的設定通通都設定回去了之後,又連不上了。經過幾次reset反覆測試了之後,我發現問題是在如果把pfSense裝成PPTP Server的話,位於裡面的機器就連不到遠端的PPTP。查了一下討論區,發現的確有不少人有回報這樣的問題,唯一的解似乎是用兩個public IP。(但是我沒有那麼多IP,所以沒辦法)
— m0n0wall的分隔線 —
於是我就想說,那試試看用m0n0wall好了,他也可以輕鬆設定PPTP Server的樣子。我千千萬萬沒有想到,m0n0wall居然不支援NAT Loopback的功能。也就是說,我在區網裡面,打https://applepig.idv.tw/會連不進這一頁,一定要在/etc/hosts或DNS額外把這個host轉成內部IP才可以。
— BrazilFW的分隔線 —
別提了,我看不懂葡萄牙文,英文的支援訊息又少的可憐。連安裝過程似乎每一版都還不一樣,我根本沒有辦法讓成功的讓他成為正常的NAT…
— IPCOP的分隔線 —
接著我試了相當老牌的IPCOP,一開始跟他相安無事,想說既然功能都齊全,就先用他試試看吧。結果不到第三天,我就發現網路會一直莫名的瞬斷,而且eMule忙起來的時候斷的特別兇。
…這就是傳說中的drop packet嗎(抖
— pfSense的分隔線 —
於是最後還是回到pfSense這邊來,只是把PPTP Server關掉,乖乖改用ssh tunnel連回來。雖然真的很麻煩,而且很慢,但是這似乎是目前最好的解決方法了…
題外話
在這一篇跟上一篇之間,我家的MySQL server突然爬不起來了。更新了版本之後還是爬不起來,最後把my.cnf跟default設定檔作比較,一句一句改掉,最後發現兇手是thread_concurrency = 8這一句。至於為什麼本來可以的,突然變成不行了,我也實在很好奇…
另外是手動翻閱htaccess.log時,發現了一個user-agent是有帶”Foxy/1″的人,會一口氣發出30個request,害MySQL會瞬間很忙,所以我就在.htaccess把他們直接ban掉了:
SetEnvIf User-Agent Foxy spam
deny from env=spam