Facebook 花去太多時間, 所以在 Linux 上加了一條 Rule 限制自己
時間模組是用 iptables 的 time , 寫起來像是這樣
iptables -N limit_fb => 新增一個新個 Rule 叫 limit_fb iptables -A OUTPUT -p tcp -m tcp -m time --kerneltz --timestart 22:00 --timestop 18:00 --dport 443 -j limit_fb --timestart 是開始時間 --timestop 是結束時間 --kerneltz 是使用本地時間, 不設預設用 UTC
因為 Facebook 都是用 https , 所以沒有很好的方式可以過濾 url
所以我選擇用 IP/RANGE 的方式阻擋.
Facebook 的所有 IP 位置可以從 AS 取得
用一個簡單的指令就可以取得
$ whois -h whois.radb.net ‘!gAS32934
將所有的 IP 加到 Rule tables 內
FBAS=`whois -h whois.radb.net ‘!gAS32934’ | tail -n 2 | head -n 1`
for i in $FBAS; do
$iptables -I limit_fb -d $i -j DROP
done
效果還不錯
最近又接上 IPv6 了, 如果要取得 Facebook IPv6 的範圍, 可以用這個指令
FBAS=`whois -h whois.radb.net — ‘-i origin AS32934’ | grep route6 | awk ‘{print $2}’`
for i in $FBAS; do
$ip6tables -I limit_fb -d $i -j DROP
done
ref.
Get all IP ranges from an AS number
Whois at the CLI: get all IP ranges from an AS number
懶得加一篇文章了
最近要限制小孩看電視,找出電視的 IP ,下這個指令
iptables -A FORWARD -p tcp -s 192.168.1.163 -m state --state NEW,ESTABLISHED -m time --timestart 06:00 --timestop 18:00 --weekdays Mon,Tue,Wed,Thu,Fri --kerneltz -j REJECT
比起限制 Facebook 的指令,這邊多了 weekdays ,只限制星期一到星期五的晚上六點之前,六點之後因為在家就可以直接限制了
發佈留言