大家好,想跟大家請教一個問題,公司的防火牆是使用cetos的主機架設而成,公司規定禁止員工在公司內部使用facebook臉書的網頁,所以我在iptables的規則檔裡面設定了幾條規定
-A PREROUTING -j blockfacebook
-A blockfacebook -d www.facebook.com -j DROP
-A blockfacebook -d apps.facebook.com -j DROP
這簡單的幾行,facebook部分,在規則剛開始設定的時候是可以正常運作的
也就是公司員工是不能上臉書的,但近來發現,似乎這規則好像失效了
不過第二條的臉書app部分是上不去的,也就是說無法玩臉書的遊戲部分
我想請教一下各位,是否在這規則裡面還要再增設那些規定
才可以讓公司的主機有效的防堵員工上時間使用facebook???(以公司的網路而定,個人3g我管不著)
感謝各位的指教及幫忙!!
iptables的destination填FQDN時只會擋當時拿到的DNS reply的第一個IP(i.e.其他的IP是不會被擋下來的),以FB的規模大概不至於只有單一IP吧
....
如果DNS是自己管的話
就把*.facebook.com通通導到其他地方吧
u8526425大您好
dns不是自己管喔
我是希望想要找到更好的參數可以在iptables底下把臉書給擋掉
jiang360提到:
現在就只剩apps.facebook.com這條規則還可以正常的執行
試試iptables -n -L,看一下-d的destination到底長怎樣吧....
jiang360提到:
我是希望想要找到更好的參數可以在iptables底下把臉書給擋掉
若一定要用FQDN的型式指定destionation的話鵝只想得出用transparent proxy+acl的方式了,畢竟要kernel在forward每個packet前都去做DNS query是非常不切實際的想法....
試著加這個:
-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來擋吧
您好,有以您的建議把facebook.com這個指令加進去了,但是還是沒效
看來,他似乎是https的網頁....
這些ip我有是著檔網段,但一檔下去,很多網頁都打不開,被user罵死了
所以目前檔ip網段這個方法暫時先無法執行耶....
這些IP是facebook所用的IP, 您說很多網頁打不開, 這不正是擋IP的用意嗎?
善用string 模組
iptables -t nat -A PREROUTING -p tcp --dport 80 -m string --algo bm --string "facebook.com" -j DROP
但我還是希望你從DNS方面做阻擋,因為對方如果走https就擋不住了...
您好,小弟對於linux指令並不熟,所以想跟您請教一下,此一指令是寫在iptables的檔裡面嗎??
那原本的下述指令要把他disable掉嗎??
-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
-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部分不是由我們自己管理的,所以這部分有問題....
要不然把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
內網的DNS很好處理呀,既然你都用linux當防火牆了,怎麼不在linux啟動dns server 呢?
這樣把client的dns導向此台主機不就好了,並且把client對外的dns封鎖掉,這樣你想把facebook.com轉到哪裡都是你的自由了。
dns部分是由中華電信那邊代管的,我們沒有自己的dns server
所以這部分沒辦法耶
jiang360提到:
dns部分是由中華電信那邊代管的,我們沒有自己的dns server
所以這部分沒辦法耶
代管的是管別人如何連上貴公司的部份,和內部的client要怎麼連外是兩回事,自己架台cache only NS,順便吧FB處理掉沒那麼難吧....
centos 裝 dnsmasq 當 dns server
把 facebook.com 指到 127.0.0.1
就可以擋掉了
前提是禁止內部連外部dns,限定只能連自建的.
dnsmasq 設定可以參考
http://blog.yslin.tw/2013/02/dns-dnsmasq.html