内容目录 一、背景概述二、防护方式三、基于openresty实现源站防护四、思考与总结 一、背景概述 网站是一个企业或者团队的重要资产,源码也是开发人员和团队辛苦劳作的成果,对于后端服务,用户几乎触摸不到源码 目前市面上很多网站还是使用传统的nginx来实现,那么本篇文章我们就结合openresty来实现源站防护做一下简单介绍。 二、防护方式 想要防护网站源码,可以使用在用户访问主站域名的时候,获取静态资源之前加一层防护,比如爬虫请求头限制、ip访问区域限制等,当然限制的方式有很多,也可以借助其他工具来实现,这里重点介绍下爬虫和 三、基于openresty实现源站防护 openresty在nginx的基础上提供了扩展能力以及很多强大的模块,此处基于openresty实现,具体openresty安装方式,不做赘述。 四、思考与总结 以上是基于openresty实现的网站源站防护机制,主要是从爬虫和ip区域限制两个维度实现,当然市面上也有很多其他的防护机制和技术、以及免费和商业化的工具可以使用,如下列举一些比较常用的方式和工具
Docker CE 镜像源站 hyzhou 2017-06-26 15:28:15 浏览100094 评论27 docker 安装 engine docker-ce 摘要: Docker CE 镜像源站 Docker CE 镜像源站 使用官方安装脚本自动安装 (仅适用于公网环境) curl -fsSL https://get.docker.com | bash -s docker --mirror ,您可以通过编辑软件源的方式获取各个版本的软件包。 version Client: Version: 17.03.0-ce API version: 1.26 Go version: go1.7.5 Git commit: 3a232c8 17.03.0-ce API version: 1.26 (minimum version 1.12) Go version: go1.7.5 Git commit: 3a232c8
一、源站基本需求 1. 基本功能:支持推流/转推/拉流。 2. 使用源站的用户推流,将不会去control鉴权。也就是任何流,只要拿到我们的域名都可以推流成功。 2. 推流成功后,查询live_adaptor,live_adaptor将根据域名来决定转推目的地。 为了防止把源站压垮,将会对访问的ip进行连接数的限制,每台机器最多允许连接3条。 三、主备流自动切换的实现 下面主要介绍我设计的方案 现场赛事方推流到主,接入转推时,会带上自己的ip。
Centos 8 在 2021年底仓库全部停止运营, 之前的源都不能用了 问题 centos yum报错 - Status code: 404 for https://mirrors.aliyun.com /centos/centos/8/AppStream/x86_6 替换源 在进行修改之前最好将 /etc/yum.repos.d/ 下的所有文件做一个备份,当出现不可知的情况时,可以通过 cat /var gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial 2.如果是外网服务器,可以用facebook的源, 修改方法同上: AppStream 的 baseurl 填: http://mirror.facebook.net/centos/8-stream/AppStream/x86_64/os/ BaseOS 的 baseurl 填: http://mirror.facebook.net/centos/8-stream/BaseOS/x86_64/os/ 重建cache并更新 $ dnf clean all
主要应用场景如下: 源站灾备:即使流比较少,也可以用两个源站,这样可以将流分散到不同的源站,避免源站出现问题时影响所有的流。 海量推流:单源站可以支持1000到3000路流,高码率的流支持的路数更少,有DVR和HLS时支持的路更少,源站集群有多个源站同时接收推流,可以支持10k~100k推流,参考规格。 复杂源站业务:源站除了支持推流和拉流,还有重要的功能是DVR、转码、转HLS,DVR和HLS涉及磁盘,转码涉及CPU,都是容易发生瓶颈的资源依赖,源站集群扩展能力更强。 Step 2: 创建SRS源站集群和Nginx源站应用和服务。 srs-origin-config: 创建一个配置k8s ConfigMap,存储了SRS Origin Server使用的配置文件。 这里我们选择的是有状态集群方式,也可以选择以无状态应用(Deployment)方式部署源站,区别在于每个源站都需要创建一个Deployment和Service,参考源站集群部署方式,例如: 第0个源站,
主要应用场景如下: 源站灾备:即使流比较少,也可以用两个源站,这样可以将流分散到不同的源站,避免源站出现问题时影响所有的流。 复杂源站业务:源站除了支持推流和拉流,还有重要的功能是DVR、转码、转HLS,DVR和HLS涉及磁盘,转码涉及CPU,都是容易发生瓶颈的资源依赖,源站集群扩展能力更强。 自动 需要新开进程时,ECS需要申请部署和配置,K8s只需要修改Replicas数目即可(也可自动扩容) 发现 手动 自动 Origin变更IP时,ECS需要手动修改配置,K8s在迁移源站Pod时会保持 Step 2: 创建SRS源站集群和Nginx源站应用和服务。 srs-origin-config: 创建一个配置k8s ConfigMap,存储了SRS Origin Server使用的配置文件。 这里我们选择的是有状态集群方式,也可以选择以无状态应用(Deployment)方式部署源站,区别在于每个源站都需要创建一个Deployment和Service,参考源站集群部署方式,例如: 第0个源站,
CDN源站地址踩坑 为什么官方推荐域名作为源站地址呢,我个人理解是考虑像nginx负载均衡一样的,一个域名下有多个实例ip,每次轮询,但配置CND后,电信用户访问时会优先去电信运营商那个ip。 但我自己博客只是个单实例,所以源站地址是ip好点,少了从域名解析到ip这一步。 下面放出我在阿里云社区和腾讯云社区看到的帖子 引自腾讯云社区: 源站类型:自有源 源站地址:source.yeruchimei.top:8080 源站地址填写为域名最大的好处是,当你的源站拥有多个运营商的 注意:如果源站地址填写为域名时,此域名的作用仅仅是用于DNS解析,例如source.yeruchimei.top对应的A记录为100.100.100.100,那最终源站地址则是100.100.100.100 建议:能选择源站地址为域名最好是选择为域名。 引自阿里云社区: ReCDN加速源站域名怎么填哦?
RTMP源站集群部署的步骤,我们给出了一个例子,部署了两个源站做集群,还部署了一个边缘。 实际使用中,可以部署多个源站和多个边缘,形成源站集群。 /configure &&make 复制 第三步,编写SRS源站A配置文件 详细参考RTMP源站集群 将以下内容保存为文件,譬如conf/origin.cluster.serverA.conf,服务器启动时指定该配置文件 ,任意源站都能播放,如果流不在访问的源站,会返回RTMP302重定向到流所在的源站。 第六步,启动SRS 详细参考RTMP源站集群 ./objs/srs -c conf/origin.cluster.serverA.conf & . ,播放边缘的流都能从正确的源站回源取流 详细参考RTMP源站集群 观看集群的RTMP流地址为:rtmp://192.168.1.170/live/livestream,可以使用VLC观看。
站在站长的角度,不可能每个站都会用上CDN。 站在DNS服务商的角度,历史解析记录可能不受CDN服务商控制。 站在CDN服务商的角度,提供CDN服务的区域有限制,CDN流量有限制。 https://asm.ca.com/en/ping.php 从目标服务器入手 被动获取 让目标服务器主动链接我们的服务器,获取来源IP SSRF Mail 服务器信息 探针文件 服务器日志文件 错误信息 旁站 查找子域名或者父域名对应IP 查非子域名旁站 通过搜索引擎查找公网上的相同站点(开发环境,备份站点等) MX、TXT记录 对比全网banner 获取目标站点的banner,在全网搜索引擎搜索,也可以使用 可以通过互联网络信息中心的IP数据,筛选目标地区IP,遍历Web服务的banner用来对比CDN站的banner,可以确定源IP。 拉美:ftp://ftp.lacnic.net/pub/stats/lacnic/delegated-lacnic-extended-latest CDN服务商 入侵CDN服务商 根据CDN解析特性获取源IP
真正的套cdn隐藏服务器源IP教程 这个问题怎么解决 我去查了下我自己的,确实会返回默认站点的证书信息 【下附图】 # nginx配置问题! 真正的套cdn隐藏服务器源IP教程 宝塔默认配置ssl(https)证书后如果不设置默认nginx ip:443 ssl返回,访问IP:443会暴露默认证书的,证书里面包含了很多内容,其中最重要的就是证书被授予的域名所以为什么很多套了 cdn的站点也怎么容易被挖出源ip疯狂被ddos直接打到黑洞,从根本上讲cdn就是摆设了,没有做到实际隐藏你源ip的功能,这个问题日益严重,因为很多人都不懂得这个设计缺陷。
不少的cdn或者源站,都是多层的,层级之前的数据传输大部分都是采用外网的。为了降低内部数据传输的损耗,在没有观众观看的情况下,边缘和中间层都会停止拉流,只有在中心节点有直播流数据。 当有观众过来观看,会逐级向上回源。每一层级都会重新创建新的回源连接。tcp连接建立阶段至少是1+RTT,多级建立连接,累计起来,耗费的时间会比较客观。 解决方案 为了减少回源耗时,建议在tcp连接建立的时候,开启tcp fastopen。 下图是正常连接建立,以及发起http get的请求。 优化效果 按照3层回源来,服务器之间的RTT约为20ms,冷流的场景下,可以减少约40ms延迟。服务器集群一般都是跨地域的,优化效果会更明显一些。
repo backup/ 2、下载源文件 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.
相比较7.0yum源只需要配置一个文件夹路径,而8.0却需要配置2个文件夹路径,今天和大家分享下redhat8.0配置本地yum源和网络yum源的方法。 一、实验环境: 1、系统版本: Red Hat Enterprise Linux release 8.2 (Ootpa) 2、前提条件: (1)本地yum源:系统ISO镜像已经挂载 (2)网络yum 源:服务器可以联网 二、实验步骤: 1、配置本地yum源 (1)在/etc/yum.repos.d/文件夹创建rhce.repo文件 ps:默认的redhat.repo没有实际意义,都是注释文件。 ,软件包共有6613个软件,数量相差过大或者生成仓库缓存的时候报错说明本地源配置有异常,一般都是仓库地址配置有问题。 2、配置网络源 根据对应系统版本无脑复制操作就行了。 网络源配置好了,文件夹会多出epel*.repo的仓库文件。
但是,建站容易,守站难。现在的网络环境并不是很好,cc攻击、DDoS、xxs渗透....随处可见,可能你刚刚建好的站,没过几分钟就被扫端口了,没过几分钟cc攻击立马就开始。 所以很多站长套起了cdn,比起cdn提供的加速效果,更多的站长可能还是为了保护那可怜弱小的源站ip不被发现然后攻击。 那么,怎么知道你的源站ip呢? 然后当我们看到这个页面的时候,那就说明找到了你的源站ip。因为我们使用https,所以可以查看我们的证书。 然后那些cc以及ddos大牛们会以迅雷不及掩耳之势展开他们的攻势,那么如何防止别人利用ssl证书来获取你的源站ip呢。 结尾 这样就可以避免别人利用sll证书来确认是否为你的源站ip。那这样源站ip就安全了吗?当然不可能,还有很多的技巧或者工具来获取你的源站ip。
但是,建站容易,守站难。现在的网络环境并不是很好,cc攻击、DDoS、xxs渗透....随处可见,可能你刚刚建好的站,没过几分钟就被扫端口了,没过几分钟cc攻击立马就开始。 所以很多站长套起了cdn,比起cdn提供的加速效果,更多的站长可能还是为了保护那可怜弱小的源站ip不被发现然后攻击。 那么,怎么知道你的源站ip呢? 然后当我们看到这个页面的时候,那就说明找到了你的源站ip。因为我们使用https,所以可以查看我们的证书。 然后那些cc以及ddos大牛们会以迅雷不及掩耳之势展开他们的攻势,那么如何防止别人利用ssl证书来获取你的源站ip呢。 结尾 这样就可以避免别人利用sll证书来确认是否为你的源站ip。那这样源站ip就安全了吗?当然不可能,还有很多的技巧或者工具来获取你的源站ip。
第11章 UDP:用户数据报协议 11.11 ICMP源站抑制差错 我们同样也可以使用 U D P产生I C M P“源站抑制(source quench)”差错。 即使一个系统已经没有缓存并丢弃数据报,也不要求它一定要发送源站抑制报文。 图11 - 1 8给出了I C M P源站抑制差错报文的格式。有一个很好的方案可以在我们的测试网络里产生该差错报文。 由于源站抑制要消耗网络带宽,且对于拥塞来说是 一种无效而不公平的调整,因此现在人们对于源站抑制差错的态度是不支持的。 结果是如果采用 U D P协议,那么B S D实现通常忽略其接收到的源站抑制报文(正如我们在 2 1 . 1 0节所讨论的那样, T C P接受源站抑制差错报文,并将放慢在该连接上的数据传输速度)。 其部分原因在于,在接收到源站抑制差错报文时,导致源站抑制的进程可能已经中止了。
前言 我们上一篇文章中聊到了SMTP会泄露源站ip的问题,那么我们今天再来说一个泄露源站IP的点。那就是: SSL 检查 我们前往站点 Censys 检查一下自己的ip是不是被他扫了出来? 至此,ssl证书泄露源站ip的风险也解除了。
有的时候,我们套CDN是为了保护相对较为脆弱的源站,在CDN上平台上实现对DDoS、CC之类攻击的防护;所以相应的,我们也不希望它被泄露出去,一旦攻击者绕过CDN直接攻击源站,我们在CDN上构建的防御措施便成了摆设 /create_test_cert.html MkCert:https://github.com/FiloSottile/mkcert 经过对这些的思考之后,我觉得还是签发一个有效的IP证书对于隐藏源站最有效 四、结语 解决这种泄露源站的问题还有几种其他的方案,比如只监听并以IPv6为源站、只允许CDN段访问你的服务器等,这都是绝佳的解决方案。
已经进行如图中的设置,状态也已生效但打开加速域名后跳转的非源站,而是跳转到了另外一个站点,太困惑了。 看图设置,源站域名和加速域名都开启了ssl加密,访问源站可以正常访问,但访问加速域名就是不行,会跳转到hi.jeray.wang,不知道哪里的设置有问题。特向大佬们求助,求解答。。。
第8章 Traceroute程序 8.5 IP源站选路选项 通常I P路由是动态的,即每个路由器都要判断数据报下面该转发到哪个路由器。应用程序对此不进行控制,而且通常也并不关心路由。 对于本章中所给出的例子,作者将这些补丁安装上去,并将它们设置成允许宽松的源站选路和严格的源站选路。 图8 - 6给出了源站路由选项的格式。 ? 对于宽松的源站选路来说, c o d e字段的值是0 x 8 3;而对于严格的源站选路,其值为 0 x 8 9。l e n和p t r字段与7 . 3节中所描述的一样。 如果T C P服务器下面接收到一个不同的源站选路,那么新的源站路由将取代旧的源站路 由。 前面我们说看起来有 1 6跳,这是因为将其输出结果与前面的通过 N S F N E T(图8 - 5)的示例比较,发现在本例采用宽松源路由,选择了 3个路由器(这可能是因为路由器对源站选路数据 报 产