云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

域名备案_华为云学院_新用户

小七 141 0

两次运输的故事

确保对APT存储库的访问是至关重要的。在Cloudflare,和大多数组织一样,我们使用一个遗留的VPN来锁定谁可以访问我们的内部软件存储库。然而,网络外围模型缺少许多我们认为对团队至关重要的特性安全。如作为一家公司,我们一直在将内部基础设施迁移到我们自己的零信任平台Cloudflare Access。Access为我们管理的内部部署工具增加了SaaS般的便利性。我们从web应用程序开始,然后将需要通过SSH访问的资源移动到访问网关后面,例如Git或用户SSH访问。但是,我们仍然需要处理服务如何与内部APT通信仓库。我们最近开源了一个新的APT传输,允许客户使用Cloudflare访问来保护他们的私有APT存储库。在本文中,我们将概述APT工具、APT传输的历史,并介绍我们用于Cloudflare访问的新APT传输。APTAdvanced Package Tool(APT)的简要历史可以简化Debian和相关Linux发行版上软件的安装和删除。APT最初于1998年发布,它对Debian的意义就好比AppStore对于现代智能手机的意义——比它的时代提前了10年!APT位于较低级别的dpkg工具之上,该工具用于安装、查询和删除.deb包——deban和相关Linux发行版(如Ubuntu)中的主要软件打包格式。使用dpkg,打包和管理安装在您的系统上的软件变得更容易,但它并不能解决软件包分发方面的问题,例如通过Internet或本地媒体;在最初的时候,从CD安装软件包是很平常的事-APT光盘介绍了存储库的概念—一种存储和索引.deb包集合的机制。APT支持连接到多个存储库以查找包和自动解析包依赖关系。APT连接到所述存储库的方式是通过"传输"-一种用于在APT客户端和其存储库源之间进行通信的机制(稍后将对此进行详细说明)。在Internet上的APT版本1.5之前,APT不包括对HTTPS的支持-如果您希望在Internet上安装包,则您的连接未加密。这会降低隐私-攻击者通过窥探流量来确定系统正在安装的特定软件包版本。它还使您暴露在路径攻击者攻击中,例如,攻击者可以利用远程代码执行漏洞进行攻击。就在6个月前,我们在CVE-2019-3462中看到了后者的一个例子。输入APT HTTPS transport-一个可选的传输,您可以安装它来添加对通过HTTPS连接到存储库的支持。一旦安装,用户需要配置他们的APT来源.列表使用存储库HTTPS当然,这里的挑战是,安装这种传输最常见的方法是通过APT和HTTP——这是一个典型的引导问题!另一种方法是通过curl下载.deb包,然后通过dpkg安装它。您可以在这里找到指向apt-transport-https二进制文件的链接,以便在这里找到您的系统架构的URL路径,您可以从deb.debian.org网站通过HTTPS镜像重定向器,e、 g.对于amd64(又称x86_64):curl-o apt传输-https.deb-我https://deb.debian.org/debian/pool/main/a/apt/apt-transport-https_1.4.9_amd64.debHASH=c8c4366d1912f82223615891397a78b44f313b0a2f15a970a82abe48460490cb&&echo"$HASH apt transport-https.deb"|沙256sum-csudo dpkg-i apt运输-https.deb要确认您的系统上安装了哪些APT传输,您可以列出每个"method binary",即已安装:ls/usr/lib/apt/methods安装了apt-transport-https后,您现在应该可以在其中看到"https"名单。那个debianyon上APT&HTTPS的状态您可能想知道这个APT-HTTPS传输在今天有多重要。考虑到如今HTTPS在网络上的流行,当我发现它到底有多相关时,我很惊讶是。起来直到几周前,DebianStretch(9.x)才是目前稳定的版本;9.0于2017年6月首次发布,最新版本(9.9)默认包含apt 1.4.9,这意味着保护您的apt通信以用于Debian Stretch需要安装可选的apt传输https包。谢天谢地,今年7月6日,Debian发布了最新版本Buster,目前默认包含内置HTTPS支持的apt 1.8.2,取消了安装apt transport HTTPS包的需要,并消除了通过HTTPS安装HTTPS支持的引导挑战!BYO HTTPS APT repository APT repository APT的一个强大功能是能够运行自己的存储库。您可以镜像公共存储库以提高性能或防止停机。如果你在制作自己的软件包,您可以运行自己的存储库来简化软件的分发和安装用户。如果你有自己的APT存储库,你希望用HTTPS来保护它,我们从2014年开始提供免费的通用SSL,去年推出了一种只需点击一下就可以在整个站点范围内自动要求它的方法。您将获得DDoS攻击保护的好处,一个带有缓存的全球CDN,以及分析。但是如果您想为您的APT存储库寻找的不仅仅是HTTPS呢?对于运营私有APT存储库的公司,认证您的APT存储库可能是一个挑战。这就是我们新的定制交通工具的所在建筑物内自定义传输APT的系统设计很强大,因为它支持通过传输可执行文件进行扩展,但是这个机制是如何工作的呢?当APT尝试连接到存储库时,它会从存储库URL中找到与"scheme"匹配的可执行文件(例如,存储库上的"https://"前缀会导致调用"https"可执行文件)。然后,APT使用常见的Linux标准流:stdin、stdout和stderr。它通过stdin/stdout使用一组纯文本消息进行通信,这些消息遵循IETF RFC#822(与.deb"Package"文件使用的格式相同)。输入消息的示例包括"600uri Acquire",输出消息的示例包括"200uri Start"和"201uridone":如果您对构建自己的传输感兴趣,查看APT方法接口规范以了解更多实现细节。APT满足AccessCloudflare优先考虑尽早和经常地使用我们自己的产品。Access产品为我们的内部DevTools团队提供了一个与产品团队密切合作的机会,因为我们构建的特性有助于解决整个组织中的用例。我们在内部部署了新特性,收集了反馈,改进了它们,然后将它们发布给我们的客户。例如,我们已经能够迭代访问工具,比如Atlassian SSO插件和SSH特性,作为DevTools和Access之间的协作工作团队。我们的DevTools团队希望采用相同的dogfooding方法来保护我们的内部APT存储库。我们知道这需要一个定制的APT传输来支持生成所需的令牌,并在HTTPS请求中将正确的头传递到我们的内部APT存储库服务器。我们决定构建并测试我们自己的传输,它既生成了必要的令牌,又传递了正确的头,使我们能够将存储库放在后面访问之后经过数月的内部使用,我们很高兴地宣布,我们最近已经公开了我们的定制APT传输,因此,我们的客户还可以通过Cloudflare访问启用身份验证来保护他们的APT存储库。通过使用Cloudflare访问保护APT存储库,您可以支持通过单点登录(SSO)提供程序对用户进行身份验证,定义全面的访问控制策略,以及监视访问和更改日志。我们的APT-transport利用了我们提供的另一个开源工具cloudflared,这使用户能够连接到受Cloudflare保护的域安全。固定您的APT存储库要使用我们的APT传输,您需要一个受Cloudflare访问保护的APT存储库。我们的运输工具使用说明(如下)将使用apt.example.com网站作为一个主机名。到使用我们的APT传输与您自己的基于web的APT存储库,请参阅我们的设置访问权限指南.APT传输安装要从源安装,两个工具都需要Go-一旦安装Go,你可以安装"cloudflared"和我们的APT transport命令:获取github.com/cloudflare/cloudflared/cmd/cloudflared苏多cp${戈帕思:-~/go}/bin/cloudflared/usr/local/bin/cloudflared去拿github.com/cloudflare/apt-运输云状火焰/cmd/cfd苏多cp${戈帕思:-~/go}/bin/cfd/usr/lib/apt/methods/cfd上面的命令应该将cloudflared可执行文件放在/usr/local/bin(应该在您的路径上),将APT transport二进制文件放在所需的/usr/lib/APT/methods中目录。到确认cloudflared正在你的路上,跑步:哪一个云彩上面的命令应该返回/usr/local/bin/cloudflared现在已经安装了自定义传输,要开始使用它,只需使用cfd://而不是https://e.g:$cat/etc/APT配置一个APT源/来源.列表.d/示例.列表德布[arch=amd64]cfd://apt.example.com/v2/stretch稳定的普通下次执行"apt get update"和"apt get install"时,将打开一个浏览器窗口,要求您通过Cloudflare访问登录,并使用"cloudflared"返回的令牌检索包。通过访问获取GPG密钥通常,私有apt存储库将使用SecureApt并拥有用户必须安装到的GPG公钥验证从中检索到的数据的完整性存储库。用户还可以利用cloudflared安全地下载和安装这些密钥,例如:cloudflared access loginhttps://apt.example.com云状扩张通道卷曲https://apt.example.com/public.gpg|sudo apt key添加-第一个命令将打开您的web浏览器,允许您对您的域进行身份验证。第二个命令包装curl以下载GPG密钥,并将其交给"apt key add"。在"headless"服务器上访问Cloudflare如果要将受Cloudflare访问保护的apt存储库部署到非面向用户的计算机(即"headless"服务器),则打开浏览器将无法工作。这个