簡單說就是鎖國啦。
這個上一手資訊來自機八林餅幹,
忘記他是從哪邊看來的。
反正幾乎沒在出國的話把 ssh port 之類的鎖起來可以省很多力氣。
先去裝 net-mgmt/netmask,
然後執行這個命令:
1 |
netmask `wget -qO- http://ftp.apnic.net/stats/apnic/delegated-apnic-latest | awk -F'|' '/TW\|ipv4/ {print $4":+"($5-1)}'` > /etc/TAIWANIP |
再去 /etc/pf.conf 加點東西:
1 2 3 |
table <TAIWANIP> persist file "/etc/TAIWANIP" pass in quick on $ext_if proto tcp from <TAIWANIP> to any port 22 label "login allowed" block in quick on $ext_if proto tcp from any to any port 22 |
然後 /etc/rc.d/pf reload 就好。
那個列表的更新高興的話丟 crontab 跑也是可以,
但是建議先 check 一下抓下來的是不是 0 bytes 或其它錯誤訊息再搬過去,
以免因為一時網路斷線或種種其它原因而發生一些奇怪的慘案。
一次想鎖很多 ports 的話就把 port 22 改成 port {21,22,23} 這樣,
其實 syntax 在 man pf.conf 都有講了也不用再這多廢話。
至於這招在只能用 iptables 的場合下怎麼玩我就不知道了。