Answers:
有没有一种简单的方法来找出Facebook,Myspace,Snapchat等使用的所有IP?
以Facebook为例。。。我们直接在ASA上将带宽限制到我们总数的一小部分(因为公司中的另一个小组拥有网络代理)。
我通常查找公司的ASN(Facebook为32934),然后去http://as.robtex.com/as32934.html#bgp
查找其前缀。
从该列表中,我建立了一个Cisco ASA对象组,可以用来对流量进行分类...这就是我现在正在使用的... Facebook被限制到少量带宽...它工作得很好。
每隔一段时间,您就必须返回并检查robtex AS-info,以查看它们是否添加或删除了前缀。我通常会尝试使用它们拥有的最大的聚合块,即使它们只是从较大的聚合中宣布较小的块。
object-group AS32934_Facebook
network-object 31.13.24.0 255.255.248.0
network-object 31.13.64.0 255.255.192.0
network-object 66.220.144.0 255.255.240.0
network-object 69.63.176.0 255.255.240.0
network-object 69.171.224.0 255.255.224.0
network-object 74.119.76.0 255.255.252.0
network-object 103.4.96.0 255.255.252.0
network-object 173.252.64.0 255.255.192.0
network-object 204.15.20.0 255.255.252.0
我用来生成列表的python代码很简单...
from ipaddr import IPv4Network, CollapseAddrList
fb_nets = list()
with open('facebook_nets.txt') as fh:
for line in fh:
net = IPv4Network(line.strip())
fb_nets.append(net)
print "object-group AS32934_Facebook"
for net in sorted(CollapseAddrList(fb_nets)):
print " network-object %s %s" % (net.network, net.netmask)
该代码假定您将所有前缀都放在一个名为“ facebook_nets.txt”的文本文件中,每行一个前缀...
(py26_dfl)[mpenning@Bucksnort ~]$ head facebook_nets.txt
31.13.24.0/21
31.13.64.0/18
31.13.64.0/19
31.13.64.0/24
31.13.65.0/24
31.13.66.0/24
31.13.67.0/24
31.13.68.0/24
31.13.69.0/24
31.13.70.0/24
(py26_dfl)[mpenning@Bucksnort ~]$
实际上,我的脚本每周都会自动对信息进行网上抓取,但这是一个简化的版本。
有几种方法可以找到主要组织(例如Facebook)的IP范围。其中最基本的方法是打开您选择的终端/命令行并发出命令:nslookup facebook.com
。
这为您提供了与该DNS名称关联的IP地址;在这种情况下,这173.252.110.27
就是我的DNS服务器的答案。
然后为该IP地址运行“ whois”查找(如果您的命令行中没有whois工具,则可以转到Whois.net):whois 173.252.110.27
在这种情况下,相关的输出为:
NetRange: 173.252.64.0 - 173.252.127.255
CIDR: 173.252.64.0/18
OriginAS: AS32934
NetName: FACEBOOK-INC
Facebook已被分配了整个/ 18块173.252.64.0/18
,因此只需将该范围用于您的ACL。
注意:综上所述,通过IP进行阻止可能非常麻烦,并且在许多情况下非常无效。像Facebook这样规模的组织将不断增加新的IP空间,这将超出您的过滤范围。
某些站点可能会更改为使用新的CDN,当然也将使用其他IP空间。
如果您的HTTPS和URL阻止遇到特定问题,具体取决于设备,您可以在另一个问题中寻求有关这些特定问题的帮助。答案可能会更好地帮助您阻止对这些站点的访问。
whois
对于我发现的少数范围,查找确实将Facebook列为分配的组织。以我的经验,HE的BGP工具包在提供准确信息方面做得很好。
我一直在使用NBAR来限制Facebook,但您可以对其进行调整以阻止它。这仅适用于纯文本HTTP请求,该请求会在重定向到HTTPS之前有效阻止某人在浏览器中输入地址。FB的SSL(TLS)书签将丢失。
您也可以查看应该能够处理此问题的新ASA-X CX(上下文感知安全性),尽管我尚未进行部署。
类地图匹配-任何Facebook-not4you 匹配协议http主机“ * facebook.com” 匹配协议http主机“ * fbcdn.net” ! 政策图badfacebookbad 类facebook-not4you 下降 ! 接口Gi0 / 1 服务策略输出错误