iT邦幫忙

0

linux主機中,如何有效防堵facebook網頁?

大家好,想跟大家請教一個問題,公司的防火牆是使用cetos的主機架設而成,公司規定禁止員工在公司內部使用facebook臉書的網頁,所以我在iptables的規則檔裡面設定了幾條規定

封鎖facebook

-A PREROUTING -j blockfacebook
-A blockfacebook -d www.facebook.com -j DROP
-A blockfacebook -d apps.facebook.com -j DROP

這簡單的幾行,facebook部分,在規則剛開始設定的時候是可以正常運作的
也就是公司員工是不能上臉書的,但近來發現,似乎這規則好像失效了
不過第二條的臉書app部分是上不去的,也就是說無法玩臉書的遊戲部分
我想請教一下各位,是否在這規則裡面還要再增設那些規定
才可以讓公司的主機有效的防堵員工上時間使用facebook???(以公司的網路而定,個人3g我管不著)
感謝各位的指教及幫忙!!

用防火牆吧,不然還是無法防「無界」。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
8
cmwang
iT邦大師 1 級 ‧ 2013-05-20 09:36:33

iptables的destination填FQDN時只會擋當時拿到的DNS reply的第一個IP(i.e.其他的IP是不會被擋下來的Orz),以FB的規模大概不至於只有單一IP吧偷笑偷笑....

看更多先前的回應...收起先前的回應...
jiang360 iT邦新手 4 級 ‧ 2013-05-20 09:43:45 檢舉

這規則再設定的剛開始是可以有效阻擋的
但是後來發現這規則似乎已經失效了
重新啟動iptables也不行
現在就只剩apps.facebook.com這條規則還可以正常的執行

u8526425 iT邦大師 1 級 ‧ 2013-05-20 10:00:20 檢舉

如果DNS是自己管的話
就把*.facebook.com通通導到其他地方吧

jiang360 iT邦新手 4 級 ‧ 2013-05-20 13:36:11 檢舉

u8526425大您好

dns不是自己管喔
我是希望想要找到更好的參數可以在iptables底下把臉書給擋掉

cmwang iT邦大師 1 級 ‧ 2013-05-20 18:17:20 檢舉

jiang360提到:
現在就只剩apps.facebook.com這條規則還可以正常的執行

試試iptables -n -L,看一下-d的destination到底長怎樣吧Orz....

jiang360提到:
我是希望想要找到更好的參數可以在iptables底下把臉書給擋掉

若一定要用FQDN的型式指定destionation的話鵝只想得出用transparent proxy+acl的方式了,畢竟要kernel在forward每個packet前都去做DNS query是非常不切實際的想法OrzOrz....

6
bizpro
iT邦大師 1 級 ‧ 2013-05-20 20:09:44

試著加這個:
-A blockfacebook -d facebook.com -j DROP

如果不行, 就擋住所有facebook用的IP吧:
$ whois -h whois.radb.net -- '-i origin AS32934' | grep ^route
route: 204.15.20.0/22
route: 69.63.176.0/20
route: 66.220.144.0/20
route: 66.220.144.0/21
route: 69.63.184.0/21
route: 69.63.176.0/21
route: 74.119.76.0/22
route: 69.171.255.0/24
route: 173.252.64.0/18
route: 69.171.224.0/19
route: 69.171.224.0/20
route: 103.4.96.0/22
route: 69.63.176.0/24
route: 173.252.64.0/19
route: 173.252.70.0/24
route: 31.13.64.0/18
route: 31.13.24.0/21
route: 66.220.152.0/21
route: 66.220.159.0/24
route: 69.171.239.0/24
route: 69.171.240.0/20
route: 31.13.64.0/19
route: 31.13.64.0/24
route: 31.13.65.0/24
route: 31.13.67.0/24
route: 31.13.68.0/24
route: 31.13.69.0/24
route: 31.13.70.0/24
route: 31.13.71.0/24
route: 31.13.72.0/24
route: 31.13.73.0/24
route: 31.13.74.0/24
route: 31.13.75.0/24
route: 31.13.76.0/24
route: 31.13.77.0/24
route: 31.13.96.0/19
route: 31.13.66.0/24
route: 173.252.96.0/19
route: 69.63.178.0/24
route: 31.13.78.0/24
route: 31.13.79.0/24
route: 31.13.80.0/24
route: 31.13.82.0/24
route: 31.13.83.0/24
route: 31.13.84.0/24
route: 31.13.85.0/24
route: 31.13.86.0/24
route: 31.13.87.0/24
route: 31.13.88.0/24
route: 31.13.89.0/24
route: 31.13.90.0/24
route: 31.13.91.0/24
route: 31.13.92.0/24
route: 31.13.93.0/24
route: 31.13.94.0/24
route: 31.13.95.0/24
route: 69.171.253.0/24
route: 69.63.186.0/24
route: 204.15.20.0/22
route: 69.63.176.0/20
route: 69.63.176.0/21
route: 69.63.184.0/21
route: 66.220.144.0/20
route: 69.63.176.0/20
route6: 2620:0:1c00::/40
route6: 2a03:2880::/32
route6: 2401:DB00::/32
route6: 2a03:2880:fffe::/48
route6: 2a03:2880:ffff::/48
route6: 2620:0:1cff::/48

當然, 建議用Squid Proxy來擋吧

看更多先前的回應...收起先前的回應...
jiang360 iT邦新手 4 級 ‧ 2013-05-21 08:24:50 檢舉

您好,有以您的建議把facebook.com這個指令加進去了,但是還是沒效
看來,他似乎是https的網頁....
這些ip我有是著檔網段,但一檔下去,很多網頁都打不開,被user罵死了
所以目前檔ip網段這個方法暫時先無法執行耶....

bizpro iT邦大師 1 級 ‧ 2013-05-21 09:25:06 檢舉

這些IP是facebook所用的IP, 您說很多網頁打不開, 這不正是擋IP的用意嗎?

jiang360 iT邦新手 4 級 ‧ 2013-05-22 15:53:43 檢舉

我的意思是,檔了這些個ip的網段,會讓其他不是臉書的網頁也打不開
這樣會被user罵死,因為我們公司是經營跨國的產品

cmwang iT邦大師 1 級 ‧ 2013-05-27 09:36:49 檢舉

bizpro提到:
如果不行, 就擋住所有facebook用的IP吧:

那個IP range應該還可以再整理過,有些CIDR其實是重複的....

bizpro iT邦大師 1 級 ‧ 2013-05-27 16:59:35 檢舉

這個IP Range是依Facebook官網公告的方式取得, 是由whois自動產生的.

8
bzbz
iT邦新手 2 級 ‧ 2013-05-20 21:05:58

善用string 模組

iptables -t nat -A PREROUTING -p tcp --dport 80 -m string --algo bm --string "facebook.com" -j DROP

但我還是希望你從DNS方面做阻擋,因為對方如果走https就擋不住了...

jiang360 iT邦新手 4 級 ‧ 2013-05-21 08:23:16 檢舉

您好,小弟對於linux指令並不熟,所以想跟您請教一下,此一指令是寫在iptables的檔裡面嗎??
那原本的下述指令要把他disable掉嗎??

facebook

-A PREROUTING -p tcp -m tcp -d apps.facebook.com -j DROP
-A PREROUTING -p tcp -m tcp -d www.facebook.com -j DROP
-A PREROUTING -p tcp -m tcp -d facebook.com -j DROP

封鎖facebook

-A PREROUTING -j blockfacebook
-A blockfacebook -d facebook.com -j DROP
-A blockfacebook -d www.facebook.com -j DROP
-A blockfacebook -d apps.facebook.com -j DROP
謝謝您!
PS: DNS部分不是由我們自己管理的,所以這部分有問題....

bzbz iT邦新手 2 級 ‧ 2013-07-11 18:23:12 檢舉

要不然把80 換成 53 ,因為你說DNS在cht那,所以裡面的主機要問DNS,應該會經過你這台centos吧,那就把詢問facebook.com的流量給擋掉。

iptables -t nat -A PREROUTING -p tcp --dport 53 -m string --algo bm --string "facebook.com" -j REJECT

6
ktweng
iT邦新手 2 級 ‧ 2013-05-21 22:39:24

內網的DNS很好處理呀,既然你都用linux當防火牆了,怎麼不在linux啟動dns server 呢?
這樣把client的dns導向此台主機不就好了,並且把client對外的dns封鎖掉,這樣你想把facebook.com轉到哪裡都是你的自由了。

jiang360 iT邦新手 4 級 ‧ 2013-05-24 09:56:31 檢舉

dns部分是由中華電信那邊代管的,我們沒有自己的dns server
所以這部分沒辦法耶

cmwang iT邦大師 1 級 ‧ 2013-05-24 10:26:22 檢舉

jiang360提到:
dns部分是由中華電信那邊代管的,我們沒有自己的dns server
所以這部分沒辦法耶

代管的是管別人如何連上貴公司的部份,和內部的client要怎麼連外是兩回事,自己架台cache only NS,順便吧FB處理掉沒那麼難吧OrzOrz....

hon2006 iT邦大師 1 級 ‧ 2013-05-27 10:02:35 檢舉

centos 裝 dnsmasq 當 dns server
把 facebook.com 指到 127.0.0.1
就可以擋掉了
前提是禁止內部連外部dns,限定只能連自建的.
dnsmasq 設定可以參考
http://blog.yslin.tw/2013/02/dns-dnsmasq.html

我要發表回答

立即登入回答