RouterOS v7 vlan-filtering

雖然 RouterOS v7 啟動了對 MT7621 VLAN HW offloading 硬體加速的支援:
https://help.mikrotik.com/docs/display/ROS/Bridge#Bridge-BridgeHardwareOffloading

然而因為此 bug,若是你在 bridge 裡面對封包上 tag / 解 tag,依然還是會吃掉 CPU IRQ:
https://forum.mikrotik.com/viewtopic.php?f=1&t=177092#p878135

目前的替代方案,依然還是只能把 vlan interface 疊加在 bridge 上面,也就是官方文檔裡面提到的 VLAN on a bridge in a bridge:
https://wiki.mikrotik.com/wiki/Manual:Layer2_misconfiguration#VLAN_on_a_bridge_in_a_bridge

運作起來是也沒什麼問題,只是就醜了些,感覺沒有那麼優雅…

好消息是官方說此功能正在積極開發中了。

Update

似乎 DHCPv6-PD 也修好了?

/ipv6 address
add from-pool=hinet_ipv6_pool interface=bridge_vlan100_HOME
/ipv6 dhcp-client
add add-default-route=yes interface=pppoe-out2-dynamic pool-name=hinet_ipv6_pool rapid-commit=no request=prefix use-peer-dns=no
/ipv6 firewall filter
add action=accept chain=output
add action=accept chain=forward connection-limit=100,64 connection-state=established,related connection-type="" dst-limit=1,5,dst-address/1m40s headers=\
    :exact limit=1,5:packet time=0s-1d,sun,mon,tue,wed,thu,fri,sat
/ipv6 firewall mangle
add action=change-mss chain=forward dst-prefix=::/0 new-mss=clamp-to-pmtu passthrough=no protocol=tcp src-prefix=::/0 tcp-flags=syn
/ipv6 nd
add interface=bridge_vlan100_HOME managed-address-configuration=yes
/ipv6 settings
set max-neighbor-entries=8192

RouterOS v7 vlan-filtering

設定 ntpd,避免成為 DDoS 肉雞

大部分系統 ntpd 預設配置檔案都有一個問題,當啟用之後,容易被利用參與 DDoS 放大攻擊。其中的 MONLIST 指令可以回傳該 ntp server 最近聯繫之 ntp server (通常為對時用),若是搭配偽造的 IP address,攻擊者可以創造出類似 DNS 放大攻擊的效果。

CloudFlare 前陣子被 DDoS 攻擊,經查之後發現接近 400 Gbps 的流量是來自於接近 4,500 台的 NTP server 導致的。

於此網站可以查詢有啟動 ntp,可能遭到利用的主機:http://openntpproject.org/ 輸入 IP address range (例:140.115.189.0/24) 可查詢整個網段。

建議各位停用系統中的 ntpd,改用 ntpdate (client only)。 UPDATE: 設定 ntpd 為較好的做法,ntpdate 為過時之工具,參考資料:https://lists.debian.org/debian-user/2002/12/msg04091.html

修改方法為編輯 /etc/rc.conf

ntpd_enable="YES"

編輯 /etc/ntp.conf

server time.stdtime.gov.tw
server watch.stdtime.gov.tw

#反註解,設定不讓他人查詢
restrict default ignore
restrict -6 default ignore
restrict time.stdtime.gov.tw nomodify nopeer noquery notrap
restrict watch.stdtime.gov.tw nomodify nopeer noquery notrap

同時,也可將 ntpdate 放進 crontab,每日自動對時。

參考資料:http://blog.cloudflare.com/technical-details-behind-a-400gbps-ntp-amplification-ddos-attack

設定 ntpd,避免成為 DDoS 肉雞

Proxmox 簡易安裝與設定

proxmox

Proxmox 是一套操作上非常簡單的虛擬化系統,提供了 KVM 等級的虛擬機器建置管理以及 OpenVZ 兩種使用環境。KVM 是 Linux kernel 從底層提供的虛擬化環境,可以支援大部分 x86 架構的硬體(但 CPU 需要支援虛擬化指令集),至於 OpenVZ 則是作業系統等級的虛擬環境,有點類似於 chroot,主要是用同一作業系統提供各種不同的網站服務,基本上效能比較好但是限制稍微多了一點。兩種架構應該都算是 IaaS 的服務。

現在的最新版本是 Proxmox VE3.1,釋出也一段時間了,相信網路上也可以找到不少資源。由於 Proxmox 主要是以 Debian 為基本建立的,因此許多熟悉的指令像是 apt-get 都可以直接套用,熟悉 Ubuntu 的朋友想必操作上絕對沒有問題。

這一次處理 中央網路開源社 的伺服器,由於資源不多因此我們只有一台電腦與一個 IP,要在這種克難的環境下搞出虛擬平台稍微複雜了點。VMWare 之流的軟體硬體支援度不好,Xen 的操作使用又太複雜,再加上沒用過 Proxmox,因此就決定來試試看

安裝

安裝的部份非常簡單,放入光碟一步一步照著教學操作就可以安裝完成。詳細的圖文教學可以參照最底下的連結。 在這邊我們要設定一個主機的 IP 位址方便未來連線。

使用

安裝完之後,變可以透過 https://[your IP]:8006 進入主機的 web 管理介面。這介面真的美觀好用到令人感動 XD

繼續閱讀 “Proxmox 簡易安裝與設定”

Proxmox 簡易安裝與設定

Apache mod_vhost_alias 大量虛擬主機設定

先前於研究 suPHP 時,有老師提出自動三級域名自動轉址之服務,例如 test1.example.com 會自動連結與 www.example.com/~test1 的網頁,而不需要做額外的 Virtual Host 或 alias 設定,如此一來各單位若有需要就不必再分別註冊 DNS record,而只需要註冊一筆 wildcard DNS 即可,例如  * CNAME example.com. 即可。

後來發現,Apache 不愧為一包山包海的軟體,連這樣的功能都有內建模組,就是 mod_vhost_alias 模組。將其啟動之後,可以於目錄下建立以下的設定檔:

<VirtualHost *:80>
        UseCanonicalName Off
        VirtualDocumentRoot /usr/local/www/apache22/vhosts/%1

<Directory /usr/local/www/apache22/vhosts/*>
            AllowOverride All
            Options MultiViews +Indexes SymLinksIfOwnerMatch IncludesNoExec ExecCGI
            <Limit GET POST OPTIONS>
                Order allow,deny
                Allow from all
            </Limit>
            <LimitExcept GET POST OPTIONS>
                Order deny,allow
                Deny from all
            </LimitExcept>
</Directory>

</VirtualHost>

其中 mod_vhost_alias 透過 VirtualDocumentRoot  設定導向之網頁目錄。

%1  代表網址的第一個部份,以 test.example.com 為例,解析出之資料夾即為 test,詳細用法可以參考 http://httpd.apache.org/docs/2.2/mod/mod_vhost_alias.html 

以上的設定,於網頁瀏覽器送出連線的時候,Apache 就會跑去 /usr/local/www/apache22/vhosts 裡面找相對應網址的資料夾,同理可推我們或許可以設定為 /home0/<username>/public_html 之類的設定。

雖然應該不太常會用到,還是給各位參考一下~

Apache mod_vhost_alias 大量虛擬主機設定

Nginx + PHP-FPM on FreeBSD

閒著沒事幹就嘗試把 Apache 2.2 搭配 PHP-FPM 的架構轉移至 Nginx。

根據維基百科,Nginx 是一個高效率、輕量的 HTTP 伺服器,在靜態檔案的效能相當好,不過若是有處理動態網頁 (像是 PHP) 的需求,則一般透過 FastCGI 的模式執行。先前我們已經建置了 Apache + mod_fcgid 搭配 PHP-FPM 的架構,因此在這次的轉移中我們只要把 Apache 換成 Nginx 即可。

首先就是安裝 Nginx。

cd /usr/ports/www/nginx && make install

安裝 PHP-FPM 與設定的部份就不在詳述了,可以找先前的文章參考。

繼續閱讀 “Nginx + PHP-FPM on FreeBSD”

Nginx + PHP-FPM on FreeBSD

網路本匿名,何處惹爭議?

剛好最近 ask.fm 很流行,觀察了一些問問題與被問問題的人的看法,想來紀錄一下我自己的感想。

我認為網路本來就是匿名的。不討論那種入侵 ISP 資料庫取得客戶真實身份的狀況,每個人在網路上也不過是一個躲在帳號/45度仰角自拍大頭照後面、對著螢幕敲鍵盤的人罷了,對也許從未見過面的另一個人來說,每個人都是匿名的,即使你常常使用某一個暱稱,常常使用某一張大頭貼,充其量也只能表示你應該是同一個人,而你是誰根本不重要。不過在這個連咖啡機都會有推特帳號的年代,還不一定保證帳號後面是人呢。

那麼,為什麼要假定匿名的人都是抱持著惡意、需要謹慎小心面對的態度呢?試問現在的網際網路有對任何非匿名帳號的行為有任何保證措施嗎?難道只因為在現實生活中會碰到面,該有的提防就不應該有了嗎?中國大陸最近要推網路實名化,而南韓才正要取消,而應該不只我認定無罪推定是普世價值吧。

其實滿多網路機構/名人會在 reddit 上面辦 AMA (Ask Me Anything),透過這些回答網友的問題,他們也可以收集到許多人們對活動、人的真正感受、想法。對舉辦活動的人來說,每個網友都是匿名的在提出問題,但這些問題的確都代表了某個人的聲音,這聲音不會因為他住在哪裡、他做什麼工作而產生差別,若是舉辦單位只在乎發問的禮節與網友的身份、身家背景,那這類活動就跟核四的說明會一樣,一點意義都沒有。

所以,我認為在 ask.fm 上面因為匿名所產生的一些令人不快的問題,只是單純的人性表達,只是大家真正想問的問題罷了。這些問題不會因為推行網路實名就消失,所以也沒有必要對這些問題不快,事實上能看到這些問題,也比它們的被默默的埋在某個人的心裡好多了。另外一點是,我認為沒有不對的問題,只有不適合的回答。如果因為認為一個問題高度太低、太沒禮貌而拒絕回答,那本質上也喪失了一個溝通的機會,而在網路上我認為這是很寶貴的。

開放匿名問答本來就要做好價值觀被衝撞的心理準備,若只是想單純回答自己覺得舒適的問題,那其實也沒有必要辦這種匿名問答的活動,因為在各種場合都可以問的才對。

蝙蝠俠曾說過:”Its not who I am underneath but what I do that defines me.”

最後我想補充一點,匿名不一定代表不想負責,如果這個環境讓人不敢說真話、說真話之後要付出沈重的代價,那是環境有問題,不是匿不匿名的問題。每天在各式各樣的新聞網頁下面可以看到 Facebook 留言區塊,而 Facebook 目前我認為是最接近實名制的網站了,我也不覺得那些問題是有善意到哪裡去。

讓我們回顧一下旺旺蔡董說過的:「記者有批評的自由,但是寫之前要好好想一想,避免寫一些會冒犯別人的侮辱。」誰來定義侮辱呢?禮貌到底是要求自己的標準,還是加諸在別人身上的沈重枷鎖呢?

總覺得這篇邏輯好怪,日後有空再來修吧,先紀錄起來怕之後忘記。

網路本匿名,何處惹爭議?